diff options
40 files changed, 3860 insertions, 3944 deletions
diff --git a/about/resources.html b/about/resources.html index 6561a78e..03f2b66d 100644 --- a/about/resources.html +++ b/about/resources.html @@ -50,107 +50,107 @@ <span>In random order:</span><br /> <br /> <ul> -<li>Raku Fundamentals; Moritz Lenz; Apress</li> -<li>Funktionale Programmierung; Peter Pepper; Springer</li> +<li>The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress</li> +<li>Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly</li> +<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li> +<li>21st Century C: C Tips from the New School; Ben Klemens; O'Reilly</li> +<li>Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson</li> <li>Developing Games in Java; David Brackeen and others...; New Riders</li> +<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li> +<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li> <li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</li> -<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly</li> -<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li> -<li>The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional</li> -<li>Modern Perl; Chromatic ; Onyx Neon Press</li> -<li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li> +<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li> +<li>Java ist auch eine Insel; Christian Ullenboom; </li> +<li>C++ Programming Language; Bjarne Stroustrup;</li> <li>Terraform Cookbook; Mikael Krief; Packt Publishing</li> -<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly</li> -<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li> -<li>Systemprogrammierung in Go; Frank Müller; dpunkt</li> -<li>DNS and BIND; Cricket Liu; O'Reilly</li> -<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li> <li>Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly</li> +<li>Funktionale Programmierung; Peter Pepper; Springer</li> +<li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li> +<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly</li> +<li>Systemprogrammierung in Go; Frank Müller; dpunkt</li> +<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly</li> +<li>The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton</li> +<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li> +<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li> <li>Effective Java; Joshua Bloch; Addison-Wesley Professional</li> +<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li> <li>Concurrency in Go; Katherine Cox-Buday; O'Reilly</li> -<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li> -<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li> -<li>C++ Programming Language; Bjarne Stroustrup;</li> -<li>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li> -<li>Ultimate Go Notebook; Bill Kennedy</li> -<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li> -<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li> -<li>Java ist auch eine Insel; Christian Ullenboom; </li> +<li>Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications</li> <li>Site Reliability Engineering; How Google runs production systems; O'Reilly</li> -<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li> -<li>Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly</li> -<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li> -<li>Effective awk programming; Arnold Robbins; O'Reilly</li> -<li>Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson</li> -<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li> -<li>Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly</li> -<li>Leanring eBPF; Liz Rice; O'Reilly</li> +<li>The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional</li> +<li>DNS and BIND; Cricket Liu; O'Reilly</li> +<li>Raku Recipes; J.J. Merelo; Apress</li> +<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li> <li>The Kubernetes Book; Nigel Poulton; Unabridged Audiobook</li> <li>Data Science at the Command Line; Jeroen Janssens; O'Reilly</li> -<li>Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications</li> -<li>21st Century C: C Tips from the New School; Ben Klemens; O'Reilly</li> +<li>Effective awk programming; Arnold Robbins; O'Reilly</li> <li>The Docker Book; James Turnbull; Kindle</li> -<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly</li> +<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li> +<li>Raku Fundamentals; Moritz Lenz; Apress</li> +<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li> +<li>Leanring eBPF; Liz Rice; O'Reilly</li> +<li>Ultimate Go Notebook; Bill Kennedy</li> +<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly</li> <li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li> -<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li> -<li>Raku Recipes; J.J. Merelo; Apress</li> -<li>The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton</li> -<li>The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress</li> +<li>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li> +<li>Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly</li> +<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li> +<li>Modern Perl; Chromatic ; Onyx Neon Press</li> </ul><br /> <h2 style='display: inline' id='technical-references'>Technical references</h2><br /> <br /> <span>I didn't read them from the beginning to the end, but I am using them to look up things. The books are in random order:</span><br /> <br /> <ul> -<li>Go: Design Patterns for Real-World Projects; Mat Ryer; Packt</li> +<li>Implementing Service Level Objectives; Alex Hidalgo; O'Reilly</li> +<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li> <li>Relayd and Httpd Mastery; Michael W Lucas</li> -<li>Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly</li> -<li>Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly</li> <li>Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley</li> +<li>Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly</li> +<li>Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly</li> <li>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li> -<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li> -<li>Implementing Service Level Objectives; Alex Hidalgo; O'Reilly</li> +<li>Go: Design Patterns for Real-World Projects; Mat Ryer; Packt</li> </ul><br /> <h2 style='display: inline' id='self-development-and-soft-skills-books'>Self-development and soft-skills books</h2><br /> <br /> <span>In random order:</span><br /> <br /> <ul> +<li>Psycho-Cybernetics; Maxwell Maltz; Perigee Books</li> +<li>Slow Productivity; Cal Newport; Penguin Random House</li> <li>Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion</li> -<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK</li> -<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li> <li>Deep Work; Cal Newport; Piatkus</li> -<li>The Power of Now; Eckhard Tolle; Yellow Kite</li> -<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li> -<li>The Bullet Journal Method; Ryder Carroll; Fourth Estate</li> -<li>Influence without Authority; A. Cohen, D. Bradford; Wiley</li> -<li>So Good They Can't Ignore You; Cal Newport; Business Plus</li> -<li>Getting Things Done; David Allen</li> -<li>Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly</li> -<li>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li> -<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li> -<li>Slow Productivity; Cal Newport; Penguin Random House</li> -<li>Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne</li> +<li>Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing</li> <li>Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)</li> -<li>Psycho-Cybernetics; Maxwell Maltz; Perigee Books</li> +<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li> +<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li> <li>The Good Enough Job; Simone Stolzoff; Ebury Edge</li> -<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li> +<li>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li> +<li>The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook</li> <li>Atomic Habits; James Clear; Random House Business</li> -<li>Digital Minimalism; Cal Newport; Portofolio Penguin</li> +<li>Meditation for Mortals, Oliver Burkeman, Audiobook</li> +<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li> <li>Soft Skills; John Sommez; Manning Publications</li> -<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li> -<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li> -<li>Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing</li> -<li>The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook</li> -<li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</li> -<li>Ultralearning; Anna Laurent; Self-published via Amazon</li> -<li>The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)</li> <li>The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd</li> +<li>Eat That Frog; Brian Tracy</li> +<li>So Good They Can't Ignore You; Cal Newport; Business Plus</li> <li>Ultralearning; Scott Young; Thorsons</li> +<li>Ultralearning; Anna Laurent; Self-published via Amazon</li> +<li>Influence without Authority; A. Cohen, D. Bradford; Wiley</li> +<li>The Bullet Journal Method; Ryder Carroll; Fourth Estate</li> +<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li> +<li>Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly</li> +<li>Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne</li> +<li>Digital Minimalism; Cal Newport; Portofolio Penguin</li> <li>Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press</li> -<li>Meditation for Mortals, Oliver Burkeman, Audiobook</li> -<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li> -<li>Eat That Frog; Brian Tracy</li> +<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li> +<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li> +<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK</li> +<li>The Power of Now; Eckhard Tolle; Yellow Kite</li> +<li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</li> +<li>The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)</li> +<li>Getting Things Done; David Allen</li> +<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li> </ul><br /> <a class='textlink' href='../notes/index.html'>Here are notes of mine for some of the books</a><br /> <br /> @@ -159,22 +159,22 @@ <span>Some of these were in-person with exams; others were online learning lectures only. In random order:</span><br /> <br /> <ul> +<li>Structure and Interpretation of Computer Programs; Harold Abelson and more...; </li> <li>The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online</li> -<li>Apache Tomcat Best Practises; 3-day on-site training</li> -<li>Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training</li> +<li>Functional programming lecture; Remote University of Hagen</li> +<li>F5 Loadbalancers Training; 2-day on-site training; F5, Inc. </li> +<li>Scripting Vim; Damian Conway; O'Reilly Online</li> <li>MySQL Deep Dive Workshop; 2-day on-site training</li> -<li>Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online</li> -<li>Structure and Interpretation of Computer Programs; Harold Abelson and more...; </li> <li>The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online</li> -<li>Scripting Vim; Damian Conway; O'Reilly Online</li> +<li>Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training</li> +<li>Apache Tomcat Best Practises; 3-day on-site training</li> +<li>Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon</li> +<li>Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online</li> +<li>Developing IaC with Terraform (with Live Lessons); O'Reilly Online</li> +<li>AWS Immersion Day; Amazon; 1-day interactive online training </li> <li>Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)</li> -<li>Functional programming lecture; Remote University of Hagen</li> <li>Protocol buffers; O'Reilly Online</li> -<li>F5 Loadbalancers Training; 2-day on-site training; F5, Inc. </li> -<li>Developing IaC with Terraform (with Live Lessons); O'Reilly Online</li> <li>Ultimate Go Programming; Bill Kennedy; O'Reilly Online</li> -<li>Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon</li> -<li>AWS Immersion Day; Amazon; 1-day interactive online training </li> </ul><br /> <h2 style='display: inline' id='technical-guides'>Technical guides</h2><br /> <br /> @@ -182,8 +182,8 @@ <br /> <ul> <li>How CPUs work at https://cpu.land</li> -<li>Raku Guide at https://raku.guide </li> <li>Advanced Bash-Scripting Guide </li> +<li>Raku Guide at https://raku.guide </li> </ul><br /> <h2 style='display: inline' id='podcasts'>Podcasts</h2><br /> <br /> @@ -192,59 +192,59 @@ <span>In random order:</span><br /> <br /> <ul> +<li>Dev Interrupted</li> <li>The ProdCast (Google SRE Podcast)</li> -<li>Modern Mentor</li> -<li>Deep Questions with Cal Newport</li> <li>Hidden Brain</li> -<li>Dev Interrupted</li> -<li>Maintainable</li> <li>Cup o' Go [Golang]</li> -<li>The Pragmatic Engineer Podcast</li> +<li>Maintainable</li> <li>Fallthrough [Golang]</li> -<li>BSD Now [BSD]</li> -<li>The Changelog Podcast(s)</li> <li>Fork Around And Find Out</li> +<li>The Changelog Podcast(s)</li> +<li>Modern Mentor</li> +<li>The Pragmatic Engineer Podcast</li> +<li>BSD Now [BSD]</li> <li>Backend Banter</li> +<li>Deep Questions with Cal Newport</li> </ul><br /> <h3 style='display: inline' id='podcasts-i-liked'>Podcasts I liked</h3><br /> <br /> <span>I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.</span><br /> <br /> <ul> -<li>Ship It (predecessor of Fork Around And Find Out)</li> -<li>CRE: Chaosradio Express [german]</li> -<li>Go Time (predecessor of fallthrough)</li> <li>Java Pub House</li> -<li>FLOSS weekly</li> +<li>Go Time (predecessor of fallthrough)</li> +<li>CRE: Chaosradio Express [german]</li> <li>Modern Mentor</li> +<li>Ship It (predecessor of Fork Around And Find Out)</li> +<li>FLOSS weekly</li> </ul><br /> <h2 style='display: inline' id='newsletters-i-like'>Newsletters I like</h2><br /> <br /> <span>This is a mix of tech and non-tech newsletters I am subscribed to. In random order:</span><br /> <br /> <ul> -<li>Ruby Weekly</li> <li>Andreas Brandhorst Newsletter (Sci-Fi author)</li> -<li>The Imperfectionist</li> -<li>Monospace Mentor</li> <li>The Valuable Dev</li> +<li>Monospace Mentor</li> +<li>Ruby Weekly</li> +<li>Applied Go Weekly Newsletter</li> <li>byteSizeGo</li> +<li>Changelog News</li> <li>The Pragmatic Engineer</li> -<li>Golang Weekly</li> <li>VK Newsletter</li> -<li>Changelog News</li> -<li>Applied Go Weekly Newsletter</li> <li>Register Spill</li> +<li>Golang Weekly</li> +<li>The Imperfectionist</li> </ul><br /> <h2 style='display: inline' id='magazines-i-liked'>Magazines I like(d)</h2><br /> <br /> <span>This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:</span><br /> <br /> <ul> -<li>Linux User</li> -<li>freeX (not published anymore)</li> <li>Linux Magazine</li> <li>LWN (online only)</li> +<li>freeX (not published anymore)</li> +<li>Linux User</li> </ul><br /> <h1 style='display: inline' id='formal-education'>Formal education</h1><br /> <br /> diff --git a/foozone.webp b/foozone.webp Binary files differnew file mode 100644 index 00000000..62deb555 --- /dev/null +++ b/foozone.webp diff --git a/gemfeed/2008-06-26-perl-poetry.html b/gemfeed/2008-06-26-perl-poetry.html index 79f8860c..70db4f02 100644 --- a/gemfeed/2008-06-26-perl-poetry.html +++ b/gemfeed/2008-06-26-perl-poetry.html @@ -59,44 +59,44 @@ _~~|~/_|_|__/|~~~~~~~ | / ~~~~~ | | ~~~~~~~~ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/perl</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/perl</font></i> -<i><font color="#ababab"># (C) 2006 by Paul C. Buetow</font></i> +<i><font color="#00ff00"># (C) 2006 by Paul C. Buetow</font></i> -<b><font color="#ffffff">goto</font></b><font color="#ff0000"> library </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> study </font><font color="#ff0000">$math</font><font color="#F3E651">;</font> -<font color="#ff0000">BEGIN </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">s</font></b><font color="#bb00ff">/earching/ books/</font><font color="#ff0000"> </font> -<b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> </font><font color="#ff0000">$them</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$at</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$the</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#ff0000"> library</font><font color="#F3E651">:</font> +<b><font color="#00ffff">goto</font></b><font color="#ffffff"> library </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> study </font><font color="#ffffff">$math</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff">BEGIN </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">s</font></b><font color="#cd00ff">/earching/ books/</font><font color="#ffffff"> </font> +<b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> </font><font color="#ffffff">$them</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$at</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$the</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><font color="#ffffff"> library</font><b><font color="#ee5896">:</font></b> -<b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$topics</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">cos</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> tan</font><font color="#F3E651">,</font><font color="#ff0000"> </font> -<b><font color="#ffffff">require</font></b><font color="#ff0000"> strict</font><font color="#F3E651">;</font><font color="#ff0000"> </font><font color="#ababab">import</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> of</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">tied</font></b><font color="#ff0000"> </font><font color="#ff0000">$patience</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$topics</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">cos</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> tan</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">require</font></b><font color="#ffffff"> strict</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><font color="#ffbb00">import</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> of</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tied</font></b><font color="#ffffff"> </font><font color="#ffffff">$patience</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">int</font></b><font color="#bb00ff">'egrate'</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">sub</font></b><font color="#ff0000"> trade</font><font color="#F3E651">;</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">exp</font></b><font color="#bb00ff">'onentize'</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">abs</font></b><font color="#bb00ff">'olutize'</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<font color="#ff0000">study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">int</font></b><font color="#cd00ff">'egrate'</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sub</font></b><font color="#ffffff"> trade</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exp</font></b><font color="#cd00ff">'onentize'</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">abs</font></b><font color="#cd00ff">'olutize'</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<font color="#ffffff">study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">foreach</font></b><font color="#ff0000"> </font><font color="#ff0000">$topic</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#F3E651">{</font><font color="#ff0000">of</font><font color="#F3E651">,</font><font color="#ff0000"> math</font><font color="#F3E651">}</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000">you</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">m</font></b><font color="#ff0000">/ay /</font><font color="#ff0000">go</font><font color="#F3E651">,</font><font color="#ff0000"> to</font><font color="#F3E651">,</font><font color="#ff0000"> limits </font><font color="#F3E651">}</font> +<b><font color="#00ffff">foreach</font></b><font color="#ffffff"> </font><font color="#ffffff">$topic</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">of</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> math</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff">you</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">m</font></b><font color="#ffffff">/ay /</font><font color="#ffffff">go</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> limits </font><b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> not </font><b><font color="#ffffff">qw</font></b><font color="#bb00ff">/erk /</font><font color="#ff0000"> </font><b><font color="#ffffff">unless</font></b><font color="#ff0000"> </font><font color="#ff0000">$success</font><font color="#ff0000"> </font> -<b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">m</font></b><font color="#ff0000">/ove /</font><font color="#ff0000">o</font><font color="#F3E651">;</font><font color="#ff0000">$n</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">qw</font></b><font color="#cd00ff">/erk /</font><font color="#ffffff"> </font><b><font color="#00ffff">unless</font></b><font color="#ffffff"> </font><font color="#ffffff">$success</font><font color="#ffffff"> </font> +<b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">m</font></b><font color="#ffffff">/ove /</font><font color="#ffffff">o</font><b><font color="#ee5896">;</font></b><font color="#ffffff">$n</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">int</font></b><font color="#bb00ff">'egrate'</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">sub</font></b><font color="#ff0000"> trade</font><font color="#F3E651">;</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">exp</font></b><font color="#bb00ff">'onentize'</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">abs</font></b><font color="#bb00ff">'olutize'</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<font color="#ff0000">study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">int</font></b><font color="#cd00ff">'egrate'</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sub</font></b><font color="#ffffff"> trade</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exp</font></b><font color="#cd00ff">'onentize'</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">abs</font></b><font color="#cd00ff">'olutize'</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<font color="#ffffff">study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">grep</font></b><font color="#ff0000"> </font><font color="#bb00ff">/all/</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">exp</font></b><font color="#bb00ff">'onents'</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">cos</font></b><font color="#bb00ff">'inuses'</font><font color="#F3E651">;</font> -<font color="#bb00ff">/seek results/</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#ff0000">@all</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">log</font></b><font color="#bb00ff">'4rithms'</font><font color="#F3E651">;</font> +<b><font color="#00ffff">grep</font></b><font color="#ffffff"> </font><font color="#cd00ff">/all/</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exp</font></b><font color="#cd00ff">'onents'</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">cos</font></b><font color="#cd00ff">'inuses'</font><b><font color="#ee5896">;</font></b> +<font color="#cd00ff">/seek results/</font><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><font color="#ffffff">@all</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">log</font></b><font color="#cd00ff">'4rithms'</font><b><font color="#ee5896">;</font></b> -<font color="#bb00ff">'you'</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><b><font color="#ffffff">m</font></b><font color="#ff0000">/ay /</font><font color="#ff0000">go</font><font color="#F3E651">,</font><font color="#ff0000"> not home </font> -<b><font color="#ffffff">unless</font></b><font color="#ff0000"> </font><b><font color="#ffffff">each</font></b><font color="#ff0000"> </font><font color="#ff0000">%book</font><font color="#ff0000"> ne</font><i><font color="#ababab">#ars</font></i> -<font color="#ff0000">$completion</font><font color="#F3E651">;</font> +<font color="#cd00ff">'you'</font><font color="#ffffff"> </font><b><font color="#ee5896">=~</font></b><font color="#ffffff"> </font><b><font color="#00ffff">m</font></b><font color="#ffffff">/ay /</font><font color="#ffffff">go</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> not home </font> +<b><font color="#00ffff">unless</font></b><font color="#ffffff"> </font><b><font color="#00ffff">each</font></b><font color="#ffffff"> </font><font color="#ffffff">%book</font><font color="#ffffff"> ne</font><i><font color="#00ff00">#ars</font></i> +<font color="#ffffff">$completion</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">int</font></b><font color="#bb00ff">'egrate'</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">sub</font></b><font color="#ff0000"> trade</font><font color="#F3E651">;</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">exp</font></b><font color="#bb00ff">'onentize'</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">abs</font></b><font color="#bb00ff">'olutize'</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">int</font></b><font color="#cd00ff">'egrate'</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sub</font></b><font color="#ffffff"> trade</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exp</font></b><font color="#cd00ff">'onentize'</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">abs</font></b><font color="#cd00ff">'olutize'</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<i><font color="#ababab">#at</font></i> -<font color="#ff0000">home</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">//ig,'nore', time and sleep $very =~ s/tr/on/</font><b><font color="#ffffff">g</font></b><font color="#F3E651">;</font> -<font color="#ff0000">__END__</font> +<i><font color="#00ff00">#at</font></i> +<font color="#ffffff">home</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#cd00ff">//ig,'nore', time and sleep $very =~ s/tr/on/</font><b><font color="#00ffff">g</font></b><b><font color="#ee5896">;</font></b> +<font color="#ffffff">__END__</font> </pre> <br /> @@ -106,47 +106,47 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/perl</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/perl</font></i> -<i><font color="#ababab"># (C) 2006 by Paul C. Buetow</font></i> +<i><font color="#00ff00"># (C) 2006 by Paul C. Buetow</font></i> -<font color="#ff0000">Christmas</font><font color="#F3E651">:</font><font color="#F3E651">{</font><font color="#ff0000">time</font><font color="#F3E651">;</font><i><font color="#ababab">#!!!</font></i> +<font color="#ffffff">Christmas</font><b><font color="#ee5896">:</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">time</font><b><font color="#ee5896">;</font></b><i><font color="#00ff00">#!!!</font></i> -<font color="#ff0000">Children</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">tell</font></b><font color="#ff0000"> </font><font color="#ff0000">$wishes</font><font color="#F3E651">;</font> +<font color="#ffffff">Children</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tell</font></b><font color="#ffffff"> </font><font color="#ffffff">$wishes</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000">Santa</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@children</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font> -<font color="#ff0000">BEGIN </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$their</font><font color="#F3E651">,</font><font color="#ff0000"> wishes </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study them</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> Memoize</font><i><font color="#ababab">#ing</font></i> +<font color="#ffffff">Santa</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">@children</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font> +<font color="#ffffff">BEGIN </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$their</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> wishes </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study them</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> Memoize</font><i><font color="#00ff00">#ing</font></i> -<font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> constant gift</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'wrapping'</font><font color="#F3E651">;</font><font color="#ff0000"> </font> -<b><font color="#ffffff">package</font></b><font color="#ff0000"> Gifts</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">pack</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#F3E651">,</font><font color="#ff0000"> gift </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">bless</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">goto</font></b><font color="#ff0000"> deliver</font> -<font color="#ff0000">or </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#ababab">import</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$available</font><font color="#F3E651">,!!!</font><font color="#ff0000"> HO</font><font color="#F3E651">,</font><font color="#ff0000"> HO</font><font color="#F3E651">,</font><font color="#ff0000"> HO</font><font color="#F3E651">;</font> +<b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> constant gift</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'wrapping'</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">package</font></b><font color="#ffffff"> Gifts</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pack</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> gift </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">bless</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">goto</font></b><font color="#ffffff"> deliver</font> +<font color="#ffffff">or </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><font color="#ffbb00">import</font><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$available</font><b><font color="#ee5896">,!!!</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<font color="#ff0000">deliver</font><font color="#F3E651">:</font><font color="#ff0000"> gift </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">require</font></b><font color="#ff0000"> diagnostics </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#ff0000"> </font><font color="#F3E651">,</font><font color="#ff0000">not break</font><font color="#F3E651">;</font> -<b><font color="#ffffff">do</font></b><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> NEXT</font><font color="#F3E651">;</font><font color="#ff0000"> time</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">tied</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> broken </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">dump</font></b><font color="#ff0000"> the</font><font color="#F3E651">,</font><font color="#ff0000"> broken</font><font color="#F3E651">,</font><font color="#ff0000"> ones</font><font color="#F3E651">;</font> -<font color="#ff0000">The_children</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">wait</font></b><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#ffffff">each</font></b><font color="#ff0000"> </font><font color="#ff0000">%gift</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> try </font><font color="#F3E651">{</font><font color="#ff0000"> to </font><font color="#F3E651">=></font><font color="#ff0000"> </font><b><font color="#ffffff">untie</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffffff">deliver</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> gift </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">require</font></b><font color="#ffffff"> diagnostics </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><font color="#ffffff"> </font><b><font color="#ee5896">,</font></b><font color="#ffffff">not break</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">do</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> NEXT</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> time</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tied</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> broken </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">dump</font></b><font color="#ffffff"> the</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> broken</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> ones</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff">The_children</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">wait</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><b><font color="#00ffff">each</font></b><font color="#ffffff"> </font><font color="#ffffff">%gift</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> try </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> to </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><b><font color="#00ffff">untie</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<font color="#ff0000">The_christmas_tree</font><font color="#F3E651">:</font><font color="#ff0000"> formline </font><b><font color="#ffffff">s</font></b><font color="#bb00ff">/ /childrens/</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">;</font> -<b><font color="#ffffff">alarm</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">warn</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">exists</font></b><font color="#ff0000"> </font><font color="#ff0000">$Christmas</font><font color="#F3E651">{</font><font color="#ff0000"> tree</font><font color="#F3E651">}</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">@t</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$ENV</font><font color="#F3E651">{</font><font color="#ff0000">HOME</font><font color="#F3E651">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font> -<b><font color="#ffffff">write</font></b><font color="#ff0000"> </font><font color="#F3E651"><<</font><font color="#ff0000">EMail</font> -<font color="#ff0000"> to the parents to buy a new christmas tree</font><font color="#F3E651">!!!!</font><font color="#bb00ff">111</font> -<font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> send the</font> -<font color="#ff0000">EMail</font> -<font color="#F3E651">;</font><b><font color="#ffffff">wait</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">redo</font></b><font color="#ff0000"> deliver until </font><b><font color="#ffffff">defined</font></b><font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$tree</font><font color="#F3E651">;</font> +<font color="#ffffff">The_christmas_tree</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> formline </font><b><font color="#00ffff">s</font></b><font color="#cd00ff">/ /childrens/</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">alarm</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">warn</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">exists</font></b><font color="#ffffff"> </font><font color="#ffffff">$Christmas</font><b><font color="#ee5896">{</font></b><font color="#ffffff"> tree</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">@t</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$ENV</font><b><font color="#ee5896">{</font></b><font color="#ffffff">HOME</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">write</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">EMail</font> +<font color="#ffffff"> to the parents to buy a new christmas tree</font><b><font color="#ee5896">!!!!</font></b><font color="#ff00ff">111</font> +<font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> send the</font> +<font color="#ffffff">EMail</font> +<b><font color="#ee5896">;</font></b><b><font color="#00ffff">wait</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">redo</font></b><font color="#ffffff"> deliver until </font><b><font color="#00ffff">defined</font></b><font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$tree</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered </font><font color="#F3E651">;</font><font color="#F3E651">}</font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered </font><b><font color="#ee5896">;</font></b><b><font color="#ee5896">}</font></b> -<font color="#ff0000">END </font><font color="#F3E651">{}</font><font color="#ff0000"> </font><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$mission</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> until </font><b><font color="#ffffff">next</font></b><font color="#ff0000"> Christmas </font><font color="#F3E651">;</font><font color="#F3E651">}</font> +<font color="#ffffff">END </font><b><font color="#ee5896">{}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$mission</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> until </font><b><font color="#00ffff">next</font></b><font color="#ffffff"> Christmas </font><b><font color="#ee5896">;</font></b><b><font color="#ee5896">}</font></b> -<font color="#ff0000">__END__</font> +<font color="#ffffff">__END__</font> -<font color="#ff0000">This is perl</font><font color="#F3E651">,</font><font color="#ff0000"> v5</font><font color="#F3E651">.</font><font color="#bb00ff">8.8</font><font color="#ff0000"> built </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i386</font><font color="#F3E651">-</font><font color="#ff0000">freebsd</font><font color="#F3E651">-</font><font color="#ff0000">64int</font> +<font color="#ffffff">This is perl</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> v5</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">8.8</font><font color="#ffffff"> built </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i386</font><b><font color="#ee5896">-</font></b><font color="#ffffff">freebsd</font><b><font color="#ee5896">-</font></b><font color="#ffffff">64int</font> </pre> <br /> <h2 style='display: inline' id='shoppingpl'>shopping.pl</h2><br /> @@ -155,35 +155,35 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/perl</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/perl</font></i> -<i><font color="#ababab"># (C) 2007 by Paul C. Buetow</font></i> +<i><font color="#00ff00"># (C) 2007 by Paul C. Buetow</font></i> -<font color="#ff0000">BEGIN</font><font color="#F3E651">{}</font><font color="#ff0000"> </font><b><font color="#ffffff">goto</font></b><font color="#ff0000"> mall </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#ff0000">$shopping</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<font color="#ffffff">BEGIN</font><b><font color="#ee5896">{}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">goto</font></b><font color="#ffffff"> mall </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><font color="#ffffff">$shopping</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<b><font color="#ffffff">m</font></b><font color="#ff0000">/y/</font><font color="#F3E651">;</font><font color="#ff0000"> mall</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">seek</font></b><font color="#ff0000">$s</font><font color="#F3E651">,</font><font color="#ff0000"> cool </font><font color="#7bc710">products</font><font color="#F3E651">(),</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> to </font><font color="#F3E651">=></font><font color="#ff0000"> </font><font color="#ff0000">$sell</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#ff0000">$their</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@business</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> to</font><font color="#F3E651">:;</font><font color="#ff0000"> earn</font><font color="#F3E651">:;</font><font color="#ff0000"> a</font><font color="#F3E651">:;</font><font color="#ff0000"> lot</font><font color="#F3E651">:;</font><font color="#ff0000"> of</font><font color="#F3E651">:;</font><font color="#ff0000"> money</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">}</font> +<b><font color="#00ffff">m</font></b><font color="#ffffff">/y/</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> mall</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">seek</font></b><font color="#ffffff">$s</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> cool </font><b><font color="#ffffff">products</font></b><b><font color="#ee5896">(),</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> to </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><font color="#ffffff">$sell</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><font color="#ffffff">$their</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">@business</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> to</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> earn</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> lot</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> of</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> money</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">goto</font></b><font color="#ff0000"> home </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">exit</font></b><font color="#ff0000"> mall </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">exists</font></b><font color="#ff0000"> </font><font color="#ff0000">$new</font><font color="#F3E651">{</font><font color="#ff0000">product</font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<b><font color="#ffffff">foreach</font></b><font color="#ff0000"> </font><font color="#ff0000">$of</font><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#ffffff">q</font></b><font color="#bb00ff">(uality rich products)</font><font color="#F3E651">)</font><font color="#F3E651">{}</font><font color="#ff0000"> </font><b><font color="#ffffff">package</font></b><font color="#ff0000"> products</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">goto</font></b><font color="#ffffff"> home </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exit</font></b><font color="#ffffff"> mall </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exists</font></b><font color="#ffffff"> </font><font color="#ffffff">$new</font><b><font color="#ee5896">{</font></b><font color="#ffffff">product</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">foreach</font></b><font color="#ffffff"> </font><font color="#ffffff">$of</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><b><font color="#00ffff">q</font></b><font color="#cd00ff">(uality rich products)</font><b><font color="#ee5896">)</font></b><b><font color="#ee5896">{}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">package</font></b><font color="#ffffff"> products</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$news</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">tell</font></b><font color="#ff0000"> cool </font><font color="#7bc710">products</font><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">sub</font></b><i><font color="#ababab">#tract</font></i> -<font color="#ff0000">cool</font><font color="#F3E651">{</font><font color="#ff0000"> </font><font color="#ff0000">$products</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b><font color="#ff0000"> </font><font color="#ff0000">@the</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">@bad</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">@ones</font><font color="#F3E651">;</font> +<b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$news</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tell</font></b><font color="#ffffff"> cool </font><b><font color="#ffffff">products</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sub</font></b><i><font color="#00ff00">#tract</font></i> +<font color="#ffffff">cool</font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><font color="#ffffff">$products</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b><font color="#ffffff"> </font><font color="#ffffff">@the</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">@bad</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">@ones</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">bless</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><b><font color="#ffffff">q</font></b><font color="#bb00ff">(uality)</font><font color="#F3E651">],</font><font color="#ff0000"> </font><font color="#ff0000">$products</font><font color="#ff0000"> </font> -<b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">undef</font></b><font color="#ff0000"> </font><font color="#ff0000">$stuff</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#7bc710">not</font><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$available</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">}}</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">bless</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><b><font color="#00ffff">q</font></b><font color="#cd00ff">(uality)</font><b><font color="#ee5896">],</font></b><font color="#ffffff"> </font><font color="#ffffff">$products</font><font color="#ffffff"> </font> +<b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">undef</font></b><font color="#ffffff"> </font><font color="#ffffff">$stuff</font><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ffffff">not</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$available</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> cool </font><font color="#7bc710">products</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">}</font> -<b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">seek</font></b><font color="#ff0000"> </font><font color="#ff0000">$all</font><font color="#F3E651">,</font><font color="#ff0000"> cool </font><font color="#7bc710">products</font><font color="#F3E651">(),</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> to </font><font color="#F3E651">=></font><font color="#ff0000"> </font><font color="#ff0000">$buy</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> cool </font><b><font color="#ffffff">products</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">seek</font></b><font color="#ffffff"> </font><font color="#ffffff">$all</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> cool </font><b><font color="#ffffff">products</font></b><b><font color="#ee5896">(),</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> to </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><font color="#ffffff">$buy</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">write</font></b><font color="#ff0000"> </font><font color="#ff0000">$them</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$down</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> order</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">foreach</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@case</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">package</font></b><font color="#ff0000"> </font><b><font color="#ffffff">s</font></b><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<b><font color="#ffffff">goto</font></b><font color="#ff0000"> home </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">exists</font></b><font color="#ff0000"> </font><font color="#ff0000">$more</font><font color="#F3E651">{</font><font color="#ff0000">money</font><font color="#F3E651">}</font><font color="#ff0000"> or </font><b><font color="#ffffff">die</font></b><font color="#ff0000"> </font><b><font color="#ffffff">q</font></b><font color="#bb00ff">(uerying)</font><font color="#ff0000"> </font><font color="#F3E651">;</font><b><font color="#ffffff">for</font></b><font color="#F3E651">(</font><font color="#ff0000"> </font><font color="#ff0000">@money</font><font color="#F3E651">)</font><font color="#F3E651">{}</font><font color="#F3E651">;</font> +<b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">write</font></b><font color="#ffffff"> </font><font color="#ffffff">$them</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$down</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> order</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">foreach</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">@case</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">package</font></b><font color="#ffffff"> </font><b><font color="#00ffff">s</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">goto</font></b><font color="#ffffff"> home </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">exists</font></b><font color="#ffffff"> </font><font color="#ffffff">$more</font><b><font color="#ee5896">{</font></b><font color="#ffffff">money</font><b><font color="#ee5896">}</font></b><font color="#ffffff"> or </font><b><font color="#00ffff">die</font></b><font color="#ffffff"> </font><b><font color="#00ffff">q</font></b><font color="#cd00ff">(uerying)</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><b><font color="#00ffff">for</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff"> </font><font color="#ffffff">@money</font><b><font color="#ee5896">)</font></b><b><font color="#ee5896">{}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000">at</font><font color="#F3E651">:;</font><font color="#ff0000">home</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> END</font><font color="#F3E651">{}</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#F3E651">:;</font><font color="#ff0000"> rest</font><font color="#F3E651">:;</font><font color="#ff0000"> a</font><font color="#F3E651">:;</font><font color="#ff0000"> bit</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><font color="#ff0000">$shopping</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#ff0000"> </font> -<b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> until </font><b><font color="#ffffff">unpack</font></b><font color="#ff0000">$ing</font><font color="#F3E651">,</font><font color="#ff0000"> cool </font><font color="#7bc710">products</font><font color="#F3E651">();</font> +<font color="#ffffff">at</font><b><font color="#ee5896">:;</font></b><font color="#ffffff">home</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> END</font><b><font color="#ee5896">{}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><b><font color="#ee5896">:;</font></b><font color="#ffffff"> rest</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">:;</font></b><font color="#ffffff"> bit</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><font color="#ffffff">$shopping</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> until </font><b><font color="#00ffff">unpack</font></b><font color="#ffffff">$ing</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> cool </font><b><font color="#ffffff">products</font></b><b><font color="#ee5896">();</font></b> -<font color="#ff0000">__END__</font> -<font color="#ff0000">This is perl</font><font color="#F3E651">,</font><font color="#ff0000"> v5</font><font color="#F3E651">.</font><font color="#bb00ff">8.8</font><font color="#ff0000"> built </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i386</font><font color="#F3E651">-</font><font color="#ff0000">freebsd</font><font color="#F3E651">-</font><font color="#ff0000">64int</font> +<font color="#ffffff">__END__</font> +<font color="#ffffff">This is perl</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> v5</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">8.8</font><font color="#ffffff"> built </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i386</font><b><font color="#ee5896">-</font></b><font color="#ffffff">freebsd</font><b><font color="#ee5896">-</font></b><font color="#ffffff">64int</font> </pre> <br /> <h2 style='display: inline' id='more'>More...</h2><br /> diff --git a/gemfeed/2010-04-09-standard-ml-and-haskell.html b/gemfeed/2010-04-09-standard-ml-and-haskell.html index 51041c21..cf394c68 100644 --- a/gemfeed/2010-04-09-standard-ml-and-haskell.html +++ b/gemfeed/2010-04-09-standard-ml-and-haskell.html @@ -40,10 +40,10 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">datatype</font></b><font color="#ff0000"> ’a multi</font> -<font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> EMPTY</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> ELEM </font><b><font color="#ffffff">of</font></b><font color="#ff0000"> ’a</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> UNION </font><b><font color="#ffffff">of</font></b><font color="#ff0000"> ’a multi </font><font color="#F3E651">*</font><font color="#ff0000"> ’a multi</font> +<pre><b><font color="#00ffff">datatype</font></b><font color="#ffffff"> ’a multi</font> +<font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> EMPTY</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> ELEM </font><b><font color="#00ffff">of</font></b><font color="#ffffff"> ’a</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> UNION </font><b><font color="#00ffff">of</font></b><font color="#ffffff"> ’a multi </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> ’a multi</font> </pre> <br /> <span>Haskell:</span><br /> @@ -52,11 +52,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">data</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Eq</font></b><font color="#ff0000"> a</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=></font><font color="#ff0000"> </font><b><font color="#F35E1E">Multi</font></b><font color="#ff0000"> a</font> -<font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#F35E1E">Empty</font></b> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> a</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Multi</font></b><font color="#ff0000"> a</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Multi</font></b><font color="#ff0000"> a</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">deriving</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">Show</font></b> +<pre><b><font color="#00ffff">data</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Eq</font><font color="#ffffff"> a</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><font color="#ffff00">Multi</font><font color="#ffffff"> a</font> +<font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffff00">Empty</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><font color="#ffff00">Elem</font><font color="#ffffff"> a</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><font color="#ffff00">Union</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Multi</font><font color="#ffffff"> a</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Multi</font><font color="#ffffff"> a</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">deriving</font></b><font color="#ffffff"> </font><font color="#ffff00">Show</font> </pre> <br /> <h2 style='display: inline' id='processing-a-multi'>Processing a multi</h2><br /> @@ -67,12 +67,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">fun</font></b><font color="#ff0000"> number </font><font color="#F3E651">(</font><font color="#ff0000">EMPTY</font><font color="#F3E651">)</font><font color="#ff0000"> _ </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> number </font><font color="#F3E651">(</font><font color="#ff0000">ELEM x</font><font color="#F3E651">)</font><font color="#ff0000"> w </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> x </font><font color="#F3E651">=</font><font color="#ff0000"> w </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> number </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000">y</font><font color="#F3E651">))</font><font color="#ff0000"> w </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">number x w</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">number y w</font><font color="#F3E651">)</font> -<b><font color="#ffffff">fun</font></b><font color="#ff0000"> test_number w </font><font color="#F3E651">=</font><font color="#ff0000"> number </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">EMPTY</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> UNION </font><font color="#F3E651">(</font><font color="#ff0000">ELEM </font><font color="#bb00ff">4</font><font color="#F3E651">,</font><font color="#ff0000"> UNION </font><font color="#F3E651">(</font><font color="#ff0000">ELEM </font><font color="#bb00ff">6</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> UNION </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">ELEM </font><font color="#bb00ff">4</font><font color="#F3E651">,</font><font color="#ff0000"> ELEM </font><font color="#bb00ff">4</font><font color="#F3E651">),</font><font color="#ff0000"> EMPTY</font><font color="#F3E651">)))))</font><font color="#ff0000"> w </font> +<pre><b><font color="#00ffff">fun</font></b><font color="#ffffff"> number </font><b><font color="#ee5896">(</font></b><font color="#ffffff">EMPTY</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> _ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> number </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> w </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> number </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff">y</font><b><font color="#ee5896">))</font></b><font color="#ffffff"> w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">number x w</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">number y w</font><b><font color="#ee5896">)</font></b> +<b><font color="#00ffff">fun</font></b><font color="#ffffff"> test_number w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> number </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">EMPTY</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM </font><font color="#ff00ff">4</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM </font><font color="#ff00ff">6</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM </font><font color="#ff00ff">4</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> ELEM </font><font color="#ff00ff">4</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> EMPTY</font><b><font color="#ee5896">)))))</font></b><font color="#ffffff"> w </font> </pre> <br /> <span>Haskell:</span><br /> @@ -81,11 +81,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">number </font><b><font color="#F35E1E">Empty</font></b><font color="#ff0000"> </font><b><font color="#ffffff">_</font></b><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">number </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> x</font><font color="#F3E651">)</font><font color="#ff0000"> w </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> x </font><font color="#F3E651">==</font><font color="#ff0000"> w </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">test_number w </font><font color="#F3E651">=</font><font color="#ff0000"> number </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">Empty</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> </font><font color="#bb00ff">6</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">))</font><font color="#ff0000"> </font><b><font color="#F35E1E">Empty</font></b><font color="#F3E651">))))</font><font color="#ff0000"> w</font> +<pre><font color="#ffffff">number </font><font color="#ffff00">Empty</font><font color="#ffffff"> </font><b><font color="#00ffff">_</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">number </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> x </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> w </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">test_number w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> number </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> </font><font color="#ffff00">Empty</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> </font><font color="#ff00ff">6</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">))</font></b><font color="#ffffff"> </font><font color="#ffff00">Empty</font><b><font color="#ee5896">))))</font></b><font color="#ffffff"> w</font> </pre> <br /> <h2 style='display: inline' id='simplify-function'>Simplify function</h2><br /> @@ -96,19 +96,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">fun</font></b><font color="#ff0000"> simplify </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000">y</font><font color="#F3E651">))</font><font color="#ff0000"> </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><b><font color="#ffffff">fun</font></b><font color="#ff0000"> is_empty </font><font color="#F3E651">(</font><font color="#ff0000">EMPTY</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> true </font><font color="#F3E651">|</font><font color="#ff0000"> is_empty _ </font><font color="#F3E651">=</font><font color="#ff0000"> false</font> -<font color="#ff0000"> </font><b><font color="#ffffff">val</font></b><font color="#ff0000"> x’ </font><font color="#F3E651">=</font><font color="#ff0000"> simplify x</font> -<font color="#ff0000"> </font><b><font color="#ffffff">val</font></b><font color="#ff0000"> y’ </font><font color="#F3E651">=</font><font color="#ff0000"> simplify y</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">is_empty x’</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">andalso</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">is_empty y’</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> EMPTY</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">is_empty x’</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> y’</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">is_empty y’</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> x’</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> UNION </font><font color="#F3E651">(</font><font color="#ff0000">x’</font><font color="#F3E651">,</font><font color="#ff0000"> y’</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> simplify x </font><font color="#F3E651">=</font><font color="#ff0000"> x</font> +<pre><b><font color="#00ffff">fun</font></b><font color="#ffffff"> simplify </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff">y</font><b><font color="#ee5896">))</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#00ffff">fun</font></b><font color="#ffffff"> is_empty </font><b><font color="#ee5896">(</font></b><font color="#ffffff">EMPTY</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> true </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> is_empty _ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> false</font> +<font color="#ffffff"> </font><b><font color="#00ffff">val</font></b><font color="#ffffff"> x’ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> simplify x</font> +<font color="#ffffff"> </font><b><font color="#00ffff">val</font></b><font color="#ffffff"> y’ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> simplify y</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">is_empty x’</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">andalso</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">is_empty y’</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> EMPTY</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">is_empty x’</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> y’</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">is_empty y’</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> x’</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> y’</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> simplify x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> x</font> </pre> <br /> <span>Haskell:</span><br /> @@ -117,17 +117,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">simplify </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> x y</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">isEmpty x’</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">isEmpty y’</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#F35E1E">Empty</font></b> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> isEmpty x’ </font><font color="#F3E651">=</font><font color="#ff0000"> y’</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> isEmpty y’ </font><font color="#F3E651">=</font><font color="#ff0000"> x’</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> otherwise </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> x’ y’</font> -<font color="#ff0000"> </font><b><font color="#ffffff">where</font></b> -<font color="#ff0000"> isEmpty </font><b><font color="#F35E1E">Empty</font></b><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#F35E1E">True</font></b> -<font color="#ff0000"> isEmpty </font><b><font color="#ffffff">_</font></b><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#F35E1E">False</font></b> -<font color="#ff0000"> x’ </font><font color="#F3E651">=</font><font color="#ff0000"> simplify x</font> -<font color="#ff0000"> y’ </font><font color="#F3E651">=</font><font color="#ff0000"> simplify y</font> -<font color="#ff0000">simplify x </font><font color="#F3E651">=</font><font color="#ff0000"> x</font> +<pre><font color="#ffffff">simplify </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> x y</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">isEmpty x’</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">isEmpty y’</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffff00">Empty</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> isEmpty x’ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> y’</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> isEmpty y’ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> x’</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> otherwise </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffff00">Union</font><font color="#ffffff"> x’ y’</font> +<font color="#ffffff"> </font><b><font color="#00ffff">where</font></b> +<font color="#ffffff"> isEmpty </font><font color="#ffff00">Empty</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffff00">True</font> +<font color="#ffffff"> isEmpty </font><b><font color="#00ffff">_</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffff00">False</font> +<font color="#ffffff"> x’ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> simplify x</font> +<font color="#ffffff"> y’ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> simplify y</font> +<font color="#ffffff">simplify x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> x</font> </pre> <br /> <h2 style='display: inline' id='delete-all'>Delete all</h2><br /> @@ -138,12 +138,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">fun</font></b><font color="#ff0000"> delete_all m w </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><b><font color="#ffffff">fun</font></b><font color="#ff0000"> delete_all’ </font><font color="#F3E651">(</font><font color="#ff0000">ELEM x</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> x </font><font color="#F3E651">=</font><font color="#ff0000"> w </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> EMPTY </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> ELEM x</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> delete_all’ </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000">y</font><font color="#F3E651">))</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> UNION </font><font color="#F3E651">(</font><font color="#ff0000">delete_all’ x</font><font color="#F3E651">,</font><font color="#ff0000"> delete_all’ y</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> delete_all’ x </font><font color="#F3E651">=</font><font color="#ff0000"> x</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> simplify </font><font color="#F3E651">(</font><font color="#ff0000">delete_all’ m</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> +<pre><b><font color="#00ffff">fun</font></b><font color="#ffffff"> delete_all m w </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#00ffff">fun</font></b><font color="#ffffff"> delete_all’ </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> w </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> EMPTY </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> ELEM x</font> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> delete_all’ </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff">y</font><b><font color="#ee5896">))</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">delete_all’ x</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delete_all’ y</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> delete_all’ x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> x</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> simplify </font><b><font color="#ee5896">(</font></b><font color="#ffffff">delete_all’ m</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> </pre> <br /> <span>Haskell:</span><br /> @@ -152,11 +152,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">delete_all m w </font><font color="#F3E651">=</font><font color="#ff0000"> simplify </font><font color="#F3E651">(</font><font color="#ff0000">delete_all’ m</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">where</font></b> -<font color="#ff0000"> delete_all’ </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> x</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> x </font><font color="#F3E651">==</font><font color="#ff0000"> w </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">Empty</font></b><font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> x</font> -<font color="#ff0000"> delete_all’ </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> x y</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">delete_all’ x</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">delete_all’ y</font><font color="#F3E651">)</font> -<font color="#ff0000"> delete_all’ x </font><font color="#F3E651">=</font><font color="#ff0000"> x</font> +<pre><font color="#ffffff">delete_all m w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> simplify </font><b><font color="#ee5896">(</font></b><font color="#ffffff">delete_all’ m</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">where</font></b> +<font color="#ffffff"> delete_all’ </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> x </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> w </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><font color="#ffff00">Empty</font><font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><font color="#ffff00">Elem</font><font color="#ffffff"> x</font> +<font color="#ffffff"> delete_all’ </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> x y</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffff00">Union</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">delete_all’ x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">delete_all’ y</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> delete_all’ x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> x</font> </pre> <br /> <h2 style='display: inline' id='delete-one'>Delete one</h2><br /> @@ -167,21 +167,21 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">fun</font></b><font color="#ff0000"> delete_one m w </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><b><font color="#ffffff">fun</font></b><font color="#ff0000"> delete_one’ </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000">y</font><font color="#F3E651">))</font><font color="#ff0000"> </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><b><font color="#ffffff">val</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">x’</font><font color="#F3E651">,</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> delete_one’ x</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> deleted</font> -<font color="#ff0000"> </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">x’</font><font color="#F3E651">,</font><font color="#ff0000"> y</font><font color="#F3E651">),</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><b><font color="#ffffff">val</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">y’</font><font color="#F3E651">,</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> delete_one’ y</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">UNION </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000"> y’</font><font color="#F3E651">),</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> delete_one’ </font><font color="#F3E651">(</font><font color="#ff0000">ELEM x</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> x </font><font color="#F3E651">=</font><font color="#ff0000"> w </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">EMPTY</font><font color="#F3E651">,</font><font color="#ff0000"> true</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ELEM x</font><font color="#F3E651">,</font><font color="#ff0000"> false</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> delete_one’ x </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000"> false</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">val</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">m’</font><font color="#F3E651">,</font><font color="#ff0000"> _</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> delete_one’ m</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> simplify m’</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> +<pre><b><font color="#00ffff">fun</font></b><font color="#ffffff"> delete_one m w </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#00ffff">fun</font></b><font color="#ffffff"> delete_one’ </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff">y</font><b><font color="#ee5896">))</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#00ffff">val</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> delete_one’ x</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> deleted</font> +<font color="#ffffff"> </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> y</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#00ffff">val</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">y’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> delete_one’ y</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">UNION </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> y’</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> delete_one’ </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> w </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">EMPTY</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> true</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ELEM x</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> false</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> delete_one’ x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> false</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">val</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">m’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> _</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> delete_one’ m</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> simplify m’</font> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> </pre> <br /> <span>Haskell:</span><br /> @@ -190,19 +190,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">delete_one m w </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">m’</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">_</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> delete_one’ m</font> -<font color="#ff0000"> simplify m’</font> -<font color="#ff0000"> </font><b><font color="#ffffff">where</font></b> -<font color="#ff0000"> delete_one’ </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> x y</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">x’</font><font color="#F3E651">,</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> delete_one’ x</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> deleted</font> -<font color="#ff0000"> </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> x’ y</font><font color="#F3E651">,</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><b><font color="#ffffff">let</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">y’</font><font color="#F3E651">,</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> delete_one’ y</font> -<font color="#ff0000"> </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Union</font></b><font color="#ff0000"> x y’</font><font color="#F3E651">,</font><font color="#ff0000"> deleted</font><font color="#F3E651">)</font> -<font color="#ff0000"> delete_one’ </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> x</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> x </font><font color="#F3E651">==</font><font color="#ff0000"> w </font><b><font color="#ffffff">then</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Empty</font></b><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#F35E1E">True</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">else</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">Elem</font></b><font color="#ff0000"> x</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#F35E1E">False</font></b><font color="#F3E651">)</font> -<font color="#ff0000"> delete_one’ x </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">x</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#F35E1E">False</font></b><font color="#F3E651">)</font> +<pre><font color="#ffffff">delete_one m w </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">m’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">_</font></b><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> delete_one’ m</font> +<font color="#ffffff"> simplify m’</font> +<font color="#ffffff"> </font><b><font color="#00ffff">where</font></b> +<font color="#ffffff"> delete_one’ </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> x y</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> delete_one’ x</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> deleted</font> +<font color="#ffffff"> </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> x’ y</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><b><font color="#00ffff">let</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">y’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> delete_one’ y</font> +<font color="#ffffff"> </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Union</font><font color="#ffffff"> x y’</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> deleted</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> delete_one’ </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> x</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> x </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> w </font><b><font color="#00ffff">then</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Empty</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffff00">True</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">else</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">Elem</font><font color="#ffffff"> x</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffff00">False</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> delete_one’ x </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">x</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffff00">False</font><b><font color="#ee5896">)</font></b> </pre> <br /> <h2 style='display: inline' id='higher-order-functions'>Higher-order functions</h2><br /> diff --git a/gemfeed/2010-05-09-the-fype-programming-language.html b/gemfeed/2010-05-09-the-fype-programming-language.html index 12c13460..87265746 100644 --- a/gemfeed/2010-05-09-the-fype-programming-language.html +++ b/gemfeed/2010-05-09-the-fype-programming-language.html @@ -69,12 +69,12 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">typedef</font></b><font color="#ff0000"> </font><b><font color="#ffffff">struct</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">Tupel</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">p_tupel_argv</font><font color="#F3E651">;</font><font color="#ff0000"> </font><i><font color="#ababab">// Contains command line options</font></i> -<font color="#ff0000"> </font><font color="#ff0000">List</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">p_list_token</font><font color="#F3E651">;</font><font color="#ff0000"> </font><i><font color="#ababab">// Initial list of token</font></i> -<font color="#ff0000"> </font><font color="#ff0000">Hash</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">p_hash_syms</font><font color="#F3E651">;</font><font color="#ff0000"> </font><i><font color="#ababab">// Symbol table</font></i> -<font color="#ff0000"> </font><b><font color="#F35E1E">char</font></b><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">c_basename</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font><font color="#ff0000"> Fype</font><font color="#F3E651">;</font> +<pre><b><font color="#00ffff">typedef</font></b><font color="#ffffff"> </font><b><font color="#00ffff">struct</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">Tupel</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">p_tupel_argv</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><i><font color="#00ff00">// Contains command line options</font></i> +<font color="#ffffff"> </font><font color="#ffffff">List</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">p_list_token</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><i><font color="#00ff00">// Initial list of token</font></i> +<font color="#ffffff"> </font><font color="#ffffff">Hash</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">p_hash_syms</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><i><font color="#00ff00">// Symbol table</font></i> +<font color="#ffffff"> </font><font color="#ffff00">char</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">c_basename</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b><font color="#ffffff"> Fype</font><b><font color="#ee5896">;</font></b> </pre> <br /> <span>And here is a snippet from the primary Fype "class implementation":</span><br /> @@ -83,53 +83,53 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">Fype</font><font color="#F3E651">*</font> -<font color="#7bc710">fype_new</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">Fype</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">p_fype </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">malloc</font><font color="#F3E651">(</font><b><font color="#ffffff">sizeof</font></b><font color="#F3E651">(</font><font color="#ff0000">Fype</font><font color="#F3E651">));</font> +<pre><font color="#ffffff">Fype</font><b><font color="#ee5896">*</font></b> +<b><font color="#ffffff">fype_new</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">Fype</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">p_fype </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">malloc</font></b><b><font color="#ee5896">(</font></b><b><font color="#00ffff">sizeof</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">Fype</font><b><font color="#ee5896">));</font></b> -<font color="#ff0000"> p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_hash_syms </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">hash_new</font><font color="#F3E651">(</font><font color="#bb00ff">512</font><font color="#F3E651">);</font> -<font color="#ff0000"> p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_list_token </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">list_new</font><font color="#F3E651">();</font> -<font color="#ff0000"> p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_tupel_argv </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">tupel_new</font><font color="#F3E651">();</font> -<font color="#ff0000"> p_fype</font><font color="#F3E651">-></font><font color="#ff0000">c_basename </font><font color="#F3E651">=</font><font color="#ff0000"> NULL</font><font color="#F3E651">;</font> +<font color="#ffffff"> p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_hash_syms </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">hash_new</font></b><b><font color="#ee5896">(</font></b><font color="#ff00ff">512</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_list_token </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">list_new</font></b><b><font color="#ee5896">();</font></b> +<font color="#ffffff"> p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_tupel_argv </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">tupel_new</font></b><b><font color="#ee5896">();</font></b> +<font color="#ffffff"> p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">c_basename </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> NULL</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><font color="#7bc710">garbage_init</font><font color="#F3E651">();</font> +<font color="#ffffff"> </font><b><font color="#ffffff">garbage_init</font></b><b><font color="#ee5896">();</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">);</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">);</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#F35E1E">void</font></b> -<font color="#7bc710">fype_delete</font><font color="#F3E651">(</font><font color="#ff0000">Fype</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">p_fype</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#7bc710">argv_tupel_delete</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_tupel_argv</font><font color="#F3E651">);</font> +<font color="#ffff00">void</font> +<b><font color="#ffffff">fype_delete</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">Fype</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">argv_tupel_delete</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_tupel_argv</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><font color="#7bc710">hash_iterate</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_hash_syms</font><font color="#F3E651">,</font><font color="#ff0000"> symbol_cleanup_hash_syms_cb</font><font color="#F3E651">);</font> -<font color="#ff0000"> </font><font color="#7bc710">hash_delete</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_hash_syms</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><b><font color="#ffffff">hash_iterate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_hash_syms</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> symbol_cleanup_hash_syms_cb</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">hash_delete</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_hash_syms</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><font color="#7bc710">list_iterate</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_list_token</font><font color="#F3E651">,</font><font color="#ff0000"> token_ref_down_cb</font><font color="#F3E651">);</font> -<font color="#ff0000"> </font><font color="#7bc710">list_delete</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">p_list_token</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><b><font color="#ffffff">list_iterate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_list_token</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> token_ref_down_cb</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">list_delete</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">p_list_token</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">c_basename</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><font color="#7bc710">free</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">-></font><font color="#ff0000">c_basename</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">c_basename</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">free</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">-></font></b><font color="#ffffff">c_basename</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><font color="#7bc710">garbage_destroy</font><font color="#F3E651">();</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#ffffff">garbage_destroy</font></b><b><font color="#ee5896">();</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#F35E1E">int</font></b> -<font color="#7bc710">fype_run</font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i_argc</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#F35E1E">char</font></b><font color="#ff0000"> </font><font color="#F3E651">**</font><font color="#ff0000">pc_argv</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">Fype</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">p_fype </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">fype_new</font><font color="#F3E651">();</font> +<font color="#ffff00">int</font> +<b><font color="#ffffff">fype_run</font></b><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i_argc</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffff00">char</font><font color="#ffffff"> </font><b><font color="#ee5896">**</font></b><font color="#ffffff">pc_argv</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">Fype</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">p_fype </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fype_new</font></b><b><font color="#ee5896">();</font></b> -<font color="#ff0000"> </font><i><font color="#ababab">// argv: Maintains command line options</font></i> -<font color="#ff0000"> </font><font color="#7bc710">argv_run</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">,</font><font color="#ff0000"> i_argc</font><font color="#F3E651">,</font><font color="#ff0000"> pc_argv</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><i><font color="#00ff00">// argv: Maintains command line options</font></i> +<font color="#ffffff"> </font><b><font color="#ffffff">argv_run</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> i_argc</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> pc_argv</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><i><font color="#ababab">// scanner: Creates a list of token</font></i> -<font color="#ff0000"> </font><font color="#7bc710">scanner_run</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><i><font color="#00ff00">// scanner: Creates a list of token</font></i> +<font color="#ffffff"> </font><b><font color="#ffffff">scanner_run</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><i><font color="#ababab">// interpret: Interpret the list of token</font></i> -<font color="#ff0000"> </font><font color="#7bc710">interpret_run</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><i><font color="#00ff00">// interpret: Interpret the list of token</font></i> +<font color="#ffffff"> </font><b><font color="#ffffff">interpret_run</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><font color="#7bc710">fype_delete</font><font color="#F3E651">(</font><font color="#ff0000">p_fype</font><font color="#F3E651">);</font> +<font color="#ffffff"> </font><b><font color="#ffffff">fype_delete</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">p_fype</font><b><font color="#ee5896">);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">);</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">);</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h2 style='display: inline' id='data-types'>Data types</h2><br /> diff --git a/gemfeed/2011-05-07-perl-daemon-service-framework.html b/gemfeed/2011-05-07-perl-daemon-service-framework.html index 24325930..9467224b 100644 --- a/gemfeed/2011-05-07-perl-daemon-service-framework.html +++ b/gemfeed/2011-05-07-perl-daemon-service-framework.html @@ -58,14 +58,14 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Starting</font></i> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">/bin/perldaemon start </font><font color="#F3E651">(</font><font color="#ff0000">or shortcut </font><font color="#F3E651">.</font><font color="#ff0000">/control start</font><font color="#F3E651">)</font> +<pre><i><font color="#00ff00"># Starting</font></i> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/bin/perldaemon start </font><b><font color="#ee5896">(</font></b><font color="#ffffff">or shortcut </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control start</font><b><font color="#ee5896">)</font></b> -<i><font color="#ababab"># Stopping</font></i> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">/bin/perldaemon stop </font><font color="#F3E651">(</font><font color="#ff0000">or shortcut </font><font color="#F3E651">.</font><font color="#ff0000">/control stop</font><font color="#F3E651">)</font> +<i><font color="#00ff00"># Stopping</font></i> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/bin/perldaemon stop </font><b><font color="#ee5896">(</font></b><font color="#ffffff">or shortcut </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control stop</font><b><font color="#ee5896">)</font></b> -<i><font color="#ababab"># Alternatively: Starting in foreground </font></i> -<font color="#F3E651">.</font><font color="#ff0000">/bin/perldaemon start daemon</font><font color="#F3E651">.</font><font color="#ff0000">daemonize</font><font color="#F3E651">=</font><font color="#ff0000">no </font><font color="#F3E651">(</font><font color="#ff0000">or shortcut </font><font color="#F3E651">.</font><font color="#ff0000">/control foreground</font><font color="#F3E651">)</font> +<i><font color="#00ff00"># Alternatively: Starting in foreground </font></i> +<b><font color="#ee5896">.</font></b><font color="#ffffff">/bin/perldaemon start daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">daemonize</font><b><font color="#ee5896">=</font></b><font color="#ffffff">no </font><b><font color="#ee5896">(</font></b><font color="#ffffff">or shortcut </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control foreground</font><b><font color="#ee5896">)</font></b> </pre> <br /> <span>To stop a daemon from running in foreground mode, "Ctrl+C" must be hit. To see more available startup options run "./control" without any argument.</span><br /> @@ -78,30 +78,30 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">pb@titania</font><font color="#F3E651">:~</font><font color="#ff0000">/svn/utils/perldaemon/trunk$ </font><font color="#F3E651">.</font><font color="#ff0000">/control keys</font> -<i><font color="#ababab"># Path to the logfile</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">logfile</font><font color="#F3E651">=.</font><font color="#ff0000">/log/perldaemon</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><font color="#ffffff">pb@titania</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/svn/utils/perldaemon/trunk$ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control keys</font> +<i><font color="#00ff00"># Path to the logfile</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">logfile</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/log/perldaemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> -<i><font color="#ababab"># The amount of seconds until the next event look takes place</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font><font color="#F3E651">=</font><font color="#bb00ff">1</font> +<i><font color="#00ff00"># The amount of seconds until the next event look takes place</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font> -<i><font color="#ababab"># Path to the modules dir</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">modules</font><font color="#F3E651">.</font><font color="#ff0000">dir</font><font color="#F3E651">=.</font><font color="#ff0000">/lib/PerlDaemonModules</font> +<i><font color="#00ff00"># Path to the modules dir</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">modules</font><b><font color="#ee5896">.</font></b><font color="#ffffff">dir</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/lib/PerlDaemonModules</font> -<i><font color="#ababab"># Specifies either the daemon should run in daemon or foreground mode</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">daemonize</font><font color="#F3E651">=</font><font color="#ff0000">yes</font> +<i><font color="#00ff00"># Specifies either the daemon should run in daemon or foreground mode</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">daemonize</font><b><font color="#ee5896">=</font></b><font color="#ffffff">yes</font> -<i><font color="#ababab"># Path to the pidfile</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">pidfile</font><font color="#F3E651">=.</font><font color="#ff0000">/run/perldaemon</font><font color="#F3E651">.</font><font color="#ff0000">pid</font> +<i><font color="#00ff00"># Path to the pidfile</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pidfile</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/run/perldaemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pid</font> -<i><font color="#ababab"># Each module should run every run interval seconds</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">modules</font><font color="#F3E651">.</font><font color="#ff0000">runinterval</font><font color="#F3E651">=</font><font color="#bb00ff">3</font> +<i><font color="#00ff00"># Each module should run every run interval seconds</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">modules</font><b><font color="#ee5896">.</font></b><font color="#ffffff">runinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">3</font> -<i><font color="#ababab"># Path to the alive file (is touched every loop interval seconds, usable for monitoring)</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">alivefile</font><font color="#F3E651">=.</font><font color="#ff0000">/run/perldaemon</font><font color="#F3E651">.</font><font color="#ff0000">alive</font> +<i><font color="#00ff00"># Path to the alive file (is touched every loop interval seconds, usable for monitoring)</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">alivefile</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/run/perldaemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">alive</font> -<i><font color="#ababab"># Specifies the working directory</font></i> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">wd</font><font color="#F3E651">=./</font> +<i><font color="#00ff00"># Specifies the working directory</font></i> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wd</font><b><font color="#ee5896">=./</font></b> </pre> <br /> <h2 style='display: inline' id='example-'>Example </h2><br /> @@ -112,17 +112,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ </font><font color="#F3E651">.</font><font color="#ff0000">/control keys </font><font color="#F3E651">|</font><font color="#ff0000"> grep daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font><font color="#F3E651">=</font><font color="#bb00ff">1</font> -<font color="#ff0000">$ </font><font color="#F3E651">.</font><font color="#ff0000">/control keys daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font><font color="#F3E651">=</font><font color="#bb00ff">10</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font> -<font color="#ff0000">daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font><font color="#F3E651">=</font><font color="#bb00ff">10</font> -<font color="#ff0000">$ </font><font color="#F3E651">.</font><font color="#ff0000">/control start daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font><font color="#F3E651">=</font><font color="#bb00ff">10</font><font color="#F3E651">;</font><font color="#ff0000"> sleep </font><font color="#bb00ff">10</font><font color="#F3E651">;</font><font color="#ff0000"> tail -n </font><font color="#bb00ff">2</font><font color="#ff0000"> log/perldaemon</font><font color="#F3E651">.</font><font color="#ff0000">log</font> -<font color="#ff0000">Starting daemon now</font><font color="#F3E651">...</font> -<font color="#ff0000">Mon Jun </font><font color="#bb00ff">13</font><font color="#ff0000"> </font><font color="#bb00ff">11</font><font color="#F3E651">:</font><font color="#bb00ff">29</font><font color="#F3E651">:</font><font color="#bb00ff">27</font><font color="#ff0000"> </font><font color="#bb00ff">2011</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">PID </font><font color="#bb00ff">2838</font><font color="#F3E651">):</font><font color="#ff0000"> Triggering PerlDaemonModules</font><font color="#F3E651">::</font><font color="#ff0000">ExampleModule </font> -<font color="#F3E651">(</font><font color="#ff0000">last triggered before </font><font color="#bb00ff">10</font><font color="#F3E651">.</font><font color="#ff0000">002106s</font><font color="#F3E651">;</font><font color="#ff0000"> carry</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">7</font><font color="#F3E651">.</font><font color="#ff0000">002106s</font><font color="#F3E651">;</font><font color="#ff0000"> wanted interval</font><font color="#F3E651">:</font><font color="#ff0000"> 3s</font><font color="#F3E651">)</font> -<font color="#ff0000">Mon Jun </font><font color="#bb00ff">13</font><font color="#ff0000"> </font><font color="#bb00ff">11</font><font color="#F3E651">:</font><font color="#bb00ff">29</font><font color="#F3E651">:</font><font color="#bb00ff">27</font><font color="#ff0000"> </font><font color="#bb00ff">2011</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">PID </font><font color="#bb00ff">2838</font><font color="#F3E651">):</font><font color="#ff0000"> ExampleModule Test </font><font color="#bb00ff">2</font> -<font color="#ff0000">$ </font><font color="#F3E651">.</font><font color="#ff0000">/control stop</font> -<font color="#ff0000">Stopping daemon now</font><font color="#F3E651">...</font> +<pre><font color="#ffffff">$ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control keys </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font> +<font color="#ffffff">$ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control keys daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">10</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font> +<font color="#ffffff">daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">10</font> +<font color="#ffffff">$ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control start daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> sleep </font><font color="#ff00ff">10</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> tail -n </font><font color="#ff00ff">2</font><font color="#ffffff"> log/perldaemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> +<font color="#ffffff">Starting daemon now</font><b><font color="#ee5896">...</font></b> +<font color="#ffffff">Mon Jun </font><font color="#ff00ff">13</font><font color="#ffffff"> </font><font color="#ff00ff">11</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">29</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">27</font><font color="#ffffff"> </font><font color="#ff00ff">2011</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">PID </font><font color="#ff00ff">2838</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> Triggering PerlDaemonModules</font><b><font color="#ee5896">::</font></b><font color="#ffffff">ExampleModule </font> +<b><font color="#ee5896">(</font></b><font color="#ffffff">last triggered before </font><font color="#ff00ff">10</font><b><font color="#ee5896">.</font></b><font color="#ffffff">002106s</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> carry</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">7</font><b><font color="#ee5896">.</font></b><font color="#ffffff">002106s</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> wanted interval</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 3s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">Mon Jun </font><font color="#ff00ff">13</font><font color="#ffffff"> </font><font color="#ff00ff">11</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">29</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">27</font><font color="#ffffff"> </font><font color="#ff00ff">2011</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">PID </font><font color="#ff00ff">2838</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> ExampleModule Test </font><font color="#ff00ff">2</font> +<font color="#ffffff">$ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control stop</font> +<font color="#ffffff">Stopping daemon now</font><b><font color="#ee5896">...</font></b> </pre> <br /> <span>If you want to change that property forever, either edit perldaemon.conf or do this:</span><br /> @@ -131,7 +131,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ </font><font color="#F3E651">.</font><font color="#ff0000">/control keys daemon</font><font color="#F3E651">.</font><font color="#ff0000">loopinterval</font><font color="#F3E651">=</font><font color="#bb00ff">10</font><font color="#ff0000"> </font><font color="#F3E651">></font><font color="#ff0000"> new</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">;</font><font color="#ff0000"> mv new</font><font color="#F3E651">.</font><font color="#ff0000">conf conf/perldaemon</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> +<pre><font color="#ffffff">$ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control keys daemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">loopinterval</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">10</font><font color="#ffffff"> </font><b><font color="#ee5896">></font></b><font color="#ffffff"> new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> mv new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf conf/perldaemon</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> </pre> <br /> <h2 style='display: inline' id='hires-event-loop'>HiRes event loop</h2><br /> @@ -148,35 +148,35 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> PerlDaemonModules</font><font color="#F3E651">::</font><font color="#ff0000">ExampleModule</font><font color="#F3E651">;</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> PerlDaemonModules</font><b><font color="#ee5896">::</font></b><font color="#ffffff">ExampleModule</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">use</font></b><font color="#ff0000"> strict</font><font color="#F3E651">;</font> -<b><font color="#ffffff">use</font></b><font color="#ff0000"> warnings</font><font color="#F3E651">;</font> +<b><font color="#00ffff">use</font></b><font color="#ffffff"> strict</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">use</font></b><font color="#ffffff"> warnings</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">sub</font></b><font color="#ff0000"> </font><font color="#7bc710">new</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$$$</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$class</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$conf</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">@_</font><font color="#F3E651">;</font> +<b><font color="#00ffff">sub</font></b><font color="#ffffff"> </font><b><font color="#ffffff">new</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">$$$</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">$class</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$conf</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">@_</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$self</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">bless</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> conf </font><font color="#F3E651">=></font><font color="#ff0000"> </font><font color="#ff0000">$conf</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$class</font><font color="#F3E651">;</font> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$self</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">bless</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> conf </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><font color="#ffffff">$conf</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$class</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># Store some private module stuff</font></i> -<font color="#ff0000"> </font><font color="#ff0000">$self</font><font color="#F3E651">-></font><font color="#F3E651">{</font><font color="#ff0000">counter</font><font color="#F3E651">}</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># Store some private module stuff</font></i> +<font color="#ffffff"> </font><font color="#ffffff">$self</font><b><font color="#ee5896">-></font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">counter</font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#ff0000">$self</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ffffff">$self</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b> -<i><font color="#ababab"># Runs periodically in a loop (set interval in perldaemon.conf)</font></i> -<b><font color="#ffffff">sub</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$self</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b><font color="#F3E651">;</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$conf</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$self</font><font color="#F3E651">-></font><font color="#F3E651">{</font><font color="#ff0000">conf</font><font color="#F3E651">}</font><font color="#F3E651">;</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$logger</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$conf</font><font color="#F3E651">-></font><font color="#F3E651">{</font><font color="#ff0000">logger</font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<i><font color="#00ff00"># Runs periodically in a loop (set interval in perldaemon.conf)</font></i> +<b><font color="#00ffff">sub</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">$</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$self</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b><b><font color="#ee5896">;</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$conf</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">$self</font><b><font color="#ee5896">-></font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$logger</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">$conf</font><b><font color="#ee5896">-></font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">logger</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># Calculate some private module stuff</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$count</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">++</font><font color="#ff0000">$self</font><font color="#F3E651">-></font><font color="#F3E651">{</font><font color="#ff0000">counter</font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># Calculate some private module stuff</font></i> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$count</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">++</font></b><font color="#ffffff">$self</font><b><font color="#ee5896">-></font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">counter</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><font color="#ff0000">$logger</font><font color="#F3E651">-></font><font color="#7bc710">logmsg</font><font color="#F3E651">(</font><font color="#bb00ff">"ExampleModule Test $count"</font><font color="#F3E651">);</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><font color="#ffffff">$logger</font><b><font color="#ee5896">-></font></b><b><font color="#ffffff">logmsg</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"ExampleModule Test $count"</font><b><font color="#ee5896">);</font></b> +<b><font color="#ee5896">}</font></b> -<font color="#bb00ff">1</font><font color="#F3E651">;</font> +<font color="#ff00ff">1</font><b><font color="#ee5896">;</font></b> </pre> <br /> <h3 style='display: inline' id='your-own-module'>Your own module</h3><br /> @@ -187,11 +187,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000"> cd </font><font color="#F3E651">.</font><font color="#ff0000">/lib/PerlDaemonModules</font><font color="#F3E651">/</font> -<font color="#ff0000"> cp ExampleModule</font><font color="#F3E651">.</font><font color="#ff0000">pm YourModule</font><font color="#F3E651">.</font><font color="#ff0000">pm</font> -<font color="#ff0000"> vi YourModule</font><font color="#F3E651">.</font><font color="#ff0000">pm</font> -<font color="#ff0000"> cd -</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">/bin/perldaemon restart </font><font color="#F3E651">(</font><font color="#ff0000">or shortcurt </font><font color="#F3E651">.</font><font color="#ff0000">/control restart</font><font color="#F3E651">)</font> +<pre><font color="#ffffff"> cd </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/lib/PerlDaemonModules</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff"> cp ExampleModule</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pm YourModule</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pm</font> +<font color="#ffffff"> vi YourModule</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pm</font> +<font color="#ffffff"> cd -</font> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/bin/perldaemon restart </font><b><font color="#ee5896">(</font></b><font color="#ffffff">or shortcurt </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/control restart</font><b><font color="#ee5896">)</font></b> </pre> <br /> <span>Now watch <span class='inlinecode'>./log/perldaemon.log</span> closely. It is a good practice to test your modules in 'foreground mode' (see above how to do that).</span><br /> 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 8bb53e07..d80da161 100644 --- a/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html +++ b/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html @@ -27,47 +27,47 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#include <stdio.h></font></i> +<pre><i><font color="#00ff00">#include <stdio.h></font></i> -<i><font color="#ababab">#define $arg function_argument</font></i> -<i><font color="#ababab">#define my int</font></i> -<i><font color="#ababab">#define sub int</font></i> -<i><font color="#ababab">#define BEGIN int main(void)</font></i> +<i><font color="#00ff00">#define $arg function_argument</font></i> +<i><font color="#00ff00">#define my int</font></i> +<i><font color="#00ff00">#define sub int</font></i> +<i><font color="#00ff00">#define BEGIN int main(void)</font></i> -<b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$arg</font><font color="#F3E651">;</font> +<b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$arg</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">sub</font></b><font color="#ff0000"> </font><font color="#7bc710">hello</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">printf</font></b><font color="#F3E651">(</font><font color="#bb00ff">"Hello, welcome to the Fibonacci Numbers!\n"</font><font color="#F3E651">);</font> -<font color="#ff0000"> </font><b><font color="#ffffff">printf</font></b><font color="#F3E651">(</font><font color="#bb00ff">"This program is all, valid C and C++ and Perl and Raku code!\n"</font><font color="#F3E651">);</font> -<font color="#ff0000"> </font><b><font color="#ffffff">printf</font></b><font color="#F3E651">(</font><font color="#bb00ff">"It calculates all fibonacci numbers from 0 to 9!\n\n"</font><font color="#F3E651">);</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">sub</font></b><font color="#ffffff"> </font><b><font color="#ffffff">hello</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Hello, welcome to the Fibonacci Numbers!\n"</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"This program is all, valid C and C++ and Perl and Raku code!\n"</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"It calculates all fibonacci numbers from 0 to 9!\n\n"</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">sub</font></b><font color="#ff0000"> </font><font color="#7bc710">fibonacci</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$n</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$arg</font><font color="#F3E651">;</font> +<b><font color="#00ffff">sub</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fibonacci</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$n</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">$arg</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$n</font><font color="#ff0000"> </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#ff0000">$n</font><font color="#F3E651">;</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">$n</font><font color="#ffffff"> </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ffffff">$n</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> -<font color="#ff0000"> </font><font color="#ff0000">$arg</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$n</font><font color="#ff0000"> </font><font color="#F3E651">-</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#F3E651">;</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$fib1</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">fibonacci</font><font color="#F3E651">();</font> -<font color="#ff0000"> </font><font color="#ff0000">$arg</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$n</font><font color="#ff0000"> </font><font color="#F3E651">-</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">;</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$fib2</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">fibonacci</font><font color="#F3E651">();</font> +<font color="#ffffff"> </font><font color="#ffffff">$arg</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">$n</font><font color="#ffffff"> </font><b><font color="#ee5896">-</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$fib1</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fibonacci</font></b><b><font color="#ee5896">();</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$arg</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">$n</font><font color="#ffffff"> </font><b><font color="#ee5896">-</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$fib2</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fibonacci</font></b><b><font color="#ee5896">();</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#ff0000">$fib1</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#ff0000">$fib2</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ffffff">$fib1</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#ffffff">$fib2</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b> -<font color="#ff0000">BEGIN </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#7bc710">hello</font><font color="#F3E651">();</font> -<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$i</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font> +<font color="#ffffff">BEGIN </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">hello</font></b><b><font color="#ee5896">();</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">my</font></b><font color="#ffffff"> </font><font color="#ffffff">$i</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">while</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$i</font><font color="#ff0000"> </font><font color="#F3E651"><=</font><font color="#ff0000"> </font><font color="#bb00ff">10</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">$arg</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$i</font><font color="#F3E651">;</font> -<font color="#ff0000"> </font><b><font color="#ffffff">printf</font></b><font color="#F3E651">(</font><font color="#bb00ff">"fib(%d) = %d\n"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$i</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">fibonacci</font><font color="#F3E651">());</font> -<font color="#ff0000"> </font><font color="#ff0000">$i</font><font color="#F3E651">++;</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">while</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">$i</font><font color="#ffffff"> </font><b><font color="#ee5896"><=</font></b><font color="#ffffff"> </font><font color="#ff00ff">10</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$arg</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"fib(%d) = %d\n"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$i</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fibonacci</font></b><b><font color="#ee5896">());</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$i</font><b><font color="#ee5896">++;</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <span>You can find the full source code at GitHub:</span><br /> @@ -80,41 +80,41 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> gcc fibonacci</font><font color="#F3E651">.</font><font color="#ff0000">pl</font><font color="#F3E651">.</font><font color="#ff0000">raku</font><font color="#F3E651">.</font><font color="#ff0000">c -o fibonacci</font> -<font color="#F3E651">%</font><font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">/fibonacci</font> -<font color="#ff0000">Hello</font><font color="#F3E651">,</font><font color="#ff0000"> welcome to the Fibonacci Numbers</font><font color="#F3E651">!</font> -<font color="#ff0000">This program is all</font><font color="#F3E651">,</font><font color="#ff0000"> valid C and C</font><font color="#F3E651">++</font><font color="#ff0000"> and Perl and Raku code</font><font color="#F3E651">!</font> -<font color="#ff0000">It calculates all fibonacci numbers from </font><font color="#bb00ff">0</font><font color="#ff0000"> to </font><font color="#bb00ff">9</font><font color="#F3E651">!</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> gcc fibonacci</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pl</font><b><font color="#ee5896">.</font></b><font color="#ffffff">raku</font><b><font color="#ee5896">.</font></b><font color="#ffffff">c -o fibonacci</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/fibonacci</font> +<font color="#ffffff">Hello</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> welcome to the Fibonacci Numbers</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">This program is all</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> valid C and C</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> and Perl and Raku code</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">It calculates all fibonacci numbers from </font><font color="#ff00ff">0</font><font color="#ffffff"> to </font><font color="#ff00ff">9</font><b><font color="#ee5896">!</font></b> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">3</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">4</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">3</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">5</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">5</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">6</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">8</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">7</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">13</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">8</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">21</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">9</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">34</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">10</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">55</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">4</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">6</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">8</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">7</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">13</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">8</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">21</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">9</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">34</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font> -<font color="#F3E651">%</font><font color="#ff0000"> g</font><font color="#F3E651">++</font><font color="#ff0000"> fibonacci</font><font color="#F3E651">.</font><font color="#ff0000">pl</font><font color="#F3E651">.</font><font color="#ff0000">raku</font><font color="#F3E651">.</font><font color="#ff0000">c -o fibonacci</font> -<font color="#F3E651">%</font><font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">/fibonacci</font> -<font color="#ff0000">Hello</font><font color="#F3E651">,</font><font color="#ff0000"> welcome to the Fibonacci Numbers</font><font color="#F3E651">!</font> -<font color="#ff0000">This program is all</font><font color="#F3E651">,</font><font color="#ff0000"> valid C and C</font><font color="#F3E651">++</font><font color="#ff0000"> and Perl and Raku code</font><font color="#F3E651">!</font> -<font color="#ff0000">It calculates all fibonacci numbers from </font><font color="#bb00ff">0</font><font color="#ff0000"> to </font><font color="#bb00ff">9</font><font color="#F3E651">!</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> g</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> fibonacci</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pl</font><b><font color="#ee5896">.</font></b><font color="#ffffff">raku</font><b><font color="#ee5896">.</font></b><font color="#ffffff">c -o fibonacci</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/fibonacci</font> +<font color="#ffffff">Hello</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> welcome to the Fibonacci Numbers</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">This program is all</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> valid C and C</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> and Perl and Raku code</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">It calculates all fibonacci numbers from </font><font color="#ff00ff">0</font><font color="#ffffff"> to </font><font color="#ff00ff">9</font><b><font color="#ee5896">!</font></b> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">3</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">4</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">3</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">5</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">5</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">6</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">8</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">7</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">13</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">8</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">21</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">9</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">34</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">10</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">55</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">4</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">6</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">8</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">7</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">13</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">8</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">21</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">9</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">34</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font> </pre> <br /> <h3 style='display: inline' id='let-s-run-it-with-perl-and-raku'>Let's run it with Perl and Raku</h3><br /> @@ -123,39 +123,39 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> perl fibonacci</font><font color="#F3E651">.</font><font color="#ff0000">pl</font><font color="#F3E651">.</font><font color="#ff0000">raku</font><font color="#F3E651">.</font><font color="#ff0000">c</font> -<font color="#ff0000">Hello</font><font color="#F3E651">,</font><font color="#ff0000"> welcome to the Fibonacci Numbers</font><font color="#F3E651">!</font> -<font color="#ff0000">This program is all</font><font color="#F3E651">,</font><font color="#ff0000"> valid C and C</font><font color="#F3E651">++</font><font color="#ff0000"> and Perl and Raku code</font><font color="#F3E651">!</font> -<font color="#ff0000">It calculates all fibonacci numbers from </font><font color="#bb00ff">0</font><font color="#ff0000"> to </font><font color="#bb00ff">9</font><font color="#F3E651">!</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> perl fibonacci</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pl</font><b><font color="#ee5896">.</font></b><font color="#ffffff">raku</font><b><font color="#ee5896">.</font></b><font color="#ffffff">c</font> +<font color="#ffffff">Hello</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> welcome to the Fibonacci Numbers</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">This program is all</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> valid C and C</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> and Perl and Raku code</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">It calculates all fibonacci numbers from </font><font color="#ff00ff">0</font><font color="#ffffff"> to </font><font color="#ff00ff">9</font><b><font color="#ee5896">!</font></b> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">3</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">4</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">3</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">5</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">5</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">6</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">8</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">7</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">13</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">8</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">21</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">9</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">34</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">10</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">55</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">4</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">6</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">8</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">7</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">13</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">8</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">21</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">9</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">34</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font> -<font color="#F3E651">%</font><font color="#ff0000"> raku fibonacci</font><font color="#F3E651">.</font><font color="#ff0000">pl</font><font color="#F3E651">.</font><font color="#ff0000">raku</font><font color="#F3E651">.</font><font color="#ff0000">c</font> -<font color="#ff0000">Hello</font><font color="#F3E651">,</font><font color="#ff0000"> welcome to the Fibonacci Numbers</font><font color="#F3E651">!</font> -<font color="#ff0000">This program is all</font><font color="#F3E651">,</font><font color="#ff0000"> valid C and C</font><font color="#F3E651">++</font><font color="#ff0000"> and Perl and Raku code</font><font color="#F3E651">!</font> -<font color="#ff0000">It calculates all fibonacci numbers from </font><font color="#bb00ff">0</font><font color="#ff0000"> to </font><font color="#bb00ff">9</font><font color="#F3E651">!</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> raku fibonacci</font><b><font color="#ee5896">.</font></b><font color="#ffffff">pl</font><b><font color="#ee5896">.</font></b><font color="#ffffff">raku</font><b><font color="#ee5896">.</font></b><font color="#ffffff">c</font> +<font color="#ffffff">Hello</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> welcome to the Fibonacci Numbers</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">This program is all</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> valid C and C</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> and Perl and Raku code</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">It calculates all fibonacci numbers from </font><font color="#ff00ff">0</font><font color="#ffffff"> to </font><font color="#ff00ff">9</font><b><font color="#ee5896">!</font></b> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">3</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">4</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">3</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">5</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">5</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">6</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">8</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">7</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">13</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">8</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">21</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">9</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">34</font> -<font color="#ff0000">fib</font><font color="#F3E651">(</font><font color="#bb00ff">10</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">55</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">4</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">6</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">8</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">7</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">13</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">8</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">21</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">9</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">34</font> +<font color="#ffffff">fib</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font> </pre> <br /> <span>It's entertaining to play with :-).</span><br /> 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 520bb8c7..4a01cc45 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 @@ -56,24 +56,24 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">sudo dnf install debootstrap</font> -<i><font color="#ababab"># 5g</font></i> -<font color="#ff0000">dd </font><b><font color="#ffffff">if</font></b><font color="#F3E651">=</font><font color="#ff0000">/dev/zero </font><font color="#ff0000">of</font><font color="#F3E651">=</font><font color="#ff0000">jessie</font><font color="#F3E651">.</font><font color="#ff0000">img </font><font color="#ff0000">bs</font><font color="#F3E651">=</font><font color="#ff0000">$[</font><font color="#ff0000"> </font><font color="#bb00ff">1024</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#bb00ff">1024</font><font color="#ff0000"> </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">count</font><font color="#F3E651">=</font><font color="#ff0000">$[</font><font color="#ff0000"> </font><font color="#bb00ff">1024</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#F3E651">]</font> +<pre><font color="#ffffff">sudo dnf install debootstrap</font> +<i><font color="#00ff00"># 5g</font></i> +<font color="#ffffff">dd </font><b><font color="#00ffff">if</font></b><b><font color="#ee5896">=</font></b><font color="#ffffff">/dev/zero </font><font color="#ffffff">of</font><b><font color="#ee5896">=</font></b><font color="#ffffff">jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img </font><font color="#ffffff">bs</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$[</font><font color="#ffffff"> </font><font color="#ff00ff">1024</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><font color="#ff00ff">1024</font><font color="#ffffff"> </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">count</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$[</font><font color="#ffffff"> </font><font color="#ff00ff">1024</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><b><font color="#ee5896">]</font></b> -<i><font color="#ababab"># Show used loop devices</font></i> -<font color="#ff0000">sudo losetup -f</font> -<i><font color="#ababab"># Store the next free one to $loop</font></i> -<font color="#ff0000">loop</font><font color="#F3E651">=</font><font color="#ff0000">loopN</font> -<font color="#ff0000">sudo losetup /dev</font><font color="#F3E651">/</font><font color="#ff0000">$loop</font><font color="#ff0000"> jessie</font><font color="#F3E651">.</font><font color="#ff0000">img</font> +<i><font color="#00ff00"># Show used loop devices</font></i> +<font color="#ffffff">sudo losetup -f</font> +<i><font color="#00ff00"># Store the next free one to $loop</font></i> +<font color="#ffffff">loop</font><b><font color="#ee5896">=</font></b><font color="#ffffff">loopN</font> +<font color="#ffffff">sudo losetup /dev</font><b><font color="#ee5896">/</font></b><font color="#ffffff">$loop</font><font color="#ffffff"> jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font> -<font color="#ff0000">mkdir jessie</font> -<font color="#ff0000">sudo mkfs</font><font color="#F3E651">.</font><font color="#ff0000">ext4 /dev</font><font color="#F3E651">/</font><font color="#ff0000">$loop</font> -<font color="#ff0000">sudo mount /dev</font><font color="#F3E651">/</font><font color="#ff0000">$loop</font><font color="#ff0000"> jessie</font> -<font color="#ff0000">sudo debootstrap --foreign --variant</font><font color="#F3E651">=</font><font color="#ff0000">minbase </font><font color="#F3E651">\</font> -<font color="#ff0000"> --arch armel jessie jessie</font><font color="#F3E651">/</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> http</font><font color="#F3E651">:</font><font color="#ff0000">//http</font><font color="#F3E651">.</font><font color="#ff0000">debian</font><font color="#F3E651">.</font><font color="#ff0000">net/debian</font> -<font color="#ff0000">sudo umount jessie</font> +<font color="#ffffff">mkdir jessie</font> +<font color="#ffffff">sudo mkfs</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ext4 /dev</font><b><font color="#ee5896">/</font></b><font color="#ffffff">$loop</font> +<font color="#ffffff">sudo mount /dev</font><b><font color="#ee5896">/</font></b><font color="#ffffff">$loop</font><font color="#ffffff"> jessie</font> +<font color="#ffffff">sudo debootstrap --foreign --variant</font><b><font color="#ee5896">=</font></b><font color="#ffffff">minbase </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --arch armel jessie jessie</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//http</font><b><font color="#ee5896">.</font></b><font color="#ffffff">debian</font><b><font color="#ee5896">.</font></b><font color="#ffffff">net/debian</font> +<font color="#ffffff">sudo umount jessie</font> </pre> <br /> <h3 style='display: inline' id='copy-debian-image-to-the-phone'>Copy Debian image to the phone</h3><br /> @@ -84,42 +84,42 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">adb root </font><font color="#F3E651">&&</font><font color="#ff0000"> adb wait-for-device </font><font color="#F3E651">&&</font><font color="#ff0000"> adb shell</font> -<font color="#ff0000">mkdir -p /storage/sdcard</font><font color="#bb00ff">1</font><font color="#ff0000">/Linux/jessie</font> -<b><font color="#ffffff">exit</font></b> +<pre><font color="#ffffff">adb root </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> adb wait-for-device </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> adb shell</font> +<font color="#ffffff">mkdir -p /storage/sdcard</font><font color="#ff00ff">1</font><font color="#ffffff">/Linux/jessie</font> +<b><font color="#00ffff">exit</font></b> -<i><font color="#ababab"># Sparse image problem, may be too big for copying otherwise</font></i> -<font color="#ff0000">gzip jessie</font><font color="#F3E651">.</font><font color="#ff0000">img</font> -<i><font color="#ababab"># Copy over</font></i> -<font color="#ff0000">adb push jessie</font><font color="#F3E651">.</font><font color="#ff0000">img</font><font color="#F3E651">.</font><font color="#ff0000">gz /storage/sdcard</font><font color="#bb00ff">1</font><font color="#ff0000">/Linux/jessie</font><font color="#F3E651">.</font><font color="#ff0000">img</font><font color="#F3E651">.</font><font color="#ff0000">gz</font> -<font color="#ff0000">adb shell</font> -<font color="#ff0000">cd /storage/sdcard</font><font color="#bb00ff">1</font><font color="#ff0000">/Linux</font> -<font color="#ff0000">gunzip jessie</font><font color="#F3E651">.</font><font color="#ff0000">img</font><font color="#F3E651">.</font><font color="#ff0000">gz</font> +<i><font color="#00ff00"># Sparse image problem, may be too big for copying otherwise</font></i> +<font color="#ffffff">gzip jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font> +<i><font color="#00ff00"># Copy over</font></i> +<font color="#ffffff">adb push jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gz /storage/sdcard</font><font color="#ff00ff">1</font><font color="#ffffff">/Linux/jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gz</font> +<font color="#ffffff">adb shell</font> +<font color="#ffffff">cd /storage/sdcard</font><font color="#ff00ff">1</font><font color="#ffffff">/Linux</font> +<font color="#ffffff">gunzip jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gz</font> -<i><font color="#ababab"># Show used loop devices</font></i> -<font color="#ff0000">losetup -f</font> -<i><font color="#ababab"># Store the next free one to $loop</font></i> -<font color="#ff0000">loop</font><font color="#F3E651">=</font><font color="#ff0000">loopN</font> +<i><font color="#00ff00"># Show used loop devices</font></i> +<font color="#ffffff">losetup -f</font> +<i><font color="#00ff00"># Store the next free one to $loop</font></i> +<font color="#ffffff">loop</font><b><font color="#ee5896">=</font></b><font color="#ffffff">loopN</font> -<i><font color="#ababab"># Use the next free one (replace the loop number)</font></i> -<font color="#ff0000">losetup /dev/block</font><font color="#F3E651">/</font><font color="#ff0000">$loop</font><font color="#ff0000"> </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie</font><font color="#F3E651">.</font><font color="#ff0000">img</font> -<font color="#ff0000">mount -t ext4 /dev/block</font><font color="#F3E651">/</font><font color="#ff0000">$loop</font><font color="#ff0000"> </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie</font> +<i><font color="#00ff00"># Use the next free one (replace the loop number)</font></i> +<font color="#ffffff">losetup /dev/block</font><b><font color="#ee5896">/</font></b><font color="#ffffff">$loop</font><font color="#ffffff"> </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font> +<font color="#ffffff">mount -t ext4 /dev/block</font><b><font color="#ee5896">/</font></b><font color="#ffffff">$loop</font><font color="#ffffff"> </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie</font> -<i><font color="#ababab"># Bind-Mound proc, dev, sys`</font></i> -<font color="#ff0000">busybox mount --bind /proc </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/proc</font> -<font color="#ff0000">busybox mount --bind /dev </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/dev</font> -<font color="#ff0000">busybox mount --bind /dev/pts </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/dev/pts</font> -<font color="#ff0000">busybox mount --bind /sys </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/sys</font> +<i><font color="#00ff00"># Bind-Mound proc, dev, sys`</font></i> +<font color="#ffffff">busybox mount --bind /proc </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/proc</font> +<font color="#ffffff">busybox mount --bind /dev </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/dev</font> +<font color="#ffffff">busybox mount --bind /dev/pts </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/dev/pts</font> +<font color="#ffffff">busybox mount --bind /sys </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/sys</font> -<i><font color="#ababab"># Bind-Mound the rest of Android</font></i> -<font color="#ff0000">mkdir -p </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/storage/sdcard{</font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#bb00ff">1</font><font color="#ff0000">}</font> -<font color="#ff0000">busybox mount --bind /storage/emulated </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/storage/sdcard</font><font color="#bb00ff">0</font> -<font color="#ff0000">busybox mount --bind /storage/sdcard</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie/storage/sdcard</font><font color="#bb00ff">1</font> +<i><font color="#00ff00"># Bind-Mound the rest of Android</font></i> +<font color="#ffffff">mkdir -p </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/storage/sdcard{</font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">1</font><font color="#ffffff">}</font> +<font color="#ffffff">busybox mount --bind /storage/emulated </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/storage/sdcard</font><font color="#ff00ff">0</font> +<font color="#ffffff">busybox mount --bind /storage/sdcard</font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie/storage/sdcard</font><font color="#ff00ff">1</font> -<i><font color="#ababab"># Check mounts</font></i> -<font color="#ff0000">mount </font><font color="#F3E651">|</font><font color="#ff0000"> grep jessie</font> +<i><font color="#00ff00"># Check mounts</font></i> +<font color="#ffffff">mount </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep jessie</font> </pre> <br /> <h3 style='display: inline' id='second-debootstrap-stage'>Second debootstrap stage</h3><br /> @@ -130,11 +130,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">chroot </font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/jessie /bin/bash -l</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">PATH</font><font color="#F3E651">=</font><font color="#ff0000">/bin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/bin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/bin</font><font color="#F3E651">:</font><font color="#ff0000">/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/sbin</font> -<font color="#ff0000">/debootstrap/debootstrap --second-stage</font> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><i><font color="#ababab"># Leave chroot</font></i> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><i><font color="#ababab"># Leave adb shell</font></i> +<pre><font color="#ffffff">chroot </font><font color="#ffffff">$(pwd)</font><font color="#ffffff">/jessie /bin/bash -l</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">PATH</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/sbin</font> +<font color="#ffffff">/debootstrap/debootstrap --second-stage</font> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># Leave chroot</font></i> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># Leave adb shell</font></i> </pre> <br /> <h3 style='display: inline' id='setup-of-various-scripts'>Setup of various scripts</h3><br /> @@ -145,36 +145,36 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Install script jessie.sh</font></i> -<font color="#ff0000">adb push storage/sdcard</font><font color="#bb00ff">1</font><font color="#ff0000">/Linux/jessie</font><font color="#F3E651">.</font><font color="#ff0000">sh /storage/sdcard/Linux/jessie</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">adb shell</font> -<font color="#ff0000">cd /storage/sdcard</font><font color="#bb00ff">1</font><font color="#ff0000">/Linux</font> -<font color="#ff0000">sh jessie</font><font color="#F3E651">.</font><font color="#ff0000">sh enter</font> +<pre><i><font color="#00ff00"># Install script jessie.sh</font></i> +<font color="#ffffff">adb push storage/sdcard</font><font color="#ff00ff">1</font><font color="#ffffff">/Linux/jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh /storage/sdcard/Linux/jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">adb shell</font> +<font color="#ffffff">cd /storage/sdcard</font><font color="#ff00ff">1</font><font color="#ffffff">/Linux</font> +<font color="#ffffff">sh jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh enter</font> -<i><font color="#ababab"># Bashrc</font></i> -<font color="#ff0000">cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">>~/.</font><font color="#ff0000">bashrc</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">PATH</font><font color="#F3E651">=</font><font color="#ff0000">/usr/local/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/bin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/bin</font><font color="#F3E651">:</font><font color="#ff0000">/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/bin</font><font color="#F3E651">:</font><font color="#ff0000">$PATH</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">vim</font> -<font color="#ff0000">hostname </font><font color="#ff0000">$(</font><font color="#ff0000">cat /etc/hostname</font><font color="#F3E651">)</font> -<font color="#ff0000">END</font> +<i><font color="#00ff00"># Bashrc</font></i> +<font color="#ffffff">cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">>~/.</font></b><font color="#ffffff">bashrc</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">PATH</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/usr/local/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">$PATH</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">EDITOR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">vim</font> +<font color="#ffffff">hostname </font><font color="#ffffff">$(</font><font color="#ffffff">cat /etc/hostname</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">END</font> -<i><font color="#ababab"># Fixing an error message while loading the profile</font></i> -<font color="#ff0000">sed -i s</font><i><font color="#ababab">#id#/usr/bin/id# /etc/profile</font></i> +<i><font color="#00ff00"># Fixing an error message while loading the profile</font></i> +<font color="#ffffff">sed -i s</font><i><font color="#00ff00">#id#/usr/bin/id# /etc/profile</font></i> -<i><font color="#ababab"># Setting the hostname</font></i> -<font color="#ff0000">echo phobos </font><font color="#F3E651">></font><font color="#ff0000"> /etc/hostname</font> -<font color="#ff0000">echo </font><font color="#bb00ff">127.0</font><font color="#F3E651">.</font><font color="#bb00ff">0.1</font><font color="#ff0000"> phobos </font><font color="#F3E651">></font><font color="#ff0000"> /etc/hosts</font> -<font color="#ff0000">hostname phobos</font> +<i><font color="#00ff00"># Setting the hostname</font></i> +<font color="#ffffff">echo phobos </font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/hostname</font> +<font color="#ffffff">echo </font><font color="#ff00ff">127.0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.1</font><font color="#ffffff"> phobos </font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/hosts</font> +<font color="#ffffff">hostname phobos</font> -<i><font color="#ababab"># Apt-sources</font></i> -<font color="#ff0000">cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">></font><font color="#ff0000"> sources</font><font color="#F3E651">.</font><font color="#ff0000">list</font> -<font color="#ff0000">deb http</font><font color="#F3E651">:</font><font color="#ff0000">//ftp</font><font color="#F3E651">.</font><font color="#ff0000">uk</font><font color="#F3E651">.</font><font color="#ff0000">debian</font><font color="#F3E651">.</font><font color="#ff0000">org/debian</font><font color="#F3E651">/</font><font color="#ff0000"> jessie main contrib non-free</font> -<font color="#ff0000">deb-src http</font><font color="#F3E651">:</font><font color="#ff0000">//ftp</font><font color="#F3E651">.</font><font color="#ff0000">uk</font><font color="#F3E651">.</font><font color="#ff0000">debian</font><font color="#F3E651">.</font><font color="#ff0000">org/debian</font><font color="#F3E651">/</font><font color="#ff0000"> jessie main contrib non-free</font> -<font color="#ff0000">END</font> -<font color="#ff0000">apt-get update</font> -<font color="#ff0000">apt-get upgrade</font> -<font color="#ff0000">apt-get dist-upgrade</font> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><i><font color="#ababab"># Exit chroot</font></i> +<i><font color="#00ff00"># Apt-sources</font></i> +<font color="#ffffff">cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">></font></b><font color="#ffffff"> sources</font><b><font color="#ee5896">.</font></b><font color="#ffffff">list</font> +<font color="#ffffff">deb http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//ftp</font><b><font color="#ee5896">.</font></b><font color="#ffffff">uk</font><b><font color="#ee5896">.</font></b><font color="#ffffff">debian</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/debian</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> jessie main contrib non-free</font> +<font color="#ffffff">deb-src http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//ftp</font><b><font color="#ee5896">.</font></b><font color="#ffffff">uk</font><b><font color="#ee5896">.</font></b><font color="#ffffff">debian</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/debian</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> jessie main contrib non-free</font> +<font color="#ffffff">END</font> +<font color="#ffffff">apt-get update</font> +<font color="#ffffff">apt-get upgrade</font> +<font color="#ffffff">apt-get dist-upgrade</font> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># Exit chroot</font></i> </pre> <br /> <h3 style='display: inline' id='entering-debroid-and-enable-a-service'>Entering Debroid and enable a service</h3><br /> @@ -185,19 +185,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">sh jessie</font><font color="#F3E651">.</font><font color="#ff0000">sh enter</font> +<pre><font color="#ffffff">sh jessie</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh enter</font> -<i><font color="#ababab"># Setup example serice uptimed</font></i> -<font color="#ff0000">apt-get install uptimed</font> -<font color="#ff0000">cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">></font><font color="#ff0000"> /etc/rc</font><font color="#F3E651">.</font><font color="#ff0000">debroid</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">PATH</font><font color="#F3E651">=</font><font color="#ff0000">/usr/local/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/bin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/usr/bin</font><font color="#F3E651">:</font><font color="#ff0000">/sbin</font><font color="#F3E651">:</font><font color="#ff0000">/bin</font><font color="#F3E651">:</font><font color="#ff0000">$PATH</font> -<font color="#ff0000">service uptimed status </font><font color="#F3E651">&></font><font color="#ff0000">/dev/null </font><font color="#F3E651">||</font><font color="#ff0000"> service uptimed start</font> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">END</font> +<i><font color="#00ff00"># Setup example serice uptimed</font></i> +<font color="#ffffff">apt-get install uptimed</font> +<font color="#ffffff">cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/rc</font><b><font color="#ee5896">.</font></b><font color="#ffffff">debroid</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">PATH</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/usr/local/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/sbin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bin</font><b><font color="#ee5896">:</font></b><font color="#ffffff">$PATH</font> +<font color="#ffffff">service uptimed status </font><b><font color="#ee5896">&></font></b><font color="#ffffff">/dev/null </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> service uptimed start</font> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">END</font> -<font color="#ff0000">chmod </font><font color="#bb00ff">0755</font><font color="#ff0000"> /etc/rc</font><font color="#F3E651">.</font><font color="#ff0000">debroid</font> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><i><font color="#ababab"># Exit chroot</font></i> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><i><font color="#ababab"># Exit adb shell</font></i> +<font color="#ffffff">chmod </font><font color="#ff00ff">0755</font><font color="#ffffff"> /etc/rc</font><b><font color="#ee5896">.</font></b><font color="#ffffff">debroid</font> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># Exit chroot</font></i> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># Exit adb shell</font></i> </pre> <br /> <h3 style='display: inline' id='include-to-android-startup'>Include to Android startup:</h3><br /> @@ -208,10 +208,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">adb push data/local/userinit</font><font color="#F3E651">.</font><font color="#ff0000">sh /data/local/userinit</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">adb shell</font> -<font color="#ff0000">chmod </font><font color="#F3E651">+</font><font color="#ff0000">x /data/local/userinit</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<b><font color="#ffffff">exit</font></b> +<pre><font color="#ffffff">adb push data/local/userinit</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh /data/local/userinit</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">adb shell</font> +<font color="#ffffff">chmod </font><b><font color="#ee5896">+</font></b><font color="#ffffff">x /data/local/userinit</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<b><font color="#00ffff">exit</font></b> </pre> <br /> <span>Reboot & test! Enjoy!</span><br /> diff --git a/gemfeed/2016-11-20-object-oriented-programming-with-ansi-c.html b/gemfeed/2016-11-20-object-oriented-programming-with-ansi-c.html index 247c0959..f1b51b47 100644 --- a/gemfeed/2016-11-20-object-oriented-programming-with-ansi-c.html +++ b/gemfeed/2016-11-20-object-oriented-programming-with-ansi-c.html @@ -34,37 +34,37 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ababab">#include</font><font color="#ff0000"> </font><font color="#bb00ff"><stdio.h></font> +<pre><font color="#ffbb00">#include</font><font color="#ffffff"> </font><font color="#cd00ff"><stdio.h></font> -<b><font color="#ffffff">typedef</font></b><font color="#ff0000"> </font><b><font color="#ffffff">struct</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#ff0000"> </font><font color="#F3E651">(*</font><font color="#ff0000">calculate</font><font color="#F3E651">)(</font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#F3E651">);</font> -<font color="#ff0000"> </font><b><font color="#F35E1E">char</font></b><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">name</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font><font color="#ff0000"> something_s</font><font color="#F3E651">;</font> +<b><font color="#00ffff">typedef</font></b><font color="#ffffff"> </font><b><font color="#00ffff">struct</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffff00">double</font><font color="#ffffff"> </font><b><font color="#ee5896">(*</font></b><font color="#ffffff">calculate</font><b><font color="#ee5896">)(</font></b><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><b><font color="#ee5896">);</font></b> +<font color="#ffffff"> </font><font color="#ffff00">char</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">name</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b><font color="#ffffff"> something_s</font><b><font color="#ee5896">;</font></b> -<b><font color="#F35E1E">double</font></b><font color="#ff0000"> </font><font color="#7bc710">multiplication</font><font color="#F3E651">(</font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#ff0000"> b</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> a </font><font color="#F3E651">*</font><font color="#ff0000"> b</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font> +<font color="#ffff00">double</font><font color="#ffffff"> </font><b><font color="#ffffff">multiplication</font></b><b><font color="#ee5896">(</font></b><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><font color="#ffffff"> b</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> a </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#F35E1E">double</font></b><font color="#ff0000"> </font><font color="#7bc710">division</font><font color="#F3E651">(</font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#ff0000"> b</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> a </font><font color="#F3E651">/</font><font color="#ff0000"> b</font><font color="#F3E651">;</font> -<font color="#F3E651">}</font> +<font color="#ffff00">double</font><font color="#ffffff"> </font><b><font color="#ffffff">division</font></b><b><font color="#ee5896">(</font></b><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><font color="#ffffff"> b</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> a </font><b><font color="#ee5896">/</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">;</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#F35E1E">int</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">(</font><b><font color="#F35E1E">void</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">something_s</font><font color="#ff0000"> mult </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">something_s</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">calculate </font><font color="#F3E651">=</font><font color="#ff0000"> multiplication</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">name </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"Multiplication"</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffff00">int</font><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">(</font></b><font color="#ffff00">void</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">something_s</font><font color="#ffffff"> mult </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">something_s</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">calculate </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> multiplication</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">name </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">"Multiplication"</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><font color="#ff0000">something_s</font><font color="#ff0000"> div </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">something_s</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">calculate </font><font color="#F3E651">=</font><font color="#ff0000"> division</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">name </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"Division"</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffffff"> </font><font color="#ffffff">something_s</font><font color="#ffffff"> div </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">something_s</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">calculate </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> division</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">name </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">"Division"</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">const</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">double</font></b><font color="#ff0000"> a </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#F3E651">,</font><font color="#ff0000"> b </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">;</font> +<font color="#ffffff"> </font><b><font color="#00ffff">const</font></b><font color="#ffffff"> </font><font color="#ffff00">double</font><font color="#ffffff"> a </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%s(%f, %f) => %f</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> mult</font><font color="#F3E651">.</font><font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> b</font><font color="#F3E651">,</font><font color="#ff0000"> mult</font><font color="#F3E651">.</font><font color="#7bc710">calculate</font><font color="#F3E651">(</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%s(%f, %f) => %f</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> div</font><font color="#F3E651">.</font><font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> b</font><font color="#F3E651">,</font><font color="#ff0000"> div</font><font color="#F3E651">.</font><font color="#7bc710">calculate</font><font color="#F3E651">(</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%s(%f, %f) => %f</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> mult</font><b><font color="#ee5896">.</font></b><font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> mult</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">calculate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%s(%f, %f) => %f</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> div</font><b><font color="#ee5896">.</font></b><font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> div</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">calculate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <span>As you can see, you can call the function (pointed by the function pointer) with the same syntax as in C++ or Java:</span><br /> @@ -73,8 +73,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%s(%f, %f) => %f</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> mult</font><font color="#F3E651">.</font><font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> b</font><font color="#F3E651">,</font><font color="#ff0000"> mult</font><font color="#F3E651">.</font><font color="#7bc710">calculate</font><font color="#F3E651">(</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> -<font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%s(%f, %f) => %f</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> div</font><font color="#F3E651">.</font><font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> b</font><font color="#F3E651">,</font><font color="#ff0000"> div</font><font color="#F3E651">.</font><font color="#7bc710">calculate</font><font color="#F3E651">(</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> +<pre><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%s(%f, %f) => %f</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> mult</font><b><font color="#ee5896">.</font></b><font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> mult</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">calculate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> +<b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%s(%f, %f) => %f</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> div</font><b><font color="#ee5896">.</font></b><font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> div</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">calculate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> </pre> <br /> <span>However, that's just syntactic sugar for:</span><br /> @@ -83,8 +83,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%s(%f, %f) => %f</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> mult</font><font color="#F3E651">.</font><font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> b</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">(*</font><font color="#ff0000">mult</font><font color="#F3E651">.</font><font color="#ff0000">calculate</font><font color="#F3E651">)(</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> -<font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%s(%f, %f) => %f</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> div</font><font color="#F3E651">.</font><font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000"> a</font><font color="#F3E651">,</font><font color="#ff0000"> b</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">(*</font><font color="#ff0000">div</font><font color="#F3E651">.</font><font color="#ff0000">calculate</font><font color="#F3E651">)(</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> +<pre><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%s(%f, %f) => %f</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> mult</font><b><font color="#ee5896">.</font></b><font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(*</font></b><font color="#ffffff">mult</font><b><font color="#ee5896">.</font></b><font color="#ffffff">calculate</font><b><font color="#ee5896">)(</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> +<b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%s(%f, %f) => %f</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> div</font><b><font color="#ee5896">.</font></b><font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> a</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(*</font></b><font color="#ffffff">div</font><b><font color="#ee5896">.</font></b><font color="#ffffff">calculate</font><b><font color="#ee5896">)(</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> </pre> <br /> <span>Output:</span><br /> @@ -93,10 +93,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">pbuetow </font><font color="#F3E651">~</font><font color="#ff0000">/git/blog/source </font><font color="#F3E651">[</font><font color="#bb00ff">38268</font><font color="#F3E651">]%</font><font color="#ff0000"> gcc oop-c-example</font><font color="#F3E651">.</font><font color="#ff0000">c -o oop-c-example</font> -<font color="#ff0000">pbuetow </font><font color="#F3E651">~</font><font color="#ff0000">/git/blog/source </font><font color="#F3E651">[</font><font color="#bb00ff">38269</font><font color="#F3E651">]%</font><font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">/oop-c-example</font> -<font color="#ff0000">Multiplication</font><font color="#F3E651">(</font><font color="#bb00ff">3.000000</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2.000000</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=></font><font color="#ff0000"> </font><font color="#bb00ff">6.000000</font> -<font color="#ff0000">Division</font><font color="#F3E651">(</font><font color="#bb00ff">3.000000</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2.000000</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">=></font><font color="#ff0000"> </font><font color="#bb00ff">1.500000</font> +<pre><font color="#ffffff">pbuetow </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/git/blog/source </font><b><font color="#ee5896">[</font></b><font color="#ff00ff">38268</font><b><font color="#ee5896">]%</font></b><font color="#ffffff"> gcc oop-c-example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">c -o oop-c-example</font> +<font color="#ffffff">pbuetow </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/git/blog/source </font><b><font color="#ee5896">[</font></b><font color="#ff00ff">38269</font><b><font color="#ee5896">]%</font></b><font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/oop-c-example</font> +<font color="#ffffff">Multiplication</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">3.000000</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2.000000</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><font color="#ff00ff">6.000000</font> +<font color="#ffffff">Division</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">3.000000</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2.000000</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><font color="#ff00ff">1.500000</font> </pre> <br /> <span>Not complicated at all, but nice to know and helps to make the code easier to read!</span><br /> @@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">mult</font><font color="#F3E651">.</font><font color="#7bc710">calculate</font><font color="#F3E651">(</font><font color="#ff0000">mult</font><font color="#F3E651">,</font><font color="#ff0000">a</font><font color="#F3E651">,</font><font color="#ff0000">b</font><font color="#F3E651">));</font> +<pre><font color="#ffffff">mult</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">calculate</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">mult</font><b><font color="#ee5896">,</font></b><font color="#ffffff">a</font><b><font color="#ee5896">,</font></b><font color="#ffffff">b</font><b><font color="#ee5896">));</font></b> </pre> <br /> <h2 style='display: inline' id='real-object-oriented-programming-with-c'>Real object oriented programming with C</h2><br /> 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 48192cd5..75c528c3 100644 --- a/gemfeed/2021-05-16-personal-bash-coding-style-guide.html +++ b/gemfeed/2021-05-16-personal-bash-coding-style-guide.html @@ -66,7 +66,7 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/bin/bash </font></i> +<pre><i><font color="#00ff00">#!/bin/bash </font></i> </pre> <br /> <span>... as the shebang line, but that does not work on all Unix and Unix-like operating systems (e.g., the *BSDs don't have Bash installed to /bin/bash). Better is:</span><br /> @@ -75,7 +75,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> </pre> <br /> <h3 style='display: inline' id='two-space-soft-tabs-indentation'>Two space soft-tabs indentation</h3><br /> @@ -96,14 +96,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># All fits on one line</font></i> -<font color="#ff0000">command1 </font><font color="#F3E651">|</font><font color="#ff0000"> command2</font> +<pre><i><font color="#00ff00"># All fits on one line</font></i> +<font color="#ffffff">command1 </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> command2</font> -<i><font color="#ababab"># Long commands</font></i> -<font color="#ff0000">command1 </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> command2 </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> command3 </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> command4</font> +<i><font color="#00ff00"># Long commands</font></i> +<font color="#ffffff">command1 </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> command2 </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> command3 </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> command4</font> </pre> <br /> <span>I think there is a better way like the following, which is less noisy. The pipe | already indicates the Bash that another command is expected, thus making the explicit line breaks with \ obsolete:</span><br /> @@ -112,11 +112,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Long commands</font></i> -<font color="#ff0000">command1 </font><font color="#F3E651">|</font> -<font color="#ff0000"> command2 </font><font color="#F3E651">|</font> -<font color="#ff0000"> command3 </font><font color="#F3E651">|</font> -<font color="#ff0000"> command4</font> +<pre><i><font color="#00ff00"># Long commands</font></i> +<font color="#ffffff">command1 </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> command2 </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> command3 </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> command4</font> </pre> <br /> <span class='quote'>Update: It's 2023 now, and I have changed my mind. I think Google's way is the better one. It may be a bit more to type, but the leading <span class='inlinecode'>|</span> are a nice eye catcher, so you know immediately what is going on!</span><br /> @@ -129,11 +129,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">greet ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">greeting</font><font color="#F3E651">=</font><font color="#bb00ff">"${1}"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">name</font><font color="#F3E651">=</font><font color="#bb00ff">"${2}"</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"${greeting} ${name}!"</font> -<font color="#ff0000">}</font> +<pre><b><font color="#ffffff">greet ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">greeting</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"${1}"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">name</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"${2}"</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"${greeting} ${name}!"</font> +<font color="#ffffff">}</font> </pre> <br /> <span>In this particular example, I agree that you should quote them as you don't know the input (are there, for example, whitespace characters?). But if you are sure that you are only using simple bare words, then I think that the code looks much cleaner when you do this instead:</span><br /> @@ -142,11 +142,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">say_hello_to_paul ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">greeting</font><font color="#F3E651">=</font><font color="#ff0000">Hello</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">name</font><font color="#F3E651">=</font><font color="#ff0000">Paul</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$greeting $name!"</font> -<font color="#ff0000">}</font> +<pre><b><font color="#ffffff">say_hello_to_paul ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">greeting</font><b><font color="#ee5896">=</font></b><font color="#ffffff">Hello</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">name</font><b><font color="#ee5896">=</font></b><font color="#ffffff">Paul</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$greeting $name!"</font> +<font color="#ffffff">}</font> </pre> <br /> <span>You see, I also omitted the curly braces { } around the variables. I only use the curly braces around variables when it makes the code either easier/clearer to read or if it is necessary to use them:</span><br /> @@ -155,9 +155,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> </font><font color="#ff0000">FOO</font><font color="#F3E651">=</font><font color="#ff0000">bar</font> -<i><font color="#ababab"># Curly braces around FOO are necessary</font></i> -<font color="#ff0000">echo </font><font color="#bb00ff">"foo${FOO}baz"</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> </font><font color="#ffffff">FOO</font><b><font color="#ee5896">=</font></b><font color="#ffffff">bar</font> +<i><font color="#00ff00"># Curly braces around FOO are necessary</font></i> +<font color="#ffffff">echo </font><font color="#cd00ff">"foo${FOO}baz"</font> </pre> <br /> <span>A few more words on always quoting the variables: For the sake of consistency (and for making ShellCheck happy), I am not against quoting everything I encounter. I also think that the larger the Bash script becomes, the more critical it becomes always to quote variables. That's because it will be more likely that you might not remember that some of the functions don't work on values with spaces in them, for example. It's just that I won't quote everything in every small script I write. </span><br /> @@ -170,13 +170,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Prefer this:</font></i> -<font color="#ff0000">addition</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#F3E651">(</font><font color="#ff0000"> X </font><font color="#F3E651">+</font><font color="#ff0000"> Y </font><font color="#F3E651">))</font> -<font color="#ff0000">substitution</font><font color="#F3E651">=</font><font color="#bb00ff">"${string/#foo/bar}"</font> +<pre><i><font color="#00ff00"># Prefer this:</font></i> +<font color="#ffffff">addition</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><b><font color="#ee5896">(</font></b><font color="#ffffff"> X </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> Y </font><b><font color="#ee5896">))</font></b> +<font color="#ffffff">substitution</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"${string/#foo/bar}"</font> -<i><font color="#ababab"># Instead of this:</font></i> -<font color="#ff0000">addition</font><font color="#F3E651">=</font><font color="#bb00ff">"$(expr "</font><font color="#ff0000">${X}</font><font color="#bb00ff">" + "</font><font color="#ff0000">${Y}</font><font color="#bb00ff">")"</font> -<font color="#ff0000">substitution</font><font color="#F3E651">=</font><font color="#bb00ff">"$(echo "</font><font color="#ff0000">${string}</font><font color="#bb00ff">" | sed -e 's/^foo/bar/')"</font> +<i><font color="#00ff00"># Instead of this:</font></i> +<font color="#ffffff">addition</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$(expr "</font><font color="#ffffff">${X}</font><font color="#cd00ff">" + "</font><font color="#ffffff">${Y}</font><font color="#cd00ff">")"</font> +<font color="#ffffff">substitution</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$(echo "</font><font color="#ffffff">${string}</font><font color="#cd00ff">" | sed -e 's/^foo/bar/')"</font> </pre> <br /> <span>I can't entirely agree here. The external commands (especially sed) are much more sophisticated and powerful than the built-in Bash versions. Sed can do much more than the Bash can ever do by itself when it comes to text manipulation (the name "sed" stands for streaming editor, after all).</span><br /> @@ -197,20 +197,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -r </font><font color="#ff0000">SUGAR_FREE</font><font color="#F3E651">=</font><font color="#ff0000">yes</font> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -r </font><font color="#ff0000">I_NEED_THE_BUZZ</font><font color="#F3E651">=</font><font color="#ff0000">no</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -r </font><font color="#ffffff">SUGAR_FREE</font><b><font color="#ee5896">=</font></b><font color="#ffffff">yes</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -r </font><font color="#ffffff">I_NEED_THE_BUZZ</font><b><font color="#ee5896">=</font></b><font color="#ffffff">no</font> -<font color="#7bc710">buy_soda ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">sugar_free</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> +<b><font color="#ffffff">buy_soda ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">sugar_free</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#ff0000">$sugar_free</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> yes </font><font color="#F3E651">]];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Diet Dr. Pepper'</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Pepsi Coke'</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#ffffff">$sugar_free</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> yes </font><b><font color="#ee5896">]];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Diet Dr. Pepper'</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Pepsi Coke'</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> -<font color="#ff0000">buy_soda </font><font color="#ff0000">$I_NEED_THE_BUZZ</font> +<font color="#ffffff">buy_soda </font><font color="#ffffff">$I_NEED_THE_BUZZ</font> </pre> <br /> <h3 style='display: inline' id='non-evil-alternative-to-variable-assignments-via-eval'>Non-evil alternative to variable assignments via eval</h3><br /> @@ -221,12 +221,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># What does this set?</font></i> -<i><font color="#ababab"># Did it succeed? In part or whole?</font></i> -<b><font color="#ffffff">eval</font></b><font color="#ff0000"> </font><font color="#ff0000">$(set_my_variables)</font> +<pre><i><font color="#00ff00"># What does this set?</font></i> +<i><font color="#00ff00"># Did it succeed? In part or whole?</font></i> +<b><font color="#00ffff">eval</font></b><font color="#ffffff"> </font><font color="#ffffff">$(set_my_variables)</font> -<i><font color="#ababab"># What happens if one of the returned values has a space in it?</font></i> -<font color="#ff0000">variable</font><font color="#F3E651">=</font><font color="#bb00ff">"$(eval some_function)"</font> +<i><font color="#00ff00"># What happens if one of the returned values has a space in it?</font></i> +<font color="#ffffff">variable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$(eval some_function)"</font> </pre> <br /> <span>However, if I want to read variables from another file, I don't have to use eval here. I only have to source the file:</span><br /> @@ -265,39 +265,39 @@ Hello paul, it is Sat 15 May 19:21:12 BST 2021 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">filter_lines ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Start filtering lines in a fancy way!'</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<font color="#ff0000"> grep </font><font color="#F3E651">...</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> sed </font><font color="#F3E651">....</font> -<font color="#ff0000">}</font> +<pre><b><font color="#ffffff">filter_lines ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Start filtering lines in a fancy way!'</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<font color="#ffffff"> grep </font><b><font color="#ee5896">...</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> sed </font><b><font color="#ee5896">....</font></b> +<font color="#ffffff">}</font> -<font color="#7bc710">process_lines ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Start processing line by line!'</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<font color="#ff0000"> </font><b><font color="#ffffff">while</font></b><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> -r line</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> </font><font color="#F3E651">...</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> something and produce a result</font><font color="#F3E651">...</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$result"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">process_lines ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Start processing line by line!'</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<font color="#ffffff"> </font><b><font color="#00ffff">while</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> -r line</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">...</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> something and produce a result</font><b><font color="#ee5896">...</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$result"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font> +<font color="#ffffff">}</font> -<i><font color="#ababab"># Do some post-processing of the data</font></i> -<font color="#7bc710">postprocess_lines ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Start removing duplicates!'</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<font color="#ff0000"> sort -u</font> -<font color="#ff0000">}</font> +<i><font color="#00ff00"># Do some post-processing of the data</font></i> +<b><font color="#ffffff">postprocess_lines ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Start removing duplicates!'</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<font color="#ffffff"> sort -u</font> +<font color="#ffffff">}</font> -<font color="#7bc710">genreate_report ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'My boss wants to have a report!'</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<font color="#ff0000"> tee outfile</font><font color="#F3E651">.</font><font color="#ff0000">txt</font> -<font color="#ff0000"> wc -l outfile</font><font color="#F3E651">.</font><font color="#ff0000">txt</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">genreate_report ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'My boss wants to have a report!'</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<font color="#ffffff"> tee outfile</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt</font> +<font color="#ffffff"> wc -l outfile</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt</font> +<font color="#ffffff">}</font> -<font color="#7bc710">main ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> filter_lines </font><font color="#F3E651">|</font> -<font color="#ff0000"> process_lines </font><font color="#F3E651">|</font> -<font color="#ff0000"> postprocess_lines </font><font color="#F3E651">|</font> -<font color="#ff0000"> generate_report</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">main ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> filter_lines </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> process_lines </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> postprocess_lines </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> generate_report</font> +<font color="#ffffff">}</font> -<font color="#ff0000">main</font> +<font color="#ffffff">main</font> </pre> <br /> <span>The stdout is always passed as a pipe to the next following stage. The stderr is used for info logging.</span><br /> @@ -312,13 +312,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">some_function ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_foo</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_baz</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_bay</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> +<pre><b><font color="#ffffff">some_function ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_foo</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_baz</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_bay</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># ...</font></i> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># ...</font></i> +<font color="#ffffff">}</font> </pre> <br /> <span>Want to add a param_baz? Just do this:</span><br /> @@ -327,14 +327,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">some_function ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_foo</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_bar</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_baz</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_bay</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> +<pre><b><font color="#ffffff">some_function ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_foo</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_bar</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_baz</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_bay</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># ...</font></i> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># ...</font></i> +<font color="#ffffff">}</font> </pre> <br /> <span>Want to remove param_foo? Nothing easier than that:</span><br /> @@ -343,13 +343,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">some_function ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_bar</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_baz</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">param_bay</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font> -<font color="#ff0000"> </font><i><font color="#ababab"># ...</font></i> -<font color="#ff0000">}</font> +<pre><b><font color="#ffffff">some_function ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_bar</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_baz</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">param_bay</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font> +<font color="#ffffff"> </font><i><font color="#00ff00"># ...</font></i> +<font color="#ffffff">}</font> </pre> <br /> <span>As you can see, I didn't need to change any other assignments within the function. Of course, you would also need to change the function argument lists at every occasion where the function is invoked - you would do that within the same refactoring session.</span><br /> @@ -362,9 +362,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">set</font></b><font color="#ff0000"> -e</font> -<font color="#ff0000">grep -q foo </font><font color="#F3E651"><<<</font><font color="#ff0000"> bar</font> -<font color="#ff0000">echo Jo</font> +<pre><b><font color="#00ffff">set</font></b><font color="#ffffff"> -e</font> +<font color="#ffffff">grep -q foo </font><b><font color="#ee5896"><<<</font></b><font color="#ffffff"> bar</font> +<font color="#ffffff">echo Jo</font> </pre> <br /> <span>Here 'Jo' will never be printed out as the grep didn't find any match. It's unrealistic for most scripts to run in paranoid mode purely, so there must be a way to add exceptions. Critical Bash scripts of mine tend to look like this:</span><br /> @@ -373,26 +373,26 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<b><font color="#ffffff">set</font></b><font color="#ff0000"> -e</font> +<b><font color="#00ffff">set</font></b><font color="#ffffff"> -e</font> -<font color="#7bc710">some_function ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><i><font color="#ababab"># .. some critical code</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># ...</font></i> +<b><font color="#ffffff">some_function ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># .. some critical code</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># ...</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#ff0000">e</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Grep might fail, but that's OK now</font></i> -<font color="#ff0000"> grep </font><font color="#F3E651">....</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">ec</font><font color="#F3E651">=</font><font color="#ff0000">$?</font> -<font color="#ff0000"> </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> -e</font> +<font color="#ffffff"> </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ffffff">e</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># Grep might fail, but that's OK now</font></i> +<font color="#ffffff"> grep </font><b><font color="#ee5896">....</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">ec</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$?</font> +<font color="#ffffff"> </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> -e</font> -<font color="#ff0000"> </font><i><font color="#ababab"># .. critical code continues ...</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#ff0000">$ec</font><font color="#ff0000"> -ne </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">]];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><font color="#F3E651">:</font><font color="#ff0000"> </font><i><font color="#ababab"># ...</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># ...</font></i> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># .. critical code continues ...</font></i> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#ffffff">$ec</font><font color="#ffffff"> -ne </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">]];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># ...</font></i> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># ...</font></i> +<font color="#ffffff">}</font> </pre> <br /> <h2 style='display: inline' id='learned'>Learned</h2><br /> @@ -407,10 +407,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#bb00ff">"${my_var}"</font><font color="#ff0000"> </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#ff0000"> </font><font color="#F3E651">]];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># True for 4, false for 22.</font></i> -<font color="#ff0000"> do_something</font> -<b><font color="#ffffff">fi</font></b> +<pre><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"${my_var}"</font><font color="#ffffff"> </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><font color="#ffffff"> </font><b><font color="#ee5896">]];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># True for 4, false for 22.</font></i> +<font color="#ffffff"> do_something</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>... but it is probably an unintended lexicographical comparison. A correct way would be:</span><br /> @@ -419,9 +419,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">((</font><font color="#ff0000"> my_var </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#ff0000"> </font><font color="#F3E651">));</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> do_something</font> -<b><font color="#ffffff">fi</font></b> +<pre><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">((</font></b><font color="#ffffff"> my_var </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><font color="#ffffff"> </font><b><font color="#ee5896">));</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> do_something</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>or</span><br /> @@ -430,9 +430,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#bb00ff">"${my_var}"</font><font color="#ff0000"> -gt </font><font color="#bb00ff">3</font><font color="#ff0000"> </font><font color="#F3E651">]];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> do_something</font> -<b><font color="#ffffff">fi</font></b> +<pre><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"${my_var}"</font><font color="#ffffff"> -gt </font><font color="#ff00ff">3</font><font color="#ffffff"> </font><b><font color="#ee5896">]];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> do_something</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <h3 style='display: inline' id='pipestatus'>PIPESTATUS</h3><br /> @@ -445,10 +445,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tar -cf - </font><font color="#F3E651">./*</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000"> cd </font><font color="#bb00ff">"${dir}"</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> tar -xf - </font><font color="#F3E651">)</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">((</font><font color="#ff0000"> PIPESTATUS</font><font color="#F3E651">[</font><font color="#bb00ff">0</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">!=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> PIPESTATUS</font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">!=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">));</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Unable to tar files to ${dir}"</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<b><font color="#ffffff">fi</font></b> +<pre><font color="#ffffff">tar -cf - </font><b><font color="#ee5896">./*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff"> cd </font><font color="#cd00ff">"${dir}"</font><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> tar -xf - </font><b><font color="#ee5896">)</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">((</font></b><font color="#ffffff"> PIPESTATUS</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> PIPESTATUS</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">));</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Unable to tar files to ${dir}"</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>However, as PIPESTATUS will be overwritten as soon as you do any other command, if you need to act differently on errors based on where it happened in the pipe, you'll need to assign PIPESTATUS to another variable immediately after running the command (don't forget that [ is a command and will wipe out PIPESTATUS).</span><br /> @@ -457,14 +457,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tar -cf - </font><font color="#F3E651">./*</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000"> cd </font><font color="#bb00ff">"${DIR}"</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> tar -xf - </font><font color="#F3E651">)</font> -<font color="#ff0000">return_codes</font><font color="#F3E651">=(</font><font color="#ff0000"> </font><font color="#bb00ff">"${PIPESTATUS[@]}"</font><font color="#ff0000"> </font><font color="#F3E651">)</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">((</font><font color="#ff0000"> return_codes</font><font color="#F3E651">[</font><font color="#bb00ff">0</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">!=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">));</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> do_something</font> -<b><font color="#ffffff">fi</font></b> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">((</font><font color="#ff0000"> return_codes</font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">!=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">));</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> do_something_else</font> -<b><font color="#ffffff">fi</font></b> +<pre><font color="#ffffff">tar -cf - </font><b><font color="#ee5896">./*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff"> cd </font><font color="#cd00ff">"${DIR}"</font><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> tar -xf - </font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">return_codes</font><b><font color="#ee5896">=(</font></b><font color="#ffffff"> </font><font color="#cd00ff">"${PIPESTATUS[@]}"</font><font color="#ffffff"> </font><b><font color="#ee5896">)</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">((</font></b><font color="#ffffff"> return_codes</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">));</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> do_something</font> +<b><font color="#00ffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">((</font></b><font color="#ffffff"> return_codes</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">));</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> do_something_else</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <h2 style='display: inline' id='use-common-sense-and-be-consistent'>Use common sense and BE CONSISTENT.</h2><br /> 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 8a4b5342..5fb41ff9 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 @@ -114,18 +114,18 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> uranus </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> gemtexter on 🌱 main</font> -<font color="#ff0000">❯ wc -l gemtexter lib</font><font color="#F3E651">/*</font> -<font color="#ff0000"> </font><font color="#bb00ff">117</font><font color="#ff0000"> gemtexter</font> -<font color="#ff0000"> </font><font color="#bb00ff">59</font><font color="#ff0000"> lib/assert</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">128</font><font color="#ff0000"> lib/atomfeed</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">64</font><font color="#ff0000"> lib/gemfeed</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">161</font><font color="#ff0000"> lib/generate</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">50</font><font color="#ff0000"> lib/git</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">162</font><font color="#ff0000"> lib/html</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">30</font><font color="#ff0000"> lib/log</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">63</font><font color="#ff0000"> lib/md</font><font color="#F3E651">.</font><b><font color="#ffffff">source</font></b><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000"> </font><font color="#bb00ff">834</font><font color="#ff0000"> total</font> +<pre><font color="#ffffff">paul </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> uranus </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> gemtexter on 🌱 main</font> +<font color="#ffffff">❯ wc -l gemtexter lib</font><b><font color="#ee5896">/*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">117</font><font color="#ffffff"> gemtexter</font> +<font color="#ffffff"> </font><font color="#ff00ff">59</font><font color="#ffffff"> lib/assert</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">128</font><font color="#ffffff"> lib/atomfeed</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">64</font><font color="#ffffff"> lib/gemfeed</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">161</font><font color="#ffffff"> lib/generate</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">50</font><font color="#ffffff"> lib/git</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">162</font><font color="#ffffff"> lib/html</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">30</font><font color="#ffffff"> lib/log</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">63</font><font color="#ffffff"> lib/md</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">source</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff"> </font><font color="#ff00ff">834</font><font color="#ffffff"> total</font> </pre> <br /> <span>This way, the script could grow far beyond 1000 lines of code and still be maintainable. With more features, execution speed may slowly become a problem, though. I already notice that Gemtexter doesn't produce results instantly but requires few seconds of runtime already. That's not a problem yet, though. </span><br /> @@ -160,9 +160,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gemtext</font><font color="#F3E651">=</font><font color="#bb00ff">'=> http://example.org Description of the link'</font> -<font color="#ff0000">assert</font><font color="#F3E651">::</font><font color="#ff0000">equals </font><font color="#bb00ff">"$(generate::make_link html "</font><font color="#ff0000">$gemtext</font><font color="#bb00ff">")"</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#bb00ff">'<a class="textlink" href="http://example.org">Description of the link</a><br />'</font> +<pre><font color="#ffffff">gemtext</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'=> http://example.org Description of the link'</font> +<font color="#ffffff">assert</font><b><font color="#ee5896">::</font></b><font color="#ffffff">equals </font><font color="#cd00ff">"$(generate::make_link html "</font><font color="#ffffff">$gemtext</font><font color="#cd00ff">")"</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#cd00ff">'<a class="textlink" href="http://example.org">Description of the link</a><br />'</font> </pre> <br /> <h3 style='display: inline' id='markdown-unit-test-example'>Markdown unit test example</h3><br /> @@ -171,9 +171,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gemtext</font><font color="#F3E651">=</font><font color="#bb00ff">'=> http://example.org Description of the link'</font> -<font color="#ff0000">assert</font><font color="#F3E651">::</font><font color="#ff0000">equals </font><font color="#bb00ff">"$(generate::make_link md "</font><font color="#ff0000">$gemtext</font><font color="#bb00ff">")"</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#bb00ff">'[Description of the link](http://example.org) '</font> +<pre><font color="#ffffff">gemtext</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'=> http://example.org Description of the link'</font> +<font color="#ffffff">assert</font><b><font color="#ee5896">::</font></b><font color="#ffffff">equals </font><font color="#cd00ff">"$(generate::make_link md "</font><font color="#ffffff">$gemtext</font><font color="#cd00ff">")"</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#cd00ff">'[Description of the link](http://example.org) '</font> </pre> <br /> <h2 style='display: inline' id='handcrafted-html-styles'>Handcrafted HTML styles</h2><br /> diff --git a/gemfeed/2022-08-27-gemtexter-1.1.0-lets-gemtext-again.html b/gemfeed/2022-08-27-gemtexter-1.1.0-lets-gemtext-again.html index 27417834..55285faa 100644 --- a/gemfeed/2022-08-27-gemtexter-1.1.0-lets-gemtext-again.html +++ b/gemfeed/2022-08-27-gemtexter-1.1.0-lets-gemtext-again.html @@ -57,23 +57,23 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">check_dependencies ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><i><font color="#ababab"># At least, Bash 5 is required</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">required_version</font><font color="#F3E651">=</font><font color="#bb00ff">5</font> -<font color="#ff0000"> </font><font color="#ff0000">IFS</font><font color="#F3E651">=.</font><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> -ra version </font><font color="#F3E651"><<<</font><font color="#ff0000"> </font><font color="#bb00ff">"$BASH_VERSION"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"${version[0]}"</font><font color="#ff0000"> -lt </font><font color="#ff0000">$required_version</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> log ERROR </font><font color="#bb00ff">"ERROR, </font><font color="#ffffff">\"</font><font color="#bb00ff">bash</font><font color="#ffffff">\"</font><font color="#bb00ff"> must be at least at major version $required_version!"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<pre><b><font color="#ffffff">check_dependencies ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># At least, Bash 5 is required</font></i> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">required_version</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">5</font> +<font color="#ffffff"> </font><font color="#ffffff">IFS</font><b><font color="#ee5896">=.</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> -ra version </font><b><font color="#ee5896"><<<</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$BASH_VERSION"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"${version[0]}"</font><font color="#ffffff"> -lt </font><font color="#ffffff">$required_version</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> log ERROR </font><font color="#cd00ff">"ERROR, </font><font color="#cd00ff">\"</font><font color="#cd00ff">bash</font><font color="#cd00ff">\"</font><font color="#cd00ff"> must be at least at major version $required_version!"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><i><font color="#ababab"># These must be the GNU versions of the commands</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> tool </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#ff0000">$DATE</font><font color="#ff0000"> </font><font color="#ff0000">$SED</font><font color="#ff0000"> </font><font color="#ff0000">$GREP</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> </font><font color="#ff0000">$tool</font><font color="#ff0000"> --version </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q GNU</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> log ERROR </font><font color="#bb00ff">"ERROR, </font><font color="#ffffff">\"</font><font color="#bb00ff">$tool</font><font color="#ffffff">\"</font><font color="#bb00ff"> command is not the GNU version, please install!"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># These must be the GNU versions of the commands</font></i> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> tool </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><font color="#ffffff">$DATE</font><font color="#ffffff"> </font><font color="#ffffff">$SED</font><font color="#ffffff"> </font><font color="#ffffff">$GREP</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> </font><font color="#ffffff">$tool</font><font color="#ffffff"> --version </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q GNU</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> log ERROR </font><font color="#cd00ff">"ERROR, </font><font color="#cd00ff">\"</font><font color="#cd00ff">$tool</font><font color="#cd00ff">\"</font><font color="#cd00ff"> command is not the GNU version, please install!"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> +<font color="#ffffff">}</font> </pre> <br /> <span>Especially macOS users didn't read the <span class='inlinecode'>README</span> carefully enough to install GNU Grep, GNU Sed and GNU Date before using Gemtexter.</span><br /> @@ -94,7 +94,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">.</font><font color="#ff0000">/gemtexter --generate </font><font color="#bb00ff">'.*hello.*'</font> +<pre><b><font color="#ee5896">.</font></b><font color="#ffffff">/gemtexter --generate </font><font color="#cd00ff">'.*hello.*'</font> </pre> <br /> <h3 style='display: inline' id='revamped-git-support'>Revamped <span class='inlinecode'>git</span> support</h3><br /> diff --git a/gemfeed/2022-11-24-i-tried-emacs-but-i-switched-back-to-neovim.html b/gemfeed/2022-11-24-i-tried-emacs-but-i-switched-back-to-neovim.html index 960d1845..ff921777 100644 --- a/gemfeed/2022-11-24-i-tried-emacs-but-i-switched-back-to-neovim.html +++ b/gemfeed/2022-11-24-i-tried-emacs-but-i-switched-back-to-neovim.html @@ -94,10 +94,10 @@ Art by \ \_! / __! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">" Clipboard</font></i> -<font color="#ff0000">vnoremap ,</font><b><font color="#ffffff">y</font></b><font color="#ff0000"> !pbcopy</font><font color="#ff0000"><CR></font><font color="#ff0000">ugv</font> -<font color="#ff0000">vnoremap ,</font><b><font color="#ffffff">i</font></b><font color="#ff0000"> !pbpaste</font><font color="#ff0000"><CR></font> -<font color="#ff0000">nmap ,</font><b><font color="#ffffff">i</font></b><font color="#ff0000"> !wpbpaste</font><font color="#ff0000"><CR></font> +<pre><i><font color="#00ff00">" Clipboard</font></i> +<font color="#ffffff">vnoremap ,</font><b><font color="#00ffff">y</font></b><font color="#ffffff"> !pbcopy</font><font color="#ffffff"><CR></font><font color="#ffffff">ugv</font> +<font color="#ffffff">vnoremap ,</font><b><font color="#00ffff">i</font></b><font color="#ffffff"> !pbpaste</font><font color="#ffffff"><CR></font> +<font color="#ffffff">nmap ,</font><b><font color="#00ffff">i</font></b><font color="#ffffff"> !wpbpaste</font><font color="#ffffff"><CR></font> </pre> <br /> <span>That's only a very few lines and does precisely what I want. It's quick and dirty but get's the job done! If VimScript becomes too cumbersome, I can use Lua for NeoVim scripting.</span><br /> diff --git a/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html b/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html index eb1b2b0d..83b55016 100644 --- a/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html +++ b/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html @@ -123,8 +123,8 @@ Blablabla... by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">PRE_GENERATE_HOOK</font><font color="#F3E651">=.</font><font color="#ff0000">/pre_generate_hook</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">POST_PUBLISH_HOOK</font><font color="#F3E651">=.</font><font color="#ff0000">/post_publish_hook</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">PRE_GENERATE_HOOK</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/pre_generate_hook</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">POST_PUBLISH_HOOK</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/post_publish_hook</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> </pre> <br /> <h2 style='display: inline' id='use-of-safer-bash-options'>Use of safer Bash options</h2><br /> @@ -141,10 +141,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat gemfeed</font><font color="#F3E651">/</font><font color="#bb00ff">2023</font><font color="#ff0000">-</font><font color="#bb00ff">02</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000">-title-here</font><font color="#F3E651">.</font><font color="#ff0000">gmi</font> -<i><font color="#ababab"># Title here</font></i> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat gemfeed</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">2023</font><font color="#ffffff">-</font><font color="#ff00ff">02</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff">-title-here</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gmi</font> +<i><font color="#00ff00"># Title here</font></i> -<font color="#ff0000">The remaining content of the Gemtext file</font><font color="#F3E651">...</font> +<font color="#ffffff">The remaining content of the Gemtext file</font><b><font color="#ee5896">...</font></b> </pre> <br /> <span>Gemtexter will add a line starting with <span class='inlinecode'>> Published at ...</span> now. Any subsequent Atom feed generation will then use that date.</span><br /> @@ -153,12 +153,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat gemfeed</font><font color="#F3E651">/</font><font color="#bb00ff">2023</font><font color="#ff0000">-</font><font color="#bb00ff">02</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000">-title-here</font><font color="#F3E651">.</font><font color="#ff0000">gmi</font> -<i><font color="#ababab"># Title here</font></i> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat gemfeed</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">2023</font><font color="#ffffff">-</font><font color="#ff00ff">02</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff">-title-here</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gmi</font> +<i><font color="#00ff00"># Title here</font></i> -<font color="#F3E651">></font><font color="#ff0000"> Published at </font><font color="#bb00ff">2023</font><font color="#ff0000">-</font><font color="#bb00ff">02</font><font color="#ff0000">-26T21</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#F3E651">:</font><font color="#bb00ff">51</font><font color="#F3E651">+</font><font color="#bb00ff">01</font><font color="#F3E651">:</font><font color="#bb00ff">00</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> Published at </font><font color="#ff00ff">2023</font><font color="#ffffff">-</font><font color="#ff00ff">02</font><font color="#ffffff">-26T21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">51</font><b><font color="#ee5896">+</font></b><font color="#ff00ff">01</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">00</font> -<font color="#ff0000">The remaining content of the Gemtext file</font><font color="#F3E651">...</font> +<font color="#ffffff">The remaining content of the Gemtext file</font><b><font color="#ee5896">...</font></b> </pre> <br /> <h2 style='display: inline' id='xmllint-support'>XMLLint support</h2><br /> diff --git a/gemfeed/2023-05-01-unveiling-guprecords:-uptime-records-with-raku.html b/gemfeed/2023-05-01-unveiling-guprecords:-uptime-records-with-raku.html index 8308a692..4aa8ae32 100644 --- a/gemfeed/2023-05-01-unveiling-guprecords:-uptime-records-with-raku.html +++ b/gemfeed/2023-05-01-unveiling-guprecords:-uptime-records-with-raku.html @@ -77,7 +77,7 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ raku guprecords</font><font color="#F3E651">.</font><font color="#ff0000">raku --stats</font><font color="#F3E651">=</font><font color="#ff0000">dir</font><font color="#F3E651">=</font><font color="#ff0000">$HOME</font><font color="#ff0000">/git/uprecords/stats --all</font> +<pre><font color="#ffffff">$ raku guprecords</font><b><font color="#ee5896">.</font></b><font color="#ffffff">raku --stats</font><b><font color="#ee5896">=</font></b><font color="#ffffff">dir</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$HOME</font><font color="#ffffff">/git/uprecords/stats --all</font> </pre> <br /> <span>This command will generate a comprehensive uptime report from the collected statistics, making it easy to review and enjoy the data.</span><br /> diff --git a/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.html b/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.html index 1b5ac65b..1e3e8701 100644 --- a/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.html +++ b/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.html @@ -117,11 +117,11 @@ Have a nice day! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/gogios</font><font color="#F3E651">.</font><font color="#ff0000">git</font> -<font color="#ff0000">cd gogios</font> -<font color="#ff0000">go build -o gogios cmd/gogios/main</font><font color="#F3E651">.</font><font color="#ff0000">go</font> -<font color="#ff0000">doas cp gogios /usr/local/bin/gogios</font> -<font color="#ff0000">doas chmod </font><font color="#bb00ff">755</font><font color="#ff0000"> /usr/local/bin/gogios</font> +<pre><font color="#ffffff">git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/gogios</font><b><font color="#ee5896">.</font></b><font color="#ffffff">git</font> +<font color="#ffffff">cd gogios</font> +<font color="#ffffff">go build -o gogios cmd/gogios/main</font><b><font color="#ee5896">.</font></b><font color="#ffffff">go</font> +<font color="#ffffff">doas cp gogios /usr/local/bin/gogios</font> +<font color="#ffffff">doas chmod </font><font color="#ff00ff">755</font><font color="#ffffff"> /usr/local/bin/gogios</font> </pre> <br /> <span>You can use cross-compilation if you want to compile Gogios for OpenBSD on a Linux system without installing the Go compiler on OpenBSD. Follow these steps:</span><br /> @@ -130,9 +130,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GOOS</font><font color="#F3E651">=</font><font color="#ff0000">openbsd</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GOARCH</font><font color="#F3E651">=</font><font color="#ff0000">amd64</font> -<font color="#ff0000">go build -o gogios cmd/gogios/main</font><font color="#F3E651">.</font><font color="#ff0000">go</font> +<pre><b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">GOOS</font><b><font color="#ee5896">=</font></b><font color="#ffffff">openbsd</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">GOARCH</font><b><font color="#ee5896">=</font></b><font color="#ffffff">amd64</font> +<font color="#ffffff">go build -o gogios cmd/gogios/main</font><b><font color="#ee5896">.</font></b><font color="#ffffff">go</font> </pre> <br /> <span>On your OpenBSD system, copy the binary to <span class='inlinecode'>/usr/local/bin/gogios</span> and set the correct permissions as described in the previous section. All steps described here you could automate with your configuration management system of choice. I use Rexify, the friendly configuration management system, to automate the installation, but that is out of the scope of this document.</span><br /> @@ -147,11 +147,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">doas adduser -group _gogios -batch _gogios</font> -<font color="#ff0000">doas usermod -d /var/run/gogios _gogios</font> -<font color="#ff0000">doas mkdir -p /var/run/gogios</font> -<font color="#ff0000">doas chown _gogios</font><font color="#F3E651">:</font><font color="#ff0000">_gogios /var/run/gogios</font> -<font color="#ff0000">doas chmod </font><font color="#bb00ff">750</font><font color="#ff0000"> /var/run/gogios</font> +<pre><font color="#ffffff">doas adduser -group _gogios -batch _gogios</font> +<font color="#ffffff">doas usermod -d /var/run/gogios _gogios</font> +<font color="#ffffff">doas mkdir -p /var/run/gogios</font> +<font color="#ffffff">doas chown _gogios</font><b><font color="#ee5896">:</font></b><font color="#ffffff">_gogios /var/run/gogios</font> +<font color="#ffffff">doas chmod </font><font color="#ff00ff">750</font><font color="#ffffff"> /var/run/gogios</font> </pre> <br /> <span>Please note that creating a user and group might differ depending on your operating system. For other operating systems, consult their documentation for creating system users and groups.</span><br /> @@ -164,8 +164,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">doas pkg_add monitoring-plugins</font> -<font color="#ff0000">doas pkg_add nrpe </font><i><font color="#ababab"># If you want to execute checks remotely via NRPE.</font></i> +<pre><font color="#ffffff">doas pkg_add monitoring-plugins</font> +<font color="#ffffff">doas pkg_add nrpe </font><i><font color="#00ff00"># If you want to execute checks remotely via NRPE.</font></i> </pre> <br /> <span>Once the installation is complete, you can find the monitoring plugins in the <span class='inlinecode'>/usr/local/libexec/nagios</span> directory, which then can be configured to be used in <span class='inlinecode'>gogios.json</span>.</span><br /> @@ -192,41 +192,41 @@ echo 'This is a test email from OpenBSD.' | mail -s 'Test Email' by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">EmailTo</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">paul@dev.buetow.org</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">EmailFrom</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">gogios@buetow.org</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">CheckTimeoutS</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">10</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">CheckConcurrency</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">2</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">StateDir</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/var/run/gogios</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Checks</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP4 www.foo.zone</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-H</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-4</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-w</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">50,10%</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-c</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">100,15%</font><font color="#ff0000">"</font><font color="#ff0000"> </font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Retries</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">3</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">RetryInterval</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">10</font> -<font color="#ff0000"> </font><font color="#F3E651">},</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP6 www.foo.zone</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-H</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-6</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-w</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">50,10%</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-c</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">100,15%</font><font color="#ff0000">"</font><font color="#ff0000"> </font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Retries</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">3</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">RetryInterval</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">10</font> -<font color="#ff0000"> </font><font color="#F3E651">},</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone HTTP IPv4</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_http</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-4</font><font color="#ff0000">"</font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">DependsOn</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP4 www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><font color="#F3E651">},</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone HTTP IPv6</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_http</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-6</font><font color="#ff0000">"</font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">DependsOn</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP6 www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Check NRPE Disk Usage foo.zone</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_nrpe</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">-H</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-c</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">check_disk</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-p</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">5666</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-4</font><font color="#ff0000">"</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#F3E651">}</font> +<pre><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">EmailTo</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">paul@dev.buetow.org</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">EmailFrom</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">gogios@buetow.org</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">CheckTimeoutS</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">10</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">CheckConcurrency</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">StateDir</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/var/run/gogios</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Checks</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Check ICMP4 www.foo.zone</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-H</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-4</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-w</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">50,10%</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-c</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">100,15%</font><font color="#ffffff">"</font><font color="#ffffff"> </font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Retries</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">RetryInterval</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">10</font> +<font color="#ffffff"> </font><b><font color="#ee5896">},</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Check ICMP6 www.foo.zone</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-H</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-6</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-w</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">50,10%</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-c</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">100,15%</font><font color="#ffffff">"</font><font color="#ffffff"> </font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Retries</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">RetryInterval</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">10</font> +<font color="#ffffff"> </font><b><font color="#ee5896">},</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone HTTP IPv4</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_http</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-4</font><font color="#ffffff">"</font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">DependsOn</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">Check ICMP4 www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">},</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone HTTP IPv6</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_http</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-6</font><font color="#ffffff">"</font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">DependsOn</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">Check ICMP6 www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Check NRPE Disk Usage foo.zone</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_nrpe</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">-H</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-c</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">check_disk</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-p</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">5666</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-4</font><font color="#ffffff">"</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <ul> @@ -255,7 +255,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">doas -u _gogios /usr/local/bin/gogios -cfg /etc/gogios</font><font color="#F3E651">.</font><font color="#ff0000">json</font> +<pre><font color="#ffffff">doas -u _gogios /usr/local/bin/gogios -cfg /etc/gogios</font><b><font color="#ee5896">.</font></b><font color="#ffffff">json</font> </pre> <br /> <span>To run Gogios via CRON on OpenBSD as the <span class='inlinecode'>gogios</span> user and check all services once per minute, follow these steps:</span><br /> diff --git a/gemfeed/2023-07-21-gemtexter-2.1.0-lets-gemtext-again-3.html b/gemfeed/2023-07-21-gemtexter-2.1.0-lets-gemtext-again-3.html index 4a38c97b..790cfebd 100644 --- a/gemfeed/2023-07-21-gemtexter-2.1.0-lets-gemtext-again-3.html +++ b/gemfeed/2023-07-21-gemtexter-2.1.0-lets-gemtext-again-3.html @@ -72,9 +72,9 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -n </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$foo"</font> -<b><font color="#ffffff">fi</font></b> +<pre><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -n </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$foo"</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>Please run <span class='inlinecode'>source-highlight --lang-list</span> for a list of all supported languages.</span><br /> @@ -103,7 +103,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">MASTODON_URI</font><font color="#F3E651">=</font><font color="#bb00ff">'https://fosstodon.org/@snonux'</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">MASTODON_URI</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'https://fosstodon.org/@snonux'</font> </pre> <br /> <span>and add the following into your <span class='inlinecode'>index.gmi</span>:</span><br /> @@ -118,7 +118,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff"><a</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">href</font></b><font color="#F3E651">=</font><font color="#bb00ff">'https://fosstodon.org/@snonux'</font><font color="#ff0000"> </font><b><font color="#F35E1E">rel</font></b><font color="#F3E651">=</font><font color="#bb00ff">'me'</font><b><font color="#ffffff">></font></b><font color="#ff0000">Me at Mastodon</font><b><font color="#ffffff"></a></font></b> +<pre><b><font color="#00ffff"><a</font></b><font color="#ffffff"> </font><font color="#ffff00">href</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'https://fosstodon.org/@snonux'</font><font color="#ffffff"> </font><font color="#ffff00">rel</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'me'</font><b><font color="#00ffff">></font></b><font color="#ffffff">Me at Mastodon</font><b><font color="#00ffff"></a></font></b> </pre> <br /> <h2 style='display: inline' id='more'>More</h2><br /> diff --git a/gemfeed/2023-09-25-dtail-usage-examples.html b/gemfeed/2023-09-25-dtail-usage-examples.html index bf354904..9c210fe3 100644 --- a/gemfeed/2023-09-25-dtail-usage-examples.html +++ b/gemfeed/2023-09-25-dtail-usage-examples.html @@ -70,7 +70,7 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt --grep INFO --files </font><font color="#bb00ff">"/var/log/dserver/*.log"</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt --grep INFO --files </font><font color="#cd00ff">"/var/log/dserver/*.log"</font> </pre> <br /> <span>Hint: you can also provide a comma separated server list, e.g.: <span class='inlinecode'>servers server1.example.org,server2.example.org:PORT,...</span></span><br /> @@ -83,7 +83,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt --grep INFO </font><font color="#bb00ff">"/var/log/dserver/*.log"</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt --grep INFO </font><font color="#cd00ff">"/var/log/dserver/*.log"</font> </pre> <br /> <h2 style='display: inline' id='aggregating-logs'>Aggregating logs</h2><br /> @@ -96,10 +96,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> -<font color="#bb00ff"> last($time),max(lifetimeConnections)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> +<font color="#cd00ff"> last($time),max(lifetimeConnections)'</font> </pre> <br /> <span>Beware: For map-reduce queries to work, you have to ensure that DTail supports your log format. Check out the documentaiton of the DTail query language and the DTail log formats on the DTail homepage for more information.</span><br /> @@ -112,10 +112,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#bb00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> -<font color="#bb00ff"> last($time),max(lifetimeConnections)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#cd00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> +<font color="#cd00ff"> last($time),max(lifetimeConnections)'</font> </pre> <br /> <span>Here is another example:</span><br /> @@ -124,10 +124,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <a href='./dtail-usage-examples/dtail-map2.gif'><img alt='Tail map-reduce example 2' title='Tail map-reduce example 2' src='./dtail-usage-examples/dtail-map2.gif' /></a><br /> @@ -138,9 +138,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select ... outfile append result.csv'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select ... outfile append result.csv'</font> </pre> <br /> <h2 style='display: inline' id='how-to-use-dcat'>How to use <span class='inlinecode'>dcat</span></h2><br /> @@ -153,7 +153,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt --files /etc/hostname</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt --files /etc/hostname</font> </pre> <br /> <a href='./dtail-usage-examples/dcat.gif'><img alt='Cat example' title='Cat example' src='./dtail-usage-examples/dcat.gif' /></a><br /> @@ -164,7 +164,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt /etc/hostname</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt /etc/hostname</font> </pre> <br /> <h2 style='display: inline' id='how-to-use-dgrep'>How to use <span class='inlinecode'>dgrep</span></h2><br /> @@ -175,9 +175,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dgrep --servers server1</font><font color="#F3E651">.</font><font color="#ff0000">example</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:</font><font color="#bb00ff">2223</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files /etc/passwd </font><font color="#F3E651">\</font> -<font color="#ff0000"> --regex nologin</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dgrep --servers server1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">2223</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files /etc/passwd </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --regex nologin</font> </pre> <br /> <span>Generally, <span class='inlinecode'>dgrep</span> is also a very useful way to search historic application logs for certain content.</span><br /> @@ -194,10 +194,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dmap --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <span>Remember: For that to work, you have to make sure that DTail supports your log format. You can either use the ones already defined in <span class='inlinecode'>internal/mapr/logformat</span> or add an extension to support a custom log format. The example here works out of the box though, as DTail understands its own log format already. </span><br /> @@ -220,9 +220,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dmap --files /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap --files /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <span>As a shorthand version the following command can be used:</span><br /> @@ -231,9 +231,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dmap </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> /var/log/dsever/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> /var/log/dsever/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <span>You can also use a file input pipe as follows:</span><br /> @@ -242,9 +242,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log </font><font color="#F3E651">|</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> dmap </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> dmap </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <h3 style='display: inline' id='aggregating-csv-files'>Aggregating CSV files</h3><br /> @@ -255,16 +255,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat example</font><font color="#F3E651">.</font><font color="#ff0000">csv</font> -<font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000">lastname</font><font color="#F3E651">,</font><font color="#ff0000">age</font><font color="#F3E651">,</font><font color="#ff0000">profession</font> -<font color="#ff0000">Michael</font><font color="#F3E651">,</font><font color="#ff0000">Jordan</font><font color="#F3E651">,</font><font color="#bb00ff">40</font><font color="#F3E651">,</font><font color="#ff0000">Basketball player</font> -<font color="#ff0000">Michael</font><font color="#F3E651">,</font><font color="#ff0000">Jackson</font><font color="#F3E651">,</font><font color="#bb00ff">100</font><font color="#F3E651">,</font><font color="#ff0000">Singer</font> -<font color="#ff0000">Albert</font><font color="#F3E651">,</font><font color="#ff0000">Einstein</font><font color="#F3E651">,</font><font color="#bb00ff">200</font><font color="#F3E651">,</font><font color="#ff0000">Physician</font> -<font color="#F3E651">%</font><font color="#ff0000"> dmap --query </font><font color="#bb00ff">'select lastname,name where age > 40 logformat csv outfile result.csv'</font><font color="#ff0000"> example</font><font color="#F3E651">.</font><font color="#ff0000">csv</font> -<font color="#F3E651">%</font><font color="#ff0000"> cat result</font><font color="#F3E651">.</font><font color="#ff0000">csv</font> -<font color="#ff0000">lastname</font><font color="#F3E651">,</font><font color="#ff0000">name</font> -<font color="#ff0000">Jackson</font><font color="#F3E651">,</font><font color="#ff0000">Michael</font> -<font color="#ff0000">Einstein</font><font color="#F3E651">,</font><font color="#ff0000">Albert</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">csv</font> +<font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff">lastname</font><b><font color="#ee5896">,</font></b><font color="#ffffff">age</font><b><font color="#ee5896">,</font></b><font color="#ffffff">profession</font> +<font color="#ffffff">Michael</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Jordan</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">40</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Basketball player</font> +<font color="#ffffff">Michael</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Jackson</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">100</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Singer</font> +<font color="#ffffff">Albert</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Einstein</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">200</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Physician</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap --query </font><font color="#cd00ff">'select lastname,name where age > 40 logformat csv outfile result.csv'</font><font color="#ffffff"> example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">csv</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> cat result</font><b><font color="#ee5896">.</font></b><font color="#ffffff">csv</font> +<font color="#ffffff">lastname</font><b><font color="#ee5896">,</font></b><font color="#ffffff">name</font> +<font color="#ffffff">Jackson</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Michael</font> +<font color="#ffffff">Einstein</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Albert</font> </pre> <br /> <span>DMap can also be used to query and aggregate CSV files from remote servers.</span><br /> @@ -277,44 +277,44 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --logLevel trace /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --logLevel trace /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat /etc/passwd</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat /etc/passwd</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat --plain /etc/passwd </font><font color="#F3E651">></font><font color="#ff0000"> /etc/test</font> -<i><font color="#ababab"># Should show no differences.</font></i> -<font color="#ff0000">diff /etc/test /etc/passwd </font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat --plain /etc/passwd </font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/test</font> +<i><font color="#00ff00"># Should show no differences.</font></i> +<font color="#ffffff">diff /etc/test /etc/passwd </font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dgrep --regex ERROR --files /var/log/dserver/dsever</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dgrep --regex ERROR --files /var/log/dserver/dsever</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dgrep --before </font><font color="#bb00ff">10</font><font color="#ff0000"> --after </font><font color="#bb00ff">10</font><font color="#ff0000"> --max </font><font color="#bb00ff">10</font><font color="#ff0000"> --grep ERROR /var/log/dserver/dsever</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dgrep --before </font><font color="#ff00ff">10</font><font color="#ffffff"> --after </font><font color="#ff00ff">10</font><font color="#ffffff"> --max </font><font color="#ff00ff">10</font><font color="#ffffff"> --grep ERROR /var/log/dserver/dsever</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <span>Use <span class='inlinecode'>--help</span> for more available options. Or go to the DTail page for more information! Hope you find DTail useful!</span><br /> diff --git a/gemfeed/2023-10-29-kiss-static-web-photo-albums-with-photoalbum.sh.html b/gemfeed/2023-10-29-kiss-static-web-photo-albums-with-photoalbum.sh.html index 0e4cf0f0..044134e7 100644 --- a/gemfeed/2023-10-29-kiss-static-web-photo-albums-with-photoalbum.sh.html +++ b/gemfeed/2023-10-29-kiss-static-web-photo-albums-with-photoalbum.sh.html @@ -130,42 +130,42 @@ photoalbum makemake by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> photoalbum makemake</font> -<font color="#ff0000">You may now customize </font><font color="#F3E651">.</font><font color="#ff0000">/photoalbumrc and run make</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> photoalbum makemake</font> +<font color="#ffffff">You may now customize </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/photoalbumrc and run make</font> -<font color="#F3E651">%</font><font color="#ff0000"> cat Makefile</font> -<font color="#ff0000">all</font><font color="#F3E651">:</font> -<font color="#ff0000"> photoalbum generate photoalbumrc</font> -<font color="#ff0000">clean</font><font color="#F3E651">:</font> -<font color="#ff0000"> photoalbum clean photoalbumrc</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> cat Makefile</font> +<font color="#ffffff">all</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff"> photoalbum generate photoalbumrc</font> +<font color="#ffffff">clean</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff"> photoalbum clean photoalbumrc</font> -<font color="#F3E651">%</font><font color="#ff0000"> cat photoalbumrc</font> -<i><font color="#ababab"># The title of the photoalbum</font></i> -<font color="#ff0000">TITLE</font><font color="#F3E651">=</font><font color="#bb00ff">'A simple Photoalbum'</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> cat photoalbumrc</font> +<i><font color="#00ff00"># The title of the photoalbum</font></i> +<font color="#ffffff">TITLE</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'A simple Photoalbum'</font> -<i><font color="#ababab"># Thumbnail height geometry</font></i> -<font color="#ff0000">THUMBHEIGHT</font><font color="#F3E651">=</font><font color="#bb00ff">300</font> -<i><font color="#ababab"># Normal geometry height (when viewing photo). Uncomment, to keep original size.</font></i> -<font color="#ff0000">HEIGHT</font><font color="#F3E651">=</font><font color="#bb00ff">1200</font> -<i><font color="#ababab"># Max previews per page.</font></i> -<font color="#ff0000">MAXPREVIEWS</font><font color="#F3E651">=</font><font color="#bb00ff">40</font> -<i><font color="#ababab"># Randomly shuffle all previews.</font></i> -<i><font color="#ababab"># SHUFFLE=yes</font></i> +<i><font color="#00ff00"># Thumbnail height geometry</font></i> +<font color="#ffffff">THUMBHEIGHT</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">300</font> +<i><font color="#00ff00"># Normal geometry height (when viewing photo). Uncomment, to keep original size.</font></i> +<font color="#ffffff">HEIGHT</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1200</font> +<i><font color="#00ff00"># Max previews per page.</font></i> +<font color="#ffffff">MAXPREVIEWS</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">40</font> +<i><font color="#00ff00"># Randomly shuffle all previews.</font></i> +<i><font color="#00ff00"># SHUFFLE=yes</font></i> -<i><font color="#ababab"># Diverse directories, need to be full paths, not relative!</font></i> -<font color="#ff0000">INCOMING_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/incoming</font> -<font color="#ff0000">DIST_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/dist</font> -<font color="#ff0000">TEMPLATE_DIR</font><font color="#F3E651">=</font><font color="#ff0000">/usr/share/photoalbum/templates/default</font> -<i><font color="#ababab">#TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font></i> +<i><font color="#00ff00"># Diverse directories, need to be full paths, not relative!</font></i> +<font color="#ffffff">INCOMING_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(pwd)</font><font color="#ffffff">/incoming</font> +<font color="#ffffff">DIST_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(pwd)</font><font color="#ffffff">/dist</font> +<font color="#ffffff">TEMPLATE_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/usr/share/photoalbum/templates/default</font> +<i><font color="#00ff00">#TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font></i> -<i><font color="#ababab"># Includes a .tar of the incoming dir in the dist, can be yes or no</font></i> -<font color="#ff0000">TARBALL_INCLUDE</font><font color="#F3E651">=</font><font color="#ff0000">yes</font> -<font color="#ff0000">TARBALL_SUFFIX</font><font color="#F3E651">=.</font><font color="#ff0000">tar</font> -<font color="#ff0000">TAR_OPTS</font><font color="#F3E651">=</font><font color="#bb00ff">'-c'</font> +<i><font color="#00ff00"># Includes a .tar of the incoming dir in the dist, can be yes or no</font></i> +<font color="#ffffff">TARBALL_INCLUDE</font><b><font color="#ee5896">=</font></b><font color="#ffffff">yes</font> +<font color="#ffffff">TARBALL_SUFFIX</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">tar</font> +<font color="#ffffff">TAR_OPTS</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'-c'</font> -<i><font color="#ababab"># Some debugging options</font></i> -<i><font color="#ababab">#set -e</font></i> -<i><font color="#ababab">#set -x</font></i> +<i><font color="#00ff00"># Some debugging options</font></i> +<i><font color="#00ff00">#set -e</font></i> +<i><font color="#00ff00">#set -x</font></i> </pre> <br /> <span>In the case for <span class='inlinecode'>irregular.ninja</span>, I changed the defaults to the following:</span><br /> @@ -174,38 +174,38 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">--- photoalbumrc 2023-10-29 21:42:00.894202045 +0200</font> -<font color="#ff0000">+++ photoalbumrc.new 2023-06-04 10:40:08.030994440 +0300</font> -<font color="#ff0000">@@ -1,23 +1,24 @@</font> -<font color="#ff0000"> # The title of the photoalbum</font> -<font color="#ff0000">-TITLE='A simple Photoalbum'</font> -<font color="#ff0000">+TITLE='Irregular.Ninja'</font> +<pre><font color="#ffffff">--- photoalbumrc 2023-10-29 21:42:00.894202045 +0200</font> +<font color="#ffffff">+++ photoalbumrc.new 2023-06-04 10:40:08.030994440 +0300</font> +<font color="#ffffff">@@ -1,23 +1,24 @@</font> +<font color="#ffffff"> # The title of the photoalbum</font> +<font color="#ffffff">-TITLE='A simple Photoalbum'</font> +<font color="#ffffff">+TITLE='Irregular.Ninja'</font> -<font color="#ff0000"> # Thumbnail height geometry</font> -<font color="#ff0000">-THUMBHEIGHT=300</font> -<font color="#ff0000">+THUMBHEIGHT=400</font> -<font color="#ff0000"> # Normal geometry height (when viewing photo). Uncomment, to keep original size.</font> -<font color="#ff0000">-HEIGHT=1200</font> -<font color="#ff0000">+HEIGHT=1800</font> -<font color="#ff0000"> # Max previews per page.</font> -<font color="#ff0000"> MAXPREVIEWS=40</font> -<font color="#ff0000">-# Randomly shuffle all previews.</font> -<font color="#ff0000">-# SHUFFLE=yes</font> -<font color="#ff0000">+# Randomly shuffle</font> -<font color="#ff0000">+SHUFFLE=yes</font> +<font color="#ffffff"> # Thumbnail height geometry</font> +<font color="#ffffff">-THUMBHEIGHT=300</font> +<font color="#ffffff">+THUMBHEIGHT=400</font> +<font color="#ffffff"> # Normal geometry height (when viewing photo). Uncomment, to keep original size.</font> +<font color="#ffffff">-HEIGHT=1200</font> +<font color="#ffffff">+HEIGHT=1800</font> +<font color="#ffffff"> # Max previews per page.</font> +<font color="#ffffff"> MAXPREVIEWS=40</font> +<font color="#ffffff">-# Randomly shuffle all previews.</font> +<font color="#ffffff">-# SHUFFLE=yes</font> +<font color="#ffffff">+# Randomly shuffle</font> +<font color="#ffffff">+SHUFFLE=yes</font> -<font color="#ff0000"> # Diverse directories, need to be full paths, not relative!</font> -<font color="#ff0000">-INCOMING_DIR=$(pwd)/incoming</font> -<font color="#ff0000">+INCOMING_DIR=~/Nextcloud/Photos/irregular.ninja</font> -<font color="#ff0000"> DIST_DIR=$(pwd)/dist</font> -<font color="#ff0000"> TEMPLATE_DIR=/usr/share/photoalbum/templates/default</font> -<font color="#ff0000"> #TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font> +<font color="#ffffff"> # Diverse directories, need to be full paths, not relative!</font> +<font color="#ffffff">-INCOMING_DIR=$(pwd)/incoming</font> +<font color="#ffffff">+INCOMING_DIR=~/Nextcloud/Photos/irregular.ninja</font> +<font color="#ffffff"> DIST_DIR=$(pwd)/dist</font> +<font color="#ffffff"> TEMPLATE_DIR=/usr/share/photoalbum/templates/default</font> +<font color="#ffffff"> #TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font> -<font color="#ff0000"> # Includes a .tar of the incoming dir in the dist, can be yes or no</font> -<font color="#ff0000">-TARBALL_INCLUDE=yes</font> -<font color="#ff0000">+TARBALL_INCLUDE=no</font> -<font color="#ff0000"> TARBALL_SUFFIX=.tar</font> -<font color="#ff0000"> TAR_OPTS='-c'</font> +<font color="#ffffff"> # Includes a .tar of the incoming dir in the dist, can be yes or no</font> +<font color="#ffffff">-TARBALL_INCLUDE=yes</font> +<font color="#ffffff">+TARBALL_INCLUDE=no</font> +<font color="#ffffff"> TARBALL_SUFFIX=.tar</font> +<font color="#ffffff"> TAR_OPTS='-c'</font> </pre> <br /> <span>So I changed the album title, adjusted some image and thumbnail dimensions, and I want all images to be randomly shuffled every time the album is generated! I also have all my photos in my Nextcloud Photo directory and don't want to copy them to the local <span class='inlinecode'>incoming</span> directory. Also, a tarball containing the whole album as a download isn't provided.</span><br /> diff --git a/gemfeed/2023-12-10-bash-golf-part-3.html b/gemfeed/2023-12-10-bash-golf-part-3.html index 538806b6..08801198 100644 --- a/gemfeed/2023-12-10-bash-golf-part-3.html +++ b/gemfeed/2023-12-10-bash-golf-part-3.html @@ -55,24 +55,24 @@ jgs^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">log ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">level</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">message</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">pid</font><font color="#F3E651">=</font><font color="#bb00ff">"$$"</font> +<b><font color="#ffffff">log ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">level</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">message</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">pid</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$$"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">callee</font><font color="#F3E651">=</font><font color="#ff0000">${FUNCNAME[1]}</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">stamp</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">Y</font><font color="#F3E651">%</font><font color="#ff0000">m</font><font color="#F3E651">%</font><font color="#ff0000">d-</font><font color="#F3E651">%</font><font color="#ff0000">H</font><font color="#F3E651">%</font><font color="#ff0000">M</font><font color="#F3E651">%</font><font color="#ff0000">S</font><font color="#F3E651">)</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">callee</font><b><font color="#ee5896">=</font></b><font color="#ffffff">${FUNCNAME[1]}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">stamp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">Y</font><b><font color="#ee5896">%</font></b><font color="#ffffff">m</font><b><font color="#ee5896">%</font></b><font color="#ffffff">d-</font><b><font color="#ee5896">%</font></b><font color="#ffffff">H</font><b><font color="#ee5896">%</font></b><font color="#ffffff">M</font><b><font color="#ee5896">%</font></b><font color="#ffffff">S</font><b><font color="#ee5896">)</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$level|$stamp|$pid|$callee|$message"</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$level|$stamp|$pid|$callee|$message"</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<font color="#ffffff">}</font> -<font color="#7bc710">at_home_friday_evening ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> log INFO </font><font color="#bb00ff">'One Peperoni Pizza, please'</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">at_home_friday_evening ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> log INFO </font><font color="#cd00ff">'One Peperoni Pizza, please'</font> +<font color="#ffffff">}</font> -<font color="#ff0000">at_home_friday_evening</font> +<font color="#ffffff">at_home_friday_evening</font> </pre> <br /> <span>The output is as follows:</span><br /> @@ -81,8 +81,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ </font><font color="#F3E651">.</font><font color="#ff0000">/logexample</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">INFO</font><font color="#F3E651">|</font><font color="#bb00ff">20231210</font><font color="#ff0000">-</font><font color="#bb00ff">082732</font><font color="#F3E651">|</font><font color="#bb00ff">123002</font><font color="#F3E651">|</font><font color="#ff0000">at_home_friday_evening</font><font color="#F3E651">|</font><font color="#ff0000">One Peperoni Pizza</font><font color="#F3E651">,</font><font color="#ff0000"> please</font> +<pre><font color="#ffffff">❯ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/logexample</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">INFO</font><b><font color="#ee5896">|</font></b><font color="#ff00ff">20231210</font><font color="#ffffff">-</font><font color="#ff00ff">082732</font><b><font color="#ee5896">|</font></b><font color="#ff00ff">123002</font><b><font color="#ee5896">|</font></b><font color="#ffffff">at_home_friday_evening</font><b><font color="#ee5896">|</font></b><font color="#ffffff">One Peperoni Pizza</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> please</font> </pre> <br /> <h2 style='display: inline' id='--'><span class='inlinecode'>:(){ :|:& };:</span></h2><br /> @@ -116,18 +116,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> - -<font color="#7bc710">outer()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><font color="#7bc710">inner()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Intel inside!'</font> -<font color="#ff0000"> }</font> -<font color="#ff0000"> inner</font> -<font color="#ff0000">}</font> - -<font color="#ff0000">inner</font> -<font color="#ff0000">outer</font> -<font color="#ff0000">inner</font> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> + +<b><font color="#ffffff">outer()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#ffffff">inner()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Intel inside!'</font> +<font color="#ffffff"> }</font> +<font color="#ffffff"> inner</font> +<font color="#ffffff">}</font> + +<font color="#ffffff">inner</font> +<font color="#ffffff">outer</font> +<font color="#ffffff">inner</font> </pre> <br /> <span>And let's execute it:</span><br /> @@ -145,26 +145,26 @@ Intel inside! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> - -<font color="#7bc710">outer1()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><font color="#7bc710">inner()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Intel inside!'</font> -<font color="#ff0000"> }</font> -<font color="#ff0000"> inner</font> -<font color="#ff0000">}</font> - -<font color="#7bc710">outer2()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><font color="#7bc710">inner()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Wintel inside!'</font> -<font color="#ff0000"> }</font> -<font color="#ff0000"> inner</font> -<font color="#ff0000">}</font> - -<font color="#ff0000">outer1</font> -<font color="#ff0000">inner</font> -<font color="#ff0000">outer2</font> -<font color="#ff0000">inner</font> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> + +<b><font color="#ffffff">outer1()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#ffffff">inner()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Intel inside!'</font> +<font color="#ffffff"> }</font> +<font color="#ffffff"> inner</font> +<font color="#ffffff">}</font> + +<b><font color="#ffffff">outer2()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#ffffff">inner()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Wintel inside!'</font> +<font color="#ffffff"> }</font> +<font color="#ffffff"> inner</font> +<font color="#ffffff">}</font> + +<font color="#ffffff">outer1</font> +<font color="#ffffff">inner</font> +<font color="#ffffff">outer2</font> +<font color="#ffffff">inner</font> </pre> <br /> <span>And let's run it:</span><br /> @@ -185,14 +185,14 @@ Wintel inside! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">some_expensive_operations()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Doing expensive operations with '$1' from pid $$"</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">some_expensive_operations()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Doing expensive operations with '$1' from pid $$"</font> +<font color="#ffffff">}</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> {</font><font color="#bb00ff">0</font><font color="#F3E651">..</font><font color="#bb00ff">9</font><font color="#ff0000">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> echo </font><font color="#ff0000">$i</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> xargs -P</font><font color="#bb00ff">10</font><font color="#ff0000"> -I{} bash -c </font><font color="#bb00ff">'some_expensive_operations "{}"'</font> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> {</font><font color="#ff00ff">0</font><b><font color="#ee5896">..</font></b><font color="#ff00ff">9</font><font color="#ffffff">}</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> echo </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> xargs -P</font><font color="#ff00ff">10</font><font color="#ffffff"> -I{} bash -c </font><font color="#cd00ff">'some_expensive_operations "{}"'</font> </pre> <br /> <span>We try here to run ten parallel processes; each of them should run the <span class='inlinecode'>some_expensive_operations</span> function with a different argument. The arguments are provided to <span class='inlinecode'>xargs</span> through <span class='inlinecode'>STDIN</span> one per line. When executed, we get this:</span><br /> @@ -217,15 +217,15 @@ bash: line 1: some_expensive_operations: command not found by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">some_expensive_operations()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Doing expensive operations with '$1' from pid $$"</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> -f some_expensive_operations</font> +<b><font color="#ffffff">some_expensive_operations()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Doing expensive operations with '$1' from pid $$"</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> -f some_expensive_operations</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> {</font><font color="#bb00ff">0</font><font color="#F3E651">..</font><font color="#bb00ff">9</font><font color="#ff0000">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> echo </font><font color="#ff0000">$i</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> xargs -P</font><font color="#bb00ff">10</font><font color="#ff0000"> -I{} bash -c </font><font color="#bb00ff">'some_expensive_operations "{}"'</font> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> {</font><font color="#ff00ff">0</font><b><font color="#ee5896">..</font></b><font color="#ff00ff">9</font><font color="#ffffff">}</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> echo </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> xargs -P</font><font color="#ff00ff">10</font><font color="#ffffff"> -I{} bash -c </font><font color="#cd00ff">'some_expensive_operations "{}"'</font> </pre> <br /> <span>When we run this now, we get:</span><br /> @@ -250,19 +250,19 @@ Doing expensive operations with '9' from pid 132840 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">some_other_function()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$1"</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">some_other_function()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$1"</font> +<font color="#ffffff">}</font> -<font color="#7bc710">some_expensive_operations()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> some_other_function </font><font color="#bb00ff">"Doing expensive operations with '$1' from pid $$"</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> -f some_expensive_operations</font> +<b><font color="#ffffff">some_expensive_operations()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> some_other_function </font><font color="#cd00ff">"Doing expensive operations with '$1' from pid $$"</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> -f some_expensive_operations</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> {</font><font color="#bb00ff">0</font><font color="#F3E651">..</font><font color="#bb00ff">9</font><font color="#ff0000">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> echo </font><font color="#ff0000">$i</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> xargs -P</font><font color="#bb00ff">10</font><font color="#ff0000"> -I{} bash -c </font><font color="#bb00ff">'some_expensive_operations "{}"'</font> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> {</font><font color="#ff00ff">0</font><b><font color="#ee5896">..</font></b><font color="#ff00ff">9</font><font color="#ffffff">}</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> echo </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> xargs -P</font><font color="#ff00ff">10</font><font color="#ffffff"> -I{} bash -c </font><font color="#cd00ff">'some_expensive_operations "{}"'</font> </pre> <br /> <span>... because <span class='inlinecode'>some_other_function</span> isn't exported! You will also need to add an <span class='inlinecode'>export -f some_other_function</span>!</span><br /> @@ -275,22 +275,22 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> - -<font color="#7bc710">foo()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">bar </font><i><font color="#ababab"># Declare local/dynamic variable</font></i> -<font color="#ff0000"> bar</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$foo"</font> -<font color="#ff0000">}</font> - -<font color="#7bc710">bar()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$foo"</font> -<font color="#ff0000"> </font><font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">baz</font> -<font color="#ff0000">}</font> - -<font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">foo </font><i><font color="#ababab"># Declare global variable</font></i> -<font color="#ff0000">foo </font><i><font color="#ababab"># Call function foo</font></i> -<font color="#ff0000">echo </font><font color="#bb00ff">"$foo"</font> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> + +<b><font color="#ffffff">foo()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">bar </font><i><font color="#00ff00"># Declare local/dynamic variable</font></i> +<font color="#ffffff"> bar</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$foo"</font> +<font color="#ffffff">}</font> + +<b><font color="#ffffff">bar()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$foo"</font> +<font color="#ffffff"> </font><font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">baz</font> +<font color="#ffffff">}</font> + +<font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">foo </font><i><font color="#00ff00"># Declare global variable</font></i> +<font color="#ffffff">foo </font><i><font color="#00ff00"># Call function foo</font></i> +<font color="#ffffff">echo </font><font color="#cd00ff">"$foo"</font> </pre> <br /> <span>Let's pause a minute. What do you think the output would be?</span><br /> @@ -315,34 +315,34 @@ foo by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -r </font><font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">foo</font> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -r </font><font color="#ff0000">bar</font><font color="#F3E651">=</font><font color="#ff0000">bar</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -r </font><font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">foo</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -r </font><font color="#ffffff">bar</font><b><font color="#ee5896">=</font></b><font color="#ffffff">bar</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> bar </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<b><font color="#00ffff">fi</font></b> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok2a</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok2a</font> +<b><font color="#00ffff">fi</font></b> -<font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> echo ok2b</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> echo ok2b</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">]];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok3a</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">]];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok3a</font> +<b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">]]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> echo ok3b</font> +<font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">]]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> echo ok3b</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> bar</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok4a</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> bar</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok4a</font> +<b><font color="#00ffff">fi</font></b> -<b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> bar </font><font color="#F3E651">&&</font><font color="#ff0000"> echo ok4b</font> +<b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> echo ok4b</font> </pre> <br /> <span>The output we get is:</span><br /> @@ -366,18 +366,18 @@ ok4b by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<i><font color="#ababab"># Single line comment</font></i> +<i><font color="#00ff00"># Single line comment</font></i> -<i><font color="#ababab"># These are two single line</font></i> -<i><font color="#ababab"># comments one after another</font></i> +<i><font color="#00ff00"># These are two single line</font></i> +<i><font color="#00ff00"># comments one after another</font></i> -<font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651"><<</font><font color="#ff0000">COMMENT</font> -<font color="#ff0000">This is another way a</font> -<font color="#ff0000">multi line comment</font> -<font color="#ff0000">could be written</font><font color="#F3E651">!</font> -<font color="#ff0000">COMMENT</font> +<b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">COMMENT</font> +<font color="#ffffff">This is another way a</font> +<font color="#ffffff">multi line comment</font> +<font color="#ffffff">could be written</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">COMMENT</font> </pre> <br /> <span>I will not demonstrate the execution of this script, as it won't print anything! It's obviously not the most pretty way of commenting on your code, but it could sometimes be handy!</span><br /> @@ -390,11 +390,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#ff0000">echo foo</font> -<font color="#ff0000">echo echo baz </font><font color="#F3E651">>></font><font color="#ff0000"> </font><font color="#ff0000">$0</font> -<font color="#ff0000">echo bar</font> +<font color="#ffffff">echo foo</font> +<font color="#ffffff">echo echo baz </font><b><font color="#ee5896">>></font></b><font color="#ffffff"> </font><font color="#ffffff">$0</font> +<font color="#ffffff">echo bar</font> </pre> <br /> <span>When it is run, it will do:</span><br /> diff --git a/gemfeed/2024-01-13-one-reason-why-i-love-openbsd.html b/gemfeed/2024-01-13-one-reason-why-i-love-openbsd.html index bd4584b1..8a05e22a 100644 --- a/gemfeed/2024-01-13-one-reason-why-i-love-openbsd.html +++ b/gemfeed/2024-01-13-one-reason-why-i-love-openbsd.html @@ -39,8 +39,8 @@ SSFISHKISSFISHKISSFISHKISSFISHKIS SFIS by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ doas installboot sd0 </font><i><font color="#ababab"># Update the bootloader (not for every upgrade required)</font></i> -<font color="#ff0000">$ doas sysupgrade </font><i><font color="#ababab"># Update all binaries (including Kernel)</font></i> +<pre><font color="#ffffff">$ doas installboot sd0 </font><i><font color="#00ff00"># Update the bootloader (not for every upgrade required)</font></i> +<font color="#ffffff">$ doas sysupgrade </font><i><font color="#00ff00"># Update all binaries (including Kernel)</font></i> </pre> <br /> <span><span class='inlinecode'>sysupgrade</span> downloaded and upgraded to the next release and rebooted the system. After the reboot, I run:</span><br /> @@ -49,9 +49,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ doas sysmerge </font><i><font color="#ababab"># Update system configuration files</font></i> -<font color="#ff0000">$ doas pkg_add -u </font><i><font color="#ababab"># Update all packages</font></i> -<font color="#ff0000">$ doas reboot </font><i><font color="#ababab"># Just in case, reboot one more time</font></i> +<pre><font color="#ffffff">$ doas sysmerge </font><i><font color="#00ff00"># Update system configuration files</font></i> +<font color="#ffffff">$ doas pkg_add -u </font><i><font color="#00ff00"># Update all packages</font></i> +<font color="#ffffff">$ doas reboot </font><i><font color="#00ff00"># Just in case, reboot one more time</font></i> </pre> <br /> <span>That's it! Took me around 5 minutes in total! No issues, only these few comands, only 5 minutes! It just works! No problems, no conflicts, no tons (actually none) config file merge conflicts.</span><br /> diff --git a/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html b/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html index 18be2c59..a32c2689 100644 --- a/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html +++ b/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html @@ -98,38 +98,38 @@ _____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. ksh under-water (((\'/ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/bin/ksh</font></i> +<pre><i><font color="#00ff00">#!/bin/ksh</font></i> -<font color="#ff0000">ZONES_DIR</font><font color="#F3E651">=</font><font color="#ff0000">/var/nsd/zones/master</font><font color="#F3E651">/</font> -<font color="#ff0000">DEFAULT_MASTER</font><font color="#F3E651">=</font><font color="#ff0000">fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">DEFAULT_STANDBY</font><font color="#F3E651">=</font><font color="#ff0000">blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ffffff">ZONES_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/var/nsd/zones/master</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff">DEFAULT_MASTER</font><b><font color="#ee5896">=</font></b><font color="#ffffff">fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">DEFAULT_STANDBY</font><b><font color="#ee5896">=</font></b><font color="#ffffff">blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#7bc710">determine_master_and_standby ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$DEFAULT_MASTER</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$DEFAULT_STANDBY</font> +<b><font color="#ffffff">determine_master_and_standby ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$DEFAULT_MASTER</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$DEFAULT_STANDBY</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> ftp -</font><font color="#bb00ff">4</font><font color="#ff0000"> -o - https</font><font color="#F3E651">://</font><font color="#ff0000">$master</font><font color="#ff0000">/index</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q </font><font color="#bb00ff">"Welcome to $master"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"https://$master/index.txt IPv4 health check failed"</font> -<font color="#ff0000"> </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><b><font color="#ffffff">elif</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> ftp -</font><font color="#bb00ff">6</font><font color="#ff0000"> -o - https</font><font color="#F3E651">://</font><font color="#ff0000">$master</font><font color="#ff0000">/index</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q </font><font color="#bb00ff">"Welcome to $master"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"https://$master/index.txt IPv6 health check failed"</font> -<font color="#ff0000"> </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">$health_ok</font><font color="#ff0000"> -eq </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">tmp</font><font color="#F3E651">=</font><font color="#ff0000">$master</font> -<font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$standby</font> -<font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$tmp</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> ftp -</font><font color="#ff00ff">4</font><font color="#ffffff"> -o - https</font><b><font color="#ee5896">://</font></b><font color="#ffffff">$master</font><font color="#ffffff">/index</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q </font><font color="#cd00ff">"Welcome to $master"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"https://$master/index.txt IPv4 health check failed"</font> +<font color="#ffffff"> </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#00ffff">elif</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> ftp -</font><font color="#ff00ff">6</font><font color="#ffffff"> -o - https</font><b><font color="#ee5896">://</font></b><font color="#ffffff">$master</font><font color="#ffffff">/index</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q </font><font color="#cd00ff">"Welcome to $master"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"https://$master/index.txt IPv6 health check failed"</font> +<font color="#ffffff"> </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">$health_ok</font><font color="#ffffff"> -eq </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">tmp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$master</font> +<font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$standby</font> +<font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$tmp</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">}</font> </pre> <br /> <span>The failover scripts looks for the <span class='inlinecode'> ; Enable failover</span> string in the DNS zone files and swaps the <span class='inlinecode'>A</span> and <span class='inlinecode'>AAAA</span> records of the DNS entries accordingly:</span><br /> @@ -138,42 +138,42 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">fishfinger$ grep failover /var/nsd/zones/master/foo</font><font color="#F3E651">.</font><font color="#ff0000">zone</font><font color="#F3E651">.</font><font color="#ff0000">zone</font> -<font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">www </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">www </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">standby </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">standby </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a01</font><font color="#F3E651">:</font><font color="#ff0000">4f8</font><font color="#F3E651">:</font><font color="#ff0000">c17</font><font color="#F3E651">:</font><font color="#ff0000">20f1</font><font color="#F3E651">::</font><font color="#bb00ff">42</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> +<pre><font color="#ffffff">fishfinger$ grep failover /var/nsd/zones/master/foo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zone</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zone</font> +<font color="#ffffff"> </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff"> </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a03</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">6000</font><b><font color="#ee5896">:</font></b><font color="#ffffff">6f67</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">624</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">www </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">www </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a03</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">6000</font><b><font color="#ee5896">:</font></b><font color="#ffffff">6f67</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">624</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">standby </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">standby </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a01</font><b><font color="#ee5896">:</font></b><font color="#ffffff">4f8</font><b><font color="#ee5896">:</font></b><font color="#ffffff">c17</font><b><font color="#ee5896">:</font></b><font color="#ffffff">20f1</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">42</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">transform ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> sed -E </font><font color="#bb00ff">'</font> -<font color="#bb00ff"> /IN A .*; Enable failover/ {</font> -<font color="#bb00ff"> /^standby/! {</font> -<font color="#bb00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN A '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/master_a</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> /^standby/ {</font> -<font color="#bb00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN A '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/standby_a</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> /IN AAAA .*; Enable failover/ {</font> -<font color="#bb00ff"> /^standby/! {</font> -<font color="#bb00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN AAAA '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/master_aaaa</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> /^standby/ {</font> -<font color="#bb00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN AAAA '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/standby_aaaa</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> / ; serial/ {</font> -<font color="#bb00ff"> s/^( +) ([0-9]+) .*; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> '</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">s</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> '</font> -<font color="#ff0000">}</font> +<pre><b><font color="#ffffff">transform ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> sed -E </font><font color="#cd00ff">'</font> +<font color="#cd00ff"> /IN A .*; Enable failover/ {</font> +<font color="#cd00ff"> /^standby/! {</font> +<font color="#cd00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN A '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/master_a</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> /^standby/ {</font> +<font color="#cd00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN A '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/standby_a</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> /IN AAAA .*; Enable failover/ {</font> +<font color="#cd00ff"> /^standby/! {</font> +<font color="#cd00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN AAAA '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/master_aaaa</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> /^standby/ {</font> +<font color="#cd00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN AAAA '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/standby_aaaa</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> / ; serial/ {</font> +<font color="#cd00ff"> s/^( +) ([0-9]+) .*; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> '</font><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">s</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> '</font> +<font color="#ffffff">}</font> </pre> <br /> <span>After the failover, the script reloads <span class='inlinecode'>nsd</span> and performs a sanity check to see if DNS still works. If not, a rollback will be performed:</span><br /> @@ -182,48 +182,48 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#! Race condition !#</font></i> -<font color="#ff0000"> </font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#ff0000">$zone_file</font> -<b><font color="#ffffff">fi</font></b> +<pre><i><font color="#00ff00">#! Race condition !#</font></i> +<font color="#ffffff"> </font> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><font color="#ffffff">$zone_file</font> +<b><font color="#00ffff">fi</font></b> -<font color="#ff0000">cat </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> transform </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font> +<font color="#ffffff">cat </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> transform </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font> -<font color="#ff0000">grep -v </font><font color="#bb00ff">' ; serial'</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font> -<font color="#ff0000">grep -v </font><font color="#bb00ff">' ; serial'</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">old</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font> +<font color="#ffffff">grep -v </font><font color="#cd00ff">' ; serial'</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font> +<font color="#ffffff">grep -v </font><font color="#cd00ff">' ; serial'</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">old</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font> -<font color="#ff0000">echo </font><font color="#bb00ff">"Has zone $zone_file changed?"</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> diff -u </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">old</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"The zone $zone_file hasn't changed"</font> -<font color="#ff0000"> rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.*.</font><font color="#ff0000">tmp</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<b><font color="#ffffff">fi</font></b> +<font color="#ffffff">echo </font><font color="#cd00ff">"Has zone $zone_file changed?"</font> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> diff -u </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">old</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"The zone $zone_file hasn't changed"</font> +<font color="#ffffff"> rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.*.</font></b><font color="#ffffff">tmp</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<b><font color="#00ffff">fi</font></b> -<font color="#ff0000">cp </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak</font> -<font color="#ff0000">mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$zone_file</font> -<font color="#ff0000">rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.*.</font><font color="#ff0000">tmp</font> -<font color="#ff0000">echo </font><font color="#bb00ff">"Reloading nsd"</font> -<font color="#ff0000">nsd-control reload</font> +<font color="#ffffff">cp </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak</font> +<font color="#ffffff">mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$zone_file</font> +<font color="#ffffff">rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.*.</font></b><font color="#ffffff">tmp</font> +<font color="#ffffff">echo </font><font color="#cd00ff">"Reloading nsd"</font> +<font color="#ffffff">nsd-control reload</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> zone_is_ok </font><font color="#ff0000">$zone</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Rolling back $zone_file changes"</font> -<font color="#ff0000"> cp </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">invalid</font> -<font color="#ff0000"> mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#ff0000">$zone_file</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Reloading nsd"</font> -<font color="#ff0000"> nsd-control reload</font> -<font color="#ff0000"> zone_is_ok </font><font color="#ff0000">$zone</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">3</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> zone_is_ok </font><font color="#ffffff">$zone</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Rolling back $zone_file changes"</font> +<font color="#ffffff"> cp </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">invalid</font> +<font color="#ffffff"> mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><font color="#ffffff">$zone_file</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Reloading nsd"</font> +<font color="#ffffff"> nsd-control reload</font> +<font color="#ffffff"> zone_is_ok </font><font color="#ffffff">$zone</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font> +<b><font color="#00ffff">fi</font></b> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> cleanup </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> invalid bak</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">$cleanup</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">$cleanup</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<b><font color="#ffffff">done</font></b> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> cleanup </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> invalid bak</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">$cleanup</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">$cleanup</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<b><font color="#00ffff">done</font></b> -<font color="#ff0000">echo </font><font color="#bb00ff">"Failover of zone $zone to $MASTER completed"</font> -<b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font> +<font color="#ffffff">echo </font><font color="#cd00ff">"Failover of zone $zone to $MASTER completed"</font> +<b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> </pre> <br /> <span>A non-zero return code (here, 3 when a rollback and 1 when a DNS failover was performed) will cause CRON to send an E-Mail with the whole script output.</span><br /> @@ -280,13 +280,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Weekly auto-failover for Let's Encrypt automation</font></i> -<b><font color="#ffffff">local</font></b><font color="#ff0000"> -i -r </font><font color="#ff0000">week_of_the_year</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">U</font><font color="#F3E651">)</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#F3E651">(</font><font color="#ff0000"> week_of_the_year </font><font color="#F3E651">%</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#F3E651">))</font><font color="#ff0000"> -eq </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">tmp</font><font color="#F3E651">=</font><font color="#ff0000">$master</font> -<font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$standby</font> -<font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$tmp</font> -<b><font color="#ffffff">fi</font></b> +<pre><i><font color="#00ff00"># Weekly auto-failover for Let's Encrypt automation</font></i> +<b><font color="#00ffff">local</font></b><font color="#ffffff"> -i -r </font><font color="#ffffff">week_of_the_year</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">U</font><b><font color="#ee5896">)</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">$(</font><b><font color="#ee5896">(</font></b><font color="#ffffff"> week_of_the_year </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><b><font color="#ee5896">))</font></b><font color="#ffffff"> -eq </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">tmp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$master</font> +<font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$standby</font> +<font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$tmp</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>This way, a DNS failover is performed weekly so that the ACME automation can update the Let's Encrypt certificates (for master and standby) before they expire on each VM.</span><br /> diff --git a/gemfeed/2024-05-03-projects-i-currently-dont-have-time-for.html b/gemfeed/2024-05-03-projects-i-currently-dont-have-time-for.html index 3cc4bc40..ba1cb4b2 100644 --- a/gemfeed/2024-05-03-projects-i-currently-dont-have-time-for.html +++ b/gemfeed/2024-05-03-projects-i-currently-dont-have-time-for.html @@ -220,12 +220,12 @@ Art by Laura Brown by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">Cluster </font><font color="#F3E651">:</font><font color="#ff0000">UK</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">:</font><font color="#ff0000">uk01 </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> Customer</font><font color="#F3E651">.</font><font color="#ff0000">C1A1</font><font color="#F3E651">.</font><font color="#ff0000">segments</font><font color="#F3E651">.</font><font color="#ff0000">volumes</font><font color="#F3E651">.</font><font color="#ff0000">each </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">volume</font><font color="#F3E651">|</font> -<font color="#ff0000"> puts volume</font><font color="#F3E651">.</font><font color="#ff0000">usage_stats</font> -<font color="#ff0000"> volume</font><font color="#F3E651">.</font><font color="#ff0000">move_off! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> volume</font><font color="#F3E651">.</font><font color="#ff0000">over_subscribed?</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<b><font color="#ffffff">end</font></b> +<pre><font color="#ffffff">Cluster </font><b><font color="#ee5896">:</font></b><font color="#ffffff">UK</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">:</font></b><font color="#ffffff">uk01 </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> Customer</font><b><font color="#ee5896">.</font></b><font color="#ffffff">C1A1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">segments</font><b><font color="#ee5896">.</font></b><font color="#ffffff">volumes</font><b><font color="#ee5896">.</font></b><font color="#ffffff">each </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">volume</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> puts volume</font><b><font color="#ee5896">.</font></b><font color="#ffffff">usage_stats</font> +<font color="#ffffff"> volume</font><b><font color="#ee5896">.</font></b><font color="#ffffff">move_off! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> volume</font><b><font color="#ee5896">.</font></b><font color="#ffffff">over_subscribed?</font> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<b><font color="#00ffff">end</font></b> </pre> <br /> <span>I am abandoning this project because my workplace has stopped the annual pet project competition, and I have other more important projects to work on at the moment.</span><br /> diff --git a/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html b/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html index d2050ad0..c284fd57 100644 --- a/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html +++ b/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html @@ -90,13 +90,13 @@ jgs `-=========-`() by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tm</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tl</font><font color="#F3E651">=</font><font color="#bb00ff">'tmux list-sessions'</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tn</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">new</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ta</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">attach</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tx</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">remote</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ts</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">search</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tssh</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">cluster_ssh</font> +<pre><b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tm</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tl</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'tmux list-sessions'</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tn</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ta</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">attach</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tx</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">remote</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ts</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">search</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tssh</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">cluster_ssh</font> </pre> <br /> <span>Note all <span class='inlinecode'>tmux::...</span>; those are custom shell functions doing certain things, and they aren't part of the Tmux distribution. But let's run through every aliases one by one. </span><br /> @@ -111,23 +111,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Create new session and if alread exists attach to it</font></i> -<font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">new ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">readonly</font></b><font color="#ff0000"> </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">date</font><font color="#F3E651">=</font><font color="#ff0000">date</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> where gdate </font><font color="#F3E651">&></font><font color="#ff0000">/dev/null</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><font color="#ff0000">date</font><font color="#F3E651">=</font><font color="#ff0000">gdate</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<pre><i><font color="#00ff00"># Create new session and if alread exists attach to it</font></i> +<font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">new ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">readonly</font></b><font color="#ffffff"> </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">date</font><b><font color="#ee5896">=</font></b><font color="#ffffff">date</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> where gdate </font><b><font color="#ee5896">&></font></b><font color="#ffffff">/dev/null</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><font color="#ffffff">date</font><b><font color="#ee5896">=</font></b><font color="#ffffff">gdate</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">cleanup_default</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -z </font><font color="#bb00ff">"$session"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">new T</font><font color="#ff0000">$($date</font><font color="#ff0000"> </font><font color="#F3E651">+%</font><font color="#ff0000">s</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux new-session -d -s </font><font color="#ff0000">$session</font> -<font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> attach-session -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> switch-client -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tn</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">new</font> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">cleanup_default</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$session"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new T</font><font color="#ffffff">$($date</font><font color="#ffffff"> </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux new-session -d -s </font><font color="#ffffff">$session</font> +<font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> attach-session -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> switch-client -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tn</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new</font> </pre> <br /> <span>There is a lot going on here. Let's have a detailed look at what it is doing. As a note, the function relies on GNU Date, so MacOS is looking for the <span class='inlinecode'>gdate</span> commands to be available. Otherwise, it will fall back to <span class='inlinecode'>date</span>. You need to install GNU Date for Mac, as it isn't installed by default there. As I use Fedora Linux on my personal Laptop and a MacBook for work, I have to make it work for both.</span><br /> @@ -142,14 +142,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">cleanup_default ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> s</font> -<font color="#ff0000"> tmux list-sessions </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">'^T.*: '</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep -F -v attached </font><font color="#F3E651">|</font> -<font color="#ff0000"> cut -d</font><font color="#F3E651">:</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><b><font color="#ffffff">while</font></b><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> -r s</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Killing $s"</font> -<font color="#ff0000"> tmux kill-session -t </font><font color="#bb00ff">"$s"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> -<font color="#ff0000">}</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">cleanup_default ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> s</font> +<font color="#ffffff"> tmux list-sessions </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#cd00ff">'^T.*: '</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -F -v attached </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> cut -d</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#00ffff">while</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> -r s</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Killing $s"</font> +<font color="#ffffff"> tmux kill-session -t </font><font color="#cd00ff">"$s"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> +<font color="#ffffff">}</font> </pre> <br /> <span>The cleanup function kills all open Tmux sessions that haven't been renamed properly yet—but only if they aren't attached (e.g., don't run in the foreground in any terminal). Cleaning them up automatically keeps my Tmux sessions as neat and tidy as possible. </span><br /> @@ -166,16 +166,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">attach ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">readonly</font></b><font color="#ff0000"> </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">attach ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">readonly</font></b><font color="#ffffff"> </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -z </font><font color="#bb00ff">"$session"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux attach-session </font><font color="#F3E651">||</font><font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">new</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux attach-session -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">new </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ta</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">attach</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$session"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux attach-session </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux attach-session -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ta</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">attach</font> </pre> <br /> <span>If no session is specified (as the argument of the function), it will try to attach to the first open session. If no Tmux server is running, it will create a new one with <span class='inlinecode'>tmux::new</span>. Otherwise, with a session name given as the argument, it will attach to it. If unsuccessful (e.g., the session doesn't exist), it will be created and attached to.</span><br /> @@ -188,12 +188,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">remote ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">readonly</font></b><font color="#ff0000"> </font><font color="#ff0000">server</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> -<font color="#ff0000"> tmux new -s </font><font color="#ff0000">$server</font><font color="#ff0000"> </font><font color="#bb00ff">"ssh -t $server 'tmux attach-session || tmux'"</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> tmux attach-session -d -t </font><font color="#ff0000">$server</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tr</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">remote</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">remote ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">readonly</font></b><font color="#ffffff"> </font><font color="#ffffff">server</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> +<font color="#ffffff"> tmux new -s </font><font color="#ffffff">$server</font><font color="#ffffff"> </font><font color="#cd00ff">"ssh -t $server 'tmux attach-session || tmux'"</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> tmux attach-session -d -t </font><font color="#ffffff">$server</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tr</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">remote</font> </pre> <br /> <h3 style='display: inline' id='change-of-the-tmux-prefix-for-better-nesting'>Change of the Tmux prefix for better nesting</h3><br /> @@ -216,15 +216,15 @@ set-option -g prefix C-g by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">search ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">tmux list-sessions </font><font color="#F3E651">|</font><font color="#ff0000"> fzf </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">:</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -z </font><font color="#bb00ff">"$TMUX"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux attach-session -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux switch -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ts</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">search</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">search ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">tmux list-sessions </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> fzf </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$TMUX"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux attach-session -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux switch -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ts</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">search</font> </pre> <br /> <span>All it does is list all currently open sessions in <span class='inlinecode'>fzf</span>, where one of them can be searched and selected through fuzzy find, and then either switch (if already inside a session) to the other session or attach to the other session (if not yet in Tmux).</span><br /> @@ -251,15 +251,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">cluster_ssh ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#bb00ff">"$1"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">tssh_from_file </font><font color="#ff0000">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">cluster_ssh ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#cd00ff">"$1"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">tssh_from_file </font><font color="#ffffff">$1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">tssh_from_argument </font><font color="#ff0000">$@</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tssh</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">cluster_ssh</font> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">tssh_from_argument </font><font color="#ffffff">$@</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tssh</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">cluster_ssh</font> </pre> <br /> <span>This function is just a wrapper around the more complex <span class='inlinecode'>tmux::tssh_from_file</span> and <span class='inlinecode'>tmux::tssh_from_argument</span> functions, as you have learned already. Most of the magic happens there.</span><br /> @@ -272,23 +272,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">tssh_from_argument ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">first_server</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">tssh_from_argument ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">first_server</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> -<font color="#ff0000"> tmux new-session -d -s </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#bb00ff">"ssh -t $first_server"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> tmux list-session </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">"^$session:"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Could not create session $session"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<font color="#ffffff"> tmux new-session -d -s </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><font color="#cd00ff">"ssh -t $first_server"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> tmux list-session </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#cd00ff">"^$session:"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Could not create session $session"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> server </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#bb00ff">"${@[@]}"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> tmux split-window -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#bb00ff">"tmux select-layout tiled; ssh -t $server"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> server </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><font color="#cd00ff">"${@[@]}"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> tmux split-window -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><font color="#cd00ff">"tmux select-layout tiled; ssh -t $server"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> -<font color="#ff0000"> tmux setw -t </font><font color="#ff0000">$session</font><font color="#ff0000"> synchronize-panes on</font> -<font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> attach-session -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> switch-client -t </font><font color="#ff0000">$session</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> tmux setw -t </font><font color="#ffffff">$session</font><font color="#ffffff"> synchronize-panes on</font> +<font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> attach-session -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> switch-client -t </font><font color="#ffffff">$session</font> +<font color="#ffffff">}</font> </pre> <br /> <span>It expects at least two arguments. The first argument is the session name to create for the clustered SSH session. All other arguments are server hostnames or FQDNs to which to connect. The first one is used to make the initial session. All remaining ones are added to that session with <span class='inlinecode'>tmux split-window -t $session...</span>. At the end, we enable synchronized panes by default, so whenever you type, the commands will be sent to every SSH connection, thus allowing the neat ClusterSSH feature to run commands on multiple servers simultaneously. Once done, we attach (or switch, if already in Tmux) to it.</span><br /> @@ -308,12 +308,12 @@ bind-key P setw synchronize-panes on by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">tssh_from_file ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">serverlist</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">basename </font><font color="#ff0000">$serverlist</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">.</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#F3E651">)</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">tssh_from_file ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">serverlist</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">basename </font><font color="#ffffff">$serverlist</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">.</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">tssh_from_argument </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#ff0000">awk </font><font color="#bb00ff">'{ print $1} '</font><font color="#ff0000"> </font><font color="#ff0000">$serverlist</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> sed </font><font color="#bb00ff">'s/.lan./.lan/g'</font><font color="#F3E651">)</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">tssh_from_argument </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><font color="#ffffff">$(</font><font color="#ffffff">awk </font><font color="#cd00ff">'{ print $1} '</font><font color="#ffffff"> </font><font color="#ffffff">$serverlist</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> sed </font><font color="#cd00ff">'s/.lan./.lan/g'</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">}</font> </pre> <br /> <h3 style='display: inline' id='tssh-examples'><span class='inlinecode'>tssh</span> examples</h3><br /> diff --git a/gemfeed/2024-07-05-random-weird-things.html b/gemfeed/2024-07-05-random-weird-things.html index 58f284ec..7f92d609 100644 --- a/gemfeed/2024-07-05-random-weird-things.html +++ b/gemfeed/2024-07-05-random-weird-things.html @@ -55,52 +55,52 @@ WHOA!! ( o.o ) by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ traceroute -m </font><font color="#bb00ff">60</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse</font> -<font color="#ff0000">traceroute to bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.157</font><font color="#F3E651">),</font><font color="#ff0000"> </font><font color="#bb00ff">60</font><font color="#ff0000"> hops max</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">60</font><font color="#ff0000"> byte packets</font> -<font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> _gateway </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">5.237</font><font color="#ff0000"> ms </font><font color="#bb00ff">5.264</font><font color="#ff0000"> ms </font><font color="#bb00ff">6.009</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">77</font><font color="#ff0000">-</font><font color="#bb00ff">85</font><font color="#ff0000">-</font><font color="#bb00ff">0</font><font color="#ff0000">-</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">ip</font><font color="#F3E651">.</font><font color="#ff0000">btc-net</font><font color="#F3E651">.</font><b><font color="#ffffff">bg</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">77.85</font><font color="#F3E651">.</font><font color="#bb00ff">0.2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">8.753</font><font color="#ff0000"> ms </font><font color="#bb00ff">7.112</font><font color="#ff0000"> ms </font><font color="#bb00ff">8.336</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#ff0000"> </font><font color="#bb00ff">212</font><font color="#ff0000">-</font><font color="#bb00ff">39</font><font color="#ff0000">-</font><font color="#bb00ff">69</font><font color="#ff0000">-</font><font color="#bb00ff">103</font><font color="#F3E651">.</font><font color="#ff0000">ip</font><font color="#F3E651">.</font><font color="#ff0000">btc-net</font><font color="#F3E651">.</font><b><font color="#ffffff">bg</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">212.39</font><font color="#F3E651">.</font><font color="#bb00ff">69.103</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">9.434</font><font color="#ff0000"> ms </font><font color="#bb00ff">9.268</font><font color="#ff0000"> ms </font><font color="#bb00ff">9.986</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> xe-</font><font color="#bb00ff">1</font><font color="#ff0000">-</font><font color="#bb00ff">2</font><font color="#ff0000">-</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">mpr1</font><font color="#F3E651">.</font><font color="#ff0000">fra4</font><font color="#F3E651">.</font><font color="#ff0000">de</font><font color="#F3E651">.</font><font color="#ff0000">above</font><font color="#F3E651">.</font><font color="#ff0000">net </font><font color="#F3E651">(</font><font color="#bb00ff">80.81</font><font color="#F3E651">.</font><font color="#bb00ff">194.26</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">39.812</font><font color="#ff0000"> ms </font><font color="#bb00ff">39.030</font><font color="#ff0000"> ms </font><font color="#bb00ff">39.772</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">6</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> ae12</font><font color="#F3E651">.</font><font color="#ff0000">cs1</font><font color="#F3E651">.</font><font color="#ff0000">fra6</font><font color="#F3E651">.</font><font color="#ff0000">de</font><font color="#F3E651">.</font><font color="#ff0000">eth</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">26.172</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">123.576</font><font color="#ff0000"> ms </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">9</font><font color="#ff0000"> ae10</font><font color="#F3E651">.</font><font color="#ff0000">cr1</font><font color="#F3E651">.</font><font color="#ff0000">lhr15</font><font color="#F3E651">.</font><font color="#ff0000">uk</font><font color="#F3E651">.</font><font color="#ff0000">eth</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">29.17</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">119.097</font><font color="#ff0000"> ms </font><font color="#bb00ff">119.478</font><font color="#ff0000"> ms </font><font color="#bb00ff">120.767</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">10</font><font color="#ff0000"> ae2</font><font color="#F3E651">.</font><font color="#ff0000">cr1</font><font color="#F3E651">.</font><font color="#ff0000">lhr11</font><font color="#F3E651">.</font><font color="#ff0000">uk</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">24.140</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">120.398</font><font color="#ff0000"> ms </font><font color="#bb00ff">121.147</font><font color="#ff0000"> ms </font><font color="#bb00ff">120.948</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">11</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#bb00ff">12</font><font color="#ff0000"> ae25</font><font color="#F3E651">.</font><font color="#ff0000">mpr1</font><font color="#F3E651">.</font><font color="#ff0000">yyz1</font><font color="#F3E651">.</font><font color="#ff0000">ca</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">23.117</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">145.072</font><font color="#ff0000"> ms </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#bb00ff">181.773</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">13</font><font color="#ff0000"> ae5</font><font color="#F3E651">.</font><font color="#ff0000">mpr1</font><font color="#F3E651">.</font><font color="#ff0000">tor3</font><font color="#F3E651">.</font><font color="#ff0000">ca</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">23.118</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">168.239</font><font color="#ff0000"> ms </font><font color="#bb00ff">168.158</font><font color="#ff0000"> ms </font><font color="#bb00ff">168.137</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">14</font><font color="#ff0000"> </font><font color="#bb00ff">64.124</font><font color="#F3E651">.</font><font color="#bb00ff">217.237</font><font color="#F3E651">.</font><font color="#ff0000">IDIA-</font><font color="#bb00ff">265104</font><font color="#ff0000">-ZYO</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.124</font><font color="#F3E651">.</font><font color="#bb00ff">217.237</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">168.026</font><font color="#ff0000"> ms </font><font color="#bb00ff">167.999</font><font color="#ff0000"> ms </font><font color="#bb00ff">165.451</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">15</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#bb00ff">16</font><font color="#ff0000"> t00</font><font color="#F3E651">.</font><font color="#ff0000">toroc1</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">.</font><font color="#ff0000">ca</font><font color="#F3E651">.</font><font color="#ff0000">sn11</font><font color="#F3E651">.</font><font color="#ff0000">net </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">204.2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">131.598</font><font color="#ff0000"> ms </font><font color="#bb00ff">131.308</font><font color="#ff0000"> ms </font><font color="#bb00ff">131.482</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">17</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.130</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">131.430</font><font color="#ff0000"> ms </font><font color="#bb00ff">145.914</font><font color="#ff0000"> ms </font><font color="#bb00ff">130.514</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">18</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.131</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">136.634</font><font color="#ff0000"> ms </font><font color="#bb00ff">145.295</font><font color="#ff0000"> ms </font><font color="#bb00ff">135.631</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">19</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.132</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">139.158</font><font color="#ff0000"> ms </font><font color="#bb00ff">148.363</font><font color="#ff0000"> ms </font><font color="#bb00ff">138.934</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">20</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.133</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">145.395</font><font color="#ff0000"> ms </font><font color="#bb00ff">148.054</font><font color="#ff0000"> ms </font><font color="#bb00ff">147.140</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">21</font><font color="#ff0000"> he</font><font color="#F3E651">.</font><font color="#ff0000">rides</font><font color="#F3E651">.</font><font color="#ff0000">across</font><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">nation </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.134</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">149.687</font><font color="#ff0000"> ms </font><font color="#bb00ff">147.731</font><font color="#ff0000"> ms </font><font color="#bb00ff">150.135</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">22</font><font color="#ff0000"> the</font><font color="#F3E651">.</font><font color="#ff0000">thoroughbred</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">sin </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.135</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">156.644</font><font color="#ff0000"> ms </font><font color="#bb00ff">155.155</font><font color="#ff0000"> ms </font><font color="#bb00ff">156.447</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">23</font><font color="#ff0000"> he</font><font color="#F3E651">.</font><font color="#ff0000">got</font><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">application </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.136</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">161.187</font><font color="#ff0000"> ms </font><font color="#bb00ff">162.318</font><font color="#ff0000"> ms </font><font color="#bb00ff">162.674</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">24</font><font color="#ff0000"> that</font><font color="#F3E651">.</font><font color="#ff0000">you</font><font color="#F3E651">.</font><font color="#ff0000">just</font><font color="#F3E651">.</font><font color="#ff0000">sent</font><font color="#F3E651">.</font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.137</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">166.763</font><font color="#ff0000"> ms </font><font color="#bb00ff">166.675</font><font color="#ff0000"> ms </font><font color="#bb00ff">164.243</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">25</font><font color="#ff0000"> it</font><font color="#F3E651">.</font><font color="#ff0000">needs</font><font color="#F3E651">.</font><font color="#ff0000">evaluation </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.138</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">172.073</font><font color="#ff0000"> ms </font><font color="#bb00ff">171.919</font><font color="#ff0000"> ms </font><font color="#bb00ff">171.390</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">26</font><font color="#ff0000"> so</font><font color="#F3E651">.</font><b><font color="#ffffff">let</font></b><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">games</font><font color="#F3E651">.</font><font color="#ff0000">begin </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.139</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">175.386</font><font color="#ff0000"> ms </font><font color="#bb00ff">174.180</font><font color="#ff0000"> ms </font><font color="#bb00ff">175.965</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">27</font><font color="#ff0000"> a</font><font color="#F3E651">.</font><font color="#ff0000">heinous</font><font color="#F3E651">.</font><font color="#ff0000">crime </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.140</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">180.857</font><font color="#ff0000"> ms </font><font color="#bb00ff">180.766</font><font color="#ff0000"> ms </font><font color="#bb00ff">180.192</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">28</font><font color="#ff0000"> a</font><font color="#F3E651">.</font><font color="#ff0000">show</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">force </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.141</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">187.942</font><font color="#ff0000"> ms </font><font color="#bb00ff">186.669</font><font color="#ff0000"> ms </font><font color="#bb00ff">186.986</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">29</font><font color="#ff0000"> a</font><font color="#F3E651">.</font><font color="#ff0000">murder</font><font color="#F3E651">.</font><font color="#ff0000">would</font><font color="#F3E651">.</font><font color="#ff0000">be</font><font color="#F3E651">.</font><font color="#ff0000">nice</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">course </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.142</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">191.349</font><font color="#ff0000"> ms </font><font color="#bb00ff">191.939</font><font color="#ff0000"> ms </font><font color="#bb00ff">190.740</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">30</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.143</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">195.425</font><font color="#ff0000"> ms </font><font color="#bb00ff">195.716</font><font color="#ff0000"> ms </font><font color="#bb00ff">196.186</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">31</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.144</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">199.238</font><font color="#ff0000"> ms </font><font color="#bb00ff">200.620</font><font color="#ff0000"> ms </font><font color="#bb00ff">200.318</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">32</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.145</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">207.554</font><font color="#ff0000"> ms </font><font color="#bb00ff">206.729</font><font color="#ff0000"> ms </font><font color="#bb00ff">205.201</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">33</font><font color="#ff0000"> he-s</font><font color="#F3E651">.</font><font color="#ff0000">bad </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.146</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">211.087</font><font color="#ff0000"> ms </font><font color="#bb00ff">211.649</font><font color="#ff0000"> ms </font><font color="#bb00ff">211.712</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">34</font><font color="#ff0000"> the</font><font color="#F3E651">.</font><font color="#ff0000">evil</font><font color="#F3E651">.</font><font color="#ff0000">league</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">evil </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.147</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">212.657</font><font color="#ff0000"> ms </font><font color="#bb00ff">216.777</font><font color="#ff0000"> ms </font><font color="#bb00ff">216.589</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">35</font><font color="#ff0000"> is</font><font color="#F3E651">.</font><font color="#ff0000">watching</font><font color="#F3E651">.</font><font color="#ff0000">so</font><font color="#F3E651">.</font><font color="#ff0000">beware </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.148</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">220.911</font><font color="#ff0000"> ms </font><font color="#bb00ff">220.326</font><font color="#ff0000"> ms </font><font color="#bb00ff">221.961</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">36</font><font color="#ff0000"> the</font><font color="#F3E651">.</font><font color="#ff0000">grade</font><font color="#F3E651">.</font><font color="#ff0000">that</font><font color="#F3E651">.</font><font color="#ff0000">you</font><font color="#F3E651">.</font><font color="#ff0000">receive </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.149</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">225.384</font><font color="#ff0000"> ms </font><font color="#bb00ff">225.696</font><font color="#ff0000"> ms </font><font color="#bb00ff">225.640</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">37</font><font color="#ff0000"> will</font><font color="#F3E651">.</font><font color="#ff0000">be</font><font color="#F3E651">.</font><font color="#ff0000">your</font><font color="#F3E651">.</font><font color="#ff0000">last</font><font color="#F3E651">.</font><font color="#ff0000">we</font><font color="#F3E651">.</font><font color="#ff0000">swear </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.150</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">232.312</font><font color="#ff0000"> ms </font><font color="#bb00ff">230.989</font><font color="#ff0000"> ms </font><font color="#bb00ff">230.919</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">38</font><font color="#ff0000"> so</font><font color="#F3E651">.</font><font color="#ff0000">make</font><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">bad</font><font color="#F3E651">.</font><font color="#ff0000">horse</font><font color="#F3E651">.</font><font color="#ff0000">gleeful </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.151</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">235.761</font><font color="#ff0000"> ms </font><font color="#bb00ff">235.291</font><font color="#ff0000"> ms </font><font color="#bb00ff">235.585</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">39</font><font color="#ff0000"> or</font><font color="#F3E651">.</font><font color="#ff0000">he-ll</font><font color="#F3E651">.</font><font color="#ff0000">make</font><font color="#F3E651">.</font><font color="#ff0000">you</font><font color="#F3E651">.</font><font color="#ff0000">his</font><font color="#F3E651">.</font><font color="#ff0000">mare </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.152</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">241.350</font><font color="#ff0000"> ms </font><font color="#bb00ff">239.407</font><font color="#ff0000"> ms </font><font color="#bb00ff">238.394</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">40</font><font color="#ff0000"> o_o </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.153</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">246.154</font><font color="#ff0000"> ms </font><font color="#bb00ff">247.650</font><font color="#ff0000"> ms </font><font color="#bb00ff">247.110</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">41</font><font color="#ff0000"> you-re</font><font color="#F3E651">.</font><font color="#ff0000">saddled</font><font color="#F3E651">.</font><font color="#ff0000">up </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.154</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">250.925</font><font color="#ff0000"> ms </font><font color="#bb00ff">250.401</font><font color="#ff0000"> ms </font><font color="#bb00ff">250.619</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">42</font><font color="#ff0000"> there-s</font><font color="#F3E651">.</font><font color="#ff0000">no</font><font color="#F3E651">.</font><font color="#ff0000">recourse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.155</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">256.071</font><font color="#ff0000"> ms </font><font color="#bb00ff">251.154</font><font color="#ff0000"> ms </font><font color="#bb00ff">255.340</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">43</font><font color="#ff0000"> it-s</font><font color="#F3E651">.</font><font color="#ff0000">hi-ho</font><font color="#F3E651">.</font><font color="#ff0000">silver </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.156</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">260.152</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.775</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.544</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">44</font><font color="#ff0000"> signed</font><font color="#F3E651">.</font><font color="#ff0000">bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.157</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">262.430</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.410</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.365</font><font color="#ff0000"> ms</font> +<pre><font color="#ffffff">❯ traceroute -m </font><font color="#ff00ff">60</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse</font> +<font color="#ffffff">traceroute to bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.157</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> </font><font color="#ff00ff">60</font><font color="#ffffff"> hops max</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">60</font><font color="#ffffff"> byte packets</font> +<font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> _gateway </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">5.237</font><font color="#ffffff"> ms </font><font color="#ff00ff">5.264</font><font color="#ffffff"> ms </font><font color="#ff00ff">6.009</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">77</font><font color="#ffffff">-</font><font color="#ff00ff">85</font><font color="#ffffff">-</font><font color="#ff00ff">0</font><font color="#ffffff">-</font><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">btc-net</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">bg</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">77.85</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">8.753</font><font color="#ffffff"> ms </font><font color="#ff00ff">7.112</font><font color="#ffffff"> ms </font><font color="#ff00ff">8.336</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">3</font><font color="#ffffff"> </font><font color="#ff00ff">212</font><font color="#ffffff">-</font><font color="#ff00ff">39</font><font color="#ffffff">-</font><font color="#ff00ff">69</font><font color="#ffffff">-</font><font color="#ff00ff">103</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">btc-net</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">bg</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">212.39</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">69.103</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">9.434</font><font color="#ffffff"> ms </font><font color="#ff00ff">9.268</font><font color="#ffffff"> ms </font><font color="#ff00ff">9.986</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> xe-</font><font color="#ff00ff">1</font><font color="#ffffff">-</font><font color="#ff00ff">2</font><font color="#ffffff">-</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mpr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">fra4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">de</font><b><font color="#ee5896">.</font></b><font color="#ffffff">above</font><b><font color="#ee5896">.</font></b><font color="#ffffff">net </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">80.81</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">194.26</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">39.812</font><font color="#ffffff"> ms </font><font color="#ff00ff">39.030</font><font color="#ffffff"> ms </font><font color="#ff00ff">39.772</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">6</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> ae12</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cs1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">fra6</font><b><font color="#ee5896">.</font></b><font color="#ffffff">de</font><b><font color="#ee5896">.</font></b><font color="#ffffff">eth</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">26.172</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">123.576</font><font color="#ffffff"> ms </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">8</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">9</font><font color="#ffffff"> ae10</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lhr15</font><b><font color="#ee5896">.</font></b><font color="#ffffff">uk</font><b><font color="#ee5896">.</font></b><font color="#ffffff">eth</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">29.17</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">119.097</font><font color="#ffffff"> ms </font><font color="#ff00ff">119.478</font><font color="#ffffff"> ms </font><font color="#ff00ff">120.767</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">10</font><font color="#ffffff"> ae2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lhr11</font><b><font color="#ee5896">.</font></b><font color="#ffffff">uk</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">24.140</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">120.398</font><font color="#ffffff"> ms </font><font color="#ff00ff">121.147</font><font color="#ffffff"> ms </font><font color="#ff00ff">120.948</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">11</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ff00ff">12</font><font color="#ffffff"> ae25</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mpr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">yyz1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ca</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">23.117</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">145.072</font><font color="#ffffff"> ms </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><font color="#ff00ff">181.773</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">13</font><font color="#ffffff"> ae5</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mpr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tor3</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ca</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">23.118</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">168.239</font><font color="#ffffff"> ms </font><font color="#ff00ff">168.158</font><font color="#ffffff"> ms </font><font color="#ff00ff">168.137</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">14</font><font color="#ffffff"> </font><font color="#ff00ff">64.124</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">217.237</font><b><font color="#ee5896">.</font></b><font color="#ffffff">IDIA-</font><font color="#ff00ff">265104</font><font color="#ffffff">-ZYO</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.124</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">217.237</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">168.026</font><font color="#ffffff"> ms </font><font color="#ff00ff">167.999</font><font color="#ffffff"> ms </font><font color="#ff00ff">165.451</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">15</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ff00ff">16</font><font color="#ffffff"> t00</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toroc1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ca</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sn11</font><b><font color="#ee5896">.</font></b><font color="#ffffff">net </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">204.2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">131.598</font><font color="#ffffff"> ms </font><font color="#ff00ff">131.308</font><font color="#ffffff"> ms </font><font color="#ff00ff">131.482</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">17</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.130</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">131.430</font><font color="#ffffff"> ms </font><font color="#ff00ff">145.914</font><font color="#ffffff"> ms </font><font color="#ff00ff">130.514</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">18</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.131</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">136.634</font><font color="#ffffff"> ms </font><font color="#ff00ff">145.295</font><font color="#ffffff"> ms </font><font color="#ff00ff">135.631</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">19</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.132</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">139.158</font><font color="#ffffff"> ms </font><font color="#ff00ff">148.363</font><font color="#ffffff"> ms </font><font color="#ff00ff">138.934</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">20</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.133</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">145.395</font><font color="#ffffff"> ms </font><font color="#ff00ff">148.054</font><font color="#ffffff"> ms </font><font color="#ff00ff">147.140</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">21</font><font color="#ffffff"> he</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rides</font><b><font color="#ee5896">.</font></b><font color="#ffffff">across</font><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">nation </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.134</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">149.687</font><font color="#ffffff"> ms </font><font color="#ff00ff">147.731</font><font color="#ffffff"> ms </font><font color="#ff00ff">150.135</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">22</font><font color="#ffffff"> the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">thoroughbred</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sin </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.135</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">156.644</font><font color="#ffffff"> ms </font><font color="#ff00ff">155.155</font><font color="#ffffff"> ms </font><font color="#ff00ff">156.447</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">23</font><font color="#ffffff"> he</font><b><font color="#ee5896">.</font></b><font color="#ffffff">got</font><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">application </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.136</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">161.187</font><font color="#ffffff"> ms </font><font color="#ff00ff">162.318</font><font color="#ffffff"> ms </font><font color="#ff00ff">162.674</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">24</font><font color="#ffffff"> that</font><b><font color="#ee5896">.</font></b><font color="#ffffff">you</font><b><font color="#ee5896">.</font></b><font color="#ffffff">just</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sent</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.137</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">166.763</font><font color="#ffffff"> ms </font><font color="#ff00ff">166.675</font><font color="#ffffff"> ms </font><font color="#ff00ff">164.243</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">25</font><font color="#ffffff"> it</font><b><font color="#ee5896">.</font></b><font color="#ffffff">needs</font><b><font color="#ee5896">.</font></b><font color="#ffffff">evaluation </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.138</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">172.073</font><font color="#ffffff"> ms </font><font color="#ff00ff">171.919</font><font color="#ffffff"> ms </font><font color="#ff00ff">171.390</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">26</font><font color="#ffffff"> so</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">let</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">games</font><b><font color="#ee5896">.</font></b><font color="#ffffff">begin </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.139</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">175.386</font><font color="#ffffff"> ms </font><font color="#ff00ff">174.180</font><font color="#ffffff"> ms </font><font color="#ff00ff">175.965</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">27</font><font color="#ffffff"> a</font><b><font color="#ee5896">.</font></b><font color="#ffffff">heinous</font><b><font color="#ee5896">.</font></b><font color="#ffffff">crime </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.140</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">180.857</font><font color="#ffffff"> ms </font><font color="#ff00ff">180.766</font><font color="#ffffff"> ms </font><font color="#ff00ff">180.192</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">28</font><font color="#ffffff"> a</font><b><font color="#ee5896">.</font></b><font color="#ffffff">show</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">force </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.141</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">187.942</font><font color="#ffffff"> ms </font><font color="#ff00ff">186.669</font><font color="#ffffff"> ms </font><font color="#ff00ff">186.986</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">29</font><font color="#ffffff"> a</font><b><font color="#ee5896">.</font></b><font color="#ffffff">murder</font><b><font color="#ee5896">.</font></b><font color="#ffffff">would</font><b><font color="#ee5896">.</font></b><font color="#ffffff">be</font><b><font color="#ee5896">.</font></b><font color="#ffffff">nice</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">course </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.142</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">191.349</font><font color="#ffffff"> ms </font><font color="#ff00ff">191.939</font><font color="#ffffff"> ms </font><font color="#ff00ff">190.740</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">30</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.143</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">195.425</font><font color="#ffffff"> ms </font><font color="#ff00ff">195.716</font><font color="#ffffff"> ms </font><font color="#ff00ff">196.186</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">31</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.144</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">199.238</font><font color="#ffffff"> ms </font><font color="#ff00ff">200.620</font><font color="#ffffff"> ms </font><font color="#ff00ff">200.318</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">32</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.145</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">207.554</font><font color="#ffffff"> ms </font><font color="#ff00ff">206.729</font><font color="#ffffff"> ms </font><font color="#ff00ff">205.201</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">33</font><font color="#ffffff"> he-s</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bad </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.146</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">211.087</font><font color="#ffffff"> ms </font><font color="#ff00ff">211.649</font><font color="#ffffff"> ms </font><font color="#ff00ff">211.712</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">34</font><font color="#ffffff"> the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">evil</font><b><font color="#ee5896">.</font></b><font color="#ffffff">league</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">evil </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.147</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">212.657</font><font color="#ffffff"> ms </font><font color="#ff00ff">216.777</font><font color="#ffffff"> ms </font><font color="#ff00ff">216.589</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">35</font><font color="#ffffff"> is</font><b><font color="#ee5896">.</font></b><font color="#ffffff">watching</font><b><font color="#ee5896">.</font></b><font color="#ffffff">so</font><b><font color="#ee5896">.</font></b><font color="#ffffff">beware </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.148</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">220.911</font><font color="#ffffff"> ms </font><font color="#ff00ff">220.326</font><font color="#ffffff"> ms </font><font color="#ff00ff">221.961</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">36</font><font color="#ffffff"> the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">grade</font><b><font color="#ee5896">.</font></b><font color="#ffffff">that</font><b><font color="#ee5896">.</font></b><font color="#ffffff">you</font><b><font color="#ee5896">.</font></b><font color="#ffffff">receive </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.149</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">225.384</font><font color="#ffffff"> ms </font><font color="#ff00ff">225.696</font><font color="#ffffff"> ms </font><font color="#ff00ff">225.640</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">37</font><font color="#ffffff"> will</font><b><font color="#ee5896">.</font></b><font color="#ffffff">be</font><b><font color="#ee5896">.</font></b><font color="#ffffff">your</font><b><font color="#ee5896">.</font></b><font color="#ffffff">last</font><b><font color="#ee5896">.</font></b><font color="#ffffff">we</font><b><font color="#ee5896">.</font></b><font color="#ffffff">swear </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.150</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">232.312</font><font color="#ffffff"> ms </font><font color="#ff00ff">230.989</font><font color="#ffffff"> ms </font><font color="#ff00ff">230.919</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">38</font><font color="#ffffff"> so</font><b><font color="#ee5896">.</font></b><font color="#ffffff">make</font><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gleeful </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.151</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">235.761</font><font color="#ffffff"> ms </font><font color="#ff00ff">235.291</font><font color="#ffffff"> ms </font><font color="#ff00ff">235.585</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">39</font><font color="#ffffff"> or</font><b><font color="#ee5896">.</font></b><font color="#ffffff">he-ll</font><b><font color="#ee5896">.</font></b><font color="#ffffff">make</font><b><font color="#ee5896">.</font></b><font color="#ffffff">you</font><b><font color="#ee5896">.</font></b><font color="#ffffff">his</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mare </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.152</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">241.350</font><font color="#ffffff"> ms </font><font color="#ff00ff">239.407</font><font color="#ffffff"> ms </font><font color="#ff00ff">238.394</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">40</font><font color="#ffffff"> o_o </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.153</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">246.154</font><font color="#ffffff"> ms </font><font color="#ff00ff">247.650</font><font color="#ffffff"> ms </font><font color="#ff00ff">247.110</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">41</font><font color="#ffffff"> you-re</font><b><font color="#ee5896">.</font></b><font color="#ffffff">saddled</font><b><font color="#ee5896">.</font></b><font color="#ffffff">up </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.154</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">250.925</font><font color="#ffffff"> ms </font><font color="#ff00ff">250.401</font><font color="#ffffff"> ms </font><font color="#ff00ff">250.619</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">42</font><font color="#ffffff"> there-s</font><b><font color="#ee5896">.</font></b><font color="#ffffff">no</font><b><font color="#ee5896">.</font></b><font color="#ffffff">recourse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.155</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">256.071</font><font color="#ffffff"> ms </font><font color="#ff00ff">251.154</font><font color="#ffffff"> ms </font><font color="#ff00ff">255.340</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">43</font><font color="#ffffff"> it-s</font><b><font color="#ee5896">.</font></b><font color="#ffffff">hi-ho</font><b><font color="#ee5896">.</font></b><font color="#ffffff">silver </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.156</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">260.152</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.775</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.544</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">44</font><font color="#ffffff"> signed</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.157</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">262.430</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.410</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.365</font><font color="#ffffff"> ms</font> </pre> <br /> <h2 style='display: inline' id='2-ascii-cinema'>2. ASCII cinema</h2><br /> @@ -128,20 +128,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ababab">#include</font><font color="#ff0000"> </font><font color="#bb00ff"><stdio.h></font> +<pre><font color="#ffbb00">#include</font><font color="#ffffff"> </font><font color="#cd00ff"><stdio.h></font> -<b><font color="#F35E1E">int</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">(</font><b><font color="#F35E1E">void</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> array</font><font color="#F3E651">[</font><font color="#bb00ff">5</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffff00">int</font><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">(</font></b><font color="#ffff00">void</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffff00">int</font><font color="#ffffff"> array</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> array</font><font color="#F3E651">[</font><font color="#ff0000">i</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> array</font><b><font color="#ee5896">[</font></b><font color="#ffffff">i</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> i</font><font color="#F3E651">[</font><font color="#ff0000">array</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">[</font></b><font color="#ffffff">array</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">*(</font><font color="#ff0000">i </font><font color="#F3E651">+</font><font color="#ff0000"> array</font><font color="#F3E651">));</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*(</font></b><font color="#ffffff">i </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> array</font><b><font color="#ee5896">));</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h3 style='display: inline' id='5-variables-with-prefix-'>5. Variables with prefix <span class='inlinecode'>$</span></h3><br /> @@ -152,20 +152,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ababab">#include</font><font color="#ff0000"> </font><font color="#bb00ff"><stdio.h></font> +<pre><font color="#ffbb00">#include</font><font color="#ffffff"> </font><font color="#cd00ff"><stdio.h></font> -<b><font color="#F35E1E">int</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">(</font><b><font color="#F35E1E">void</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $array</font><font color="#F3E651">[</font><font color="#bb00ff">5</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffff00">int</font><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">(</font></b><font color="#ffff00">void</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffff00">int</font><font color="#ffffff"> $array</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> $i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> $i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> $array</font><font color="#F3E651">[</font><font color="#ff0000">$i</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> $i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> $array</font><b><font color="#ee5896">[</font></b><font color="#ffffff">$i</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> $i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> $i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> $i</font><font color="#F3E651">[</font><font color="#ff0000">$array</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> $i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">[</font></b><font color="#ffffff">$array</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> $i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> $i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">*(</font><font color="#ff0000">$i </font><font color="#F3E651">+</font><font color="#ff0000"> $array</font><font color="#F3E651">));</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> $i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*(</font></b><font color="#ffffff">$i </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> $array</font><b><font color="#ee5896">));</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h2 style='display: inline' id='6-object-oriented-shell-scripts-using-ksh'>6. Object oriented shell scripts using <span class='inlinecode'>ksh</span></h2><br /> @@ -176,40 +176,40 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/ksh93</font></i> -<font color="#ff0000"> </font> -<b><font color="#ffffff">typeset</font></b><font color="#ff0000"> -T </font><font color="#ff0000">Point_t</font><font color="#F3E651">=(</font> -<font color="#ff0000"> integer -h </font><font color="#bb00ff">'x coordinate'</font><font color="#ff0000"> </font><font color="#ff0000">x</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> integer -h </font><font color="#bb00ff">'y coordinate'</font><font color="#ff0000"> </font><font color="#ff0000">y</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><b><font color="#ffffff">typeset</font></b><font color="#ff0000"> -h </font><font color="#bb00ff">'point color'</font><font color="#ff0000"> </font><font color="#ff0000">color</font><font color="#F3E651">=</font><font color="#bb00ff">"red"</font> +<pre><i><font color="#00ff00">#!/usr/bin/ksh93</font></i> +<font color="#ffffff"> </font> +<b><font color="#00ffff">typeset</font></b><font color="#ffffff"> -T </font><font color="#ffffff">Point_t</font><b><font color="#ee5896">=(</font></b> +<font color="#ffffff"> integer -h </font><font color="#cd00ff">'x coordinate'</font><font color="#ffffff"> </font><font color="#ffffff">x</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> integer -h </font><font color="#cd00ff">'y coordinate'</font><font color="#ffffff"> </font><font color="#ffffff">y</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#00ffff">typeset</font></b><font color="#ffffff"> -h </font><font color="#cd00ff">'point color'</font><font color="#ffffff"> </font><font color="#ffffff">color</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"red"</font> -<font color="#ff0000"> </font><font color="#7bc710">function getcolor </font><font color="#ff0000">{</font> -<font color="#ff0000"> print -r </font><font color="#ff0000">${_.color}</font> -<font color="#ff0000"> }</font> +<font color="#ffffff"> </font><b><font color="#ffffff">function getcolor </font></b><font color="#ffffff">{</font> +<font color="#ffffff"> print -r </font><font color="#ffffff">${_.color}</font> +<font color="#ffffff"> }</font> -<font color="#ff0000"> </font><font color="#7bc710">function setcolor </font><font color="#ff0000">{</font> -<font color="#ff0000"> _</font><font color="#F3E651">.</font><font color="#ff0000">color</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> -<font color="#ff0000"> }</font> +<font color="#ffffff"> </font><b><font color="#ffffff">function setcolor </font></b><font color="#ffffff">{</font> +<font color="#ffffff"> _</font><b><font color="#ee5896">.</font></b><font color="#ffffff">color</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> +<font color="#ffffff"> }</font> -<font color="#ff0000"> </font><font color="#7bc710">setxy()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> _</font><font color="#F3E651">.</font><font color="#ff0000">x</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> _</font><font color="#F3E651">.</font><font color="#ff0000">y</font><font color="#F3E651">=</font><font color="#ff0000">$2</font> -<font color="#ff0000"> }</font> +<font color="#ffffff"> </font><b><font color="#ffffff">setxy()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> _</font><b><font color="#ee5896">.</font></b><font color="#ffffff">x</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> _</font><b><font color="#ee5896">.</font></b><font color="#ffffff">y</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$2</font> +<font color="#ffffff"> }</font> -<font color="#ff0000"> </font><font color="#7bc710">getxy()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> print -r </font><font color="#bb00ff">"(${_.x},${_.y})"</font> -<font color="#ff0000"> }</font> -<font color="#F3E651">)</font> -<font color="#ff0000"> </font> -<font color="#ff0000">Point_t point</font> -<font color="#ff0000"> </font> -<font color="#ff0000">echo </font><font color="#bb00ff">"Initial coordinates are (${point.x},${point.y}). Color is ${point.color}"</font> -<font color="#ff0000"> </font> -<font color="#ff0000">point</font><font color="#F3E651">.</font><font color="#ff0000">setxy </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#bb00ff">6</font> -<font color="#ff0000">point</font><font color="#F3E651">.</font><font color="#ff0000">setcolor blue</font> -<font color="#ff0000"> </font> -<font color="#ff0000">echo </font><font color="#bb00ff">"New coordinates are ${point.getxy}. Color is ${point.getcolor}"</font> -<font color="#ff0000"> </font> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> +<font color="#ffffff"> </font><b><font color="#ffffff">getxy()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> print -r </font><font color="#cd00ff">"(${_.x},${_.y})"</font> +<font color="#ffffff"> }</font> +<b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font> +<font color="#ffffff">Point_t point</font> +<font color="#ffffff"> </font> +<font color="#ffffff">echo </font><font color="#cd00ff">"Initial coordinates are (${point.x},${point.y}). Color is ${point.color}"</font> +<font color="#ffffff"> </font> +<font color="#ffffff">point</font><b><font color="#ee5896">.</font></b><font color="#ffffff">setxy </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><font color="#ff00ff">6</font> +<font color="#ffffff">point</font><b><font color="#ee5896">.</font></b><font color="#ffffff">setcolor blue</font> +<font color="#ffffff"> </font> +<font color="#ffffff">echo </font><font color="#cd00ff">"New coordinates are ${point.getxy}. Color is ${point.getcolor}"</font> +<font color="#ffffff"> </font> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> </pre> <br /> <a class='textlink' href='https://blog.fpmurphy.com/2010/05/ksh93-using-types-to-create-object-orientated-scripts.html'>Using types to create object oriented Korn shell 93 scripts</a><br /> @@ -222,18 +222,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> main</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> main</font> -<b><font color="#ffffff">import</font></b><font color="#ff0000"> </font><font color="#bb00ff">"fmt"</font> +<b><font color="#00ffff">import</font></b><font color="#ffffff"> </font><font color="#cd00ff">"fmt"</font> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">var</font></b><font color="#ff0000"> i int</font> -<font color="#ff0000"> f </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><b><font color="#ffffff">func</font></b><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">int </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#F3E651">&</font><font color="#ff0000">i</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#7bc710">f</font><font color="#F3E651">()++</font> -<font color="#ff0000"> fmt</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">var</font></b><font color="#ffffff"> i int</font> +<font color="#ffffff"> f </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">func</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">int </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&</font></b><font color="#ffffff">i</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><b><font color="#ffffff">f</font></b><b><font color="#ee5896">()++</font></b> +<font color="#ffffff"> fmt</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <a class='textlink' href='https://go.dev/play/p/sPRdyDvXefK?__s=mk8u899owb9yurl256gw'>Go playground</a><br /> diff --git a/gemfeed/2024-10-02-gemtexter-3.0.0-lets-gemtext-again-4.html b/gemfeed/2024-10-02-gemtexter-3.0.0-lets-gemtext-again-4.html index 90d1559b..e5b49ae4 100644 --- a/gemfeed/2024-10-02-gemtexter-3.0.0-lets-gemtext-again-4.html +++ b/gemfeed/2024-10-02-gemtexter-3.0.0-lets-gemtext-again-4.html @@ -76,7 +76,7 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">HTML_THEME_DIR</font><font color="#F3E651">=.</font><font color="#ff0000">/extras/html/themes/simple</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">HTML_THEME_DIR</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/extras/html/themes/simple</font> </pre> <br /> <span>To customize the theme or create your own, simply copy the theme directory and modify it as needed. This makes it also much easier to switch between layouts.</span><br /> diff --git a/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html b/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html index ed495210..9c2b2d0b 100644 --- a/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html +++ b/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html @@ -123,9 +123,9 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]~</font><font color="#ff0000">/Downloads</font><font color="#F3E651">%</font><font color="#ff0000"> sudo dd </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#F3E651">=</font><font color="#ff0000">FreeBSD-</font><font color="#bb00ff">14.1</font><font color="#ff0000">-RELEASE-amd</font><font color="#bb00ff">64</font><font color="#ff0000">-bootonly</font><font color="#F3E651">.</font><font color="#ff0000">iso </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">of</font><font color="#F3E651">=</font><font color="#ff0000">/dev/sda </font><font color="#ff0000">conv</font><font color="#F3E651">=</font><font color="#ff0000">sync</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]~</font></b><font color="#ffffff">/Downloads</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sudo dd </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><b><font color="#ee5896">=</font></b><font color="#ffffff">FreeBSD-</font><font color="#ff00ff">14.1</font><font color="#ffffff">-RELEASE-amd</font><font color="#ff00ff">64</font><font color="#ffffff">-bootonly</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">of</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/dev/sda </font><font color="#ffffff">conv</font><b><font color="#ee5896">=</font></b><font color="#ffffff">sync</font> </pre> <br /> <span>Next, I plugged the Beelinks (one after another) into my monitor via HDMI (the resolution of the FreeBSD text console seems strangely stretched, as I am using the LG Dual Up monitor), connected Ethernet, an external USB keyboard, and the FreeBSD USB stick, and booted the devices up. With F7, I entered the boot menu and selected the USB stick for the FreeBSD installation.</span><br /> @@ -151,9 +151,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># freebsd-update fetch</font></i> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># freebsd-update install</font></i> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># freebsd-update reboot</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># freebsd-update fetch</font></i> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># freebsd-update install</font></i> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># freebsd-update reboot</font></i> </pre> <br /> <span>I also added the following entries for the three FreeBSD boxes to the <span class='inlinecode'>/etc/hosts</span> file:</span><br /> @@ -162,11 +162,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cat <<END >>/etc/hosts</font></i> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.130</font><font color="#ff0000"> f0 f0</font><font color="#F3E651">.</font><font color="#ff0000">lan f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#ff0000"> f1 f1</font><font color="#F3E651">.</font><font color="#ff0000">lan f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#ff0000"> f2 f2</font><font color="#F3E651">.</font><font color="#ff0000">lan f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cat <<END >>/etc/hosts</font></i> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.130</font><font color="#ffffff"> f0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><font color="#ffffff"> f1 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><font color="#ffffff"> f2 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>You might wonder why bother using the hosts file? Why not use DNS properly? The reason is simplicity. I don't manage 100 hosts, only a few here and there. Having an OpenWRT router in my home, I could also configure everything there, but maybe I'll do that later. For now, keep it simple and straightforward.</span><br /> @@ -179,7 +179,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># pkg install helix doas zfs-periodic uptimed</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># pkg install helix doas zfs-periodic uptimed</font></i> </pre> <br /> <h3 style='display: inline' id='helix-editor'>Helix editor</h3><br /> @@ -196,7 +196,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cp /usr/local/etc/doas.conf.sample /usr/local/etc/doas.conf</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cp /usr/local/etc/doas.conf.sample /usr/local/etc/doas.conf</font></i> </pre> <br /> <a class='textlink' href='https://man.openbsd.org/doas'>https://man.openbsd.org/doas</a><br /> @@ -209,17 +209,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cat <<END >>/etc/periodic.conf</font></i> -<font color="#ff0000">daily_zfs_snapshot_enable</font><font color="#F3E651">=</font><font color="#bb00ff">"YES"</font> -<font color="#ff0000">daily_zfs_snapshot_pools</font><font color="#F3E651">=</font><font color="#bb00ff">"zroot"</font> -<font color="#ff0000">daily_zfs_snapshot_keep</font><font color="#F3E651">=</font><font color="#bb00ff">"7"</font> -<font color="#ff0000">weekly_zfs_snapshot_enable</font><font color="#F3E651">=</font><font color="#bb00ff">"YES"</font> -<font color="#ff0000">weekly_zfs_snapshot_pools</font><font color="#F3E651">=</font><font color="#bb00ff">"zroot"</font> -<font color="#ff0000">weekly_zfs_snapshot_keep</font><font color="#F3E651">=</font><font color="#bb00ff">"5"</font> -<font color="#ff0000">monthly_zfs_snapshot_enable</font><font color="#F3E651">=</font><font color="#bb00ff">"YES"</font> -<font color="#ff0000">monthly_zfs_snapshot_pools</font><font color="#F3E651">=</font><font color="#bb00ff">"zroot"</font> -<font color="#ff0000">monthly_zfs_snapshot_keep</font><font color="#F3E651">=</font><font color="#bb00ff">"6"</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cat <<END >>/etc/periodic.conf</font></i> +<font color="#ffffff">daily_zfs_snapshot_enable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"YES"</font> +<font color="#ffffff">daily_zfs_snapshot_pools</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"zroot"</font> +<font color="#ffffff">daily_zfs_snapshot_keep</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"7"</font> +<font color="#ffffff">weekly_zfs_snapshot_enable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"YES"</font> +<font color="#ffffff">weekly_zfs_snapshot_pools</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"zroot"</font> +<font color="#ffffff">weekly_zfs_snapshot_keep</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"5"</font> +<font color="#ffffff">monthly_zfs_snapshot_enable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"YES"</font> +<font color="#ffffff">monthly_zfs_snapshot_pools</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"zroot"</font> +<font color="#ffffff">monthly_zfs_snapshot_keep</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"6"</font> +<font color="#ffffff">END</font> </pre> <br /> <a class='textlink' href='https://github.com/ross/zfs-periodic'>https://github.com/ross/zfs-periodic</a><br /> @@ -232,9 +232,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cp /usr/local/mimecast/etc/uptimed.conf-dist \</font></i> -<font color="#ff0000"> /usr/local/mimecast/etc/uptimed</font><font color="#F3E651">.</font><font color="#ff0000">conf </font> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># hx /usr/local/mimecast/etc/uptimed.conf</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cp /usr/local/mimecast/etc/uptimed.conf-dist \</font></i> +<font color="#ffffff"> /usr/local/mimecast/etc/uptimed</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf </font> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># hx /usr/local/mimecast/etc/uptimed.conf</font></i> </pre> <br /> <span>In the Helix editor session, I changed <span class='inlinecode'>LOG_MAXIMUM_ENTRIES</span> to <span class='inlinecode'>0</span> to keep all uptime entries forever and not cut off at 50 (the default config). After that, I enabled and started <span class='inlinecode'>uptimed</span>:</span><br /> @@ -243,8 +243,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># service uptimed enable</font></i> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># service uptimed start</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># service uptimed enable</font></i> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># service uptimed start</font></i> </pre> <br /> <span>To check the current uptime stats, I can now run <span class='inlinecode'>uprecords</span>:</span><br /> @@ -253,15 +253,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000"> root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># uprecords</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Uptime | System Boot up</font></i> -<font color="#ff0000">----------------------------</font><font color="#F3E651">+</font><font color="#ff0000">---------------------------------------------------</font> -<font color="#ff0000">-</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">07</font><font color="#F3E651">:</font><font color="#bb00ff">34</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.1</font><font color="#ff0000">-RELEASE Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000">----------------------------</font><font color="#F3E651">+</font><font color="#ff0000">---------------------------------------------------</font> -<font color="#ff0000">NewRec </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">07</font><font color="#F3E651">:</font><font color="#bb00ff">33</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000"> up </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">07</font><font color="#F3E651">:</font><font color="#bb00ff">34</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000"> down </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">00</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000">up </font><font color="#bb00ff">100.000</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> +<pre><font color="#ffffff"> root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># uprecords</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Uptime | System Boot up</font></i> +<font color="#ffffff">----------------------------</font><b><font color="#ee5896">+</font></b><font color="#ffffff">---------------------------------------------------</font> +<font color="#ffffff">-</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">07</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">34</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.1</font><font color="#ffffff">-RELEASE Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff">----------------------------</font><b><font color="#ee5896">+</font></b><font color="#ffffff">---------------------------------------------------</font> +<font color="#ffffff">NewRec </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">07</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">33</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff"> up </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">07</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">34</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff"> down </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">00</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff">up </font><font color="#ff00ff">100.000</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> </pre> <br /> <span>This is how I track the uptimes for all of my host:</span><br /> @@ -279,17 +279,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> ifconfig re0</font> -<font color="#ff0000">re0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">flags</font><font color="#F3E651">=</font><font color="#bb00ff">1008843</font><font color="#F3E651"><</font><font color="#ff0000">UP</font><font color="#F3E651">,</font><font color="#ff0000">BROADCAST</font><font color="#F3E651">,</font><font color="#ff0000">RUNNING</font><font color="#F3E651">,</font><font color="#ff0000">SIMPLEX</font><font color="#F3E651">,</font><font color="#ff0000">MULTICAST</font><font color="#F3E651">,</font><font color="#ff0000">LOWER_UP</font><font color="#F3E651">></font><font color="#ff0000"> metric </font><font color="#bb00ff">0</font><font color="#ff0000"> mtu </font><font color="#bb00ff">1500</font> -<font color="#ff0000"> </font><font color="#ff0000">options</font><font color="#F3E651">=</font><font color="#ff0000">8209b</font><font color="#F3E651"><</font><font color="#ff0000">RXCSUM</font><font color="#F3E651">,</font><font color="#ff0000">TXCSUM</font><font color="#F3E651">,</font><font color="#ff0000">VLAN_MTU</font><font color="#F3E651">,</font><font color="#ff0000">VLAN_HWTAGGING</font><font color="#F3E651">,</font><font color="#ff0000">VLAN_HWCSUM</font><font color="#F3E651">,</font><font color="#ff0000">WOL_MAGIC</font><font color="#F3E651">,</font><font color="#ff0000">LINKSTATE</font><font color="#F3E651">></font> -<font color="#ff0000"> ether e8</font><font color="#F3E651">:</font><font color="#ff0000">ff</font><font color="#F3E651">:</font><font color="#ff0000">1e</font><font color="#F3E651">:</font><font color="#ff0000">d7</font><font color="#F3E651">:</font><font color="#ff0000">1c</font><font color="#F3E651">:</font><font color="#ff0000">ac</font> -<font color="#ff0000"> inet </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.130</font><font color="#ff0000"> netmask </font><font color="#bb00ff">0xffffff00</font><font color="#ff0000"> broadcast </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.255</font> -<font color="#ff0000"> inet6 fe80</font><font color="#F3E651">::</font><font color="#ff0000">eaff</font><font color="#F3E651">:</font><font color="#ff0000">1eff</font><font color="#F3E651">:</font><font color="#ff0000">fed7</font><font color="#F3E651">:</font><font color="#ff0000">1cac</font><font color="#F3E651">%</font><font color="#ff0000">re0 prefixlen </font><font color="#bb00ff">64</font><font color="#ff0000"> scopeid </font><font color="#bb00ff">0x1</font> -<font color="#ff0000"> inet6 fd22</font><font color="#F3E651">:</font><font color="#ff0000">c702</font><font color="#F3E651">:</font><font color="#ff0000">acb7</font><font color="#F3E651">:</font><font color="#bb00ff">0</font><font color="#F3E651">:</font><font color="#ff0000">eaff</font><font color="#F3E651">:</font><font color="#ff0000">1eff</font><font color="#F3E651">:</font><font color="#ff0000">fed7</font><font color="#F3E651">:</font><font color="#ff0000">1cac prefixlen </font><font color="#bb00ff">64</font><font color="#ff0000"> detached autoconf</font> -<font color="#ff0000"> inet6 2a01</font><font color="#F3E651">:</font><font color="#ff0000">5a8</font><font color="#F3E651">:</font><font color="#bb00ff">304</font><font color="#F3E651">:</font><font color="#ff0000">1d5c</font><font color="#F3E651">:</font><font color="#ff0000">eaff</font><font color="#F3E651">:</font><font color="#ff0000">1eff</font><font color="#F3E651">:</font><font color="#ff0000">fed7</font><font color="#F3E651">:</font><font color="#ff0000">1cac prefixlen </font><font color="#bb00ff">64</font><font color="#ff0000"> autoconf pltime </font><font color="#bb00ff">10800</font><font color="#ff0000"> vltime </font><font color="#bb00ff">14400</font> -<font color="#ff0000"> media</font><font color="#F3E651">:</font><font color="#ff0000"> Ethernet autoselect </font><font color="#F3E651">(</font><font color="#ff0000">1000baseT </font><font color="#F3E651"><</font><font color="#ff0000">full-duplex</font><font color="#F3E651">>)</font> -<font color="#ff0000"> status</font><font color="#F3E651">:</font><font color="#ff0000"> active</font> -<font color="#ff0000"> nd6 </font><font color="#ff0000">options</font><font color="#F3E651">=</font><font color="#bb00ff">23</font><font color="#F3E651"><</font><font color="#ff0000">PERFORMNUD</font><font color="#F3E651">,</font><font color="#ff0000">ACCEPT_RTADV</font><font color="#F3E651">,</font><font color="#ff0000">AUTO_LINKLOCAL</font><font color="#F3E651">></font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> ifconfig re0</font> +<font color="#ffffff">re0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">flags</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1008843</font><b><font color="#ee5896"><</font></b><font color="#ffffff">UP</font><b><font color="#ee5896">,</font></b><font color="#ffffff">BROADCAST</font><b><font color="#ee5896">,</font></b><font color="#ffffff">RUNNING</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SIMPLEX</font><b><font color="#ee5896">,</font></b><font color="#ffffff">MULTICAST</font><b><font color="#ee5896">,</font></b><font color="#ffffff">LOWER_UP</font><b><font color="#ee5896">></font></b><font color="#ffffff"> metric </font><font color="#ff00ff">0</font><font color="#ffffff"> mtu </font><font color="#ff00ff">1500</font> +<font color="#ffffff"> </font><font color="#ffffff">options</font><b><font color="#ee5896">=</font></b><font color="#ffffff">8209b</font><b><font color="#ee5896"><</font></b><font color="#ffffff">RXCSUM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">TXCSUM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VLAN_MTU</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VLAN_HWTAGGING</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VLAN_HWCSUM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">WOL_MAGIC</font><b><font color="#ee5896">,</font></b><font color="#ffffff">LINKSTATE</font><b><font color="#ee5896">></font></b> +<font color="#ffffff"> ether e8</font><b><font color="#ee5896">:</font></b><font color="#ffffff">ff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1e</font><b><font color="#ee5896">:</font></b><font color="#ffffff">d7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1c</font><b><font color="#ee5896">:</font></b><font color="#ffffff">ac</font> +<font color="#ffffff"> inet </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.130</font><font color="#ffffff"> netmask </font><font color="#ff00ff">0xffffff00</font><font color="#ffffff"> broadcast </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.255</font> +<font color="#ffffff"> inet6 fe80</font><b><font color="#ee5896">::</font></b><font color="#ffffff">eaff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1eff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">fed7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1cac</font><b><font color="#ee5896">%</font></b><font color="#ffffff">re0 prefixlen </font><font color="#ff00ff">64</font><font color="#ffffff"> scopeid </font><font color="#ff00ff">0x1</font> +<font color="#ffffff"> inet6 fd22</font><b><font color="#ee5896">:</font></b><font color="#ffffff">c702</font><b><font color="#ee5896">:</font></b><font color="#ffffff">acb7</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">eaff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1eff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">fed7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1cac prefixlen </font><font color="#ff00ff">64</font><font color="#ffffff"> detached autoconf</font> +<font color="#ffffff"> inet6 2a01</font><b><font color="#ee5896">:</font></b><font color="#ffffff">5a8</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">304</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1d5c</font><b><font color="#ee5896">:</font></b><font color="#ffffff">eaff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1eff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">fed7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1cac prefixlen </font><font color="#ff00ff">64</font><font color="#ffffff"> autoconf pltime </font><font color="#ff00ff">10800</font><font color="#ffffff"> vltime </font><font color="#ff00ff">14400</font> +<font color="#ffffff"> media</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Ethernet autoselect </font><b><font color="#ee5896">(</font></b><font color="#ffffff">1000baseT </font><b><font color="#ee5896"><</font></b><font color="#ffffff">full-duplex</font><b><font color="#ee5896">>)</font></b> +<font color="#ffffff"> status</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> active</font> +<font color="#ffffff"> nd6 </font><font color="#ffffff">options</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">23</font><b><font color="#ee5896"><</font></b><font color="#ffffff">PERFORMNUD</font><b><font color="#ee5896">,</font></b><font color="#ffffff">ACCEPT_RTADV</font><b><font color="#ee5896">,</font></b><font color="#ffffff">AUTO_LINKLOCAL</font><b><font color="#ee5896">></font></b> </pre> <br /> <h2 style='display: inline' id='ram'>RAM</h2><br /> @@ -300,8 +300,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> sysctl hw</font><font color="#F3E651">.</font><font color="#ff0000">physmem</font> -<font color="#ff0000">hw</font><font color="#F3E651">.</font><font color="#ff0000">physmem</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">16902905856</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sysctl hw</font><b><font color="#ee5896">.</font></b><font color="#ffffff">physmem</font> +<font color="#ffffff">hw</font><b><font color="#ee5896">.</font></b><font color="#ffffff">physmem</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">16902905856</font> </pre> <br /> @@ -313,11 +313,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> sysctl dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu </font><font color="#F3E651">|</font><font color="#ff0000"> grep freq</font><font color="#F3E651">:</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">3</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">705</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">705</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">604</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">604</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sysctl dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep freq</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">705</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">705</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">604</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">604</font> </pre> <br /> <h2 style='display: inline' id='cpu-throttling'>CPU throttling</h2><br /> @@ -328,14 +328,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install ubench</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> rehash </font><i><font color="#ababab"># For tcsh to find the newly installed command</font></i> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> ubench </font><font color="#F3E651">&</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> sysctl dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu </font><font color="#F3E651">|</font><font color="#ff0000"> grep freq</font><font color="#F3E651">:</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">3</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2922</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2922</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2923</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2922</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install ubench</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> rehash </font><i><font color="#00ff00"># For tcsh to find the newly installed command</font></i> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> ubench </font><b><font color="#ee5896">&</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sysctl dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep freq</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2922</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2922</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2923</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2922</font> </pre> <br /> <span>Idle, all three Beelinks plus the switch consumed 26.2W. But with <span class='inlinecode'>ubench</span> stressing all the CPUs, it went up to 38.8W.</span><br /> diff --git a/gemfeed/2024-12-15-random-helix-themes.html b/gemfeed/2024-12-15-random-helix-themes.html index f6adf0d5..b58956ba 100644 --- a/gemfeed/2024-12-15-random-helix-themes.html +++ b/gemfeed/2024-12-15-random-helix-themes.html @@ -25,33 +25,33 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">hx</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">VISUAL</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GIT_EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">HELIX_CONFIG_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$HOME</font><font color="#F3E651">/.</font><font color="#ff0000">config/helix</font> +<pre><b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">EDITOR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">hx</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">VISUAL</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$EDITOR</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">GIT_EDITOR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$EDITOR</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">HELIX_CONFIG_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$HOME</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">config/helix</font> -<font color="#ff0000">editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#7bc710">random_theme ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><i><font color="#ababab"># May add more theme search paths based on OS. This one is</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># for Fedora Linux, but there is also MacOS, etc.</font></i> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">theme_dir</font><font color="#F3E651">=</font><font color="#ff0000">/usr/share/helix/runtime/themes</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d </font><font color="#ff0000">$theme_dir</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Helix theme dir $theme_dir doesnt exist"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<font color="#ffffff">editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">random_theme ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># May add more theme search paths based on OS. This one is</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># for Fedora Linux, but there is also MacOS, etc.</font></i> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">theme_dir</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/usr/share/helix/runtime/themes</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d </font><font color="#ffffff">$theme_dir</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Helix theme dir $theme_dir doesnt exist"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">config_file</font><font color="#F3E651">=</font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">random_theme</font><font color="#F3E651">=</font><font color="#bb00ff">"$(basename "</font><font color="#ff0000">$(</font><font color="#ff0000">ls </font><font color="#ff0000">$theme_dir</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep -v random</font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">|</font><font color="#ff0000"> sort -R </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#F3E651">)</font><font color="#bb00ff">" | cut -d. -f1)"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">config_file</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$HELIX_CONFIG_DIR</font><font color="#ffffff">/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">random_theme</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$(basename "</font><font color="#ffffff">$(</font><font color="#ffffff">ls </font><font color="#ffffff">$theme_dir</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -v random</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> sort -R </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> head -n </font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">" | cut -d. -f1)"</font> -<font color="#ff0000"> sed </font><font color="#bb00ff">"/^theme =/ { s/.*/theme = </font><font color="#ffffff">\"</font><font color="#bb00ff">$random_theme</font><font color="#ffffff">\"</font><font color="#bb00ff">/; }"</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#ff0000"> </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">&&</font><font color="#ff0000"> </font> -<font color="#ff0000"> mv </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$config_file</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> sed </font><font color="#cd00ff">"/^theme =/ { s/.*/theme = </font><font color="#cd00ff">\"</font><font color="#cd00ff">$random_theme</font><font color="#cd00ff">\"</font><font color="#cd00ff">/; }"</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$config_file</font><font color="#ffffff"> </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$config_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font> +<font color="#ffffff"> mv </font><font color="#ffffff">$config_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$config_file</font> +<font color="#ffffff">}</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$HELIX_CONFIG_DIR</font><font color="#ffffff">/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">random_theme</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>So every time I open a new terminal or shell, <span class='inlinecode'>editor::helix::random_theme</span> gets called, which randomly selects a theme from all installed ones and updates the helix config accordingly.</span><br /> @@ -60,16 +60,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font> -<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">~/.</font><font color="#ff0000">config/helix/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font> -<font color="#ff0000">theme </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"jellybeans"</font> -<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font> -<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">~/.</font><font color="#ff0000">config/helix/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font> -<font color="#ff0000">theme </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"rose_pine"</font> -<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font> -<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">~/.</font><font color="#ff0000">config/helix/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font> -<font color="#ff0000">theme </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"noctis"</font> -<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">random_theme</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> head -n </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">~/.</font></b><font color="#ffffff">config/helix/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml</font> +<font color="#ffffff">theme </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">"jellybeans"</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">random_theme</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> head -n </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">~/.</font></b><font color="#ffffff">config/helix/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml</font> +<font color="#ffffff">theme </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">"rose_pine"</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">random_theme</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> head -n </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">~/.</font></b><font color="#ffffff">config/helix/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml</font> +<font color="#ffffff">theme </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">"noctis"</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b> </pre> <br /> <h2 style='display: inline' id='a-better-version'>A better version</h2><br /> @@ -80,33 +80,33 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">hx</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">VISUAL</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GIT_EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">HELIX_CONFIG_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$HOME</font><font color="#F3E651">/.</font><font color="#ff0000">config/helix</font> +<pre><b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">EDITOR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">hx</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">VISUAL</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$EDITOR</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">GIT_EDITOR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$EDITOR</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">HELIX_CONFIG_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$HOME</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">config/helix</font> -<font color="#ff0000">editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">theme</font><font color="#F3E651">::</font><font color="#7bc710">get_random ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> dir </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#ff0000">hx --health </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> awk </font><font color="#bb00ff">'/^Runtime directories/ { print $3 }'</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> tr </font><font color="#bb00ff">';'</font><font color="#ff0000"> </font><font color="#bb00ff">' '</font><font color="#F3E651">);</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -d </font><font color="#ff0000">$dir</font><font color="#ff0000">/themes </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> ls </font><font color="#ff0000">$dir</font><font color="#ff0000">/themes</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep -F </font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">|</font><font color="#ff0000"> sort -R </font><font color="#F3E651">|</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">.</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font> -<font color="#ff0000">}</font> +<font color="#ffffff">editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">theme</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">get_random ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> dir </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><font color="#ffffff">$(</font><font color="#ffffff">hx --health </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> awk </font><font color="#cd00ff">'/^Runtime directories/ { print $3 }'</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> tr </font><font color="#cd00ff">';'</font><font color="#ffffff"> </font><font color="#cd00ff">' '</font><b><font color="#ee5896">);</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -d </font><font color="#ffffff">$dir</font><font color="#ffffff">/themes </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> ls </font><font color="#ffffff">$dir</font><font color="#ffffff">/themes</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -F </font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> sort -R </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> head -n </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">.</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font> +<font color="#ffffff">}</font> -<font color="#ff0000">editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">theme</font><font color="#F3E651">::</font><font color="#7bc710">set ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">theme</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> +<font color="#ffffff">editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">theme</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">set ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">theme</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">config_file</font><font color="#F3E651">=</font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">config_file</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$HELIX_CONFIG_DIR</font><font color="#ffffff">/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml</font> -<font color="#ff0000"> sed </font><font color="#bb00ff">"/^theme =/ { s/.*/theme = </font><font color="#ffffff">\"</font><font color="#bb00ff">$theme</font><font color="#ffffff">\"</font><font color="#bb00ff">/; }"</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#ff0000"> </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">&&</font><font color="#ff0000"> </font> -<font color="#ff0000"> mv </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$config_file</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> sed </font><font color="#cd00ff">"/^theme =/ { s/.*/theme = </font><font color="#cd00ff">\"</font><font color="#cd00ff">$theme</font><font color="#cd00ff">\"</font><font color="#cd00ff">/; }"</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">$config_file</font><font color="#ffffff"> </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$config_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font> +<font color="#ffffff"> mv </font><font color="#ffffff">$config_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$config_file</font> +<font color="#ffffff">}</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">theme</font><font color="#F3E651">::</font><b><font color="#ffffff">set</font></b><font color="#ff0000"> </font><font color="#ff0000">$(editor::helix::theme::get_random)</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$HELIX_CONFIG_DIR</font><font color="#ffffff">/config</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toml </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> editor</font><b><font color="#ee5896">::</font></b><font color="#ffffff">helix</font><b><font color="#ee5896">::</font></b><font color="#ffffff">theme</font><b><font color="#ee5896">::</font></b><b><font color="#00ffff">set</font></b><font color="#ffffff"> </font><font color="#ffffff">$(editor::helix::theme::get_random)</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>I hope you had some fun. E-Mail your comments to <span class='inlinecode'>paul@nospam.buetow.org</span> :-)</span><br /> diff --git a/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html b/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html index a9d6bd4d..335a9cb7 100644 --- a/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html +++ b/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html @@ -59,11 +59,11 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update fetch</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update -r </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE upgrade</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas shutdown -r now</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update fetch</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update -r </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE upgrade</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas shutdown -r now</font> </pre> <br /> <span>And after rebooting, I ran:</span><br /> @@ -72,10 +72,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg update</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg upgrade</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas shutdown -r now</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg update</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg upgrade</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas shutdown -r now</font> </pre> <br /> <span>And after another reboot, I was on 14.2:</span><br /> @@ -84,9 +84,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> uname -a</font> -<font color="#ff0000">FreeBSD f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE </font> -<font color="#ff0000"> releng</font><font color="#F3E651">/</font><font color="#bb00ff">14.2</font><font color="#ff0000">-n</font><font color="#bb00ff">269506</font><font color="#ff0000">-c8918d6c7412 GENERIC amd64</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> uname -a</font> +<font color="#ffffff">FreeBSD f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE </font> +<font color="#ffffff"> releng</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">14.2</font><font color="#ffffff">-n</font><font color="#ff00ff">269506</font><font color="#ffffff">-c8918d6c7412 GENERIC amd64</font> </pre> <br /> <span>And, of course, I ran this on all 3 nodes!</span><br /> @@ -132,8 +132,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas dmesg </font><font color="#F3E651">|</font><font color="#ff0000"> grep UPS</font> -<font color="#ff0000">ugen0</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651"><</font><font color="#ff0000">American Power Conversion Back-UPS BX750MI</font><font color="#F3E651">></font><font color="#ff0000"> at usbus0</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas dmesg </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep UPS</font> +<font color="#ffffff">ugen0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><</font></b><font color="#ffffff">American Power Conversion Back-UPS BX750MI</font><b><font color="#ee5896">></font></b><font color="#ffffff"> at usbus0</font> </pre> <br /> <h3 style='display: inline' id='apcupsd-installation'><span class='inlinecode'>apcupsd</span> Installation</h3><br /> @@ -144,7 +144,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas install apcupsd</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas install apcupsd</font> </pre> <br /> <span>I have made the following modifications to the configuration file so that the UPS can be used via the USB interface:</span><br /> @@ -153,29 +153,29 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> diff -u apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">--- apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample </font><font color="#bb00ff">2024</font><font color="#ff0000">-</font><font color="#bb00ff">11</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000"> </font><font color="#bb00ff">16</font><font color="#F3E651">:</font><font color="#bb00ff">40</font><font color="#F3E651">:</font><font color="#bb00ff">42.000000000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#F3E651">+++</font><font color="#ff0000"> apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf </font><font color="#bb00ff">2024</font><font color="#ff0000">-</font><font color="#bb00ff">12</font><font color="#ff0000">-</font><font color="#bb00ff">03</font><font color="#ff0000"> </font><font color="#bb00ff">10</font><font color="#F3E651">:</font><font color="#bb00ff">58</font><font color="#F3E651">:</font><font color="#bb00ff">24.009501000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">@@ -</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-0095C, 940-0625A, M-04-02-2000</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSCABLE smart</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSCABLE usb</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> diff -u apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">--- apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample </font><font color="#ff00ff">2024</font><font color="#ffffff">-</font><font color="#ff00ff">11</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff"> </font><font color="#ff00ff">16</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">40</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">42.000000000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<b><font color="#ee5896">+++</font></b><font color="#ffffff"> apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf </font><font color="#ff00ff">2024</font><font color="#ffffff">-</font><font color="#ff00ff">12</font><font color="#ffffff">-</font><font color="#ff00ff">03</font><font color="#ffffff"> </font><font color="#ff00ff">10</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">58</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">24.009501000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">@@ -</font><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-0095C, 940-0625A, M-04-02-2000</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSCABLE smart</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSCABLE usb</font> -<font color="#ff0000"> </font><i><font color="#ababab"># To get apcupsd to work, in addition to defining the cable</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># above, you must also define a UPSTYPE, which corresponds to</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">88</font><font color="#F3E651">,</font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">88</font><font color="#F3E651">,</font><font color="#bb00ff">10</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># that apcupsd binds to that particular unit</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (helpful if you have more than one USB UPS).</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSTYPE apcsmart</font> -<font color="#ff0000">-DEVICE /dev/usv</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSTYPE usb</font> -<font color="#F3E651">+</font><font color="#ff0000">DEVICE</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># To get apcupsd to work, in addition to defining the cable</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># above, you must also define a UPSTYPE, which corresponds to</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">88</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">8</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">88</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">10</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># that apcupsd binds to that particular unit</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (helpful if you have more than one USB UPS).</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSTYPE apcsmart</font> +<font color="#ffffff">-DEVICE /dev/usv</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSTYPE usb</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">DEVICE</font> -<font color="#ff0000"> </font><i><font color="#ababab"># POLLTIME <int></font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># POLLTIME <int></font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> </pre> <br /> <span>I left the remaining settings as the default ones; for example, the following are of main interest:</span><br /> @@ -198,10 +198,10 @@ MINUTES 3 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">apcupsd_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">apcupsd_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas service apcupsd start</font> -<font color="#ff0000">Starting apcupsd</font><font color="#F3E651">.</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas service apcupsd start</font> +<font color="#ffffff">Starting apcupsd</font><b><font color="#ee5896">.</font></b> </pre> <br /> <h3 style='display: inline' id='ups-connectivity-test'>UPS Connectivity Test</h3><br /> @@ -212,43 +212,43 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> apcaccess</font> -<font color="#ff0000">APC </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">001</font><font color="#F3E651">,</font><font color="#bb00ff">035</font><font color="#F3E651">,</font><font color="#bb00ff">0857</font> -<font color="#ff0000">DATE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#F3E651">:</font><font color="#bb00ff">27</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">HOSTNAME </font><font color="#F3E651">:</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">VERSION </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">3.14</font><font color="#F3E651">.</font><font color="#bb00ff">14</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">31</font><font color="#ff0000"> May </font><font color="#bb00ff">2016</font><font color="#F3E651">)</font><font color="#ff0000"> freebsd</font> -<font color="#ff0000">UPSNAME </font><font color="#F3E651">:</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">CABLE </font><font color="#F3E651">:</font><font color="#ff0000"> USB Cable</font> -<font color="#ff0000">DRIVER </font><font color="#F3E651">:</font><font color="#ff0000"> USB UPS Driver</font> -<font color="#ff0000">UPSMODE </font><font color="#F3E651">:</font><font color="#ff0000"> Stand Alone</font> -<font color="#ff0000">STARTTIME</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#F3E651">:</font><font color="#bb00ff">25</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">MODEL </font><font color="#F3E651">:</font><font color="#ff0000"> Back-UPS BX750MI</font> -<font color="#ff0000">STATUS </font><font color="#F3E651">:</font><font color="#ff0000"> ONLINE</font> -<font color="#ff0000">LINEV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">230.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">LOADPCT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">4.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">BCHARGE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">100.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">TIMELEFT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">65.3</font><font color="#ff0000"> Minutes</font> -<font color="#ff0000">MBATTCHG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">MINTIMEL </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#ff0000"> Minutes</font> -<font color="#ff0000">MAXTIME </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> Seconds</font> -<font color="#ff0000">SENSE </font><font color="#F3E651">:</font><font color="#ff0000"> Medium</font> -<font color="#ff0000">LOTRANS </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">145.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">HITRANS </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">295.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">ALARMDEL </font><font color="#F3E651">:</font><font color="#ff0000"> No alarm</font> -<font color="#ff0000">BATTV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">13.6</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">LASTXFER </font><font color="#F3E651">:</font><font color="#ff0000"> Automatic or explicit self </font><b><font color="#ffffff">test</font></b> -<font color="#ff0000">NUMXFERS </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">TONBATT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> Seconds</font> -<font color="#ff0000">CUMONBATT</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> Seconds</font> -<font color="#ff0000">XOFFBATT </font><font color="#F3E651">:</font><font color="#ff0000"> N/A</font> -<font color="#ff0000">SELFTEST </font><font color="#F3E651">:</font><font color="#ff0000"> NG</font> -<font color="#ff0000">STATFLAG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0x05000008</font> -<font color="#ff0000">SERIALNO </font><font color="#F3E651">:</font><font color="#ff0000"> 9B2414A03599</font> -<font color="#ff0000">BATTDATE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2001</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">01</font> -<font color="#ff0000">NOMINV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">230</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">NOMBATTV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">12.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">NOMPOWER </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">410</font><font color="#ff0000"> Watts</font> -<font color="#ff0000">END APC </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#F3E651">:</font><font color="#bb00ff">06</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> apcaccess</font> +<font color="#ffffff">APC </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">001</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">035</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">0857</font> +<font color="#ffffff">DATE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">14</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">27</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">HOSTNAME </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">VERSION </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">3.14</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">14</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">31</font><font color="#ffffff"> May </font><font color="#ff00ff">2016</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> freebsd</font> +<font color="#ffffff">UPSNAME </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">CABLE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> USB Cable</font> +<font color="#ffffff">DRIVER </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> USB UPS Driver</font> +<font color="#ffffff">UPSMODE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Stand Alone</font> +<font color="#ffffff">STARTTIME</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">14</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">25</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">MODEL </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Back-UPS BX750MI</font> +<font color="#ffffff">STATUS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> ONLINE</font> +<font color="#ffffff">LINEV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">230.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">LOADPCT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">4.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">BCHARGE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">100.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">TIMELEFT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">65.3</font><font color="#ffffff"> Minutes</font> +<font color="#ffffff">MBATTCHG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">MINTIMEL </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><font color="#ffffff"> Minutes</font> +<font color="#ffffff">MAXTIME </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> Seconds</font> +<font color="#ffffff">SENSE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Medium</font> +<font color="#ffffff">LOTRANS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">145.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">HITRANS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">295.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">ALARMDEL </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> No alarm</font> +<font color="#ffffff">BATTV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">13.6</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">LASTXFER </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Automatic or explicit self </font><b><font color="#00ffff">test</font></b> +<font color="#ffffff">NUMXFERS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">TONBATT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> Seconds</font> +<font color="#ffffff">CUMONBATT</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> Seconds</font> +<font color="#ffffff">XOFFBATT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> N/A</font> +<font color="#ffffff">SELFTEST </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> NG</font> +<font color="#ffffff">STATFLAG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0x05000008</font> +<font color="#ffffff">SERIALNO </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 9B2414A03599</font> +<font color="#ffffff">BATTDATE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2001</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">01</font> +<font color="#ffffff">NOMINV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">230</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">NOMBATTV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">12.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">NOMPOWER </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">410</font><font color="#ffffff"> Watts</font> +<font color="#ffffff">END APC </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">14</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">06</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> </pre> <br /> <h2 style='display: inline' id='apc-info-on-partner-nodes'>APC Info on Partner Nodes:</h2><br /> @@ -267,10 +267,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f1</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> apcaccess -h f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org </font><font color="#F3E651">|</font><font color="#ff0000"> grep Percent</font> -<font color="#ff0000">LOADPCT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">12.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">BCHARGE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">94.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">MBATTCHG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> Percent</font> +<pre><font color="#ffffff">paul@f1</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> apcaccess -h f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep Percent</font> +<font color="#ffffff">LOADPCT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">12.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">BCHARGE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">94.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">MBATTCHG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> Percent</font> </pre> <br /> <span>But I want the daemon to be configured and enabled in such a way that it connects to the master UPS node (the one with the UPS connected via USB) so that it can also initiate a system shutdown when the UPS battery reaches low levels. For that, <span class='inlinecode'>apcupsd</span> itself needs to be aware of the UPS status.</span><br /> @@ -281,52 +281,52 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f2</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> diff -u apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">--- apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample </font><font color="#bb00ff">2024</font><font color="#ff0000">-</font><font color="#bb00ff">11</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000"> </font><font color="#bb00ff">16</font><font color="#F3E651">:</font><font color="#bb00ff">40</font><font color="#F3E651">:</font><font color="#bb00ff">42.000000000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#F3E651">+++</font><font color="#ff0000"> apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">15</font><font color="#F3E651">:</font><font color="#bb00ff">52</font><font color="#F3E651">:</font><font color="#bb00ff">45.108469000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">@@ -</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-0095C, 940-0625A, M-04-02-2000</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSCABLE smart</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSCABLE ether</font> +<pre><font color="#ffffff">paul@f2</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> diff -u apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">--- apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample </font><font color="#ff00ff">2024</font><font color="#ffffff">-</font><font color="#ff00ff">11</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff"> </font><font color="#ff00ff">16</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">40</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">42.000000000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<b><font color="#ee5896">+++</font></b><font color="#ffffff"> apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">15</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">52</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">45.108469000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">@@ -</font><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-0095C, 940-0625A, M-04-02-2000</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSCABLE smart</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSCABLE ether</font> -<font color="#ff0000"> </font><i><font color="#ababab"># To get apcupsd to work, in addition to defining the cable</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># above, you must also define a UPSTYPE, which corresponds to</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">52</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">52</font><font color="#F3E651">,</font><font color="#bb00ff">6</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Network Information Server. This is used if the</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># UPS powering your computer is connected to a</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># different computer for monitoring.</font></i> -<font color="#ff0000">-</font><i><font color="#ababab">#</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># snmp hostname:port:vendor:community</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># SNMP network link to an SNMP-enabled UPS device.</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Hostname is the ip address or hostname of the UPS</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">88</font><font color="#F3E651">,</font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">87</font><font color="#F3E651">,</font><font color="#bb00ff">8</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># that apcupsd binds to that particular unit</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (helpful if you have more than one USB UPS).</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSTYPE apcsmart</font> -<font color="#ff0000">-DEVICE /dev/usv</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSTYPE net</font> -<font color="#F3E651">+</font><font color="#ff0000">DEVICE f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:</font><font color="#bb00ff">3551</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># To get apcupsd to work, in addition to defining the cable</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># above, you must also define a UPSTYPE, which corresponds to</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">52</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">52</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">6</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># Network Information Server. This is used if the</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># UPS powering your computer is connected to a</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># different computer for monitoring.</font></i> +<font color="#ffffff">-</font><i><font color="#00ff00">#</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># snmp hostname:port:vendor:community</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># SNMP network link to an SNMP-enabled UPS device.</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Hostname is the ip address or hostname of the UPS</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">88</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">8</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">87</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">8</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># that apcupsd binds to that particular unit</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (helpful if you have more than one USB UPS).</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSTYPE apcsmart</font> +<font color="#ffffff">-DEVICE /dev/usv</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSTYPE net</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">DEVICE f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">3551</font> -<font color="#ff0000"> </font><i><font color="#ababab"># POLLTIME <int></font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">147</font><font color="#F3E651">,</font><font color="#bb00ff">12</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">146</font><font color="#F3E651">,</font><font color="#bb00ff">12</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># If during a power failure, the remaining battery percentage</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (as reported by the UPS) is below or equal to BATTERYLEVEL,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># apcupsd will initiate a system shutdown.</font></i> -<font color="#ff0000">-BATTERYLEVEL </font><font color="#bb00ff">5</font> -<font color="#F3E651">+</font><font color="#ff0000">BATTERYLEVEL </font><font color="#bb00ff">10</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># POLLTIME <int></font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">147</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">12</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">146</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">12</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># If during a power failure, the remaining battery percentage</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (as reported by the UPS) is below or equal to BATTERYLEVEL,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># apcupsd will initiate a system shutdown.</font></i> +<font color="#ffffff">-BATTERYLEVEL </font><font color="#ff00ff">5</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">BATTERYLEVEL </font><font color="#ff00ff">10</font> -<font color="#ff0000"> </font><i><font color="#ababab"># If during a power failure, the remaining runtime in minutes</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (as calculated internally by the UPS) is below or equal to MINUTES,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># apcupsd, will initiate a system shutdown.</font></i> -<font color="#ff0000">-MINUTES </font><font color="#bb00ff">3</font> -<font color="#F3E651">+</font><font color="#ff0000">MINUTES </font><font color="#bb00ff">6</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># If during a power failure, the remaining runtime in minutes</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (as calculated internally by the UPS) is below or equal to MINUTES,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># apcupsd, will initiate a system shutdown.</font></i> +<font color="#ffffff">-MINUTES </font><font color="#ff00ff">3</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">MINUTES </font><font color="#ff00ff">6</font> -<font color="#ff0000"> </font><i><font color="#ababab"># If during a power failure, the UPS has run on batteries for TIMEOUT</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># many seconds or longer, apcupsd will initiate a system shutdown.</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># If during a power failure, the UPS has run on batteries for TIMEOUT</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># many seconds or longer, apcupsd will initiate a system shutdown.</font></i> </pre> <span>So I also ran the following commands on <span class='inlinecode'>f1</span> and <span class='inlinecode'>f2</span>:</span><br /> @@ -335,10 +335,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f1</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">apcupsd_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">apcupsd_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f1</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas service apcupsd start</font> -<font color="#ff0000">Starting apcupsd</font><font color="#F3E651">.</font> +<pre><font color="#ffffff">paul@f1</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f1</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas service apcupsd start</font> +<font color="#ffffff">Starting apcupsd</font><b><font color="#ee5896">.</font></b> </pre> <br /> <span>And then I was able to connect to localhost via the <span class='inlinecode'>apcaccess</span> command:</span><br /> @@ -347,10 +347,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f1</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas apcaccess </font><font color="#F3E651">|</font><font color="#ff0000"> grep Percent</font> -<font color="#ff0000">LOADPCT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">BCHARGE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">95.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">MBATTCHG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> Percent</font> +<pre><font color="#ffffff">paul@f1</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas apcaccess </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep Percent</font> +<font color="#ffffff">LOADPCT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">BCHARGE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">95.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">MBATTCHG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> Percent</font> </pre> <br /> <h2 style='display: inline' id='power-outage-simulation'>Power outage simulation</h2><br /> @@ -372,8 +372,8 @@ Power failure. Running on UPS batteries. by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> apcaccess -p TIMELEFT</font> -<font color="#bb00ff">63.9</font><font color="#ff0000"> Minutes</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> apcaccess -p TIMELEFT</font> +<font color="#ff00ff">63.9</font><font color="#ffffff"> Minutes</font> </pre> <br /> <span>And after around one hour (<span class='inlinecode'>f1</span> and <span class='inlinecode'>f2</span> a bit earlier, <span class='inlinecode'>f0</span> a bit later due to the different <span class='inlinecode'>BATTERYLEVEL</span> and <span class='inlinecode'>MINUTES</span> settings outlined earlier), the following broadcast was sent out:</span><br /> diff --git a/gemfeed/2025-02-08-random-weird-things-ii.html b/gemfeed/2025-02-08-random-weird-things-ii.html index fb87f963..a4076d4d 100644 --- a/gemfeed/2025-02-08-random-weird-things-ii.html +++ b/gemfeed/2025-02-08-random-weird-things-ii.html @@ -79,25 +79,25 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> main</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> main</font> -<b><font color="#ffffff">import</font></b><font color="#ff0000"> </font><font color="#bb00ff">"log"</font> +<b><font color="#00ffff">import</font></b><font color="#ffffff"> </font><font color="#cd00ff">"log"</font> -<b><font color="#ffffff">type</font></b><font color="#ff0000"> fun </font><b><font color="#ffffff">func</font></b><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#F35E1E">string</font></b> +<b><font color="#00ffff">type</font></b><font color="#ffffff"> fun </font><b><font color="#00ffff">func</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><font color="#ffff00">string</font> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">f fun</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#7bc710">Bar</font><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#F35E1E">string</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">"Bar"</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">f fun</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><font color="#ffff00">string</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#cd00ff">"Bar"</font> +<b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">var</font></b><font color="#ff0000"> f fun </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">func</font></b><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#F35E1E">string</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">"Foo"</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 1: "</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">f</font><font color="#F3E651">())</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 2: "</font><font color="#F3E651">,</font><font color="#ff0000"> f</font><font color="#F3E651">.</font><font color="#7bc710">Bar</font><font color="#F3E651">())</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 3: "</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">fun</font><font color="#F3E651">(</font><font color="#ff0000">f</font><font color="#F3E651">.</font><font color="#ff0000">Bar</font><font color="#F3E651">).</font><font color="#7bc710">Bar</font><font color="#F3E651">())</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 4: "</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">fun</font><font color="#F3E651">(</font><font color="#7bc710">fun</font><font color="#F3E651">(</font><font color="#ff0000">f</font><font color="#F3E651">.</font><font color="#ff0000">Bar</font><font color="#F3E651">).</font><font color="#ff0000">Bar</font><font color="#F3E651">).</font><font color="#7bc710">Bar</font><font color="#F3E651">())</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">var</font></b><font color="#ffffff"> f fun </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">func</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><font color="#ffff00">string</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#cd00ff">"Foo"</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 1: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">f</font></b><b><font color="#ee5896">())</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 2: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> f</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">())</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 3: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fun</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">f</font><b><font color="#ee5896">.</font></b><font color="#ffffff">Bar</font><b><font color="#ee5896">).</font></b><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">())</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 4: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fun</font></b><b><font color="#ee5896">(</font></b><b><font color="#ffffff">fun</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">f</font><b><font color="#ee5896">.</font></b><font color="#ffffff">Bar</font><b><font color="#ee5896">).</font></b><font color="#ffffff">Bar</font><b><font color="#ee5896">).</font></b><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">())</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <span>It runs just fine:</span><br /> @@ -106,11 +106,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ go run main</font><font color="#F3E651">.</font><font color="#ff0000">go</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">1</font><font color="#F3E651">:</font><font color="#ff0000"> Foo</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">2</font><font color="#F3E651">:</font><font color="#ff0000"> Bar</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">3</font><font color="#F3E651">:</font><font color="#ff0000"> Bar</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">4</font><font color="#F3E651">:</font><font color="#ff0000"> Bar</font> +<pre><font color="#ffffff">❯ go run main</font><b><font color="#ee5896">.</font></b><font color="#ffffff">go</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">1</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Foo</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">2</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Bar</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">3</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Bar</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">4</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Bar</font> </pre> <br /> <h2 style='display: inline' id='macos'>macOS</h2><br /> @@ -129,20 +129,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ touch Maß</font> -<font color="#ff0000">❯ ls -l</font> -<font color="#ff0000">-rw-r--r--@ </font><font color="#bb00ff">1</font><font color="#ff0000"> paul wheel </font><font color="#bb00ff">0</font><font color="#ff0000"> Feb </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#ff0000"> Maß</font> -<font color="#ff0000">❯ touch Mass</font> -<font color="#ff0000">❯ ls -l</font> -<font color="#ff0000">-rw-r--r--@ </font><font color="#bb00ff">1</font><font color="#ff0000"> paul wheel </font><font color="#bb00ff">0</font><font color="#ff0000"> Feb </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#ff0000"> Maß</font> -<font color="#ff0000">❯ rm Mass</font> -<font color="#ff0000">❯ ls -l</font> +<pre><font color="#ffffff">❯ touch Maß</font> +<font color="#ffffff">❯ ls -l</font> +<font color="#ffffff">-rw-r--r--@ </font><font color="#ff00ff">1</font><font color="#ffffff"> paul wheel </font><font color="#ff00ff">0</font><font color="#ffffff"> Feb </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><font color="#ffffff"> Maß</font> +<font color="#ffffff">❯ touch Mass</font> +<font color="#ffffff">❯ ls -l</font> +<font color="#ffffff">-rw-r--r--@ </font><font color="#ff00ff">1</font><font color="#ffffff"> paul wheel </font><font color="#ff00ff">0</font><font color="#ffffff"> Feb </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><font color="#ffffff"> Maß</font> +<font color="#ffffff">❯ rm Mass</font> +<font color="#ffffff">❯ ls -l</font> -<font color="#ff0000">❯ touch Mass</font> -<font color="#ff0000">❯ ls -ltr</font> -<font color="#ff0000">-rw-r--r--@ </font><font color="#bb00ff">1</font><font color="#ff0000"> paul wheel </font><font color="#bb00ff">0</font><font color="#ff0000"> Feb </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#ff0000"> Mass</font> -<font color="#ff0000">❯ rm Maß</font> -<font color="#ff0000">❯ ls -l</font> +<font color="#ffffff">❯ touch Mass</font> +<font color="#ffffff">❯ ls -ltr</font> +<font color="#ffffff">-rw-r--r--@ </font><font color="#ff00ff">1</font><font color="#ffffff"> paul wheel </font><font color="#ff00ff">0</font><font color="#ffffff"> Feb </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><font color="#ffffff"> Mass</font> +<font color="#ffffff">❯ rm Maß</font> +<font color="#ffffff">❯ ls -l</font> </pre> <br /> @@ -186,16 +186,16 @@ ADFS::4.$.Documents.Techwriter.Myfile by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">arr </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#bb00ff">10</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">20</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">30</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">40</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">50</font><font color="#F3E651">}</font> -<font color="#7bc710">print</font><font color="#F3E651">(</font><font color="#ff0000">arr</font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">])</font><font color="#ff0000"> </font><i><font color="#ababab">-- Accessing the first element</font></i> +<pre><font color="#ffffff">arr </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">20</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">30</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">40</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">50</font><b><font color="#ee5896">}</font></b> +<b><font color="#ffffff">print</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">arr</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">])</font></b><font color="#ffffff"> </font><i><font color="#00ff00">-- Accessing the first element</font></i> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ lua foo</font><font color="#F3E651">.</font><font color="#ff0000">lua</font> -<font color="#bb00ff">10</font> +<pre><font color="#ffffff">❯ lua foo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lua</font> +<font color="#ff00ff">10</font> </pre> <br /> <span>One-based indexing is more natural for human-readable, mathematical, and theoretical contexts, where counting traditionally starts from one.</span><br /> @@ -210,45 +210,45 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># (C) 2006 by Paul C. Buetow</font></i> +<pre><i><font color="#00ff00"># (C) 2006 by Paul C. Buetow</font></i> -<font color="#ff0000">Christmas</font><font color="#F3E651">:</font><font color="#F3E651">{</font><font color="#ff0000">time</font><font color="#F3E651">;</font><i><font color="#ababab">#!!!</font></i> +<font color="#ffffff">Christmas</font><b><font color="#ee5896">:</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">time</font><b><font color="#ee5896">;</font></b><i><font color="#00ff00">#!!!</font></i> -<font color="#ff0000">Children</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">tell</font></b><font color="#ff0000"> </font><font color="#ff0000">$wishes</font><font color="#F3E651">;</font> +<font color="#ffffff">Children</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tell</font></b><font color="#ffffff"> </font><font color="#ffffff">$wishes</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000">Santa</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@children</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font> -<font color="#ff0000">BEGIN </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$their</font><font color="#F3E651">,</font><font color="#ff0000"> wishes </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study them</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> Memoize</font><i><font color="#ababab">#ing</font></i> +<font color="#ffffff">Santa</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">@children</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font> +<font color="#ffffff">BEGIN </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$their</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> wishes </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study them</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> Memoize</font><i><font color="#00ff00">#ing</font></i> -<font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> constant gift</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'wrapping'</font><font color="#F3E651">;</font><font color="#ff0000"> </font> -<b><font color="#ffffff">package</font></b><font color="#ff0000"> Gifts</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">pack</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#F3E651">,</font><font color="#ff0000"> gift </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">bless</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">goto</font></b><font color="#ff0000"> deliver</font> -<font color="#ff0000">or </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#ababab">import</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$available</font><font color="#F3E651">,!!!</font><font color="#ff0000"> HO</font><font color="#F3E651">,</font><font color="#ff0000"> HO</font><font color="#F3E651">,</font><font color="#ff0000"> HO</font><font color="#F3E651">;</font> +<b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> constant gift</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'wrapping'</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">package</font></b><font color="#ffffff"> Gifts</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pack</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> gift </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">bless</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">goto</font></b><font color="#ffffff"> deliver</font> +<font color="#ffffff">or </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><font color="#ffbb00">import</font><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$available</font><b><font color="#ee5896">,!!!</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<font color="#ff0000">deliver</font><font color="#F3E651">:</font><font color="#ff0000"> gift </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">require</font></b><font color="#ff0000"> diagnostics </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#ff0000"> </font><font color="#F3E651">,</font><font color="#ff0000">not break</font><font color="#F3E651">;</font> -<b><font color="#ffffff">do</font></b><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> NEXT</font><font color="#F3E651">;</font><font color="#ff0000"> time</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">tied</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> broken </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">dump</font></b><font color="#ff0000"> the</font><font color="#F3E651">,</font><font color="#ff0000"> broken</font><font color="#F3E651">,</font><font color="#ff0000"> ones</font><font color="#F3E651">;</font> -<font color="#ff0000">The_children</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">wait</font></b><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#ffffff">each</font></b><font color="#ff0000"> </font><font color="#ff0000">%gift</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> try </font><font color="#F3E651">{</font><font color="#ff0000"> to </font><font color="#F3E651">=></font><font color="#ff0000"> </font><b><font color="#ffffff">untie</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffffff">deliver</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> gift </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">require</font></b><font color="#ffffff"> diagnostics </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><font color="#ffffff"> </font><b><font color="#ee5896">,</font></b><font color="#ffffff">not break</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">do</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> NEXT</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> time</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tied</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> broken </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">dump</font></b><font color="#ffffff"> the</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> broken</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> ones</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff">The_children</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">wait</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><b><font color="#00ffff">each</font></b><font color="#ffffff"> </font><font color="#ffffff">%gift</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> try </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> to </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><b><font color="#00ffff">untie</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<font color="#ff0000">The_christmas_tree</font><font color="#F3E651">:</font><font color="#ff0000"> formline </font><b><font color="#ffffff">s</font></b><font color="#bb00ff">/ /childrens/</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">;</font> -<b><font color="#ffffff">alarm</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">warn</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">exists</font></b><font color="#ff0000"> </font><font color="#ff0000">$Christmas</font><font color="#F3E651">{</font><font color="#ff0000"> tree</font><font color="#F3E651">}</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">@t</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$ENV</font><font color="#F3E651">{</font><font color="#ff0000">HOME</font><font color="#F3E651">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font> -<b><font color="#ffffff">write</font></b><font color="#ff0000"> </font><font color="#F3E651"><<</font><font color="#ff0000">EMail</font> -<font color="#ff0000"> to the parents to buy a new christmas tree</font><font color="#F3E651">!!!!</font><font color="#bb00ff">111</font> -<font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> send the</font> -<font color="#ff0000">EMail</font> -<font color="#F3E651">;</font><b><font color="#ffffff">wait</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">redo</font></b><font color="#ff0000"> deliver until </font><b><font color="#ffffff">defined</font></b><font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$tree</font><font color="#F3E651">;</font> +<font color="#ffffff">The_christmas_tree</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> formline </font><b><font color="#00ffff">s</font></b><font color="#cd00ff">/ /childrens/</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">alarm</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">warn</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">exists</font></b><font color="#ffffff"> </font><font color="#ffffff">$Christmas</font><b><font color="#ee5896">{</font></b><font color="#ffffff"> tree</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">@t</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$ENV</font><b><font color="#ee5896">{</font></b><font color="#ffffff">HOME</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">write</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">EMail</font> +<font color="#ffffff"> to the parents to buy a new christmas tree</font><b><font color="#ee5896">!!!!</font></b><font color="#ff00ff">111</font> +<font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> send the</font> +<font color="#ffffff">EMail</font> +<b><font color="#ee5896">;</font></b><b><font color="#00ffff">wait</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">redo</font></b><font color="#ffffff"> deliver until </font><b><font color="#00ffff">defined</font></b><font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$tree</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered </font><font color="#F3E651">;</font><font color="#F3E651">}</font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered </font><b><font color="#ee5896">;</font></b><b><font color="#ee5896">}</font></b> -<font color="#ff0000">END </font><font color="#F3E651">{}</font><font color="#ff0000"> </font><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$mission</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> until </font><b><font color="#ffffff">next</font></b><font color="#ff0000"> Christmas </font><font color="#F3E651">;</font><font color="#F3E651">}</font> +<font color="#ffffff">END </font><b><font color="#ee5896">{}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$mission</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> until </font><b><font color="#00ffff">next</font></b><font color="#ffffff"> Christmas </font><b><font color="#ee5896">;</font></b><b><font color="#ee5896">}</font></b> -<font color="#ff0000">__END__</font> +<font color="#ffffff">__END__</font> -<font color="#ff0000">This is perl</font><font color="#F3E651">,</font><font color="#ff0000"> v5</font><font color="#F3E651">.</font><font color="#bb00ff">8.8</font><font color="#ff0000"> built </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i386</font><font color="#F3E651">-</font><font color="#ff0000">freebsd</font><font color="#F3E651">-</font><font color="#ff0000">64int</font> +<font color="#ffffff">This is perl</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> v5</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">8.8</font><font color="#ffffff"> built </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i386</font><b><font color="#ee5896">-</font></b><font color="#ffffff">freebsd</font><b><font color="#ee5896">-</font></b><font color="#ffffff">64int</font> </pre> <br /> <a class='textlink' href='./2008-06-26-perl-poetry.html'>More Perl Poetry of mine</a><br /> diff --git a/gemfeed/2025-03-05-sharing-on-social-media-with-gos.html b/gemfeed/2025-03-05-sharing-on-social-media-with-gos.html index 024c56a0..0fbdb727 100644 --- a/gemfeed/2025-03-05-sharing-on-social-media-with-gos.html +++ b/gemfeed/2025-03-05-sharing-on-social-media-with-gos.html @@ -84,8 +84,8 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/gos</font><font color="#F3E651">.</font><font color="#ff0000">git</font> -<font color="#ff0000">cd gos</font> +<pre><font color="#ffffff">git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/gos</font><b><font color="#ee5896">.</font></b><font color="#ffffff">git</font> +<font color="#ffffff">cd gos</font> </pre> <br /> <span>Build the binaries:</span><br /> @@ -94,10 +94,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">go build -o gos </font><font color="#F3E651">.</font><font color="#ff0000">/cmd/gos</font> -<font color="#ff0000">go build -o gosc </font><font color="#F3E651">.</font><font color="#ff0000">/cmd/gosc</font> -<font color="#ff0000">sudo mv gos </font><font color="#F3E651">~</font><font color="#ff0000">/go/bin</font> -<font color="#ff0000">sudo mv gosc </font><font color="#F3E651">~</font><font color="#ff0000">/go/bin</font> +<pre><font color="#ffffff">go build -o gos </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/cmd/gos</font> +<font color="#ffffff">go build -o gosc </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/cmd/gosc</font> +<font color="#ffffff">sudo mv gos </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/go/bin</font> +<font color="#ffffff">sudo mv gosc </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/go/bin</font> </pre> <br /> <span>Or, if you want to use the <span class='inlinecode'>Taskfile</span>:</span><br /> @@ -106,7 +106,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">go-task install</font> +<pre><font color="#ffffff">go-task install</font> </pre> <br /> <h2 style='display: inline' id='configuration'>Configuration</h2><br /> @@ -119,13 +119,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">MastodonURL</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">https://mastodon.example.com</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">MastodonAccessToken</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">your-mastodon-access-token</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">LinkedInClientID</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">your-linkedin-client-id</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">LinkedInSecret</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">your-linkedin-client-secret</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">LinkedInRedirectURL</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">http://localhost:8080/callback</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#F3E651">}</font> +<pre><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">MastodonURL</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">https://mastodon.example.com</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">MastodonAccessToken</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">your-mastodon-access-token</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">LinkedInClientID</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">your-linkedin-client-id</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">LinkedInSecret</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">your-linkedin-client-secret</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">LinkedInRedirectURL</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">http://localhost:8080/callback</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h3 style='display: inline' id='configuration-fields'>Configuration fields</h3><br /> @@ -181,7 +181,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">.</font><font color="#ff0000">/gos --dry</font> +<pre><b><font color="#ee5896">.</font></b><font color="#ffffff">/gos --dry</font> </pre> <br /> <span>*Normal run*</span><br /> @@ -192,7 +192,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">.</font><font color="#ff0000">/gos </font> +<pre><b><font color="#ee5896">.</font></b><font color="#ffffff">/gos </font> </pre> <br /> <span>:-)</span><br /> @@ -357,7 +357,7 @@ Hello World :-) by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gos --geminiSummaryFor </font><font color="#bb00ff">202410</font><font color="#F3E651">,</font><font color="#bb00ff">202411</font><font color="#F3E651">,</font><font color="#bb00ff">202412</font> +<pre><font color="#ffffff">gos --geminiSummaryFor </font><font color="#ff00ff">202410</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202411</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202412</font> </pre> <br /> <span>This outputs the summary for the three specified months, as shown in the example. The summary includes posts from all social media networks but removes duplicates.</span><br /> @@ -369,7 +369,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gos --gemtexterEnable --geminiSummaryFor </font><font color="#bb00ff">202410</font><font color="#F3E651">,</font><font color="#bb00ff">202411</font><font color="#F3E651">,</font><font color="#bb00ff">202412</font> +<pre><font color="#ffffff">gos --gemtexterEnable --geminiSummaryFor </font><font color="#ff00ff">202410</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202411</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202412</font> </pre> <br /> <a class='textlink' href='https://codeberg.org/snonux/gemtexter'>Gemtexter</a><br /> @@ -380,7 +380,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gos --gemtexterEnable --geminiSummaryFor </font><font color="#bb00ff">202410</font><font color="#F3E651">,</font><font color="#bb00ff">202411</font><font color="#F3E651">,</font><font color="#bb00ff">202412</font><font color="#ff0000"> --geminiCapsules </font><font color="#bb00ff">"foo.zone,paul.buetow.org"</font> +<pre><font color="#ffffff">gos --gemtexterEnable --geminiSummaryFor </font><font color="#ff00ff">202410</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202411</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202412</font><font color="#ffffff"> --geminiCapsules </font><font color="#cd00ff">"foo.zone,paul.buetow.org"</font> </pre> <br /> <span>It will then also generate Gemini Gemtext links in the summary page and flag them with <span class='inlinecode'>(Gemini)</span>.</span><br /> diff --git a/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html b/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html index 96883f2a..5332ee55 100644 --- a/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html +++ b/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html @@ -73,10 +73,10 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dmesg </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">'Features2=.*POPCNT'</font> -<font color="#ff0000"> </font><font color="#ff0000">Features2</font><font color="#F3E651">=</font><font color="#bb00ff">0x7ffafbbf</font><font color="#F3E651"><</font><font color="#ff0000">SSE3</font><font color="#F3E651">,</font><font color="#ff0000">PCLMULQDQ</font><font color="#F3E651">,</font><font color="#ff0000">DTES64</font><font color="#F3E651">,</font><font color="#ff0000">MON</font><font color="#F3E651">,</font><font color="#ff0000">DS_CPL</font><font color="#F3E651">,</font><font color="#ff0000">VMX</font><font color="#F3E651">,</font><font color="#ff0000">EST</font><font color="#F3E651">,</font><font color="#ff0000">TM2</font><font color="#F3E651">,</font><font color="#ff0000">SSSE3</font><font color="#F3E651">,</font><font color="#ff0000">SDBG</font><font color="#F3E651">,</font> -<font color="#ff0000"> FMA</font><font color="#F3E651">,</font><font color="#ff0000">CX16</font><font color="#F3E651">,</font><font color="#ff0000">xTPR</font><font color="#F3E651">,</font><font color="#ff0000">PDCM</font><font color="#F3E651">,</font><font color="#ff0000">PCID</font><font color="#F3E651">,</font><font color="#ff0000">SSE4</font><font color="#F3E651">.</font><font color="#bb00ff">1</font><font color="#F3E651">,</font><font color="#ff0000">SSE4</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">,</font><font color="#ff0000">x2APIC</font><font color="#F3E651">,</font><font color="#ff0000">MOVBE</font><font color="#F3E651">,</font><font color="#ff0000">POPCNT</font><font color="#F3E651">,</font><font color="#ff0000">TSCDLT</font><font color="#F3E651">,</font><font color="#ff0000">AESNI</font><font color="#F3E651">,</font><font color="#ff0000">XSAVE</font><font color="#F3E651">,</font> -<font color="#ff0000"> OSXSAVE</font><font color="#F3E651">,</font><font color="#ff0000">AVX</font><font color="#F3E651">,</font><font color="#ff0000">F16C</font><font color="#F3E651">,</font><font color="#ff0000">RDRAND</font><font color="#F3E651">></font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmesg </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#cd00ff">'Features2=.*POPCNT'</font> +<font color="#ffffff"> </font><font color="#ffffff">Features2</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0x7ffafbbf</font><b><font color="#ee5896"><</font></b><font color="#ffffff">SSE3</font><b><font color="#ee5896">,</font></b><font color="#ffffff">PCLMULQDQ</font><b><font color="#ee5896">,</font></b><font color="#ffffff">DTES64</font><b><font color="#ee5896">,</font></b><font color="#ffffff">MON</font><b><font color="#ee5896">,</font></b><font color="#ffffff">DS_CPL</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VMX</font><b><font color="#ee5896">,</font></b><font color="#ffffff">EST</font><b><font color="#ee5896">,</font></b><font color="#ffffff">TM2</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SSSE3</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SDBG</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> FMA</font><b><font color="#ee5896">,</font></b><font color="#ffffff">CX16</font><b><font color="#ee5896">,</font></b><font color="#ffffff">xTPR</font><b><font color="#ee5896">,</font></b><font color="#ffffff">PDCM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">PCID</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SSE4</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SSE4</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b><font color="#ffffff">x2APIC</font><b><font color="#ee5896">,</font></b><font color="#ffffff">MOVBE</font><b><font color="#ee5896">,</font></b><font color="#ffffff">POPCNT</font><b><font color="#ee5896">,</font></b><font color="#ffffff">TSCDLT</font><b><font color="#ee5896">,</font></b><font color="#ffffff">AESNI</font><b><font color="#ee5896">,</font></b><font color="#ffffff">XSAVE</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> OSXSAVE</font><b><font color="#ee5896">,</font></b><font color="#ffffff">AVX</font><b><font color="#ee5896">,</font></b><font color="#ffffff">F16C</font><b><font color="#ee5896">,</font></b><font color="#ffffff">RDRAND</font><b><font color="#ee5896">></font></b> </pre> <br /> <span>So it's there! All good.</span><br /> @@ -93,15 +93,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install vm-bhyve bhyve-firmware</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">vm_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">vm_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">vm_dir</font><font color="#F3E651">=</font><font color="#ff0000">zfs</font><font color="#F3E651">:</font><font color="#ff0000">zroot/bhyve</font> -<font color="#ff0000">vm_dir</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> zfs</font><font color="#F3E651">:</font><font color="#ff0000">zroot/bhyve</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs create zroot/bhyve</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm init</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm switch create public</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm switch add public re0</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install vm-bhyve bhyve-firmware</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">vm_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">vm_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">vm_dir</font><b><font color="#ee5896">=</font></b><font color="#ffffff">zfs</font><b><font color="#ee5896">:</font></b><font color="#ffffff">zroot/bhyve</font> +<font color="#ffffff">vm_dir</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> zfs</font><b><font color="#ee5896">:</font></b><font color="#ffffff">zroot/bhyve</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs create zroot/bhyve</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm init</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm switch create public</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm switch add public re0</font> </pre> <br /> <span>Bhyve stores all it's data in the <span class='inlinecode'>/bhyve</span> of the <span class='inlinecode'>zroot</span> ZFS pool:</span><br /> @@ -110,8 +110,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> zfs list </font><font color="#F3E651">|</font><font color="#ff0000"> grep bhyve</font> -<font color="#ff0000">zroot/bhyve </font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">74M 453G </font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">74M /zroot/bhyve</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> zfs list </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep bhyve</font> +<font color="#ffffff">zroot/bhyve </font><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">74M 453G </font><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">74M /zroot/bhyve</font> </pre> <br /> <span>For convenience, we also create this symlink:</span><br /> @@ -120,7 +120,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas ln -s /zroot/bhyve</font><font color="#F3E651">/</font><font color="#ff0000"> /bhyve</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas ln -s /zroot/bhyve</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> /bhyve</font> </pre> <br /> @@ -130,8 +130,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> </pre> <br /> <h2 style='display: inline' id='rocky-linux-vms'>Rocky Linux VMs</h2><br /> @@ -152,10 +152,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm iso </font><font color="#F3E651">\</font> -<font color="#ff0000"> https</font><font color="#F3E651">:</font><font color="#ff0000">//download</font><font color="#F3E651">.</font><font color="#ff0000">rockylinux</font><font color="#F3E651">.</font><font color="#ff0000">org/pub/rocky</font><font color="#F3E651">/</font><font color="#bb00ff">9</font><font color="#ff0000">/isos/x86_64/Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso</font> -<font color="#ff0000">/zroot/bhyve</font><font color="#F3E651">/.</font><font color="#ff0000">iso/Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso </font><font color="#bb00ff">1808</font><font color="#ff0000"> MB </font><font color="#bb00ff">4780</font><font color="#ff0000"> kBps 06m28s</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm create rocky</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm iso </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//download</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rockylinux</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/pub/rocky</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">9</font><font color="#ffffff">/isos/x86_64/Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso</font> +<font color="#ffffff">/zroot/bhyve</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">iso/Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso </font><font color="#ff00ff">1808</font><font color="#ffffff"> MB </font><font color="#ff00ff">4780</font><font color="#ffffff"> kBps 06m28s</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm create rocky</font> </pre> <br /> <h3 style='display: inline' id='vm-configuration'>VM configuration</h3><br /> @@ -166,16 +166,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> cat rocky</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">loader</font><font color="#F3E651">=</font><font color="#bb00ff">"bhyveload"</font> -<font color="#ff0000">cpu</font><font color="#F3E651">=</font><font color="#bb00ff">1</font> -<font color="#ff0000">memory</font><font color="#F3E651">=</font><font color="#ff0000">256M</font> -<font color="#ff0000">network0_type</font><font color="#F3E651">=</font><font color="#bb00ff">"virtio-net"</font> -<font color="#ff0000">network0_switch</font><font color="#F3E651">=</font><font color="#bb00ff">"public"</font> -<font color="#ff0000">disk0_type</font><font color="#F3E651">=</font><font color="#bb00ff">"virtio-blk"</font> -<font color="#ff0000">disk0_name</font><font color="#F3E651">=</font><font color="#bb00ff">"disk0.img"</font> -<font color="#ff0000">uuid</font><font color="#F3E651">=</font><font color="#bb00ff">"1c4655ac-c828-11ef-a920-e8ff1ed71ca0"</font> -<font color="#ff0000">network0_mac</font><font color="#F3E651">=</font><font color="#bb00ff">"58:9c:fc:0d:13:3f"</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat rocky</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">loader</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"bhyveload"</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font> +<font color="#ffffff">memory</font><b><font color="#ee5896">=</font></b><font color="#ffffff">256M</font> +<font color="#ffffff">network0_type</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"virtio-net"</font> +<font color="#ffffff">network0_switch</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"public"</font> +<font color="#ffffff">disk0_type</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"virtio-blk"</font> +<font color="#ffffff">disk0_name</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"disk0.img"</font> +<font color="#ffffff">uuid</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"1c4655ac-c828-11ef-a920-e8ff1ed71ca0"</font> +<font color="#ffffff">network0_mac</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"58:9c:fc:0d:13:3f"</font> </pre> <br /> <span>The <span class='inlinecode'>uuid</span> and the <span class='inlinecode'>network0_mac</span> differ for each of the three VMs (the ones being installed on <span class='inlinecode'>f0</span>, <span class='inlinecode'>f1</span> and <span class='inlinecode'>f2</span>).</span><br /> @@ -206,17 +206,17 @@ network0_mac="58:9c:fc:0d:13:3f" by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm install rocky Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso</font> -<font color="#ff0000">Starting rocky</font> -<font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> found guest </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> /zroot/bhyve/rocky</font> -<font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> booting</font><font color="#F3E651">...</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm install rocky Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso</font> +<font color="#ffffff">Starting rocky</font> +<font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> found guest </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> /zroot/bhyve/rocky</font> +<font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> booting</font><b><font color="#ee5896">...</font></b> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> -<font color="#ff0000">rocky default uefi </font><font color="#bb00ff">4</font><font color="#ff0000"> 14G </font><font color="#bb00ff">0.0</font><font color="#F3E651">.</font><font color="#bb00ff">0.0</font><font color="#F3E651">:</font><font color="#bb00ff">5900</font><font color="#ff0000"> No Locked </font><font color="#F3E651">(</font><font color="#ff0000">f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">)</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<font color="#ffffff">rocky default uefi </font><font color="#ff00ff">4</font><font color="#ffffff"> 14G </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.0</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> No Locked </font><b><font color="#ee5896">(</font></b><font color="#ffffff">f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">)</font></b> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas sockstat -</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">5900</font> -<font color="#ff0000">root bhyve </font><font color="#bb00ff">6079</font><font color="#ff0000"> </font><font color="#bb00ff">8</font><font color="#ff0000"> tcp4 </font><font color="#F3E651">*:</font><font color="#bb00ff">5900</font><font color="#ff0000"> </font><font color="#F3E651">*:*</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sockstat -</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#ff00ff">5900</font> +<font color="#ffffff">root bhyve </font><font color="#ff00ff">6079</font><font color="#ffffff"> </font><font color="#ff00ff">8</font><font color="#ffffff"> tcp4 </font><b><font color="#ee5896">*:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> </font><b><font color="#ee5896">*:*</font></b> </pre> <br /> <span>Port 5900 now also opens for VNC connections, so I connected it with a VNC client and ran through the installation dialogues. This could be done unattended or more automated, but there are only three VMs to install, and the automation doesn't seem worth it as we do it only once a year or less often.</span><br /> @@ -229,9 +229,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm stop rocky</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas truncate -s 100G disk0</font><font color="#F3E651">.</font><font color="#ff0000">img</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm install rocky Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm stop rocky</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas truncate -s 100G disk0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm install rocky Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso</font> </pre> <br /> <h3 style='display: inline' id='connect-to-vnc'>Connect to VNC</h3><br /> @@ -260,9 +260,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/rc</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">vm_list</font><font color="#F3E651">=</font><font color="#bb00ff">"rocky"</font> -<font color="#ff0000">vm_delay</font><font color="#F3E651">=</font><font color="#bb00ff">"5"</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/rc</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">vm_list</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"rocky"</font> +<font color="#ffffff">vm_delay</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"5"</font> </pre> <br /> <span>The <span class='inlinecode'>vm_delay</span> isn't really required. It is used to wait 5 seconds before starting each VM, but there is currently only one VM per host. Maybe later, when there are more, this will be useful. After adding, there's now a <span class='inlinecode'>Yes</span> indicator in the <span class='inlinecode'>AUTO</span> column.</span><br /> @@ -271,9 +271,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> -<font color="#ff0000">rocky default uefi </font><font color="#bb00ff">4</font><font color="#ff0000"> 14G </font><font color="#bb00ff">0.0</font><font color="#F3E651">.</font><font color="#bb00ff">0.0</font><font color="#F3E651">:</font><font color="#bb00ff">5900</font><font color="#ff0000"> Yes </font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">]</font><font color="#ff0000"> Running </font><font color="#F3E651">(</font><font color="#bb00ff">2063</font><font color="#F3E651">)</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<font color="#ffffff">rocky default uefi </font><font color="#ff00ff">4</font><font color="#ffffff"> 14G </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.0</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> Yes </font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> Running </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2063</font><b><font color="#ee5896">)</font></b> </pre> <br /> <h3 style='display: inline' id='static-ip-configuration'>Static IP configuration</h3><br /> @@ -292,11 +292,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#ff0000"> r0 r0</font><font color="#F3E651">.</font><font color="#ff0000">lan r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#ff0000"> r1 r1</font><font color="#F3E651">.</font><font color="#ff0000">lan r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#ff0000"> r2 r2</font><font color="#F3E651">.</font><font color="#ff0000">lan r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/hosts</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><font color="#ffffff"> r0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><font color="#ffffff"> r1 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><font color="#ffffff"> r2 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>And we configure the IPs accordingly on the VMs themselves by opening a root shell via SSH to the VMs and entering the following commands on each of the VMs:</span><br /> @@ -305,18 +305,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">address </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#F3E651">/</font><font color="#bb00ff">24</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">gateway </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.1</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">DNS </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.1</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">method manual</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection down enp0s5</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection up enp0s5</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> hostnamectl set-hostname r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">>></font><font color="#ff0000">/etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#ff0000"> r0 r0</font><font color="#F3E651">.</font><font color="#ff0000">lan r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#ff0000"> r1 r1</font><font color="#F3E651">.</font><font color="#ff0000">lan r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#ff0000"> r2 r2</font><font color="#F3E651">.</font><font color="#ff0000">lan r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">address </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">24</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gateway </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.1</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">DNS </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.1</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">method manual</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection down enp0s5</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection up enp0s5</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> hostnamectl set-hostname r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">>></font></b><font color="#ffffff">/etc/hosts</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><font color="#ffffff"> r0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><font color="#ffffff"> r1 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><font color="#ffffff"> r2 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>Whereas:</span><br /> @@ -337,7 +337,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> ssh-copy-id root@r</font><font color="#ff0000">$i</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> ssh-copy-id root@r</font><font color="#ffffff">$i</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> </pre> <br /> <span>Then, we edit the <span class='inlinecode'>/etc/ssh/sshd_config</span> file again on all three VMs and configure <span class='inlinecode'>PasswordAuthentication no</span> to only allow SSH key authentication from now on.</span><br /> @@ -348,8 +348,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnf update</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> reboot</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnf update</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <h2 style='display: inline' id='stress-testing-cpu'>Stress testing CPU</h2><br /> @@ -360,28 +360,28 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> main</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> main</font> -<b><font color="#ffffff">import</font></b><font color="#ff0000"> </font><font color="#bb00ff">"testing"</font> +<b><font color="#00ffff">import</font></b><font color="#ffffff"> </font><font color="#cd00ff">"testing"</font> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">BenchmarkCPUSilly1</font><font color="#F3E651">(</font><font color="#ff0000">b </font><font color="#F3E651">*</font><font color="#ff0000">testing</font><font color="#F3E651">.</font><font color="#ff0000">B</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> b</font><font color="#F3E651">.</font><font color="#ff0000">N</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> _ </font><font color="#F3E651">=</font><font color="#ff0000"> i </font><font color="#F3E651">*</font><font color="#ff0000"> i</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">BenchmarkCPUSilly1</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">b </font><b><font color="#ee5896">*</font></b><font color="#ffffff">testing</font><b><font color="#ee5896">.</font></b><font color="#ffffff">B</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">.</font></b><font color="#ffffff">N</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> _ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> i </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> i</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">BenchmarkCPUSilly2</font><font color="#F3E651">(</font><font color="#ff0000">b </font><font color="#F3E651">*</font><font color="#ff0000">testing</font><font color="#F3E651">.</font><font color="#ff0000">B</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">var</font></b><font color="#ff0000"> sillyResult </font><b><font color="#F35E1E">float64</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> b</font><font color="#F3E651">.</font><font color="#ff0000">N</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> sillyResult </font><font color="#F3E651">+=</font><font color="#ff0000"> </font><b><font color="#F35E1E">float64</font></b><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font> -<font color="#ff0000"> sillyResult </font><font color="#F3E651">*=</font><font color="#ff0000"> </font><b><font color="#F35E1E">float64</font></b><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font> -<font color="#ff0000"> divisor </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><b><font color="#F35E1E">float64</font></b><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> divisor </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> sillyResult </font><font color="#F3E651">/=</font><font color="#ff0000"> divisor</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> _ </font><font color="#F3E651">=</font><font color="#ff0000"> sillyResult </font><i><font color="#ababab">// to avoid compiler optimization</font></i> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">BenchmarkCPUSilly2</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">b </font><b><font color="#ee5896">*</font></b><font color="#ffffff">testing</font><b><font color="#ee5896">.</font></b><font color="#ffffff">B</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">var</font></b><font color="#ffffff"> sillyResult </font><font color="#ffff00">float64</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">.</font></b><font color="#ffffff">N</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> sillyResult </font><b><font color="#ee5896">+=</font></b><font color="#ffffff"> </font><font color="#ffff00">float64</font><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> sillyResult </font><b><font color="#ee5896">*=</font></b><font color="#ffffff"> </font><font color="#ffff00">float64</font><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> divisor </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><font color="#ffff00">float64</font><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> divisor </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> sillyResult </font><b><font color="#ee5896">/=</font></b><font color="#ffffff"> divisor</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> _ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> sillyResult </font><i><font color="#00ff00">// to avoid compiler optimization</font></i> +<b><font color="#ee5896">}</font></b> </pre> <br /> <span>You can find the repository here:</span><br /> @@ -396,10 +396,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install git go</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> mkdir </font><font color="#F3E651">~</font><font color="#ff0000">/git </font><font color="#F3E651">&&</font><font color="#ff0000"> cd </font><font color="#F3E651">~</font><font color="#ff0000">/git </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> cd sillybench</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install git go</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> mkdir </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/git </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> cd </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/git </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> cd sillybench</font> </pre> <br /> <span>And to run it:</span><br /> @@ -408,18 +408,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000">/git/sillybench </font><font color="#F3E651">%</font><font color="#ff0000"> go version</font> -<font color="#ff0000">go version go1</font><font color="#F3E651">.</font><font color="#bb00ff">24.1</font><font color="#ff0000"> freebsd/amd</font><font color="#bb00ff">64</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/git/sillybench </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> go version</font> +<font color="#ffffff">go version go1</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">24.1</font><font color="#ffffff"> freebsd/amd</font><font color="#ff00ff">64</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000">/git/sillybench </font><font color="#F3E651">%</font><font color="#ff0000"> go </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> -bench</font><font color="#F3E651">=.</font> -<font color="#ff0000">goos</font><font color="#F3E651">:</font><font color="#ff0000"> freebsd</font> -<font color="#ff0000">goarch</font><font color="#F3E651">:</font><font color="#ff0000"> amd64</font> -<font color="#ff0000">pkg</font><font color="#F3E651">:</font><font color="#ff0000"> codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench</font> -<font color="#ff0000">cpu</font><font color="#F3E651">:</font><font color="#ff0000"> Intel</font><font color="#F3E651">(</font><font color="#ff0000">R</font><font color="#F3E651">)</font><font color="#ff0000"> N100</font> -<font color="#ff0000">BenchmarkCPUSilly1-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4022</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">BenchmarkCPUSilly2-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4027</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">PASS</font> -<font color="#ff0000">ok codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">891s</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/git/sillybench </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> go </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> -bench</font><b><font color="#ee5896">=.</font></b> +<font color="#ffffff">goos</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> freebsd</font> +<font color="#ffffff">goarch</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> amd64</font> +<font color="#ffffff">pkg</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Intel</font><b><font color="#ee5896">(</font></b><font color="#ffffff">R</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> N100</font> +<font color="#ffffff">BenchmarkCPUSilly1-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4022</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">BenchmarkCPUSilly2-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4027</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">PASS</font> +<font color="#ffffff">ok codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">891s</font> </pre> <br /> <h3 style='display: inline' id='silly-rocky-linux-vm--bhyve-benchmark'>Silly Rocky Linux VM @ Bhyve benchmark</h3><br /> @@ -430,10 +430,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><i><font color="#ababab"># dnf install golang git</font></i> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><i><font color="#ababab"># mkdir ~/git && cd ~/git && \</font></i> -<font color="#ff0000"> git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> cd sillybench</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><i><font color="#00ff00"># dnf install golang git</font></i> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><i><font color="#00ff00"># mkdir ~/git && cd ~/git && \</font></i> +<font color="#ffffff"> git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> cd sillybench</font> </pre> <br /> <span>And to run it:</span><br /> @@ -442,15 +442,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 sillybench</font><font color="#F3E651">]</font><i><font color="#ababab"># go version</font></i> -<font color="#ff0000">go version go1</font><font color="#F3E651">.</font><font color="#bb00ff">22.9</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">Red Hat </font><font color="#bb00ff">1.22</font><font color="#F3E651">.</font><font color="#bb00ff">9</font><font color="#ff0000">-</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">el9_5</font><font color="#F3E651">)</font><font color="#ff0000"> linux/amd</font><font color="#bb00ff">64</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 sillybench</font><font color="#F3E651">]</font><i><font color="#ababab"># go test -bench=.</font></i> -<font color="#ff0000">goos</font><font color="#F3E651">:</font><font color="#ff0000"> linux</font> -<font color="#ff0000">goarch</font><font color="#F3E651">:</font><font color="#ff0000"> amd64</font> -<font color="#ff0000">pkg</font><font color="#F3E651">:</font><font color="#ff0000"> codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench</font> -<font color="#ff0000">cpu</font><font color="#F3E651">:</font><font color="#ff0000"> Intel</font><font color="#F3E651">(</font><font color="#ff0000">R</font><font color="#F3E651">)</font><font color="#ff0000"> N100</font> -<font color="#ff0000">BenchmarkCPUSilly1-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4347</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">BenchmarkCPUSilly2-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4345</font><font color="#ff0000"> ns/op</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 sillybench</font><b><font color="#ee5896">]</font></b><i><font color="#00ff00"># go version</font></i> +<font color="#ffffff">go version go1</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">22.9</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">Red Hat </font><font color="#ff00ff">1.22</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">9</font><font color="#ffffff">-</font><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">el9_5</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> linux/amd</font><font color="#ff00ff">64</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 sillybench</font><b><font color="#ee5896">]</font></b><i><font color="#00ff00"># go test -bench=.</font></i> +<font color="#ffffff">goos</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> linux</font> +<font color="#ffffff">goarch</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> amd64</font> +<font color="#ffffff">pkg</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Intel</font><b><font color="#ee5896">(</font></b><font color="#ffffff">R</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> N100</font> +<font color="#ffffff">BenchmarkCPUSilly1-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4347</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">BenchmarkCPUSilly2-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4345</font><font color="#ffffff"> ns/op</font> </pre> <br /> <span>The Linux benchmark is slightly slower than the FreeBSD one. The Go version is also a bit older. I tried the same with the up-to-date version of Go (1.24.x) with similar results. There could be a slight Bhyve overhead, or FreeBSD is just slightly more efficient in this benchmark. Overall, this shows that Bhyve performs excellently.</span><br /> @@ -465,15 +465,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@freebsd</font><font color="#F3E651">:~</font><font color="#ff0000">/git/sillybench </font><i><font color="#ababab"># go test -bench=.</font></i> -<font color="#ff0000">goos</font><font color="#F3E651">:</font><font color="#ff0000"> freebsd</font> -<font color="#ff0000">goarch</font><font color="#F3E651">:</font><font color="#ff0000"> amd64</font> -<font color="#ff0000">pkg</font><font color="#F3E651">:</font><font color="#ff0000"> codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench</font> -<font color="#ff0000">cpu</font><font color="#F3E651">:</font><font color="#ff0000"> Intel</font><font color="#F3E651">(</font><font color="#ff0000">R</font><font color="#F3E651">)</font><font color="#ff0000"> N100</font> -<font color="#ff0000">BenchmarkCPUSilly1 </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4273</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">BenchmarkCPUSilly2 </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4286</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">PASS</font> -<font color="#ff0000">ok codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">949s</font> +<pre><font color="#ffffff">root@freebsd</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/git/sillybench </font><i><font color="#00ff00"># go test -bench=.</font></i> +<font color="#ffffff">goos</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> freebsd</font> +<font color="#ffffff">goarch</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> amd64</font> +<font color="#ffffff">pkg</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Intel</font><b><font color="#ee5896">(</font></b><font color="#ffffff">R</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> N100</font> +<font color="#ffffff">BenchmarkCPUSilly1 </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4273</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">BenchmarkCPUSilly2 </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4286</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">PASS</font> +<font color="#ffffff">ok codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">949s</font> </pre> <br /> <span>It's a bit better than Linux! I am sure that this is not really a scientific benchmark, so take the results with a grain of salt!</span><br /> @@ -490,16 +490,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas ubench -s </font><font color="#bb00ff">1</font> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench Single CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">671010</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">40s</font><font color="#F3E651">)</font> -<font color="#ff0000">Ubench Single MEM</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1705237</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">48s</font><font color="#F3E651">)</font> -<font color="#ff0000">-----------------------------------</font> -<font color="#ff0000">Ubench Single AVG</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1188123</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas ubench -s </font><font color="#ff00ff">1</font> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench Single CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">671010</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">40s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">Ubench Single MEM</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1705237</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">48s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">-----------------------------------</font> +<font color="#ffffff">Ubench Single AVG</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1188123</font> </pre> <br /> @@ -509,16 +509,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas ubench</font> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2660220</font> -<font color="#ff0000">Ubench MEM</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">3095182</font> -<font color="#ff0000">--------------------</font> -<font color="#ff0000">Ubench AVG</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2877701</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas ubench</font> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2660220</font> +<font color="#ffffff">Ubench MEM</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">3095182</font> +<font color="#ffffff">--------------------</font> +<font color="#ffffff">Ubench AVG</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2877701</font> </pre> <br /> <h3 style='display: inline' id='freebsd-vm--bhyve-ubench-benchmark'>FreeBSD VM @ Bhyve <span class='inlinecode'>ubench</span> benchmark</h3><br /> @@ -529,16 +529,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@freebsd</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># ubench -s 1</font></i> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench Single CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">672792</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">40s</font><font color="#F3E651">)</font> -<font color="#ff0000">Ubench Single MEM</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">852757</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">48s</font><font color="#F3E651">)</font> -<font color="#ff0000">-----------------------------------</font> -<font color="#ff0000">Ubench Single AVG</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">762774</font> +<pre><font color="#ffffff">root@freebsd</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># ubench -s 1</font></i> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench Single CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">672792</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">40s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">Ubench Single MEM</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">852757</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">48s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">-----------------------------------</font> +<font color="#ffffff">Ubench Single AVG</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">762774</font> </pre> <br /> <span>Wow, the CPU in the VM was a tiny bit faster than on the host! So this was probably just a glitch in the matrix. Memory seems slower, though.</span><br /> @@ -549,24 +549,24 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@freebsd</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># ubench</font></i> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2652857</font> -<font color="#ff0000">swap_pager</font><font color="#F3E651">:</font><font color="#ff0000"> out of swap space</font> -<font color="#ff0000">swp_pager_getswapspace</font><font color="#F3E651">(</font><font color="#bb00ff">27</font><font color="#F3E651">):</font><font color="#ff0000"> failed</font> -<font color="#ff0000">swap_pager</font><font color="#F3E651">:</font><font color="#ff0000"> out of swap space</font> -<font color="#ff0000">swp_pager_getswapspace</font><font color="#F3E651">(</font><font color="#bb00ff">18</font><font color="#F3E651">):</font><font color="#ff0000"> failed</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">862</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">swp_pager_getswapspace</font><font color="#F3E651">(</font><font color="#bb00ff">6</font><font color="#F3E651">):</font><font color="#ff0000"> failed</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">46</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">863</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">47</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">864</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">48</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">865</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">49</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">861</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">51</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">839</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> +<pre><font color="#ffffff">root@freebsd</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># ubench</font></i> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2652857</font> +<font color="#ffffff">swap_pager</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> out of swap space</font> +<font color="#ffffff">swp_pager_getswapspace</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">27</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> failed</font> +<font color="#ffffff">swap_pager</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> out of swap space</font> +<font color="#ffffff">swp_pager_getswapspace</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">18</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> failed</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">862</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">swp_pager_getswapspace</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">6</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> failed</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">46</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">863</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">47</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">864</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">48</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">865</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">49</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">861</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">51</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">839</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> </pre> <br /> <span>The multi-CPU benchmark in the Bhyve VM ran with almost identical results to the FreeBSD host system. However, the memory benchmark failed with out-of-swap space errors. I am unsure why, as the VM has 14GB RAM, but I am not investigating further.</span><br /> diff --git a/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.html b/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.html index f2aa7b97..74d97695 100644 --- a/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.html +++ b/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.html @@ -192,14 +192,14 @@ set-option -g prefix C-g by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">function tmux</font><font color="#F3E651">::</font><font color="#ff0000">search</font> -<font color="#ff0000"> </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> -l session </font><font color="#F3E651">(</font><font color="#ff0000">tmux list-sessions </font><font color="#F3E651">|</font><font color="#ff0000"> fzf </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">:</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> -z </font><font color="#bb00ff">"$TMUX"</font> -<font color="#ff0000"> tmux attach-session -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux switch -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> end</font> -<font color="#ff0000">end</font> +<pre><b><font color="#ffffff">function tmux</font></b><b><font color="#ee5896">::</font></b><font color="#ffffff">search</font> +<font color="#ffffff"> </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> -l session </font><b><font color="#ee5896">(</font></b><font color="#ffffff">tmux list-sessions </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> fzf </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$TMUX"</font> +<font color="#ffffff"> tmux attach-session -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux switch -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> end</font> +<font color="#ffffff">end</font> </pre> <br /> <span>All it does is list all currently open sessions in <span class='inlinecode'>fzf</span>, where one of them can be searched and selected through fuzzy find, and then either switch (if already inside a session) to the other session or attach to the other session (if not yet in Tmux).</span><br /> diff --git a/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.html b/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.html index 6ba36119..9eeb5457 100644 --- a/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.html +++ b/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.html @@ -118,14 +118,14 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update fetch</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas shutdown -r now</font> -<font color="#F3E651">..</font> -<font color="#F3E651">..</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg update</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg upgrade</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> reboot</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update fetch</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas shutdown -r now</font> +<b><font color="#ee5896">..</font></b> +<b><font color="#ee5896">..</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg update</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg upgrade</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <span>Next, we install <span class='inlinecode'>wireguard-tools</span> and configure the WireGuard service:</span><br /> @@ -134,19 +134,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install wireguard-tools</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">wireguard_interfaces</font><font color="#F3E651">=</font><font color="#ff0000">wg0</font> -<font color="#ff0000">wireguard_interfaces</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> wg0</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">wireguard_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">wireguard_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas mkdir -p /usr/local/etc/wireguard</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas touch /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas service wireguard start</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas wg show</font> -<font color="#ff0000">interface</font><font color="#F3E651">:</font><font color="#ff0000"> wg0</font> -<font color="#ff0000"> public key</font><font color="#F3E651">:</font><font color="#ff0000"> L</font><font color="#F3E651">+</font><font color="#ff0000">V9o0fNYkMVKNqsX7spBzD</font><font color="#F3E651">/</font><font color="#ff0000">9oSvxM/C7</font><font color="#ff0000">ZCZX1jLO3Q</font><font color="#F3E651">=</font> -<font color="#ff0000"> private key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> listening port</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">20246</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install wireguard-tools</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">wireguard_interfaces</font><b><font color="#ee5896">=</font></b><font color="#ffffff">wg0</font> +<font color="#ffffff">wireguard_interfaces</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">wireguard_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">wireguard_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas mkdir -p /usr/local/etc/wireguard</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas touch /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas service wireguard start</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas wg show</font> +<font color="#ffffff">interface</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff"> public key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> L</font><b><font color="#ee5896">+</font></b><font color="#ffffff">V9o0fNYkMVKNqsX7spBzD</font><b><font color="#ee5896">/</font></b><font color="#ffffff">9oSvxM/C7</font><font color="#ffffff">ZCZX1jLO3Q</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> private key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> listening port</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">20246</font> </pre> <br /> <span>We now have the WireGuard up and running, but it is not yet in any functional configuration. We will come back to that later.</span><br /> @@ -157,23 +157,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/hosts</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#ff0000"> r0 r0</font><font color="#F3E651">.</font><font color="#ff0000">lan r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#ff0000"> r1 r1</font><font color="#F3E651">.</font><font color="#ff0000">lan r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#ff0000"> r2 r2</font><font color="#F3E651">.</font><font color="#ff0000">lan r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><font color="#ffffff"> r0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><font color="#ffffff"> r1 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><font color="#ffffff"> r2 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.130</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#ff0000"> f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#ff0000"> f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.130</font><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><font color="#ffffff"> f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><font color="#ffffff"> f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#ff0000"> r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#ff0000"> r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#ff0000"> r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><font color="#ffffff"> r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><font color="#ffffff"> r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><font color="#ffffff"> r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#ff0000"> fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><font color="#ffffff"> fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>As you can see, <span class='inlinecode'>192.168.1.0/24</span> is the network used in my LAN (with the <span class='inlinecode'>fN</span> and <span class='inlinecode'>rN</span> hosts) and <span class='inlinecode'>192.168.2.0/24</span> is the network used for the WireGuard mesh network. The <span class='inlinecode'>wg0</span> interface will be used for all WireGuard traffic.</span><br /> @@ -186,8 +186,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> dnf update -y</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> reboot</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> dnf update -y</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <span>Next, we prepare WireGuard on them. Same as on the FreeBSD hosts, we will only prepare WireGuard without any useful configuration yet:</span><br /> @@ -196,12 +196,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> dnf install -y wireguard-tools</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> mkdir -p /etc/wireguard</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> touch /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> systemctl </font><b><font color="#ffffff">enable</font></b><font color="#ff0000"> wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> systemctl start wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> systemctl disable firewalld</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> dnf install -y wireguard-tools</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> mkdir -p /etc/wireguard</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> touch /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> systemctl </font><b><font color="#00ffff">enable</font></b><font color="#ffffff"> wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> systemctl start wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> systemctl disable firewalld</font> </pre> <br /> <span>We also update the <span class='inlinecode'>hosts</span> file accordingly:</span><br /> @@ -210,23 +210,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">>></font><font color="#ff0000">/etc/hosts</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">>></font></b><font color="#ffffff">/etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.130</font><font color="#ff0000"> f0 f0</font><font color="#F3E651">.</font><font color="#ff0000">lan f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#ff0000"> f1 f1</font><font color="#F3E651">.</font><font color="#ff0000">lan f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#ff0000"> f2 f2</font><font color="#F3E651">.</font><font color="#ff0000">lan f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.130</font><font color="#ffffff"> f0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><font color="#ffffff"> f1 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><font color="#ffffff"> f2 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.130</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#ff0000"> f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#ff0000"> f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.130</font><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><font color="#ffffff"> f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><font color="#ffffff"> f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#ff0000"> r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#ff0000"> r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#ff0000"> r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><font color="#ffffff"> r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><font color="#ffffff"> r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><font color="#ffffff"> r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#ff0000"> fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><font color="#ffffff"> fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>Unfortunately, the SELinux policy on Rocky Linux blocks WireGuard's operation. By making the <span class='inlinecode'>wireguard_t</span> domain permissive using <span class='inlinecode'>semanage permissive -a wireguard_t</span>, SELinux will no longer enforce restrictions for WireGuard, allowing it to work as intended:</span><br /> @@ -235,9 +235,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> dnf install -y policycoreutils-python-utils</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> semanage permissive -a wireguard_t</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> reboot</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> dnf install -y policycoreutils-python-utils</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> semanage permissive -a wireguard_t</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <a class='textlink' href='https://github.com/angristan/wireguard-install/discussions/499'>https://github.com/angristan/wireguard-install/discussions/499</a><br /> @@ -250,14 +250,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">blowfish$ doas pkg_add wireguard-tools</font> -<font color="#ff0000">blowfish$ doas mkdir /etc/wireguard</font> -<font color="#ff0000">blowfish$ doas touch /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">blowsish$ cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee /etc/hostname</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font> -<font color="#ff0000">inet </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> </font><font color="#bb00ff">255.255</font><font color="#F3E651">.</font><font color="#bb00ff">255.0</font><font color="#ff0000"> NONE</font> -<font color="#ff0000">up</font> -<font color="#F3E651">!</font><font color="#ff0000">/usr/local/bin/wg setconf wg0 /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">blowfish$ doas pkg_add wireguard-tools</font> +<font color="#ffffff">blowfish$ doas mkdir /etc/wireguard</font> +<font color="#ffffff">blowfish$ doas touch /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">blowsish$ cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee /etc/hostname</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font> +<font color="#ffffff">inet </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> </font><font color="#ff00ff">255.255</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">255.0</font><font color="#ffffff"> NONE</font> +<font color="#ffffff">up</font> +<b><font color="#ee5896">!</font></b><font color="#ffffff">/usr/local/bin/wg setconf wg0 /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">END</font> </pre> <br /> <span>Note that on <span class='inlinecode'>blowfish</span>, we configure <span class='inlinecode'>192.168.2.110</span> here in the <span class='inlinecode'>hostname.wg</span>, and on <span class='inlinecode'>fishfinger</span>, we configure <span class='inlinecode'>192.168.2.111</span>. Those are the IP addresses of the WireGuard interfaces on those hosts.</span><br /> @@ -268,19 +268,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">blowfish$ cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/hosts</font> +<pre><font color="#ffffff">blowfish$ cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.130</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#ff0000"> f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#ff0000"> f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.130</font><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><font color="#ffffff"> f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><font color="#ffffff"> f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#ff0000"> r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#ff0000"> r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#ff0000"> r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><font color="#ffffff"> r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><font color="#ffffff"> r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><font color="#ffffff"> r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#ff0000"> fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><font color="#ffffff"> fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <h2 style='display: inline' id='wireguard-configuration'>WireGuard configuration</h2><br /> @@ -405,10 +405,10 @@ PersistentKeepalive = 25 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/wireguardmeshgenerator</font> -<font color="#F3E651">></font><font color="#ff0000"> cd </font><font color="#F3E651">.</font><font color="#ff0000">/wireguardmeshgenerator</font> -<font color="#F3E651">></font><font color="#ff0000"> bundle install</font> -<font color="#F3E651">></font><font color="#ff0000"> sudo dnf install -y wireguard-tools</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/wireguardmeshgenerator</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> cd </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/wireguardmeshgenerator</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> bundle install</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> sudo dnf install -y wireguard-tools</font> </pre> <br /> <span>This assumes that Ruby and the <span class='inlinecode'>bundler</span> gem are already installed. If not, refer to the docs of your distribution.</span><br /> @@ -544,39 +544,39 @@ hosts: by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">begin</font></b> -<font color="#ff0000"> options </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> hosts</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">[]</font><font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> OptionParser</font><font color="#F3E651">.</font><font color="#ff0000">new </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">opts</font><font color="#F3E651">|</font> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">banner </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">'Usage: wireguardmeshgenerator.rb [options]'</font> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--generate'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Generate Wireguard configs'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">generate</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">true</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--install'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Install Wireguard configs'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">install</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">true</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--clean'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Clean Wireguard configs'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">clean</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">true</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--hosts=HOSTS'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Comma separated hosts to configure'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">hosts</font><font color="#F3E651">|</font> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">hosts</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> hosts</font><font color="#F3E651">.</font><font color="#ff0000">split</font><font color="#F3E651">(</font><font color="#bb00ff">','</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b><font color="#F3E651">.</font><font color="#ff0000">parse!</font> +<pre><b><font color="#00ffff">begin</font></b> +<font color="#ffffff"> options </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> hosts</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> OptionParser</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">opts</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">banner </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Usage: wireguardmeshgenerator.rb [options]'</font> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--generate'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Generate Wireguard configs'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">generate</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">true</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--install'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Install Wireguard configs'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">install</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">true</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--clean'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Clean Wireguard configs'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">clean</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">true</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--hosts=HOSTS'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Comma separated hosts to configure'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> hosts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">split</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">','</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">parse!</font> -<font color="#ff0000"> conf </font><font color="#F3E651">=</font><font color="#ff0000"> YAML</font><font color="#F3E651">.</font><font color="#ff0000">load_file</font><font color="#F3E651">(</font><font color="#bb00ff">'wireguardmeshgenerator.yaml'</font><font color="#F3E651">).</font><font color="#ff0000">freeze</font> -<font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">].</font><font color="#ff0000">keys</font><font color="#F3E651">.</font><font color="#ff0000">select </font><font color="#F3E651">{</font><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">hosts</font><font color="#F3E651">].</font><font color="#ff0000">empty? </font><font color="#F3E651">||</font><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">hosts</font><font color="#F3E651">].</font><b><font color="#ffffff">include</font></b><font color="#F3E651">?(</font><font color="#ff0000">_1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">each </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">host</font><font color="#F3E651">|</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Generate Wireguard configuration for the host reload!</font></i> -<font color="#ff0000"> WireguardConfig</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">(</font><font color="#ff0000">host</font><font color="#F3E651">,</font><font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">]).</font><font color="#ff0000">generate! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">generate</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Install Wireguard configuration for the host.</font></i> -<font color="#ff0000"> InstallConfig</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">(</font><font color="#ff0000">host</font><font color="#F3E651">,</font><font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">]).</font><font color="#ff0000">upload!</font><font color="#F3E651">.</font><font color="#ff0000">install!</font><font color="#F3E651">.</font><font color="#ff0000">reload! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">install</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Clean Wireguard configuration for the host.</font></i> -<font color="#ff0000"> WireguardConfig</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">(</font><font color="#ff0000">host</font><font color="#F3E651">,</font><font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">]).</font><font color="#ff0000">clean! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">clean</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<b><font color="#ffffff">rescue</font></b><font color="#ff0000"> StandardError </font><font color="#F3E651">=></font><font color="#ff0000"> e</font> -<font color="#ff0000"> puts </font><font color="#bb00ff">"Error: #{e.message}"</font> -<font color="#ff0000"> puts e</font><font color="#F3E651">.</font><font color="#ff0000">backtrace</font><font color="#F3E651">.</font><font color="#ff0000">join</font><font color="#F3E651">(</font><font color="#bb00ff">"\n"</font><font color="#F3E651">)</font> -<font color="#ff0000"> exit </font><font color="#bb00ff">2</font> -<b><font color="#ffffff">end</font></b> +<font color="#ffffff"> conf </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> YAML</font><b><font color="#ee5896">.</font></b><font color="#ffffff">load_file</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'wireguardmeshgenerator.yaml'</font><b><font color="#ee5896">).</font></b><font color="#ffffff">freeze</font> +<font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">].</font></b><font color="#ffffff">keys</font><b><font color="#ee5896">.</font></b><font color="#ffffff">select </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">].</font></b><font color="#ffffff">empty? </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">].</font></b><b><font color="#00ffff">include</font></b><b><font color="#ee5896">?(</font></b><font color="#ffffff">_1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">each </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">host</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># Generate Wireguard configuration for the host reload!</font></i> +<font color="#ffffff"> WireguardConfig</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">(</font></b><font color="#ffffff">host</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">]).</font></b><font color="#ffffff">generate! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">generate</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># Install Wireguard configuration for the host.</font></i> +<font color="#ffffff"> InstallConfig</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">(</font></b><font color="#ffffff">host</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">]).</font></b><font color="#ffffff">upload!</font><b><font color="#ee5896">.</font></b><font color="#ffffff">install!</font><b><font color="#ee5896">.</font></b><font color="#ffffff">reload! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">install</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># Clean Wireguard configuration for the host.</font></i> +<font color="#ffffff"> WireguardConfig</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">(</font></b><font color="#ffffff">host</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">]).</font></b><font color="#ffffff">clean! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">clean</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<b><font color="#00ffff">rescue</font></b><font color="#ffffff"> StandardError </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> e</font> +<font color="#ffffff"> puts </font><font color="#cd00ff">"Error: #{e.message}"</font> +<font color="#ffffff"> puts e</font><b><font color="#ee5896">.</font></b><font color="#ffffff">backtrace</font><b><font color="#ee5896">.</font></b><font color="#ffffff">join</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">"\n"</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> exit </font><font color="#ff00ff">2</font> +<b><font color="#00ffff">end</font></b> </pre> <br /> <span>And we also have a <span class='inlinecode'>Rakefile</span>:</span><br /> @@ -585,19 +585,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">task </font><font color="#F3E651">:</font><font color="#ff0000">generate </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> ruby </font><font color="#bb00ff">'wireguardmeshgenerator.rb'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'--generate'</font> -<b><font color="#ffffff">end</font></b> +<pre><font color="#ffffff">task </font><b><font color="#ee5896">:</font></b><font color="#ffffff">generate </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> ruby </font><font color="#cd00ff">'wireguardmeshgenerator.rb'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'--generate'</font> +<b><font color="#00ffff">end</font></b> -<font color="#ff0000">task </font><font color="#F3E651">:</font><font color="#ff0000">clean </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> ruby </font><font color="#bb00ff">'wireguardmeshgenerator.rb'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'--clean'</font> -<b><font color="#ffffff">end</font></b> +<font color="#ffffff">task </font><b><font color="#ee5896">:</font></b><font color="#ffffff">clean </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> ruby </font><font color="#cd00ff">'wireguardmeshgenerator.rb'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'--clean'</font> +<b><font color="#00ffff">end</font></b> -<font color="#ff0000">task </font><font color="#F3E651">:</font><font color="#ff0000">install </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> ruby </font><font color="#bb00ff">'wireguardmeshgenerator.rb'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'--install'</font> -<b><font color="#ffffff">end</font></b> +<font color="#ffffff">task </font><b><font color="#ee5896">:</font></b><font color="#ffffff">install </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> ruby </font><font color="#cd00ff">'wireguardmeshgenerator.rb'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'--install'</font> +<b><font color="#00ffff">end</font></b> -<font color="#ff0000">task default</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">:</font><font color="#ff0000">generate</font> +<font color="#ffffff">task default</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">:</font></b><font color="#ffffff">generate</font> </pre> <br /> <br /> @@ -611,16 +611,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> rake generate</font> -<font color="#ff0000">/usr/bin/ruby wireguardmeshgenerator</font><font color="#F3E651">.</font><font color="#ff0000">rb --generate</font> -<font color="#ff0000">Generating dist/f</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/f</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/f</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/r</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/r</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/r</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/blowfish/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/fishfinger/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> rake generate</font> +<font color="#ffffff">/usr/bin/ruby wireguardmeshgenerator</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rb --generate</font> +<font color="#ffffff">Generating dist/f</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/f</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/f</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/r</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/r</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/r</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/blowfish/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/fishfinger/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> </pre> <br /> <span>It generated all the <span class='inlinecode'>wg0.conf</span> files listed in the output, plus those keys:</span><br /> @@ -629,51 +629,51 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> find keys</font><font color="#F3E651">/</font><font color="#ff0000"> -type f</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">0</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">0</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_f1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_f2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_f0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_f2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_f1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_f2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/r0_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/r0_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/fishfinger_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/r1_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/fishfinger_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/fishfinger_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">1</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">1</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">2</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">2</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">0</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">0</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">1</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">1</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">2</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">2</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/blowfish/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/blowfish/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/fishfinger/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/fishfinger/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> find keys</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> -type f</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">0</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">0</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/r0_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/r0_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/fishfinger_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/r1_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/fishfinger_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/fishfinger_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">1</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">1</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">2</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">2</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">0</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">0</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">1</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">1</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">2</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">2</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/blowfish/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/blowfish/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/fishfinger/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/fishfinger/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> </pre> <br /> <span>Those keys are embedded in the resulting <span class='inlinecode'>wg0.conf</span>, so later, we only need to install the <span class='inlinecode'>wg0.conf</span> files and not all the keys individually.</span><br /> @@ -686,112 +686,112 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> rake install</font> -<font color="#ff0000">/usr/bin/ruby wireguardmeshgenerator</font><font color="#F3E651">.</font><font color="#ff0000">rb --install</font> -<font color="#ff0000">Uploading dist/f</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on f0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /usr/local/etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /usr/local/etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /usr/local/etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on f0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas service wireguard reload</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/f</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on f1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /usr/local/etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /usr/local/etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /usr/local/etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on f1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas service wireguard reload</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/f</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on f2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /usr/local/etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /usr/local/etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /usr/local/etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on f2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas service wireguard reload</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/r</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on r0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">'['</font><font color="#ff0000"> </font><font color="#bb00ff">'!'</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#bb00ff">']'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">renamed </font><font color="#bb00ff">'wg0.conf'</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">'/etc/wireguard/wg0.conf'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on r0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> systemctl reload wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/r</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on r1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">'['</font><font color="#ff0000"> </font><font color="#bb00ff">'!'</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#bb00ff">']'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">renamed </font><font color="#bb00ff">'wg0.conf'</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">'/etc/wireguard/wg0.conf'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on r1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> systemctl reload wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/r</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on r2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">'['</font><font color="#ff0000"> </font><font color="#bb00ff">'!'</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#bb00ff">']'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">renamed </font><font color="#bb00ff">'wg0.conf'</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">'/etc/wireguard/wg0.conf'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on r2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> systemctl reload wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/blowfish/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on blowfish</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on blowfish</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas sh /etc/netstart wg0</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/fishfinger/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on fishfinger</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on fishfinger</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas sh /etc/netstart wg0</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> rake install</font> +<font color="#ffffff">/usr/bin/ruby wireguardmeshgenerator</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rb --install</font> +<font color="#ffffff">Uploading dist/f</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on f0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /usr/local/etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /usr/local/etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /usr/local/etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on f0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas service wireguard reload</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/f</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on f1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /usr/local/etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /usr/local/etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /usr/local/etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on f1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas service wireguard reload</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/f</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on f2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /usr/local/etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /usr/local/etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /usr/local/etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on f2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas service wireguard reload</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/r</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on r0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#cd00ff">'['</font><font color="#ffffff"> </font><font color="#cd00ff">'!'</font><font color="#ffffff"> -d /etc/wireguard </font><font color="#cd00ff">']'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">renamed </font><font color="#cd00ff">'wg0.conf'</font><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#cd00ff">'/etc/wireguard/wg0.conf'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on r0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> systemctl reload wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/r</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on r1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#cd00ff">'['</font><font color="#ffffff"> </font><font color="#cd00ff">'!'</font><font color="#ffffff"> -d /etc/wireguard </font><font color="#cd00ff">']'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">renamed </font><font color="#cd00ff">'wg0.conf'</font><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#cd00ff">'/etc/wireguard/wg0.conf'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on r1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> systemctl reload wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/r</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on r2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#cd00ff">'['</font><font color="#ffffff"> </font><font color="#cd00ff">'!'</font><font color="#ffffff"> -d /etc/wireguard </font><font color="#cd00ff">']'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">renamed </font><font color="#cd00ff">'wg0.conf'</font><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#cd00ff">'/etc/wireguard/wg0.conf'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on r2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> systemctl reload wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/blowfish/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on blowfish</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on blowfish</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas sh /etc/netstart wg0</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/fishfinger/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on fishfinger</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on fishfinger</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas sh /etc/netstart wg0</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> </pre> <br /> <h3 style='display: inline' id='re-generating-mesh-and-installing-the-wg0conf-files-again'>Re-generating mesh and installing the <span class='inlinecode'>wg0.conf</span> files again</h3><br /> @@ -802,9 +802,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> rake clean</font> -<font color="#F3E651">></font><font color="#ff0000"> rake generate</font> -<font color="#F3E651">></font><font color="#ff0000"> rake install</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> rake clean</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> rake generate</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> rake install</font> </pre> <br /> <span>That would also delete and re-generate all the keys involved.</span><br /> @@ -817,52 +817,52 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas wg show</font> -<font color="#ff0000">interface</font><font color="#F3E651">:</font><font color="#ff0000"> wg0</font> -<font color="#ff0000"> public key</font><font color="#F3E651">:</font><font color="#ff0000"> Jm6YItMt94</font><font color="#F3E651">++</font><font color="#ff0000">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><font color="#F3E651">=</font> -<font color="#ff0000"> private key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> listening port</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">56709</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas wg show</font> +<font color="#ffffff">interface</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff"> public key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Jm6YItMt94</font><b><font color="#ee5896">++</font></b><font color="#ffffff">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> private key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> listening port</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">56709</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 8</font><font color="#ff0000">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> minute</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">46</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">124</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1.75</font><font color="#ff0000"> KiB sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 8</font><font color="#ffffff">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> minute</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">46</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">124</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1.75</font><font color="#ffffff"> KiB sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Xow</font><font color="#F3E651">+</font><font color="#ff0000">d3qVXgUMk4pcRSQ6Fe</font><font color="#F3E651">+</font><font color="#ff0000">vhYBa3VDyHX</font><font color="#F3E651">/</font><font color="#ff0000">4</font><font color="#ff0000">jrGoKns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> minute</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">52</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">124</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1.60</font><font color="#ff0000"> KiB sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Xow</font><b><font color="#ee5896">+</font></b><font color="#ffffff">d3qVXgUMk4pcRSQ6Fe</font><b><font color="#ee5896">+</font></b><font color="#ffffff">vhYBa3VDyHX</font><b><font color="#ee5896">/</font></b><font color="#ffffff">4</font><font color="#ffffff">jrGoKns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> minute</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">52</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">124</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1.60</font><font color="#ffffff"> KiB sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><font color="#F3E651">+</font><font color="#ff0000">/wP</font><font color="#bb00ff">7</font><font color="#F3E651">+</font><font color="#ff0000">zwgehI</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><b><font color="#ee5896">+</font></b><font color="#ffffff">/wP</font><font color="#ff00ff">7</font><b><font color="#ee5896">+</font></b><font color="#ffffff">zwgehI</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 2</font><font color="#ff0000">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 2</font><font color="#ffffff">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><font color="#F3E651">+</font><font color="#bb00ff">1</font><font color="#ff0000">/QO7</font><font color="#ff0000">m2oyllg</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><b><font color="#ee5896">+</font></b><font color="#ff00ff">1</font><font color="#ffffff">/QO7</font><font color="#ffffff">m2oyllg</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Hhy9kMPOOjChXV2RA5WeCGs</font><font color="#F3E651">+</font><font color="#ff0000">J0FE3rcNPDw/TLSn7</font><font color="#ff0000">i8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Hhy9kMPOOjChXV2RA5WeCGs</font><b><font color="#ee5896">+</font></b><font color="#ffffff">J0FE3rcNPDw/TLSn7</font><font color="#ffffff">i8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><font color="#F3E651">+</font><font color="#ff0000">1jjhS</font><font color="#F3E651">+</font><font color="#ff0000">YwEJ2HvF0</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">1jjhS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">YwEJ2HvF0</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> </pre> <br /> <span>All the hosts are pingable as well, e.g.:</span><br /> @@ -871,65 +871,65 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> foreach peer </font><font color="#F3E651">(</font><font color="#ff0000"> f1 f2 r0 r1 r2 blowfish fishfinger </font><font color="#F3E651">)</font> -<font color="#ff0000">foreach</font><font color="#F3E651">?</font><font color="#ff0000"> ping -c</font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#ff0000">$peer</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font> -<font color="#ff0000">foreach</font><font color="#F3E651">?</font><font color="#ff0000"> echo</font> -<font color="#ff0000">foreach</font><font color="#F3E651">?</font><font color="#ff0000"> end</font> -<font color="#ff0000">PING f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.334</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.260</font><font color="#ff0000"> ms</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> foreach peer </font><b><font color="#ee5896">(</font></b><font color="#ffffff"> f1 f2 r0 r1 r2 blowfish fishfinger </font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">foreach</font><b><font color="#ee5896">?</font></b><font color="#ffffff"> ping -c</font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ffffff">$peer</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font> +<font color="#ffffff">foreach</font><b><font color="#ee5896">?</font></b><font color="#ffffff"> echo</font> +<font color="#ffffff">foreach</font><b><font color="#ee5896">?</font></b><font color="#ffffff"> end</font> +<font color="#ffffff">PING f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.334</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.260</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.260</font><font color="#F3E651">/</font><font color="#bb00ff">0.297</font><font color="#F3E651">/</font><font color="#bb00ff">0.334</font><font color="#F3E651">/</font><font color="#bb00ff">0.037</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.260</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.297</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.334</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.037</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.323</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.303</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.323</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.303</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.303</font><font color="#F3E651">/</font><font color="#bb00ff">0.313</font><font color="#F3E651">/</font><font color="#bb00ff">0.323</font><font color="#F3E651">/</font><font color="#bb00ff">0.010</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.303</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.313</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.323</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.010</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.716</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.406</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.716</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.406</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.406</font><font color="#F3E651">/</font><font color="#bb00ff">0.561</font><font color="#F3E651">/</font><font color="#bb00ff">0.716</font><font color="#F3E651">/</font><font color="#bb00ff">0.155</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.406</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.561</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.716</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.155</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.639</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.629</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.639</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.629</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.629</font><font color="#F3E651">/</font><font color="#bb00ff">0.634</font><font color="#F3E651">/</font><font color="#bb00ff">0.639</font><font color="#F3E651">/</font><font color="#bb00ff">0.005</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.629</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.634</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.639</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.005</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.569</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.479</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.569</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.479</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.479</font><font color="#F3E651">/</font><font color="#bb00ff">0.524</font><font color="#F3E651">/</font><font color="#bb00ff">0.569</font><font color="#F3E651">/</font><font color="#bb00ff">0.045</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.479</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.524</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.569</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.045</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">35.745</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">35.481</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">35.745</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">35.481</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">35.481</font><font color="#F3E651">/</font><font color="#bb00ff">35.613</font><font color="#F3E651">/</font><font color="#bb00ff">35.745</font><font color="#F3E651">/</font><font color="#bb00ff">0.132</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">35.481</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">35.613</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">35.745</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.132</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">33.992</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">33.751</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">33.992</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">33.751</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">33.751</font><font color="#F3E651">/</font><font color="#bb00ff">33.872</font><font color="#F3E651">/</font><font color="#bb00ff">33.992</font><font color="#F3E651">/</font><font color="#bb00ff">0.120</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">33.751</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">33.872</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">33.992</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.120</font><font color="#ffffff"> ms</font> </pre> <br /> <span>Note that the loop above is a <span class='inlinecode'>tcsh</span> loop, the default shell used in FreeBSD. Of course, all other peers can ping their peers as well!</span><br /> @@ -940,60 +940,60 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas wg show</font> -<font color="#ff0000">interface</font><font color="#F3E651">:</font><font color="#ff0000"> wg0</font> -<font color="#ff0000"> public key</font><font color="#F3E651">:</font><font color="#ff0000"> Jm6YItMt94</font><font color="#F3E651">++</font><font color="#ff0000">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><font color="#F3E651">=</font> -<font color="#ff0000"> private key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> listening port</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">56709</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas wg show</font> +<font color="#ffffff">interface</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff"> public key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Jm6YItMt94</font><b><font color="#ee5896">++</font></b><font color="#ffffff">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> private key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> listening port</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">56709</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><font color="#F3E651">+</font><font color="#bb00ff">1</font><font color="#ff0000">/QO7</font><font color="#ff0000">m2oyllg</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">10</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">440</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">532</font><font color="#ff0000"> B sent</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><b><font color="#ee5896">+</font></b><font color="#ff00ff">1</font><font color="#ffffff">/QO7</font><font color="#ffffff">m2oyllg</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">10</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">440</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">532</font><font color="#ffffff"> B sent</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Hhy9kMPOOjChXV2RA5WeCGs</font><font color="#F3E651">+</font><font color="#ff0000">J0FE3rcNPDw/TLSn7</font><font color="#ff0000">i8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">440</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">564</font><font color="#ff0000"> B sent</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Hhy9kMPOOjChXV2RA5WeCGs</font><b><font color="#ee5896">+</font></b><font color="#ffffff">J0FE3rcNPDw/TLSn7</font><font color="#ffffff">i8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">12</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">440</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">564</font><font color="#ffffff"> B sent</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><font color="#F3E651">+</font><font color="#ff0000">/wP</font><font color="#bb00ff">7</font><font color="#F3E651">+</font><font color="#ff0000">zwgehI</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">440</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">564</font><font color="#ff0000"> B sent</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><b><font color="#ee5896">+</font></b><font color="#ffffff">/wP</font><font color="#ff00ff">7</font><b><font color="#ee5896">+</font></b><font color="#ffffff">zwgehI</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">14</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">440</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">564</font><font color="#ffffff"> B sent</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><font color="#F3E651">+</font><font color="#ff0000">1jjhS</font><font color="#F3E651">+</font><font color="#ff0000">YwEJ2HvF0</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">17</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">472</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">564</font><font color="#ff0000"> B sent</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">1jjhS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">YwEJ2HvF0</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">17</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">472</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">564</font><font color="#ffffff"> B sent</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Xow</font><font color="#F3E651">+</font><font color="#ff0000">d3qVXgUMk4pcRSQ6Fe</font><font color="#F3E651">+</font><font color="#ff0000">vhYBa3VDyHX</font><font color="#F3E651">/</font><font color="#ff0000">4</font><font color="#ff0000">jrGoKns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">55</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">472</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">596</font><font color="#ff0000"> B sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Xow</font><b><font color="#ee5896">+</font></b><font color="#ffffff">d3qVXgUMk4pcRSQ6Fe</font><b><font color="#ee5896">+</font></b><font color="#ffffff">vhYBa3VDyHX</font><b><font color="#ee5896">/</font></b><font color="#ffffff">4</font><font color="#ffffff">jrGoKns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">472</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">596</font><font color="#ffffff"> B sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 8</font><font color="#ff0000">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">55</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">472</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">596</font><font color="#ff0000"> B sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 8</font><font color="#ffffff">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">472</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">596</font><font color="#ffffff"> B sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 2</font><font color="#ff0000">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 2</font><font color="#ffffff">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> </pre> <br /> <h2 style='display: inline' id='conclusion'>Conclusion</h2><br /> diff --git a/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-6.html b/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-6.html index 5e94708d..3b880c29 100644 --- a/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-6.html +++ b/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-6.html @@ -67,21 +67,21 @@ paul@f1:/ % by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:/</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas newfs /dev/da</font><font color="#bb00ff">0</font> -<font color="#ff0000">/dev/da</font><font color="#bb00ff">0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">15000</font><font color="#F3E651">.</font><font color="#ff0000">0MB </font><font color="#F3E651">(</font><font color="#bb00ff">30720000</font><font color="#ff0000"> sectors</font><font color="#F3E651">)</font><font color="#ff0000"> block size </font><font color="#bb00ff">32768</font><font color="#F3E651">,</font><font color="#ff0000"> fragment size </font><font color="#bb00ff">4096</font> -<font color="#ff0000"> using </font><font color="#bb00ff">24</font><font color="#ff0000"> cylinder groups of </font><font color="#bb00ff">625</font><font color="#F3E651">.</font><font color="#ff0000">22MB</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">20007</font><font color="#ff0000"> blks</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">80128</font><font color="#ff0000"> inodes</font><font color="#F3E651">.</font> -<font color="#ff0000"> with soft updates</font> -<font color="#ff0000">super-block backups </font><font color="#F3E651">(</font><b><font color="#ffffff">for</font></b><font color="#ff0000"> fsck_ffs -b </font><i><font color="#ababab">#) at:</font></i> -<font color="#ff0000"> </font><font color="#bb00ff">192</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1280640</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2561088</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">3841536</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">5121984</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">6402432</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">7682880</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">8963328</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">10243776</font><font color="#F3E651">,</font> -<font color="#bb00ff">11524224</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">12804672</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">14085120</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">15365568</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">16646016</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">17926464</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">19206912</font><font color="#F3E651">,</font><font color="#ff0000">k </font><font color="#bb00ff">20487360</font><font color="#F3E651">,</font> -<font color="#F3E651">...</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas newfs /dev/da</font><font color="#ff00ff">0</font> +<font color="#ffffff">/dev/da</font><font color="#ff00ff">0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">15000</font><b><font color="#ee5896">.</font></b><font color="#ffffff">0MB </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">30720000</font><font color="#ffffff"> sectors</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> block size </font><font color="#ff00ff">32768</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> fragment size </font><font color="#ff00ff">4096</font> +<font color="#ffffff"> using </font><font color="#ff00ff">24</font><font color="#ffffff"> cylinder groups of </font><font color="#ff00ff">625</font><b><font color="#ee5896">.</font></b><font color="#ffffff">22MB</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">20007</font><font color="#ffffff"> blks</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">80128</font><font color="#ffffff"> inodes</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> with soft updates</font> +<font color="#ffffff">super-block backups </font><b><font color="#ee5896">(</font></b><b><font color="#00ffff">for</font></b><font color="#ffffff"> fsck_ffs -b </font><i><font color="#00ff00">#) at:</font></i> +<font color="#ffffff"> </font><font color="#ff00ff">192</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1280640</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2561088</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">3841536</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">5121984</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">6402432</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">7682880</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">8963328</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">10243776</font><b><font color="#ee5896">,</font></b> +<font color="#ff00ff">11524224</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">12804672</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">14085120</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">15365568</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">16646016</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">17926464</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">19206912</font><b><font color="#ee5896">,</font></b><font color="#ffffff">k </font><font color="#ff00ff">20487360</font><b><font color="#ee5896">,</font></b> +<b><font color="#ee5896">...</font></b> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:/</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> echo </font><font color="#bb00ff">'/dev/da0 /keys ufs rw 0 2'</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/fstab</font> -<font color="#ff0000">/dev/da</font><font color="#bb00ff">0</font><font color="#ff0000"> /keys ufs rw </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:/</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas mkdir /keys</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:/</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas mount /keys</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:/</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> df </font><font color="#F3E651">|</font><font color="#ff0000"> grep keys</font> -<font color="#ff0000">/dev/da</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#bb00ff">14877596</font><font color="#ff0000"> </font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#bb00ff">13687384</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">%</font><font color="#ff0000"> /keys</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> echo </font><font color="#cd00ff">'/dev/da0 /keys ufs rw 0 2'</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/fstab</font> +<font color="#ffffff">/dev/da</font><font color="#ff00ff">0</font><font color="#ffffff"> /keys ufs rw </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas mkdir /keys</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas mount /keys</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> df </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep keys</font> +<font color="#ffffff">/dev/da</font><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ff00ff">14877596</font><font color="#ffffff"> </font><font color="#ff00ff">8</font><font color="#ffffff"> </font><font color="#ff00ff">13687384</font><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> /keys</font> </pre> <br /> <h3 style='display: inline' id='generating-encryption-keys'>Generating encryption keys</h3><br /> @@ -112,17 +112,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zpool create -m /data zdata /dev/ada</font><font color="#bb00ff">1</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs create -o </font><font color="#ff0000">encryption</font><font color="#F3E651">=</font><font color="#ff0000">on -o </font><font color="#ff0000">keyformat</font><font color="#F3E651">=</font><font color="#ff0000">raw -o </font><font color="#ff0000">keylocation</font><font color="#F3E651">=</font><font color="#ff0000">file</font><font color="#F3E651">:</font><font color="#ff0000">///keys</font><font color="#F3E651">/</font><font color="#ff0000">`hostname`</font><font color="#F3E651">:</font><font color="#ff0000">zdata</font><font color="#F3E651">.</font><font color="#ff0000">key zdata/enc</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:/</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> zfs list </font><font color="#F3E651">|</font><font color="#ff0000"> grep zdata</font> -<font color="#ff0000">zdata 836K 899G 96K /data</font> -<font color="#ff0000">zdata/enc 200K 899G 200K /data/enc</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> zfs get all zdata/enc </font><font color="#F3E651">|</font><font color="#ff0000"> grep -E -i </font><font color="#bb00ff">'(encryption|key)'</font> -<font color="#ff0000">zdata/enc encryption aes-</font><font color="#bb00ff">256</font><font color="#ff0000">-gcm -</font> -<font color="#ff0000">zdata/enc keylocation file</font><font color="#F3E651">:</font><font color="#ff0000">///keys/f</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:</font><font color="#ff0000">zdata</font><font color="#F3E651">.</font><font color="#ff0000">key </font><b><font color="#ffffff">local</font></b> -<font color="#ff0000">zdata/enc keyformat raw -</font> -<font color="#ff0000">zdata/enc encryptionroot zdata/enc -</font> -<font color="#ff0000">zdata/enc keystatus available -</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zpool create -m /data zdata /dev/ada</font><font color="#ff00ff">1</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs create -o </font><font color="#ffffff">encryption</font><b><font color="#ee5896">=</font></b><font color="#ffffff">on -o </font><font color="#ffffff">keyformat</font><b><font color="#ee5896">=</font></b><font color="#ffffff">raw -o </font><font color="#ffffff">keylocation</font><b><font color="#ee5896">=</font></b><font color="#ffffff">file</font><b><font color="#ee5896">:</font></b><font color="#ffffff">///keys</font><b><font color="#ee5896">/</font></b><font color="#ffffff">`hostname`</font><b><font color="#ee5896">:</font></b><font color="#ffffff">zdata</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key zdata/enc</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:/</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> zfs list </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep zdata</font> +<font color="#ffffff">zdata 836K 899G 96K /data</font> +<font color="#ffffff">zdata/enc 200K 899G 200K /data/enc</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> zfs get all zdata/enc </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -E -i </font><font color="#cd00ff">'(encryption|key)'</font> +<font color="#ffffff">zdata/enc encryption aes-</font><font color="#ff00ff">256</font><font color="#ffffff">-gcm -</font> +<font color="#ffffff">zdata/enc keylocation file</font><b><font color="#ee5896">:</font></b><font color="#ffffff">///keys/f</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:</font></b><font color="#ffffff">zdata</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key </font><b><font color="#00ffff">local</font></b> +<font color="#ffffff">zdata/enc keyformat raw -</font> +<font color="#ffffff">zdata/enc encryptionroot zdata/enc -</font> +<font color="#ffffff">zdata/enc keystatus available -</font> </pre> <br /> <h3 style='display: inline' id='migrating-bhyve-vms-to-encrypted-bhyve-zfs-volume'>Migrating Bhyve VMs to encrypted <span class='inlinecode'>bhyve</span> ZFS volume</h3><br /> @@ -133,60 +133,60 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm stop rocky</font> -<font color="#ff0000">Sending ACPI shutdown to rocky</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm stop rocky</font> +<font color="#ffffff">Sending ACPI shutdown to rocky</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> -<font color="#ff0000">rocky default uefi </font><font color="#bb00ff">4</font><font color="#ff0000"> 14G - Yes </font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">]</font><font color="#ff0000"> Stopped</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<font color="#ffffff">rocky default uefi </font><font color="#ff00ff">4</font><font color="#ffffff"> 14G - Yes </font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> Stopped</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs rename zroot/bhyve zroot/bhyve_old</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> </font><font color="#ff0000">mountpoint</font><font color="#F3E651">=</font><font color="#ff0000">/mnt zroot/bhyve_old</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs snapshot zroot/bhyve_old/rocky@hamburger</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs rename zroot/bhyve zroot/bhyve_old</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> </font><font color="#ffffff">mountpoint</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/mnt zroot/bhyve_old</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs snapshot zroot/bhyve_old/rocky@hamburger</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs create -o </font><font color="#ff0000">encryption</font><font color="#F3E651">=</font><font color="#ff0000">on -o </font><font color="#ff0000">keyformat</font><font color="#F3E651">=</font><font color="#ff0000">raw -o </font><font color="#ff0000">keylocation</font><font color="#F3E651">=</font><font color="#ff0000">file</font><font color="#F3E651">:</font><font color="#ff0000">///keys</font><font color="#F3E651">/</font><font color="#ff0000">`hostname`</font><font color="#F3E651">:</font><font color="#ff0000">bhyve</font><font color="#F3E651">.</font><font color="#ff0000">key zroot/bhyve</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> </font><font color="#ff0000">mountpoint</font><font color="#F3E651">=</font><font color="#ff0000">/zroot/bhyve zroot/bhyve</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> </font><font color="#ff0000">mountpoint</font><font color="#F3E651">=</font><font color="#ff0000">/zroot/bhyve/rocky zroot/bhyve/rocky</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs create -o </font><font color="#ffffff">encryption</font><b><font color="#ee5896">=</font></b><font color="#ffffff">on -o </font><font color="#ffffff">keyformat</font><b><font color="#ee5896">=</font></b><font color="#ffffff">raw -o </font><font color="#ffffff">keylocation</font><b><font color="#ee5896">=</font></b><font color="#ffffff">file</font><b><font color="#ee5896">:</font></b><font color="#ffffff">///keys</font><b><font color="#ee5896">/</font></b><font color="#ffffff">`hostname`</font><b><font color="#ee5896">:</font></b><font color="#ffffff">bhyve</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key zroot/bhyve</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> </font><font color="#ffffff">mountpoint</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/zroot/bhyve zroot/bhyve</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> </font><font color="#ffffff">mountpoint</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/zroot/bhyve/rocky zroot/bhyve/rocky</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs send zroot/bhyve_old/rocky@hamburger </font><font color="#F3E651">|</font><font color="#ff0000"> doas zfs recv zroot/bhyve/rocky</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas cp -Rp /mnt</font><font color="#F3E651">/.</font><font color="#ff0000">config /zroot/bhyve</font><font color="#F3E651">/</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas cp -Rp /mnt</font><font color="#F3E651">/.</font><font color="#ff0000">img /zroot/bhyve</font><font color="#F3E651">/</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas cp -Rp /mnt</font><font color="#F3E651">/.</font><font color="#ff0000">templates /zroot/bhyve</font><font color="#F3E651">/</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas cp -Rp /mnt</font><font color="#F3E651">/.</font><font color="#ff0000">iso /zroot/bhyve</font><font color="#F3E651">/</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs send zroot/bhyve_old/rocky@hamburger </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas zfs recv zroot/bhyve/rocky</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas cp -Rp /mnt</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">config /zroot/bhyve</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas cp -Rp /mnt</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">img /zroot/bhyve</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas cp -Rp /mnt</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">templates /zroot/bhyve</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas cp -Rp /mnt</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">iso /zroot/bhyve</font><b><font color="#ee5896">/</font></b> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">zfskeys_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">zfskeys_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm init</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/keys </font><font color="#F3E651">%</font><font color="#ff0000"> doas reboot</font> -<font color="#F3E651">.</font> -<font color="#F3E651">.</font> -<font color="#F3E651">.</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> -<font color="#ff0000">rocky default uefi </font><font color="#bb00ff">4</font><font color="#ff0000"> 14G </font><font color="#bb00ff">0.0</font><font color="#F3E651">.</font><font color="#bb00ff">0.0</font><font color="#F3E651">:</font><font color="#bb00ff">5900</font><font color="#ff0000"> Yes </font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">]</font><font color="#ff0000"> Running </font><font color="#F3E651">(</font><font color="#bb00ff">2265</font><font color="#F3E651">)</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">zfskeys_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">zfskeys_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm init</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/keys </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas reboot</font> +<b><font color="#ee5896">.</font></b> +<b><font color="#ee5896">.</font></b> +<b><font color="#ee5896">.</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<font color="#ffffff">rocky default uefi </font><font color="#ff00ff">4</font><font color="#ffffff"> 14G </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.0</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> Yes </font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> Running </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2265</font><b><font color="#ee5896">)</font></b> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs destroy -R zroot/bhyve_old</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs destroy -R zroot/bhyve_old</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> zfs get all zroot/bhyve </font><font color="#F3E651">|</font><font color="#ff0000"> grep -E </font><font color="#bb00ff">'(encryption|key)'</font> -<font color="#ff0000">zroot/bhyve encryption aes-</font><font color="#bb00ff">256</font><font color="#ff0000">-gcm -</font> -<font color="#ff0000">zroot/bhyve keylocation file</font><font color="#F3E651">:</font><font color="#ff0000">///keys/f</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:</font><font color="#ff0000">bhyve</font><font color="#F3E651">.</font><font color="#ff0000">key </font><b><font color="#ffffff">local</font></b> -<font color="#ff0000">zroot/bhyve keyformat raw -</font> -<font color="#ff0000">zroot/bhyve encryptionroot zroot/bhyve -</font> -<font color="#ff0000">zroot/bhyve keystatus available -</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> zfs get all zroot/bhyve/rocky </font><font color="#F3E651">|</font><font color="#ff0000"> grep -E </font><font color="#bb00ff">'(encryption|key)'</font> -<font color="#ff0000">zroot/bhyve/rocky encryption aes-</font><font color="#bb00ff">256</font><font color="#ff0000">-gcm -</font> -<font color="#ff0000">zroot/bhyve/rocky keylocation none default</font> -<font color="#ff0000">zroot/bhyve/rocky keyformat raw -</font> -<font color="#ff0000">zroot/bhyve/rocky encryptionroot zroot/bhyve -</font> -<font color="#ff0000">zroot/bhyve/rocky keystatus available -</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> zfs get all zroot/bhyve </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -E </font><font color="#cd00ff">'(encryption|key)'</font> +<font color="#ffffff">zroot/bhyve encryption aes-</font><font color="#ff00ff">256</font><font color="#ffffff">-gcm -</font> +<font color="#ffffff">zroot/bhyve keylocation file</font><b><font color="#ee5896">:</font></b><font color="#ffffff">///keys/f</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:</font></b><font color="#ffffff">bhyve</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key </font><b><font color="#00ffff">local</font></b> +<font color="#ffffff">zroot/bhyve keyformat raw -</font> +<font color="#ffffff">zroot/bhyve encryptionroot zroot/bhyve -</font> +<font color="#ffffff">zroot/bhyve keystatus available -</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> zfs get all zroot/bhyve/rocky </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -E </font><font color="#cd00ff">'(encryption|key)'</font> +<font color="#ffffff">zroot/bhyve/rocky encryption aes-</font><font color="#ff00ff">256</font><font color="#ffffff">-gcm -</font> +<font color="#ffffff">zroot/bhyve/rocky keylocation none default</font> +<font color="#ffffff">zroot/bhyve/rocky keyformat raw -</font> +<font color="#ffffff">zroot/bhyve/rocky encryptionroot zroot/bhyve -</font> +<font color="#ffffff">zroot/bhyve/rocky keystatus available -</font> </pre> <br /> <h2 style='display: inline' id='carp'>CARP</h2><br /> diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml index 00a46348..87e17fdd 100644 --- a/gemfeed/atom.xml +++ b/gemfeed/atom.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> - <updated>2025-06-22T22:34:04+03:00</updated> + <updated>2025-06-22T23:02:51+03:00</updated> <title>foo.zone feed</title> <subtitle>To be in the .zone!</subtitle> <link href="https://foo.zone/gemfeed/atom.xml" rel="self" /> @@ -390,14 +390,14 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update fetch</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas shutdown -r now</font> -<font color="#F3E651">..</font> -<font color="#F3E651">..</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg update</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg upgrade</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> reboot</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update fetch</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas shutdown -r now</font> +<b><font color="#ee5896">..</font></b> +<b><font color="#ee5896">..</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg update</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg upgrade</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <span>Next, we install <span class='inlinecode'>wireguard-tools</span> and configure the WireGuard service:</span><br /> @@ -406,19 +406,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install wireguard-tools</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">wireguard_interfaces</font><font color="#F3E651">=</font><font color="#ff0000">wg0</font> -<font color="#ff0000">wireguard_interfaces</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> wg0</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">wireguard_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">wireguard_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas mkdir -p /usr/local/etc/wireguard</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas touch /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas service wireguard start</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas wg show</font> -<font color="#ff0000">interface</font><font color="#F3E651">:</font><font color="#ff0000"> wg0</font> -<font color="#ff0000"> public key</font><font color="#F3E651">:</font><font color="#ff0000"> L</font><font color="#F3E651">+</font><font color="#ff0000">V9o0fNYkMVKNqsX7spBzD</font><font color="#F3E651">/</font><font color="#ff0000">9oSvxM/C7</font><font color="#ff0000">ZCZX1jLO3Q</font><font color="#F3E651">=</font> -<font color="#ff0000"> private key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> listening port</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">20246</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install wireguard-tools</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">wireguard_interfaces</font><b><font color="#ee5896">=</font></b><font color="#ffffff">wg0</font> +<font color="#ffffff">wireguard_interfaces</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">wireguard_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">wireguard_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas mkdir -p /usr/local/etc/wireguard</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas touch /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas service wireguard start</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas wg show</font> +<font color="#ffffff">interface</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff"> public key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> L</font><b><font color="#ee5896">+</font></b><font color="#ffffff">V9o0fNYkMVKNqsX7spBzD</font><b><font color="#ee5896">/</font></b><font color="#ffffff">9oSvxM/C7</font><font color="#ffffff">ZCZX1jLO3Q</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> private key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> listening port</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">20246</font> </pre> <br /> <span>We now have the WireGuard up and running, but it is not yet in any functional configuration. We will come back to that later.</span><br /> @@ -429,23 +429,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/hosts</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#ff0000"> r0 r0</font><font color="#F3E651">.</font><font color="#ff0000">lan r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#ff0000"> r1 r1</font><font color="#F3E651">.</font><font color="#ff0000">lan r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#ff0000"> r2 r2</font><font color="#F3E651">.</font><font color="#ff0000">lan r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><font color="#ffffff"> r0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><font color="#ffffff"> r1 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><font color="#ffffff"> r2 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.130</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#ff0000"> f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#ff0000"> f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.130</font><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><font color="#ffffff"> f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><font color="#ffffff"> f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#ff0000"> r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#ff0000"> r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#ff0000"> r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><font color="#ffffff"> r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><font color="#ffffff"> r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><font color="#ffffff"> r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#ff0000"> fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><font color="#ffffff"> fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>As you can see, <span class='inlinecode'>192.168.1.0/24</span> is the network used in my LAN (with the <span class='inlinecode'>fN</span> and <span class='inlinecode'>rN</span> hosts) and <span class='inlinecode'>192.168.2.0/24</span> is the network used for the WireGuard mesh network. The <span class='inlinecode'>wg0</span> interface will be used for all WireGuard traffic.</span><br /> @@ -458,8 +458,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> dnf update -y</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> reboot</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> dnf update -y</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <span>Next, we prepare WireGuard on them. Same as on the FreeBSD hosts, we will only prepare WireGuard without any useful configuration yet:</span><br /> @@ -468,12 +468,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> dnf install -y wireguard-tools</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> mkdir -p /etc/wireguard</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> touch /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> systemctl </font><b><font color="#ffffff">enable</font></b><font color="#ff0000"> wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> systemctl start wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> systemctl disable firewalld</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> dnf install -y wireguard-tools</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> mkdir -p /etc/wireguard</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> touch /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> systemctl </font><b><font color="#00ffff">enable</font></b><font color="#ffffff"> wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> systemctl start wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> systemctl disable firewalld</font> </pre> <br /> <span>We also update the <span class='inlinecode'>hosts</span> file accordingly:</span><br /> @@ -482,23 +482,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">>></font><font color="#ff0000">/etc/hosts</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">>></font></b><font color="#ffffff">/etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.130</font><font color="#ff0000"> f0 f0</font><font color="#F3E651">.</font><font color="#ff0000">lan f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#ff0000"> f1 f1</font><font color="#F3E651">.</font><font color="#ff0000">lan f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#ff0000"> f2 f2</font><font color="#F3E651">.</font><font color="#ff0000">lan f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.130</font><font color="#ffffff"> f0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><font color="#ffffff"> f1 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><font color="#ffffff"> f2 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.130</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#ff0000"> f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#ff0000"> f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.130</font><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><font color="#ffffff"> f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><font color="#ffffff"> f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#ff0000"> r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#ff0000"> r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#ff0000"> r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><font color="#ffffff"> r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><font color="#ffffff"> r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><font color="#ffffff"> r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#ff0000"> fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><font color="#ffffff"> fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>Unfortunately, the SELinux policy on Rocky Linux blocks WireGuard's operation. By making the <span class='inlinecode'>wireguard_t</span> domain permissive using <span class='inlinecode'>semanage permissive -a wireguard_t</span>, SELinux will no longer enforce restrictions for WireGuard, allowing it to work as intended:</span><br /> @@ -507,9 +507,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> dnf install -y policycoreutils-python-utils</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> semanage permissive -a wireguard_t</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> reboot</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> dnf install -y policycoreutils-python-utils</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> semanage permissive -a wireguard_t</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <a class='textlink' href='https://github.com/angristan/wireguard-install/discussions/499'>https://github.com/angristan/wireguard-install/discussions/499</a><br /> @@ -522,14 +522,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">blowfish$ doas pkg_add wireguard-tools</font> -<font color="#ff0000">blowfish$ doas mkdir /etc/wireguard</font> -<font color="#ff0000">blowfish$ doas touch /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">blowsish$ cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee /etc/hostname</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font> -<font color="#ff0000">inet </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> </font><font color="#bb00ff">255.255</font><font color="#F3E651">.</font><font color="#bb00ff">255.0</font><font color="#ff0000"> NONE</font> -<font color="#ff0000">up</font> -<font color="#F3E651">!</font><font color="#ff0000">/usr/local/bin/wg setconf wg0 /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">blowfish$ doas pkg_add wireguard-tools</font> +<font color="#ffffff">blowfish$ doas mkdir /etc/wireguard</font> +<font color="#ffffff">blowfish$ doas touch /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">blowsish$ cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee /etc/hostname</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font> +<font color="#ffffff">inet </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> </font><font color="#ff00ff">255.255</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">255.0</font><font color="#ffffff"> NONE</font> +<font color="#ffffff">up</font> +<b><font color="#ee5896">!</font></b><font color="#ffffff">/usr/local/bin/wg setconf wg0 /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">END</font> </pre> <br /> <span>Note that on <span class='inlinecode'>blowfish</span>, we configure <span class='inlinecode'>192.168.2.110</span> here in the <span class='inlinecode'>hostname.wg</span>, and on <span class='inlinecode'>fishfinger</span>, we configure <span class='inlinecode'>192.168.2.111</span>. Those are the IP addresses of the WireGuard interfaces on those hosts.</span><br /> @@ -540,19 +540,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">blowfish$ cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/hosts</font> +<pre><font color="#ffffff">blowfish$ cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.130</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#ff0000"> f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#ff0000"> f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.130</font><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><font color="#ffffff"> f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><font color="#ffffff"> f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#ff0000"> r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#ff0000"> r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#ff0000"> r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><font color="#ffffff"> r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><font color="#ffffff"> r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><font color="#ffffff"> r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#ff0000"> blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#ff0000"> fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">wan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><font color="#ffffff"> blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><font color="#ffffff"> fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <h2 style='display: inline' id='wireguard-configuration'>WireGuard configuration</h2><br /> @@ -677,10 +677,10 @@ PersistentKeepalive = 25 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/wireguardmeshgenerator</font> -<font color="#F3E651">></font><font color="#ff0000"> cd </font><font color="#F3E651">.</font><font color="#ff0000">/wireguardmeshgenerator</font> -<font color="#F3E651">></font><font color="#ff0000"> bundle install</font> -<font color="#F3E651">></font><font color="#ff0000"> sudo dnf install -y wireguard-tools</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/wireguardmeshgenerator</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> cd </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/wireguardmeshgenerator</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> bundle install</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> sudo dnf install -y wireguard-tools</font> </pre> <br /> <span>This assumes that Ruby and the <span class='inlinecode'>bundler</span> gem are already installed. If not, refer to the docs of your distribution.</span><br /> @@ -816,39 +816,39 @@ hosts: by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">begin</font></b> -<font color="#ff0000"> options </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> hosts</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">[]</font><font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> OptionParser</font><font color="#F3E651">.</font><font color="#ff0000">new </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">opts</font><font color="#F3E651">|</font> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">banner </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">'Usage: wireguardmeshgenerator.rb [options]'</font> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--generate'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Generate Wireguard configs'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">generate</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">true</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--install'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Install Wireguard configs'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">install</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">true</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--clean'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Clean Wireguard configs'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">clean</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">true</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> opts</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">(</font><font color="#bb00ff">'--hosts=HOSTS'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'Comma separated hosts to configure'</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">hosts</font><font color="#F3E651">|</font> -<font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">hosts</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> hosts</font><font color="#F3E651">.</font><font color="#ff0000">split</font><font color="#F3E651">(</font><font color="#bb00ff">','</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b><font color="#F3E651">.</font><font color="#ff0000">parse!</font> - -<font color="#ff0000"> conf </font><font color="#F3E651">=</font><font color="#ff0000"> YAML</font><font color="#F3E651">.</font><font color="#ff0000">load_file</font><font color="#F3E651">(</font><font color="#bb00ff">'wireguardmeshgenerator.yaml'</font><font color="#F3E651">).</font><font color="#ff0000">freeze</font> -<font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">].</font><font color="#ff0000">keys</font><font color="#F3E651">.</font><font color="#ff0000">select </font><font color="#F3E651">{</font><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">hosts</font><font color="#F3E651">].</font><font color="#ff0000">empty? </font><font color="#F3E651">||</font><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">hosts</font><font color="#F3E651">].</font><b><font color="#ffffff">include</font></b><font color="#F3E651">?(</font><font color="#ff0000">_1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000">each </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">host</font><font color="#F3E651">|</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Generate Wireguard configuration for the host reload!</font></i> -<font color="#ff0000"> WireguardConfig</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">(</font><font color="#ff0000">host</font><font color="#F3E651">,</font><font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">]).</font><font color="#ff0000">generate! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">generate</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Install Wireguard configuration for the host.</font></i> -<font color="#ff0000"> InstallConfig</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">(</font><font color="#ff0000">host</font><font color="#F3E651">,</font><font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">]).</font><font color="#ff0000">upload!</font><font color="#F3E651">.</font><font color="#ff0000">install!</font><font color="#F3E651">.</font><font color="#ff0000">reload! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">install</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Clean Wireguard configuration for the host.</font></i> -<font color="#ff0000"> WireguardConfig</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">(</font><font color="#ff0000">host</font><font color="#F3E651">,</font><font color="#ff0000"> conf</font><font color="#F3E651">[</font><font color="#bb00ff">'hosts'</font><font color="#F3E651">]).</font><font color="#ff0000">clean! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> options</font><font color="#F3E651">[:</font><font color="#ff0000">clean</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<b><font color="#ffffff">rescue</font></b><font color="#ff0000"> StandardError </font><font color="#F3E651">=></font><font color="#ff0000"> e</font> -<font color="#ff0000"> puts </font><font color="#bb00ff">"Error: #{e.message}"</font> -<font color="#ff0000"> puts e</font><font color="#F3E651">.</font><font color="#ff0000">backtrace</font><font color="#F3E651">.</font><font color="#ff0000">join</font><font color="#F3E651">(</font><font color="#bb00ff">"\n"</font><font color="#F3E651">)</font> -<font color="#ff0000"> exit </font><font color="#bb00ff">2</font> -<b><font color="#ffffff">end</font></b> +<pre><b><font color="#00ffff">begin</font></b> +<font color="#ffffff"> options </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> hosts</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> OptionParser</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">opts</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">banner </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Usage: wireguardmeshgenerator.rb [options]'</font> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--generate'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Generate Wireguard configs'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">generate</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">true</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--install'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Install Wireguard configs'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">install</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">true</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--clean'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Clean Wireguard configs'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">clean</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">true</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> opts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'--hosts=HOSTS'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'Comma separated hosts to configure'</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> hosts</font><b><font color="#ee5896">.</font></b><font color="#ffffff">split</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">','</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">parse!</font> + +<font color="#ffffff"> conf </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> YAML</font><b><font color="#ee5896">.</font></b><font color="#ffffff">load_file</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">'wireguardmeshgenerator.yaml'</font><b><font color="#ee5896">).</font></b><font color="#ffffff">freeze</font> +<font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">].</font></b><font color="#ffffff">keys</font><b><font color="#ee5896">.</font></b><font color="#ffffff">select </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">].</font></b><font color="#ffffff">empty? </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">hosts</font><b><font color="#ee5896">].</font></b><b><font color="#00ffff">include</font></b><b><font color="#ee5896">?(</font></b><font color="#ffffff">_1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b><font color="#ffffff">each </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">host</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># Generate Wireguard configuration for the host reload!</font></i> +<font color="#ffffff"> WireguardConfig</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">(</font></b><font color="#ffffff">host</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">]).</font></b><font color="#ffffff">generate! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">generate</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># Install Wireguard configuration for the host.</font></i> +<font color="#ffffff"> InstallConfig</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">(</font></b><font color="#ffffff">host</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">]).</font></b><font color="#ffffff">upload!</font><b><font color="#ee5896">.</font></b><font color="#ffffff">install!</font><b><font color="#ee5896">.</font></b><font color="#ffffff">reload! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">install</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><i><font color="#00ff00"># Clean Wireguard configuration for the host.</font></i> +<font color="#ffffff"> WireguardConfig</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">(</font></b><font color="#ffffff">host</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> conf</font><b><font color="#ee5896">[</font></b><font color="#cd00ff">'hosts'</font><b><font color="#ee5896">]).</font></b><font color="#ffffff">clean! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> options</font><b><font color="#ee5896">[:</font></b><font color="#ffffff">clean</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<b><font color="#00ffff">rescue</font></b><font color="#ffffff"> StandardError </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> e</font> +<font color="#ffffff"> puts </font><font color="#cd00ff">"Error: #{e.message}"</font> +<font color="#ffffff"> puts e</font><b><font color="#ee5896">.</font></b><font color="#ffffff">backtrace</font><b><font color="#ee5896">.</font></b><font color="#ffffff">join</font><b><font color="#ee5896">(</font></b><font color="#cd00ff">"\n"</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> exit </font><font color="#ff00ff">2</font> +<b><font color="#00ffff">end</font></b> </pre> <br /> <span>And we also have a <span class='inlinecode'>Rakefile</span>:</span><br /> @@ -857,19 +857,19 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">task </font><font color="#F3E651">:</font><font color="#ff0000">generate </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> ruby </font><font color="#bb00ff">'wireguardmeshgenerator.rb'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'--generate'</font> -<b><font color="#ffffff">end</font></b> +<pre><font color="#ffffff">task </font><b><font color="#ee5896">:</font></b><font color="#ffffff">generate </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> ruby </font><font color="#cd00ff">'wireguardmeshgenerator.rb'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'--generate'</font> +<b><font color="#00ffff">end</font></b> -<font color="#ff0000">task </font><font color="#F3E651">:</font><font color="#ff0000">clean </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> ruby </font><font color="#bb00ff">'wireguardmeshgenerator.rb'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'--clean'</font> -<b><font color="#ffffff">end</font></b> +<font color="#ffffff">task </font><b><font color="#ee5896">:</font></b><font color="#ffffff">clean </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> ruby </font><font color="#cd00ff">'wireguardmeshgenerator.rb'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'--clean'</font> +<b><font color="#00ffff">end</font></b> -<font color="#ff0000">task </font><font color="#F3E651">:</font><font color="#ff0000">install </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> ruby </font><font color="#bb00ff">'wireguardmeshgenerator.rb'</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'--install'</font> -<b><font color="#ffffff">end</font></b> +<font color="#ffffff">task </font><b><font color="#ee5896">:</font></b><font color="#ffffff">install </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> ruby </font><font color="#cd00ff">'wireguardmeshgenerator.rb'</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'--install'</font> +<b><font color="#00ffff">end</font></b> -<font color="#ff0000">task default</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">:</font><font color="#ff0000">generate</font> +<font color="#ffffff">task default</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">:</font></b><font color="#ffffff">generate</font> </pre> <br /> <br /> @@ -883,16 +883,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> rake generate</font> -<font color="#ff0000">/usr/bin/ruby wireguardmeshgenerator</font><font color="#F3E651">.</font><font color="#ff0000">rb --generate</font> -<font color="#ff0000">Generating dist/f</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/f</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/f</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/r</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/r</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/r</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/blowfish/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">Generating dist/fishfinger/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> rake generate</font> +<font color="#ffffff">/usr/bin/ruby wireguardmeshgenerator</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rb --generate</font> +<font color="#ffffff">Generating dist/f</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/f</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/f</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/r</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/r</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/r</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/blowfish/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">Generating dist/fishfinger/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> </pre> <br /> <span>It generated all the <span class='inlinecode'>wg0.conf</span> files listed in the output, plus those keys:</span><br /> @@ -901,51 +901,51 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> find keys</font><font color="#F3E651">/</font><font color="#ff0000"> -type f</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">0</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">0</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_f1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_f2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_f0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f0_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_f2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_f1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f1_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_f2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/f2_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/r0_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/r0_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/fishfinger_r0</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/r1_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/fishfinger_r1</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/fishfinger_r2</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/psk/blowfish_fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">1</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">1</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">2</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/f</font><font color="#bb00ff">2</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">0</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">0</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">1</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">1</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">2</font><font color="#ff0000">/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/r</font><font color="#bb00ff">2</font><font color="#ff0000">/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/blowfish/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/blowfish/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/fishfinger/priv</font><font color="#F3E651">.</font><font color="#ff0000">key</font> -<font color="#ff0000">keys/fishfinger/pub</font><font color="#F3E651">.</font><font color="#ff0000">key</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> find keys</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> -type f</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">0</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">0</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f0_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f1_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/f2_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/r0_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/r0_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/fishfinger_r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/r1_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/fishfinger_r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/fishfinger_r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/psk/blowfish_fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">1</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">1</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">2</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/f</font><font color="#ff00ff">2</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">0</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">0</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">1</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">1</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">2</font><font color="#ffffff">/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/r</font><font color="#ff00ff">2</font><font color="#ffffff">/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/blowfish/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/blowfish/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/fishfinger/priv</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> +<font color="#ffffff">keys/fishfinger/pub</font><b><font color="#ee5896">.</font></b><font color="#ffffff">key</font> </pre> <br /> <span>Those keys are embedded in the resulting <span class='inlinecode'>wg0.conf</span>, so later, we only need to install the <span class='inlinecode'>wg0.conf</span> files and not all the keys individually.</span><br /> @@ -958,112 +958,112 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> rake install</font> -<font color="#ff0000">/usr/bin/ruby wireguardmeshgenerator</font><font color="#F3E651">.</font><font color="#ff0000">rb --install</font> -<font color="#ff0000">Uploading dist/f</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on f0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /usr/local/etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /usr/local/etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /usr/local/etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on f0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas service wireguard reload</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/f</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on f1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /usr/local/etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /usr/local/etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /usr/local/etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on f1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas service wireguard reload</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/f</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on f2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /usr/local/etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /usr/local/etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /usr/local/etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /usr/local/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on f2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas service wireguard reload</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/r</font><font color="#bb00ff">0</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on r0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">'['</font><font color="#ff0000"> </font><font color="#bb00ff">'!'</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#bb00ff">']'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">renamed </font><font color="#bb00ff">'wg0.conf'</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">'/etc/wireguard/wg0.conf'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on r0</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> systemctl reload wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/r</font><font color="#bb00ff">1</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on r1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">'['</font><font color="#ff0000"> </font><font color="#bb00ff">'!'</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#bb00ff">']'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">renamed </font><font color="#bb00ff">'wg0.conf'</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">'/etc/wireguard/wg0.conf'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on r1</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> systemctl reload wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/r</font><font color="#bb00ff">2</font><font color="#ff0000">/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on r2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">'['</font><font color="#ff0000"> </font><font color="#bb00ff">'!'</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#bb00ff">']'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">renamed </font><font color="#bb00ff">'wg0.conf'</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">'/etc/wireguard/wg0.conf'</font> -<font color="#F3E651">+</font><font color="#ff0000"> chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on r2</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> systemctl reload wg-quick@wg0</font><font color="#F3E651">.</font><font color="#ff0000">service</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/blowfish/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on blowfish</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on blowfish</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas sh /etc/netstart wg0</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Uploading dist/fishfinger/etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf to fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#ff0000">Installing Wireguard config on fishfinger</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d /etc/wireguard </font><font color="#F3E651">]</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">700</font><font color="#ff0000"> /etc/wireguard</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas mv -v wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf /etc/wireguard</font> -<font color="#ff0000">wg0</font><font color="#F3E651">.</font><font color="#ff0000">conf -</font><font color="#F3E651">></font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas chmod </font><font color="#bb00ff">644</font><font color="#ff0000"> /etc/wireguard/wg</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">Reloading Wireguard on fishfinger</font> -<font color="#ff0000">Uploading cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh to fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:.</font> -<font color="#F3E651">+</font><font color="#ff0000"> doas sh /etc/netstart wg0</font> -<font color="#F3E651">+</font><font color="#ff0000"> rm cmd</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> rake install</font> +<font color="#ffffff">/usr/bin/ruby wireguardmeshgenerator</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rb --install</font> +<font color="#ffffff">Uploading dist/f</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on f0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /usr/local/etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /usr/local/etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /usr/local/etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on f0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas service wireguard reload</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/f</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on f1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /usr/local/etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /usr/local/etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /usr/local/etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on f1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas service wireguard reload</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/f</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on f2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /usr/local/etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /usr/local/etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /usr/local/etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /usr/local/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on f2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas service wireguard reload</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/r</font><font color="#ff00ff">0</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on r0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#cd00ff">'['</font><font color="#ffffff"> </font><font color="#cd00ff">'!'</font><font color="#ffffff"> -d /etc/wireguard </font><font color="#cd00ff">']'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">renamed </font><font color="#cd00ff">'wg0.conf'</font><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#cd00ff">'/etc/wireguard/wg0.conf'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on r0</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> systemctl reload wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/r</font><font color="#ff00ff">1</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on r1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#cd00ff">'['</font><font color="#ffffff"> </font><font color="#cd00ff">'!'</font><font color="#ffffff"> -d /etc/wireguard </font><font color="#cd00ff">']'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">renamed </font><font color="#cd00ff">'wg0.conf'</font><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#cd00ff">'/etc/wireguard/wg0.conf'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on r1</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> systemctl reload wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/r</font><font color="#ff00ff">2</font><font color="#ffffff">/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on r2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#cd00ff">'['</font><font color="#ffffff"> </font><font color="#cd00ff">'!'</font><font color="#ffffff"> -d /etc/wireguard </font><font color="#cd00ff">']'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">renamed </font><font color="#cd00ff">'wg0.conf'</font><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#cd00ff">'/etc/wireguard/wg0.conf'</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on r2</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> systemctl reload wg-quick@wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">service</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/blowfish/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on blowfish</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on blowfish</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas sh /etc/netstart wg0</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Uploading dist/fishfinger/etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf to fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<font color="#ffffff">Installing Wireguard config on fishfinger</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> -d /etc/wireguard </font><b><font color="#ee5896">]</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">700</font><font color="#ffffff"> /etc/wireguard</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas mv -v wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf /etc/wireguard</font> +<font color="#ffffff">wg0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas chmod </font><font color="#ff00ff">644</font><font color="#ffffff"> /etc/wireguard/wg</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">Reloading Wireguard on fishfinger</font> +<font color="#ffffff">Uploading cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh to fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:.</font></b> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> doas sh /etc/netstart wg0</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff"> rm cmd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> </pre> <br /> <h3 style='display: inline' id='re-generating-mesh-and-installing-the-wg0conf-files-again'>Re-generating mesh and installing the <span class='inlinecode'>wg0.conf</span> files again</h3><br /> @@ -1074,9 +1074,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">></font><font color="#ff0000"> rake clean</font> -<font color="#F3E651">></font><font color="#ff0000"> rake generate</font> -<font color="#F3E651">></font><font color="#ff0000"> rake install</font> +<pre><b><font color="#ee5896">></font></b><font color="#ffffff"> rake clean</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> rake generate</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> rake install</font> </pre> <br /> <span>That would also delete and re-generate all the keys involved.</span><br /> @@ -1089,52 +1089,52 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas wg show</font> -<font color="#ff0000">interface</font><font color="#F3E651">:</font><font color="#ff0000"> wg0</font> -<font color="#ff0000"> public key</font><font color="#F3E651">:</font><font color="#ff0000"> Jm6YItMt94</font><font color="#F3E651">++</font><font color="#ff0000">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><font color="#F3E651">=</font> -<font color="#ff0000"> private key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> listening port</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">56709</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas wg show</font> +<font color="#ffffff">interface</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff"> public key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Jm6YItMt94</font><b><font color="#ee5896">++</font></b><font color="#ffffff">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> private key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> listening port</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">56709</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 8</font><font color="#ff0000">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> minute</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">46</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">124</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1.75</font><font color="#ff0000"> KiB sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 8</font><font color="#ffffff">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> minute</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">46</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">124</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1.75</font><font color="#ffffff"> KiB sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Xow</font><font color="#F3E651">+</font><font color="#ff0000">d3qVXgUMk4pcRSQ6Fe</font><font color="#F3E651">+</font><font color="#ff0000">vhYBa3VDyHX</font><font color="#F3E651">/</font><font color="#ff0000">4</font><font color="#ff0000">jrGoKns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> minute</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">52</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">124</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1.60</font><font color="#ff0000"> KiB sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Xow</font><b><font color="#ee5896">+</font></b><font color="#ffffff">d3qVXgUMk4pcRSQ6Fe</font><b><font color="#ee5896">+</font></b><font color="#ffffff">vhYBa3VDyHX</font><b><font color="#ee5896">/</font></b><font color="#ffffff">4</font><font color="#ffffff">jrGoKns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> minute</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">52</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">124</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1.60</font><font color="#ffffff"> KiB sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><font color="#F3E651">+</font><font color="#ff0000">/wP</font><font color="#bb00ff">7</font><font color="#F3E651">+</font><font color="#ff0000">zwgehI</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><b><font color="#ee5896">+</font></b><font color="#ffffff">/wP</font><font color="#ff00ff">7</font><b><font color="#ee5896">+</font></b><font color="#ffffff">zwgehI</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 2</font><font color="#ff0000">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 2</font><font color="#ffffff">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><font color="#F3E651">+</font><font color="#bb00ff">1</font><font color="#ff0000">/QO7</font><font color="#ff0000">m2oyllg</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><b><font color="#ee5896">+</font></b><font color="#ff00ff">1</font><font color="#ffffff">/QO7</font><font color="#ffffff">m2oyllg</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Hhy9kMPOOjChXV2RA5WeCGs</font><font color="#F3E651">+</font><font color="#ff0000">J0FE3rcNPDw/TLSn7</font><font color="#ff0000">i8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Hhy9kMPOOjChXV2RA5WeCGs</font><b><font color="#ee5896">+</font></b><font color="#ffffff">J0FE3rcNPDw/TLSn7</font><font color="#ffffff">i8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><font color="#F3E651">+</font><font color="#ff0000">1jjhS</font><font color="#F3E651">+</font><font color="#ff0000">YwEJ2HvF0</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">1jjhS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">YwEJ2HvF0</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> </pre> <br /> <span>All the hosts are pingable as well, e.g.:</span><br /> @@ -1143,65 +1143,65 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> foreach peer </font><font color="#F3E651">(</font><font color="#ff0000"> f1 f2 r0 r1 r2 blowfish fishfinger </font><font color="#F3E651">)</font> -<font color="#ff0000">foreach</font><font color="#F3E651">?</font><font color="#ff0000"> ping -c</font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#ff0000">$peer</font><font color="#F3E651">.</font><font color="#ff0000">wg0</font> -<font color="#ff0000">foreach</font><font color="#F3E651">?</font><font color="#ff0000"> echo</font> -<font color="#ff0000">foreach</font><font color="#F3E651">?</font><font color="#ff0000"> end</font> -<font color="#ff0000">PING f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.334</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.260</font><font color="#ff0000"> ms</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> foreach peer </font><b><font color="#ee5896">(</font></b><font color="#ffffff"> f1 f2 r0 r1 r2 blowfish fishfinger </font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">foreach</font><b><font color="#ee5896">?</font></b><font color="#ffffff"> ping -c</font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ffffff">$peer</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0</font> +<font color="#ffffff">foreach</font><b><font color="#ee5896">?</font></b><font color="#ffffff"> echo</font> +<font color="#ffffff">foreach</font><b><font color="#ee5896">?</font></b><font color="#ffffff"> end</font> +<font color="#ffffff">PING f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.334</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.260</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- f1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.260</font><font color="#F3E651">/</font><font color="#bb00ff">0.297</font><font color="#F3E651">/</font><font color="#bb00ff">0.334</font><font color="#F3E651">/</font><font color="#bb00ff">0.037</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.260</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.297</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.334</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.037</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.323</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.303</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.323</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.303</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- f2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.303</font><font color="#F3E651">/</font><font color="#bb00ff">0.313</font><font color="#F3E651">/</font><font color="#bb00ff">0.323</font><font color="#F3E651">/</font><font color="#bb00ff">0.010</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.303</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.313</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.323</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.010</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.716</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.406</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.716</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.406</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- r0</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.406</font><font color="#F3E651">/</font><font color="#bb00ff">0.561</font><font color="#F3E651">/</font><font color="#bb00ff">0.716</font><font color="#F3E651">/</font><font color="#bb00ff">0.155</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.406</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.561</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.716</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.155</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.639</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.629</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.639</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.629</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- r1</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.629</font><font color="#F3E651">/</font><font color="#bb00ff">0.634</font><font color="#F3E651">/</font><font color="#bb00ff">0.639</font><font color="#F3E651">/</font><font color="#bb00ff">0.005</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.629</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.634</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.639</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.005</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.569</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">64</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">0.479</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.569</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">64</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0.479</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- r2</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0.479</font><font color="#F3E651">/</font><font color="#bb00ff">0.524</font><font color="#F3E651">/</font><font color="#bb00ff">0.569</font><font color="#F3E651">/</font><font color="#bb00ff">0.045</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.479</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.524</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.569</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.045</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">35.745</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">35.481</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">35.745</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">35.481</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- blowfish</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">35.481</font><font color="#F3E651">/</font><font color="#bb00ff">35.613</font><font color="#F3E651">/</font><font color="#bb00ff">35.745</font><font color="#F3E651">/</font><font color="#bb00ff">0.132</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">35.481</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">35.613</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">35.745</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.132</font><font color="#ffffff"> ms</font> -<font color="#ff0000">PING fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">):</font><font color="#ff0000"> </font><font color="#bb00ff">56</font><font color="#ff0000"> data bytes</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">33.992</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">64</font><font color="#ff0000"> bytes from </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">icmp_seq</font><font color="#F3E651">=</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#ff0000">ttl</font><font color="#F3E651">=</font><font color="#bb00ff">255</font><font color="#ff0000"> </font><font color="#ff0000">time</font><font color="#F3E651">=</font><font color="#bb00ff">33.751</font><font color="#ff0000"> ms</font> +<font color="#ffffff">PING fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> </font><font color="#ff00ff">56</font><font color="#ffffff"> data bytes</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">33.992</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">64</font><font color="#ffffff"> bytes from </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">icmp_seq</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ffffff">ttl</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">255</font><font color="#ffffff"> </font><font color="#ffffff">time</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">33.751</font><font color="#ffffff"> ms</font> -<font color="#ff0000">--- fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">wg0 ping statistics ---</font> -<font color="#bb00ff">2</font><font color="#ff0000"> packets transmitted</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> packets received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">0.0</font><font color="#F3E651">%</font><font color="#ff0000"> packet loss</font> -<font color="#ff0000">round-trip min/avg/max/stddev </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">33.751</font><font color="#F3E651">/</font><font color="#bb00ff">33.872</font><font color="#F3E651">/</font><font color="#bb00ff">33.992</font><font color="#F3E651">/</font><font color="#bb00ff">0.120</font><font color="#ff0000"> ms</font> +<font color="#ffffff">--- fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">wg0 ping statistics ---</font> +<font color="#ff00ff">2</font><font color="#ffffff"> packets transmitted</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> packets received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> packet loss</font> +<font color="#ffffff">round-trip min/avg/max/stddev </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">33.751</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">33.872</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">33.992</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">0.120</font><font color="#ffffff"> ms</font> </pre> <br /> <span>Note that the loop above is a <span class='inlinecode'>tcsh</span> loop, the default shell used in FreeBSD. Of course, all other peers can ping their peers as well!</span><br /> @@ -1212,60 +1212,60 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas wg show</font> -<font color="#ff0000">interface</font><font color="#F3E651">:</font><font color="#ff0000"> wg0</font> -<font color="#ff0000"> public key</font><font color="#F3E651">:</font><font color="#ff0000"> Jm6YItMt94</font><font color="#F3E651">++</font><font color="#ff0000">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><font color="#F3E651">=</font> -<font color="#ff0000"> private key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> listening port</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">56709</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><font color="#F3E651">+</font><font color="#bb00ff">1</font><font color="#ff0000">/QO7</font><font color="#ff0000">m2oyllg</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.122</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">10</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">440</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">532</font><font color="#ff0000"> B sent</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Hhy9kMPOOjChXV2RA5WeCGs</font><font color="#F3E651">+</font><font color="#ff0000">J0FE3rcNPDw/TLSn7</font><font color="#ff0000">i8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.121</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">440</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">564</font><font color="#ff0000"> B sent</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><font color="#F3E651">+</font><font color="#ff0000">/wP</font><font color="#bb00ff">7</font><font color="#F3E651">+</font><font color="#ff0000">zwgehI</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.120</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">440</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">564</font><font color="#ff0000"> B sent</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><font color="#F3E651">+</font><font color="#ff0000">1jjhS</font><font color="#F3E651">+</font><font color="#ff0000">YwEJ2HvF0</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.132</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">17</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">472</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">564</font><font color="#ff0000"> B sent</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> Xow</font><font color="#F3E651">+</font><font color="#ff0000">d3qVXgUMk4pcRSQ6Fe</font><font color="#F3E651">+</font><font color="#ff0000">vhYBa3VDyHX</font><font color="#F3E651">/</font><font color="#ff0000">4</font><font color="#ff0000">jrGoKns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.110</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">55</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">472</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">596</font><font color="#ff0000"> B sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 8</font><font color="#ff0000">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.111</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> -<font color="#ff0000"> latest handshake</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">55</font><font color="#ff0000"> seconds ago</font> -<font color="#ff0000"> transfer</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">472</font><font color="#ff0000"> B received</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">596</font><font color="#ff0000"> B sent</font> -<font color="#ff0000"> persistent keepalive</font><font color="#F3E651">:</font><font color="#ff0000"> every </font><font color="#bb00ff">25</font><font color="#ff0000"> seconds</font> - -<font color="#ff0000">peer</font><font color="#F3E651">:</font><font color="#ff0000"> 2</font><font color="#ff0000">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><font color="#F3E651">=</font> -<font color="#ff0000"> preshared key</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">hidden</font><font color="#F3E651">)</font> -<font color="#ff0000"> endpoint</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#F3E651">:</font><font color="#bb00ff">56709</font> -<font color="#ff0000"> allowed ips</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">2.131</font><font color="#F3E651">/</font><font color="#bb00ff">32</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas wg show</font> +<font color="#ffffff">interface</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> wg0</font> +<font color="#ffffff"> public key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Jm6YItMt94</font><b><font color="#ee5896">++</font></b><font color="#ffffff">dIeOyVi1I9AhNt2qQcryxCZezoX7X2Y</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> private key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> listening port</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">56709</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 0Y/H20W8YIbF7DA1sMwMacLI8WS9yG</font><b><font color="#ee5896">+</font></b><font color="#ff00ff">1</font><font color="#ffffff">/QO7</font><font color="#ffffff">m2oyllg</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.122</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">10</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">440</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">532</font><font color="#ffffff"> B sent</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Hhy9kMPOOjChXV2RA5WeCGs</font><b><font color="#ee5896">+</font></b><font color="#ffffff">J0FE3rcNPDw/TLSn7</font><font color="#ffffff">i8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.121</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">12</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">440</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">564</font><font color="#ffffff"> B sent</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> s3e93XoY7dPUQgLiVO4d8x/SRCFgEew</font><b><font color="#ee5896">+</font></b><font color="#ffffff">/wP</font><font color="#ff00ff">7</font><b><font color="#ee5896">+</font></b><font color="#ffffff">zwgehI</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.120</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">14</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">440</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">564</font><font color="#ffffff"> B sent</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> SlGVsACE1wiaRoGvCR3f7AuHfRS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">1jjhS</font><b><font color="#ee5896">+</font></b><font color="#ffffff">YwEJ2HvF0</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.132</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">17</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">472</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">564</font><font color="#ffffff"> B sent</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Xow</font><b><font color="#ee5896">+</font></b><font color="#ffffff">d3qVXgUMk4pcRSQ6Fe</font><b><font color="#ee5896">+</font></b><font color="#ffffff">vhYBa3VDyHX</font><b><font color="#ee5896">/</font></b><font color="#ffffff">4</font><font color="#ffffff">jrGoKns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.110</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">472</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">596</font><font color="#ffffff"> B sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 8</font><font color="#ffffff">PvGZH1NohHpZPVJyjhctBX9xblsNvYBhpg68FsFcns</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.111</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> +<font color="#ffffff"> latest handshake</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">55</font><font color="#ffffff"> seconds ago</font> +<font color="#ffffff"> transfer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">472</font><font color="#ffffff"> B received</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">596</font><font color="#ffffff"> B sent</font> +<font color="#ffffff"> persistent keepalive</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> every </font><font color="#ff00ff">25</font><font color="#ffffff"> seconds</font> + +<font color="#ffffff">peer</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 2</font><font color="#ffffff">htXdNcxzpI2FdPDJy4T4VGtm1wpMEQu1AkQHjNY6F8</font><b><font color="#ee5896">=</font></b> +<font color="#ffffff"> preshared key</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">hidden</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> endpoint</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56709</font> +<font color="#ffffff"> allowed ips</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2.131</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">32</font> </pre> <br /> <h2 style='display: inline' id='conclusion'>Conclusion</h2><br /> @@ -1486,14 +1486,14 @@ set-option -g prefix C-g by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">function tmux</font><font color="#F3E651">::</font><font color="#ff0000">search</font> -<font color="#ff0000"> </font><b><font color="#ffffff">set</font></b><font color="#ff0000"> -l session </font><font color="#F3E651">(</font><font color="#ff0000">tmux list-sessions </font><font color="#F3E651">|</font><font color="#ff0000"> fzf </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">:</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> -z </font><font color="#bb00ff">"$TMUX"</font> -<font color="#ff0000"> tmux attach-session -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux switch -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> end</font> -<font color="#ff0000">end</font> +<pre><b><font color="#ffffff">function tmux</font></b><b><font color="#ee5896">::</font></b><font color="#ffffff">search</font> +<font color="#ffffff"> </font><b><font color="#00ffff">set</font></b><font color="#ffffff"> -l session </font><b><font color="#ee5896">(</font></b><font color="#ffffff">tmux list-sessions </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> fzf </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$TMUX"</font> +<font color="#ffffff"> tmux attach-session -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux switch -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> end</font> +<font color="#ffffff">end</font> </pre> <br /> <span>All it does is list all currently open sessions in <span class='inlinecode'>fzf</span>, where one of them can be searched and selected through fuzzy find, and then either switch (if already inside a session) to the other session or attach to the other session (if not yet in Tmux).</span><br /> @@ -1906,10 +1906,10 @@ __ejm\___/________dwb`---`______________________ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dmesg </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">'Features2=.*POPCNT'</font> -<font color="#ff0000"> </font><font color="#ff0000">Features2</font><font color="#F3E651">=</font><font color="#bb00ff">0x7ffafbbf</font><font color="#F3E651"><</font><font color="#ff0000">SSE3</font><font color="#F3E651">,</font><font color="#ff0000">PCLMULQDQ</font><font color="#F3E651">,</font><font color="#ff0000">DTES64</font><font color="#F3E651">,</font><font color="#ff0000">MON</font><font color="#F3E651">,</font><font color="#ff0000">DS_CPL</font><font color="#F3E651">,</font><font color="#ff0000">VMX</font><font color="#F3E651">,</font><font color="#ff0000">EST</font><font color="#F3E651">,</font><font color="#ff0000">TM2</font><font color="#F3E651">,</font><font color="#ff0000">SSSE3</font><font color="#F3E651">,</font><font color="#ff0000">SDBG</font><font color="#F3E651">,</font> -<font color="#ff0000"> FMA</font><font color="#F3E651">,</font><font color="#ff0000">CX16</font><font color="#F3E651">,</font><font color="#ff0000">xTPR</font><font color="#F3E651">,</font><font color="#ff0000">PDCM</font><font color="#F3E651">,</font><font color="#ff0000">PCID</font><font color="#F3E651">,</font><font color="#ff0000">SSE4</font><font color="#F3E651">.</font><font color="#bb00ff">1</font><font color="#F3E651">,</font><font color="#ff0000">SSE4</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">,</font><font color="#ff0000">x2APIC</font><font color="#F3E651">,</font><font color="#ff0000">MOVBE</font><font color="#F3E651">,</font><font color="#ff0000">POPCNT</font><font color="#F3E651">,</font><font color="#ff0000">TSCDLT</font><font color="#F3E651">,</font><font color="#ff0000">AESNI</font><font color="#F3E651">,</font><font color="#ff0000">XSAVE</font><font color="#F3E651">,</font> -<font color="#ff0000"> OSXSAVE</font><font color="#F3E651">,</font><font color="#ff0000">AVX</font><font color="#F3E651">,</font><font color="#ff0000">F16C</font><font color="#F3E651">,</font><font color="#ff0000">RDRAND</font><font color="#F3E651">></font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmesg </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#cd00ff">'Features2=.*POPCNT'</font> +<font color="#ffffff"> </font><font color="#ffffff">Features2</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0x7ffafbbf</font><b><font color="#ee5896"><</font></b><font color="#ffffff">SSE3</font><b><font color="#ee5896">,</font></b><font color="#ffffff">PCLMULQDQ</font><b><font color="#ee5896">,</font></b><font color="#ffffff">DTES64</font><b><font color="#ee5896">,</font></b><font color="#ffffff">MON</font><b><font color="#ee5896">,</font></b><font color="#ffffff">DS_CPL</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VMX</font><b><font color="#ee5896">,</font></b><font color="#ffffff">EST</font><b><font color="#ee5896">,</font></b><font color="#ffffff">TM2</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SSSE3</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SDBG</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> FMA</font><b><font color="#ee5896">,</font></b><font color="#ffffff">CX16</font><b><font color="#ee5896">,</font></b><font color="#ffffff">xTPR</font><b><font color="#ee5896">,</font></b><font color="#ffffff">PDCM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">PCID</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SSE4</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SSE4</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b><font color="#ffffff">x2APIC</font><b><font color="#ee5896">,</font></b><font color="#ffffff">MOVBE</font><b><font color="#ee5896">,</font></b><font color="#ffffff">POPCNT</font><b><font color="#ee5896">,</font></b><font color="#ffffff">TSCDLT</font><b><font color="#ee5896">,</font></b><font color="#ffffff">AESNI</font><b><font color="#ee5896">,</font></b><font color="#ffffff">XSAVE</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> OSXSAVE</font><b><font color="#ee5896">,</font></b><font color="#ffffff">AVX</font><b><font color="#ee5896">,</font></b><font color="#ffffff">F16C</font><b><font color="#ee5896">,</font></b><font color="#ffffff">RDRAND</font><b><font color="#ee5896">></font></b> </pre> <br /> <span>So it's there! All good.</span><br /> @@ -1926,15 +1926,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install vm-bhyve bhyve-firmware</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">vm_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">vm_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">vm_dir</font><font color="#F3E651">=</font><font color="#ff0000">zfs</font><font color="#F3E651">:</font><font color="#ff0000">zroot/bhyve</font> -<font color="#ff0000">vm_dir</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> zfs</font><font color="#F3E651">:</font><font color="#ff0000">zroot/bhyve</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas zfs create zroot/bhyve</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm init</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm switch create public</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm switch add public re0</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install vm-bhyve bhyve-firmware</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">vm_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">vm_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">vm_dir</font><b><font color="#ee5896">=</font></b><font color="#ffffff">zfs</font><b><font color="#ee5896">:</font></b><font color="#ffffff">zroot/bhyve</font> +<font color="#ffffff">vm_dir</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> zfs</font><b><font color="#ee5896">:</font></b><font color="#ffffff">zroot/bhyve</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas zfs create zroot/bhyve</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm init</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm switch create public</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm switch add public re0</font> </pre> <br /> <span>Bhyve stores all it's data in the <span class='inlinecode'>/bhyve</span> of the <span class='inlinecode'>zroot</span> ZFS pool:</span><br /> @@ -1943,8 +1943,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> zfs list </font><font color="#F3E651">|</font><font color="#ff0000"> grep bhyve</font> -<font color="#ff0000">zroot/bhyve </font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">74M 453G </font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">74M /zroot/bhyve</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> zfs list </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep bhyve</font> +<font color="#ffffff">zroot/bhyve </font><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">74M 453G </font><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">74M /zroot/bhyve</font> </pre> <br /> <span>For convenience, we also create this symlink:</span><br /> @@ -1953,7 +1953,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas ln -s /zroot/bhyve</font><font color="#F3E651">/</font><font color="#ff0000"> /bhyve</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas ln -s /zroot/bhyve</font><b><font color="#ee5896">/</font></b><font color="#ffffff"> /bhyve</font> </pre> <br /> @@ -1963,8 +1963,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> </pre> <br /> <h2 style='display: inline' id='rocky-linux-vms'>Rocky Linux VMs</h2><br /> @@ -1985,10 +1985,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm iso </font><font color="#F3E651">\</font> -<font color="#ff0000"> https</font><font color="#F3E651">:</font><font color="#ff0000">//download</font><font color="#F3E651">.</font><font color="#ff0000">rockylinux</font><font color="#F3E651">.</font><font color="#ff0000">org/pub/rocky</font><font color="#F3E651">/</font><font color="#bb00ff">9</font><font color="#ff0000">/isos/x86_64/Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso</font> -<font color="#ff0000">/zroot/bhyve</font><font color="#F3E651">/.</font><font color="#ff0000">iso/Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso </font><font color="#bb00ff">1808</font><font color="#ff0000"> MB </font><font color="#bb00ff">4780</font><font color="#ff0000"> kBps 06m28s</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm create rocky</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm iso </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//download</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rockylinux</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/pub/rocky</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">9</font><font color="#ffffff">/isos/x86_64/Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso</font> +<font color="#ffffff">/zroot/bhyve</font><b><font color="#ee5896">/.</font></b><font color="#ffffff">iso/Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso </font><font color="#ff00ff">1808</font><font color="#ffffff"> MB </font><font color="#ff00ff">4780</font><font color="#ffffff"> kBps 06m28s</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm create rocky</font> </pre> <br /> <h3 style='display: inline' id='vm-configuration'>VM configuration</h3><br /> @@ -1999,16 +1999,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> cat rocky</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">loader</font><font color="#F3E651">=</font><font color="#bb00ff">"bhyveload"</font> -<font color="#ff0000">cpu</font><font color="#F3E651">=</font><font color="#bb00ff">1</font> -<font color="#ff0000">memory</font><font color="#F3E651">=</font><font color="#ff0000">256M</font> -<font color="#ff0000">network0_type</font><font color="#F3E651">=</font><font color="#bb00ff">"virtio-net"</font> -<font color="#ff0000">network0_switch</font><font color="#F3E651">=</font><font color="#bb00ff">"public"</font> -<font color="#ff0000">disk0_type</font><font color="#F3E651">=</font><font color="#bb00ff">"virtio-blk"</font> -<font color="#ff0000">disk0_name</font><font color="#F3E651">=</font><font color="#bb00ff">"disk0.img"</font> -<font color="#ff0000">uuid</font><font color="#F3E651">=</font><font color="#bb00ff">"1c4655ac-c828-11ef-a920-e8ff1ed71ca0"</font> -<font color="#ff0000">network0_mac</font><font color="#F3E651">=</font><font color="#bb00ff">"58:9c:fc:0d:13:3f"</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat rocky</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">loader</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"bhyveload"</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font> +<font color="#ffffff">memory</font><b><font color="#ee5896">=</font></b><font color="#ffffff">256M</font> +<font color="#ffffff">network0_type</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"virtio-net"</font> +<font color="#ffffff">network0_switch</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"public"</font> +<font color="#ffffff">disk0_type</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"virtio-blk"</font> +<font color="#ffffff">disk0_name</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"disk0.img"</font> +<font color="#ffffff">uuid</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"1c4655ac-c828-11ef-a920-e8ff1ed71ca0"</font> +<font color="#ffffff">network0_mac</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"58:9c:fc:0d:13:3f"</font> </pre> <br /> <span>The <span class='inlinecode'>uuid</span> and the <span class='inlinecode'>network0_mac</span> differ for each of the three VMs (the ones being installed on <span class='inlinecode'>f0</span>, <span class='inlinecode'>f1</span> and <span class='inlinecode'>f2</span>).</span><br /> @@ -2039,17 +2039,17 @@ network0_mac="58:9c:fc:0d:13:3f" by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm install rocky Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso</font> -<font color="#ff0000">Starting rocky</font> -<font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> found guest </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> /zroot/bhyve/rocky</font> -<font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> booting</font><font color="#F3E651">...</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm install rocky Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso</font> +<font color="#ffffff">Starting rocky</font> +<font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> found guest </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> /zroot/bhyve/rocky</font> +<font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> booting</font><b><font color="#ee5896">...</font></b> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> -<font color="#ff0000">rocky default uefi </font><font color="#bb00ff">4</font><font color="#ff0000"> 14G </font><font color="#bb00ff">0.0</font><font color="#F3E651">.</font><font color="#bb00ff">0.0</font><font color="#F3E651">:</font><font color="#bb00ff">5900</font><font color="#ff0000"> No Locked </font><font color="#F3E651">(</font><font color="#ff0000">f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">)</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<font color="#ffffff">rocky default uefi </font><font color="#ff00ff">4</font><font color="#ffffff"> 14G </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.0</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> No Locked </font><b><font color="#ee5896">(</font></b><font color="#ffffff">f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">)</font></b> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas sockstat -</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">5900</font> -<font color="#ff0000">root bhyve </font><font color="#bb00ff">6079</font><font color="#ff0000"> </font><font color="#bb00ff">8</font><font color="#ff0000"> tcp4 </font><font color="#F3E651">*:</font><font color="#bb00ff">5900</font><font color="#ff0000"> </font><font color="#F3E651">*:*</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sockstat -</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#ff00ff">5900</font> +<font color="#ffffff">root bhyve </font><font color="#ff00ff">6079</font><font color="#ffffff"> </font><font color="#ff00ff">8</font><font color="#ffffff"> tcp4 </font><b><font color="#ee5896">*:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> </font><b><font color="#ee5896">*:*</font></b> </pre> <br /> <span>Port 5900 now also opens for VNC connections, so I connected it with a VNC client and ran through the installation dialogues. This could be done unattended or more automated, but there are only three VMs to install, and the automation doesn't seem worth it as we do it only once a year or less often.</span><br /> @@ -2062,9 +2062,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm stop rocky</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas truncate -s 100G disk0</font><font color="#F3E651">.</font><font color="#ff0000">img</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm install rocky Rocky-</font><font color="#bb00ff">9.5</font><font color="#ff0000">-x86_64-minimal</font><font color="#F3E651">.</font><font color="#ff0000">iso</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm stop rocky</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas truncate -s 100G disk0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">img</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm install rocky Rocky-</font><font color="#ff00ff">9.5</font><font color="#ffffff">-x86_64-minimal</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso</font> </pre> <br /> <h3 style='display: inline' id='connect-to-vnc'>Connect to VNC</h3><br /> @@ -2093,9 +2093,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/rc</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">vm_list</font><font color="#F3E651">=</font><font color="#bb00ff">"rocky"</font> -<font color="#ff0000">vm_delay</font><font color="#F3E651">=</font><font color="#bb00ff">"5"</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/rc</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">vm_list</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"rocky"</font> +<font color="#ffffff">vm_delay</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"5"</font> </pre> <br /> <span>The <span class='inlinecode'>vm_delay</span> isn't really required. It is used to wait 5 seconds before starting each VM, but there is currently only one VM per host. Maybe later, when there are more, this will be useful. After adding, there's now a <span class='inlinecode'>Yes</span> indicator in the <span class='inlinecode'>AUTO</span> column.</span><br /> @@ -2104,9 +2104,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas vm list</font> -<font color="#ff0000">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> -<font color="#ff0000">rocky default uefi </font><font color="#bb00ff">4</font><font color="#ff0000"> 14G </font><font color="#bb00ff">0.0</font><font color="#F3E651">.</font><font color="#bb00ff">0.0</font><font color="#F3E651">:</font><font color="#bb00ff">5900</font><font color="#ff0000"> Yes </font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">]</font><font color="#ff0000"> Running </font><font color="#F3E651">(</font><font color="#bb00ff">2063</font><font color="#F3E651">)</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas vm list</font> +<font color="#ffffff">NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE</font> +<font color="#ffffff">rocky default uefi </font><font color="#ff00ff">4</font><font color="#ffffff"> 14G </font><font color="#ff00ff">0.0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.0</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">5900</font><font color="#ffffff"> Yes </font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> Running </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">2063</font><b><font color="#ee5896">)</font></b> </pre> <br /> <h3 style='display: inline' id='static-ip-configuration'>Static IP configuration</h3><br /> @@ -2125,11 +2125,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/bhyve/rocky </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">|</font><font color="#ff0000"> doas tee -a /etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#ff0000"> r0 r0</font><font color="#F3E651">.</font><font color="#ff0000">lan r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#ff0000"> r1 r1</font><font color="#F3E651">.</font><font color="#ff0000">lan r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#ff0000"> r2 r2</font><font color="#F3E651">.</font><font color="#ff0000">lan r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/bhyve/rocky </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> doas tee -a /etc/hosts</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><font color="#ffffff"> r0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><font color="#ffffff"> r1 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><font color="#ffffff"> r2 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>And we configure the IPs accordingly on the VMs themselves by opening a root shell via SSH to the VMs and entering the following commands on each of the VMs:</span><br /> @@ -2138,18 +2138,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">address </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#F3E651">/</font><font color="#bb00ff">24</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">gateway </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.1</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">DNS </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.1</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection modify enp0s5 ipv4</font><font color="#F3E651">.</font><font color="#ff0000">method manual</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection down enp0s5</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnmcli connection up enp0s5</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> hostnamectl set-hostname r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> cat </font><font color="#F3E651"><<</font><font color="#ff0000">END </font><font color="#F3E651">>></font><font color="#ff0000">/etc/hosts</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.120</font><font color="#ff0000"> r0 r0</font><font color="#F3E651">.</font><font color="#ff0000">lan r0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.121</font><font color="#ff0000"> r1 r1</font><font color="#F3E651">.</font><font color="#ff0000">lan r1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.122</font><font color="#ff0000"> r2 r2</font><font color="#F3E651">.</font><font color="#ff0000">lan r2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">address </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">24</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gateway </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.1</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">DNS </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.1</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection modify enp0s5 ipv4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">method manual</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection down enp0s5</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnmcli connection up enp0s5</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> hostnamectl set-hostname r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">END </font><b><font color="#ee5896">>></font></b><font color="#ffffff">/etc/hosts</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.120</font><font color="#ffffff"> r0 r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.121</font><font color="#ffffff"> r1 r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.122</font><font color="#ffffff"> r2 r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan r2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>Whereas:</span><br /> @@ -2170,7 +2170,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> ssh-copy-id root@r</font><font color="#ff0000">$i</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> ssh-copy-id root@r</font><font color="#ffffff">$i</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> </pre> <br /> <span>Then, we edit the <span class='inlinecode'>/etc/ssh/sshd_config</span> file again on all three VMs and configure <span class='inlinecode'>PasswordAuthentication no</span> to only allow SSH key authentication from now on.</span><br /> @@ -2181,8 +2181,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> dnf update</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> reboot</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> dnf update</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> reboot</font> </pre> <br /> <h2 style='display: inline' id='stress-testing-cpu'>Stress testing CPU</h2><br /> @@ -2193,28 +2193,28 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> main</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> main</font> -<b><font color="#ffffff">import</font></b><font color="#ff0000"> </font><font color="#bb00ff">"testing"</font> +<b><font color="#00ffff">import</font></b><font color="#ffffff"> </font><font color="#cd00ff">"testing"</font> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">BenchmarkCPUSilly1</font><font color="#F3E651">(</font><font color="#ff0000">b </font><font color="#F3E651">*</font><font color="#ff0000">testing</font><font color="#F3E651">.</font><font color="#ff0000">B</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> b</font><font color="#F3E651">.</font><font color="#ff0000">N</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> _ </font><font color="#F3E651">=</font><font color="#ff0000"> i </font><font color="#F3E651">*</font><font color="#ff0000"> i</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">BenchmarkCPUSilly1</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">b </font><b><font color="#ee5896">*</font></b><font color="#ffffff">testing</font><b><font color="#ee5896">.</font></b><font color="#ffffff">B</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">.</font></b><font color="#ffffff">N</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> _ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> i </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> i</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">BenchmarkCPUSilly2</font><font color="#F3E651">(</font><font color="#ff0000">b </font><font color="#F3E651">*</font><font color="#ff0000">testing</font><font color="#F3E651">.</font><font color="#ff0000">B</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">var</font></b><font color="#ff0000"> sillyResult </font><b><font color="#F35E1E">float64</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> b</font><font color="#F3E651">.</font><font color="#ff0000">N</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> sillyResult </font><font color="#F3E651">+=</font><font color="#ff0000"> </font><b><font color="#F35E1E">float64</font></b><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font> -<font color="#ff0000"> sillyResult </font><font color="#F3E651">*=</font><font color="#ff0000"> </font><b><font color="#F35E1E">float64</font></b><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font> -<font color="#ff0000"> divisor </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><b><font color="#F35E1E">float64</font></b><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#ff0000"> </font><font color="#bb00ff">1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> divisor </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> sillyResult </font><font color="#F3E651">/=</font><font color="#ff0000"> divisor</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> _ </font><font color="#F3E651">=</font><font color="#ff0000"> sillyResult </font><i><font color="#ababab">// to avoid compiler optimization</font></i> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">BenchmarkCPUSilly2</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">b </font><b><font color="#ee5896">*</font></b><font color="#ffffff">testing</font><b><font color="#ee5896">.</font></b><font color="#ffffff">B</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">var</font></b><font color="#ffffff"> sillyResult </font><font color="#ffff00">float64</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> b</font><b><font color="#ee5896">.</font></b><font color="#ffffff">N</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> sillyResult </font><b><font color="#ee5896">+=</font></b><font color="#ffffff"> </font><font color="#ffff00">float64</font><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> sillyResult </font><b><font color="#ee5896">*=</font></b><font color="#ffffff"> </font><font color="#ffff00">float64</font><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> divisor </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><font color="#ffff00">float64</font><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> divisor </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> sillyResult </font><b><font color="#ee5896">/=</font></b><font color="#ffffff"> divisor</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> _ </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> sillyResult </font><i><font color="#00ff00">// to avoid compiler optimization</font></i> +<b><font color="#ee5896">}</font></b> </pre> <br /> <span>You can find the repository here:</span><br /> @@ -2229,10 +2229,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install git go</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> mkdir </font><font color="#F3E651">~</font><font color="#ff0000">/git </font><font color="#F3E651">&&</font><font color="#ff0000"> cd </font><font color="#F3E651">~</font><font color="#ff0000">/git </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> cd sillybench</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install git go</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> mkdir </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/git </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> cd </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/git </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> cd sillybench</font> </pre> <br /> <span>And to run it:</span><br /> @@ -2241,18 +2241,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000">/git/sillybench </font><font color="#F3E651">%</font><font color="#ff0000"> go version</font> -<font color="#ff0000">go version go1</font><font color="#F3E651">.</font><font color="#bb00ff">24.1</font><font color="#ff0000"> freebsd/amd</font><font color="#bb00ff">64</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/git/sillybench </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> go version</font> +<font color="#ffffff">go version go1</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">24.1</font><font color="#ffffff"> freebsd/amd</font><font color="#ff00ff">64</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000">/git/sillybench </font><font color="#F3E651">%</font><font color="#ff0000"> go </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> -bench</font><font color="#F3E651">=.</font> -<font color="#ff0000">goos</font><font color="#F3E651">:</font><font color="#ff0000"> freebsd</font> -<font color="#ff0000">goarch</font><font color="#F3E651">:</font><font color="#ff0000"> amd64</font> -<font color="#ff0000">pkg</font><font color="#F3E651">:</font><font color="#ff0000"> codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench</font> -<font color="#ff0000">cpu</font><font color="#F3E651">:</font><font color="#ff0000"> Intel</font><font color="#F3E651">(</font><font color="#ff0000">R</font><font color="#F3E651">)</font><font color="#ff0000"> N100</font> -<font color="#ff0000">BenchmarkCPUSilly1-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4022</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">BenchmarkCPUSilly2-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4027</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">PASS</font> -<font color="#ff0000">ok codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">891s</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/git/sillybench </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> go </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> -bench</font><b><font color="#ee5896">=.</font></b> +<font color="#ffffff">goos</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> freebsd</font> +<font color="#ffffff">goarch</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> amd64</font> +<font color="#ffffff">pkg</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Intel</font><b><font color="#ee5896">(</font></b><font color="#ffffff">R</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> N100</font> +<font color="#ffffff">BenchmarkCPUSilly1-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4022</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">BenchmarkCPUSilly2-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4027</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">PASS</font> +<font color="#ffffff">ok codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">891s</font> </pre> <br /> <h3 style='display: inline' id='silly-rocky-linux-vm--bhyve-benchmark'>Silly Rocky Linux VM @ Bhyve benchmark</h3><br /> @@ -2263,10 +2263,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><i><font color="#ababab"># dnf install golang git</font></i> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 </font><font color="#F3E651">~]</font><i><font color="#ababab"># mkdir ~/git && cd ~/git && \</font></i> -<font color="#ff0000"> git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> cd sillybench</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><i><font color="#00ff00"># dnf install golang git</font></i> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 </font><b><font color="#ee5896">~]</font></b><i><font color="#00ff00"># mkdir ~/git && cd ~/git && \</font></i> +<font color="#ffffff"> git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> cd sillybench</font> </pre> <br /> <span>And to run it:</span><br /> @@ -2275,15 +2275,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">root@r0 sillybench</font><font color="#F3E651">]</font><i><font color="#ababab"># go version</font></i> -<font color="#ff0000">go version go1</font><font color="#F3E651">.</font><font color="#bb00ff">22.9</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">Red Hat </font><font color="#bb00ff">1.22</font><font color="#F3E651">.</font><font color="#bb00ff">9</font><font color="#ff0000">-</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">el9_5</font><font color="#F3E651">)</font><font color="#ff0000"> linux/amd</font><font color="#bb00ff">64</font> -<font color="#F3E651">[</font><font color="#ff0000">root@r0 sillybench</font><font color="#F3E651">]</font><i><font color="#ababab"># go test -bench=.</font></i> -<font color="#ff0000">goos</font><font color="#F3E651">:</font><font color="#ff0000"> linux</font> -<font color="#ff0000">goarch</font><font color="#F3E651">:</font><font color="#ff0000"> amd64</font> -<font color="#ff0000">pkg</font><font color="#F3E651">:</font><font color="#ff0000"> codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench</font> -<font color="#ff0000">cpu</font><font color="#F3E651">:</font><font color="#ff0000"> Intel</font><font color="#F3E651">(</font><font color="#ff0000">R</font><font color="#F3E651">)</font><font color="#ff0000"> N100</font> -<font color="#ff0000">BenchmarkCPUSilly1-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4347</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">BenchmarkCPUSilly2-</font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4345</font><font color="#ff0000"> ns/op</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 sillybench</font><b><font color="#ee5896">]</font></b><i><font color="#00ff00"># go version</font></i> +<font color="#ffffff">go version go1</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">22.9</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">Red Hat </font><font color="#ff00ff">1.22</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">9</font><font color="#ffffff">-</font><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">el9_5</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> linux/amd</font><font color="#ff00ff">64</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff">root@r0 sillybench</font><b><font color="#ee5896">]</font></b><i><font color="#00ff00"># go test -bench=.</font></i> +<font color="#ffffff">goos</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> linux</font> +<font color="#ffffff">goarch</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> amd64</font> +<font color="#ffffff">pkg</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Intel</font><b><font color="#ee5896">(</font></b><font color="#ffffff">R</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> N100</font> +<font color="#ffffff">BenchmarkCPUSilly1-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4347</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">BenchmarkCPUSilly2-</font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4345</font><font color="#ffffff"> ns/op</font> </pre> <br /> <span>The Linux benchmark is slightly slower than the FreeBSD one. The Go version is also a bit older. I tried the same with the up-to-date version of Go (1.24.x) with similar results. There could be a slight Bhyve overhead, or FreeBSD is just slightly more efficient in this benchmark. Overall, this shows that Bhyve performs excellently.</span><br /> @@ -2298,15 +2298,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@freebsd</font><font color="#F3E651">:~</font><font color="#ff0000">/git/sillybench </font><i><font color="#ababab"># go test -bench=.</font></i> -<font color="#ff0000">goos</font><font color="#F3E651">:</font><font color="#ff0000"> freebsd</font> -<font color="#ff0000">goarch</font><font color="#F3E651">:</font><font color="#ff0000"> amd64</font> -<font color="#ff0000">pkg</font><font color="#F3E651">:</font><font color="#ff0000"> codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench</font> -<font color="#ff0000">cpu</font><font color="#F3E651">:</font><font color="#ff0000"> Intel</font><font color="#F3E651">(</font><font color="#ff0000">R</font><font color="#F3E651">)</font><font color="#ff0000"> N100</font> -<font color="#ff0000">BenchmarkCPUSilly1 </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4273</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">BenchmarkCPUSilly2 </font><font color="#bb00ff">1000000000</font><font color="#ff0000"> </font><font color="#bb00ff">0.4286</font><font color="#ff0000"> ns/op</font> -<font color="#ff0000">PASS</font> -<font color="#ff0000">ok codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/sillybench </font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">949s</font> +<pre><font color="#ffffff">root@freebsd</font><b><font color="#ee5896">:~</font></b><font color="#ffffff">/git/sillybench </font><i><font color="#00ff00"># go test -bench=.</font></i> +<font color="#ffffff">goos</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> freebsd</font> +<font color="#ffffff">goarch</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> amd64</font> +<font color="#ffffff">pkg</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench</font> +<font color="#ffffff">cpu</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Intel</font><b><font color="#ee5896">(</font></b><font color="#ffffff">R</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> N100</font> +<font color="#ffffff">BenchmarkCPUSilly1 </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4273</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">BenchmarkCPUSilly2 </font><font color="#ff00ff">1000000000</font><font color="#ffffff"> </font><font color="#ff00ff">0.4286</font><font color="#ffffff"> ns/op</font> +<font color="#ffffff">PASS</font> +<font color="#ffffff">ok codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/sillybench </font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">949s</font> </pre> <br /> <span>It's a bit better than Linux! I am sure that this is not really a scientific benchmark, so take the results with a grain of salt!</span><br /> @@ -2323,16 +2323,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas ubench -s </font><font color="#bb00ff">1</font> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench Single CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">671010</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">40s</font><font color="#F3E651">)</font> -<font color="#ff0000">Ubench Single MEM</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1705237</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">48s</font><font color="#F3E651">)</font> -<font color="#ff0000">-----------------------------------</font> -<font color="#ff0000">Ubench Single AVG</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">1188123</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas ubench -s </font><font color="#ff00ff">1</font> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench Single CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">671010</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">40s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">Ubench Single MEM</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1705237</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">48s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">-----------------------------------</font> +<font color="#ffffff">Ubench Single AVG</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">1188123</font> </pre> <br /> @@ -2342,16 +2342,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas ubench</font> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2660220</font> -<font color="#ff0000">Ubench MEM</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">3095182</font> -<font color="#ff0000">--------------------</font> -<font color="#ff0000">Ubench AVG</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2877701</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas ubench</font> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2660220</font> +<font color="#ffffff">Ubench MEM</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">3095182</font> +<font color="#ffffff">--------------------</font> +<font color="#ffffff">Ubench AVG</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2877701</font> </pre> <br /> <h3 style='display: inline' id='freebsd-vm--bhyve-ubench-benchmark'>FreeBSD VM @ Bhyve <span class='inlinecode'>ubench</span> benchmark</h3><br /> @@ -2362,16 +2362,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@freebsd</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># ubench -s 1</font></i> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench Single CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">672792</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">40s</font><font color="#F3E651">)</font> -<font color="#ff0000">Ubench Single MEM</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">852757</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">48s</font><font color="#F3E651">)</font> -<font color="#ff0000">-----------------------------------</font> -<font color="#ff0000">Ubench Single AVG</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">762774</font> +<pre><font color="#ffffff">root@freebsd</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># ubench -s 1</font></i> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench Single CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">672792</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">40s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">Ubench Single MEM</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">852757</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">48s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">-----------------------------------</font> +<font color="#ffffff">Ubench Single AVG</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">762774</font> </pre> <br /> <span>Wow, the CPU in the VM was a tiny bit faster than on the host! So this was probably just a glitch in the matrix. Memory seems slower, though.</span><br /> @@ -2382,24 +2382,24 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@freebsd</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># ubench</font></i> -<font color="#ff0000">Unix Benchmark Utility v</font><font color="#F3E651">.</font><font color="#bb00ff">0.3</font> -<font color="#ff0000">Copyright </font><font color="#F3E651">(</font><font color="#ff0000">C</font><font color="#F3E651">)</font><font color="#ff0000"> July</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">1999</font><font color="#ff0000"> PhysTech</font><font color="#F3E651">,</font><font color="#ff0000"> Inc</font><font color="#F3E651">.</font> -<font color="#ff0000">Author</font><font color="#F3E651">:</font><font color="#ff0000"> Sergei Viznyuk </font><font color="#F3E651"><</font><font color="#ff0000">sv@phystech</font><font color="#F3E651">.</font><font color="#ff0000">com</font><font color="#F3E651">></font> -<font color="#ff0000">http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">phystech</font><font color="#F3E651">.</font><font color="#ff0000">com/download/ubench</font><font color="#F3E651">.</font><font color="#ff0000">html</font> -<font color="#ff0000">FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE-p</font><font color="#bb00ff">1</font><font color="#ff0000"> GENERIC amd64</font> -<font color="#ff0000">Ubench CPU</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2652857</font> -<font color="#ff0000">swap_pager</font><font color="#F3E651">:</font><font color="#ff0000"> out of swap space</font> -<font color="#ff0000">swp_pager_getswapspace</font><font color="#F3E651">(</font><font color="#bb00ff">27</font><font color="#F3E651">):</font><font color="#ff0000"> failed</font> -<font color="#ff0000">swap_pager</font><font color="#F3E651">:</font><font color="#ff0000"> out of swap space</font> -<font color="#ff0000">swp_pager_getswapspace</font><font color="#F3E651">(</font><font color="#bb00ff">18</font><font color="#F3E651">):</font><font color="#ff0000"> failed</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">862</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">swp_pager_getswapspace</font><font color="#F3E651">(</font><font color="#bb00ff">6</font><font color="#F3E651">):</font><font color="#ff0000"> failed</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">46</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">863</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">47</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">864</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">48</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">865</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">49</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">861</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> -<font color="#ff0000">Apr </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#F3E651">:</font><font color="#bb00ff">51</font><font color="#ff0000"> freebsd kernel</font><font color="#F3E651">:</font><font color="#ff0000"> pid </font><font color="#bb00ff">839</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">ubench</font><font color="#F3E651">),</font><font color="#ff0000"> jid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> uid </font><font color="#bb00ff">0</font><font color="#F3E651">,</font><font color="#ff0000"> was killed</font><font color="#F3E651">:</font><font color="#ff0000"> failed to reclaim memory</font> +<pre><font color="#ffffff">root@freebsd</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># ubench</font></i> +<font color="#ffffff">Unix Benchmark Utility v</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.3</font> +<font color="#ffffff">Copyright </font><b><font color="#ee5896">(</font></b><font color="#ffffff">C</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> July</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">1999</font><font color="#ffffff"> PhysTech</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> Inc</font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">Author</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sergei Viznyuk </font><b><font color="#ee5896"><</font></b><font color="#ffffff">sv@phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com</font><b><font color="#ee5896">></font></b> +<font color="#ffffff">http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">phystech</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com/download/ubench</font><b><font color="#ee5896">.</font></b><font color="#ffffff">html</font> +<font color="#ffffff">FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE-p</font><font color="#ff00ff">1</font><font color="#ffffff"> GENERIC amd64</font> +<font color="#ffffff">Ubench CPU</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2652857</font> +<font color="#ffffff">swap_pager</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> out of swap space</font> +<font color="#ffffff">swp_pager_getswapspace</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">27</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> failed</font> +<font color="#ffffff">swap_pager</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> out of swap space</font> +<font color="#ffffff">swp_pager_getswapspace</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">18</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> failed</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">862</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">swp_pager_getswapspace</font><b><font color="#ee5896">(</font></b><font color="#ff00ff">6</font><b><font color="#ee5896">):</font></b><font color="#ffffff"> failed</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">46</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">863</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">47</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">864</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">48</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">865</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">49</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">861</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> +<font color="#ffffff">Apr </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">51</font><font color="#ffffff"> freebsd kernel</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> pid </font><font color="#ff00ff">839</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">ubench</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> jid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> uid </font><font color="#ff00ff">0</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> was killed</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> failed to reclaim memory</font> </pre> <br /> <span>The multi-CPU benchmark in the Bhyve VM ran with almost identical results to the FreeBSD host system. However, the memory benchmark failed with out-of-swap space errors. I am unsure why, as the VM has 14GB RAM, but I am not investigating further.</span><br /> @@ -2533,8 +2533,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/gos</font><font color="#F3E651">.</font><font color="#ff0000">git</font> -<font color="#ff0000">cd gos</font> +<pre><font color="#ffffff">git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/gos</font><b><font color="#ee5896">.</font></b><font color="#ffffff">git</font> +<font color="#ffffff">cd gos</font> </pre> <br /> <span>Build the binaries:</span><br /> @@ -2543,10 +2543,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">go build -o gos </font><font color="#F3E651">.</font><font color="#ff0000">/cmd/gos</font> -<font color="#ff0000">go build -o gosc </font><font color="#F3E651">.</font><font color="#ff0000">/cmd/gosc</font> -<font color="#ff0000">sudo mv gos </font><font color="#F3E651">~</font><font color="#ff0000">/go/bin</font> -<font color="#ff0000">sudo mv gosc </font><font color="#F3E651">~</font><font color="#ff0000">/go/bin</font> +<pre><font color="#ffffff">go build -o gos </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/cmd/gos</font> +<font color="#ffffff">go build -o gosc </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/cmd/gosc</font> +<font color="#ffffff">sudo mv gos </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/go/bin</font> +<font color="#ffffff">sudo mv gosc </font><b><font color="#ee5896">~</font></b><font color="#ffffff">/go/bin</font> </pre> <br /> <span>Or, if you want to use the <span class='inlinecode'>Taskfile</span>:</span><br /> @@ -2555,7 +2555,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">go-task install</font> +<pre><font color="#ffffff">go-task install</font> </pre> <br /> <h2 style='display: inline' id='configuration'>Configuration</h2><br /> @@ -2568,13 +2568,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">MastodonURL</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">https://mastodon.example.com</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">MastodonAccessToken</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">your-mastodon-access-token</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">LinkedInClientID</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">your-linkedin-client-id</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">LinkedInSecret</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">your-linkedin-client-secret</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">LinkedInRedirectURL</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">http://localhost:8080/callback</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#F3E651">}</font> +<pre><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">MastodonURL</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">https://mastodon.example.com</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">MastodonAccessToken</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">your-mastodon-access-token</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">LinkedInClientID</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">your-linkedin-client-id</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">LinkedInSecret</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">your-linkedin-client-secret</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">LinkedInRedirectURL</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">http://localhost:8080/callback</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h3 style='display: inline' id='configuration-fields'>Configuration fields</h3><br /> @@ -2630,7 +2630,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">.</font><font color="#ff0000">/gos --dry</font> +<pre><b><font color="#ee5896">.</font></b><font color="#ffffff">/gos --dry</font> </pre> <br /> <span>*Normal run*</span><br /> @@ -2641,7 +2641,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">.</font><font color="#ff0000">/gos </font> +<pre><b><font color="#ee5896">.</font></b><font color="#ffffff">/gos </font> </pre> <br /> <span>:-)</span><br /> @@ -2806,7 +2806,7 @@ Hello World :-) by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gos --geminiSummaryFor </font><font color="#bb00ff">202410</font><font color="#F3E651">,</font><font color="#bb00ff">202411</font><font color="#F3E651">,</font><font color="#bb00ff">202412</font> +<pre><font color="#ffffff">gos --geminiSummaryFor </font><font color="#ff00ff">202410</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202411</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202412</font> </pre> <br /> <span>This outputs the summary for the three specified months, as shown in the example. The summary includes posts from all social media networks but removes duplicates.</span><br /> @@ -2818,7 +2818,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gos --gemtexterEnable --geminiSummaryFor </font><font color="#bb00ff">202410</font><font color="#F3E651">,</font><font color="#bb00ff">202411</font><font color="#F3E651">,</font><font color="#bb00ff">202412</font> +<pre><font color="#ffffff">gos --gemtexterEnable --geminiSummaryFor </font><font color="#ff00ff">202410</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202411</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202412</font> </pre> <br /> <a class='textlink' href='https://codeberg.org/snonux/gemtexter'>Gemtexter</a><br /> @@ -2829,7 +2829,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">gos --gemtexterEnable --geminiSummaryFor </font><font color="#bb00ff">202410</font><font color="#F3E651">,</font><font color="#bb00ff">202411</font><font color="#F3E651">,</font><font color="#bb00ff">202412</font><font color="#ff0000"> --geminiCapsules </font><font color="#bb00ff">"foo.zone,paul.buetow.org"</font> +<pre><font color="#ffffff">gos --gemtexterEnable --geminiSummaryFor </font><font color="#ff00ff">202410</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202411</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">202412</font><font color="#ffffff"> --geminiCapsules </font><font color="#cd00ff">"foo.zone,paul.buetow.org"</font> </pre> <br /> <span>It will then also generate Gemini Gemtext links in the summary page and flag them with <span class='inlinecode'>(Gemini)</span>.</span><br /> @@ -2924,25 +2924,25 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> main</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> main</font> -<b><font color="#ffffff">import</font></b><font color="#ff0000"> </font><font color="#bb00ff">"log"</font> +<b><font color="#00ffff">import</font></b><font color="#ffffff"> </font><font color="#cd00ff">"log"</font> -<b><font color="#ffffff">type</font></b><font color="#ff0000"> fun </font><b><font color="#ffffff">func</font></b><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#F35E1E">string</font></b> +<b><font color="#00ffff">type</font></b><font color="#ffffff"> fun </font><b><font color="#00ffff">func</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><font color="#ffff00">string</font> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">f fun</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#7bc710">Bar</font><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#F35E1E">string</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">"Bar"</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">f fun</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><font color="#ffff00">string</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#cd00ff">"Bar"</font> +<b><font color="#ee5896">}</font></b> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">var</font></b><font color="#ff0000"> f fun </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">func</font></b><font color="#F3E651">()</font><font color="#ff0000"> </font><b><font color="#F35E1E">string</font></b><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">"Foo"</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 1: "</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">f</font><font color="#F3E651">())</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 2: "</font><font color="#F3E651">,</font><font color="#ff0000"> f</font><font color="#F3E651">.</font><font color="#7bc710">Bar</font><font color="#F3E651">())</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 3: "</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">fun</font><font color="#F3E651">(</font><font color="#ff0000">f</font><font color="#F3E651">.</font><font color="#ff0000">Bar</font><font color="#F3E651">).</font><font color="#7bc710">Bar</font><font color="#F3E651">())</font> -<font color="#ff0000"> log</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#bb00ff">"Example 4: "</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#7bc710">fun</font><font color="#F3E651">(</font><font color="#7bc710">fun</font><font color="#F3E651">(</font><font color="#ff0000">f</font><font color="#F3E651">.</font><font color="#ff0000">Bar</font><font color="#F3E651">).</font><font color="#ff0000">Bar</font><font color="#F3E651">).</font><font color="#7bc710">Bar</font><font color="#F3E651">())</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">var</font></b><font color="#ffffff"> f fun </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">func</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><font color="#ffff00">string</font><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#cd00ff">"Foo"</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 1: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">f</font></b><b><font color="#ee5896">())</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 2: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> f</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">())</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 3: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fun</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">f</font><b><font color="#ee5896">.</font></b><font color="#ffffff">Bar</font><b><font color="#ee5896">).</font></b><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">())</font></b> +<font color="#ffffff"> log</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"Example 4: "</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ffffff">fun</font></b><b><font color="#ee5896">(</font></b><b><font color="#ffffff">fun</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">f</font><b><font color="#ee5896">.</font></b><font color="#ffffff">Bar</font><b><font color="#ee5896">).</font></b><font color="#ffffff">Bar</font><b><font color="#ee5896">).</font></b><b><font color="#ffffff">Bar</font></b><b><font color="#ee5896">())</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <span>It runs just fine:</span><br /> @@ -2951,11 +2951,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ go run main</font><font color="#F3E651">.</font><font color="#ff0000">go</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">1</font><font color="#F3E651">:</font><font color="#ff0000"> Foo</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">2</font><font color="#F3E651">:</font><font color="#ff0000"> Bar</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">3</font><font color="#F3E651">:</font><font color="#ff0000"> Bar</font> -<font color="#bb00ff">2025</font><font color="#F3E651">/</font><font color="#bb00ff">02</font><font color="#F3E651">/</font><font color="#bb00ff">07</font><font color="#ff0000"> </font><font color="#bb00ff">22</font><font color="#F3E651">:</font><font color="#bb00ff">56</font><font color="#F3E651">:</font><font color="#bb00ff">14</font><font color="#ff0000"> Example </font><font color="#bb00ff">4</font><font color="#F3E651">:</font><font color="#ff0000"> Bar</font> +<pre><font color="#ffffff">❯ go run main</font><b><font color="#ee5896">.</font></b><font color="#ffffff">go</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">1</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Foo</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">2</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Bar</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">3</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Bar</font> +<font color="#ff00ff">2025</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">02</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">07</font><font color="#ffffff"> </font><font color="#ff00ff">22</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">56</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">14</font><font color="#ffffff"> Example </font><font color="#ff00ff">4</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Bar</font> </pre> <br /> <h2 style='display: inline' id='macos'>macOS</h2><br /> @@ -2974,20 +2974,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ touch Maß</font> -<font color="#ff0000">❯ ls -l</font> -<font color="#ff0000">-rw-r--r--@ </font><font color="#bb00ff">1</font><font color="#ff0000"> paul wheel </font><font color="#bb00ff">0</font><font color="#ff0000"> Feb </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#ff0000"> Maß</font> -<font color="#ff0000">❯ touch Mass</font> -<font color="#ff0000">❯ ls -l</font> -<font color="#ff0000">-rw-r--r--@ </font><font color="#bb00ff">1</font><font color="#ff0000"> paul wheel </font><font color="#bb00ff">0</font><font color="#ff0000"> Feb </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#ff0000"> Maß</font> -<font color="#ff0000">❯ rm Mass</font> -<font color="#ff0000">❯ ls -l</font> +<pre><font color="#ffffff">❯ touch Maß</font> +<font color="#ffffff">❯ ls -l</font> +<font color="#ffffff">-rw-r--r--@ </font><font color="#ff00ff">1</font><font color="#ffffff"> paul wheel </font><font color="#ff00ff">0</font><font color="#ffffff"> Feb </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><font color="#ffffff"> Maß</font> +<font color="#ffffff">❯ touch Mass</font> +<font color="#ffffff">❯ ls -l</font> +<font color="#ffffff">-rw-r--r--@ </font><font color="#ff00ff">1</font><font color="#ffffff"> paul wheel </font><font color="#ff00ff">0</font><font color="#ffffff"> Feb </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><font color="#ffffff"> Maß</font> +<font color="#ffffff">❯ rm Mass</font> +<font color="#ffffff">❯ ls -l</font> -<font color="#ff0000">❯ touch Mass</font> -<font color="#ff0000">❯ ls -ltr</font> -<font color="#ff0000">-rw-r--r--@ </font><font color="#bb00ff">1</font><font color="#ff0000"> paul wheel </font><font color="#bb00ff">0</font><font color="#ff0000"> Feb </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#bb00ff">23</font><font color="#F3E651">:</font><font color="#bb00ff">02</font><font color="#ff0000"> Mass</font> -<font color="#ff0000">❯ rm Maß</font> -<font color="#ff0000">❯ ls -l</font> +<font color="#ffffff">❯ touch Mass</font> +<font color="#ffffff">❯ ls -ltr</font> +<font color="#ffffff">-rw-r--r--@ </font><font color="#ff00ff">1</font><font color="#ffffff"> paul wheel </font><font color="#ff00ff">0</font><font color="#ffffff"> Feb </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><font color="#ff00ff">23</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">02</font><font color="#ffffff"> Mass</font> +<font color="#ffffff">❯ rm Maß</font> +<font color="#ffffff">❯ ls -l</font> </pre> <br /> @@ -3031,16 +3031,16 @@ ADFS::4.$.Documents.Techwriter.Myfile by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">arr </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#bb00ff">10</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">20</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">30</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">40</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">50</font><font color="#F3E651">}</font> -<font color="#7bc710">print</font><font color="#F3E651">(</font><font color="#ff0000">arr</font><font color="#F3E651">[</font><font color="#bb00ff">1</font><font color="#F3E651">])</font><font color="#ff0000"> </font><i><font color="#ababab">-- Accessing the first element</font></i> +<pre><font color="#ffffff">arr </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ff00ff">10</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">20</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">30</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">40</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">50</font><b><font color="#ee5896">}</font></b> +<b><font color="#ffffff">print</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">arr</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">])</font></b><font color="#ffffff"> </font><i><font color="#00ff00">-- Accessing the first element</font></i> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ lua foo</font><font color="#F3E651">.</font><font color="#ff0000">lua</font> -<font color="#bb00ff">10</font> +<pre><font color="#ffffff">❯ lua foo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lua</font> +<font color="#ff00ff">10</font> </pre> <br /> <span>One-based indexing is more natural for human-readable, mathematical, and theoretical contexts, where counting traditionally starts from one.</span><br /> @@ -3055,45 +3055,45 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># (C) 2006 by Paul C. Buetow</font></i> +<pre><i><font color="#00ff00"># (C) 2006 by Paul C. Buetow</font></i> -<font color="#ff0000">Christmas</font><font color="#F3E651">:</font><font color="#F3E651">{</font><font color="#ff0000">time</font><font color="#F3E651">;</font><i><font color="#ababab">#!!!</font></i> +<font color="#ffffff">Christmas</font><b><font color="#ee5896">:</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff">time</font><b><font color="#ee5896">;</font></b><i><font color="#00ff00">#!!!</font></i> -<font color="#ff0000">Children</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">tell</font></b><font color="#ff0000"> </font><font color="#ff0000">$wishes</font><font color="#F3E651">;</font> +<font color="#ffffff">Children</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tell</font></b><font color="#ffffff"> </font><font color="#ffffff">$wishes</font><b><font color="#ee5896">;</font></b> -<font color="#ff0000">Santa</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@children</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font> -<font color="#ff0000">BEGIN </font><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$their</font><font color="#F3E651">,</font><font color="#ff0000"> wishes </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> study them</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> Memoize</font><i><font color="#ababab">#ing</font></i> +<font color="#ffffff">Santa</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffffff">@children</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font> +<font color="#ffffff">BEGIN </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$their</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> wishes </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> study them</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> Memoize</font><i><font color="#00ff00">#ing</font></i> -<font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> constant gift</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">'wrapping'</font><font color="#F3E651">;</font><font color="#ff0000"> </font> -<b><font color="#ffffff">package</font></b><font color="#ff0000"> Gifts</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">pack</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#F3E651">,</font><font color="#ff0000"> gift </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">bless</font></b><font color="#ff0000"> </font><font color="#ff0000">$each</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">goto</font></b><font color="#ff0000"> deliver</font> -<font color="#ff0000">or </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#ababab">import</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$available</font><font color="#F3E651">,!!!</font><font color="#ff0000"> HO</font><font color="#F3E651">,</font><font color="#ff0000"> HO</font><font color="#F3E651">,</font><font color="#ff0000"> HO</font><font color="#F3E651">;</font> +<b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> constant gift</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#cd00ff">'wrapping'</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">package</font></b><font color="#ffffff"> Gifts</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pack</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> gift </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">bless</font></b><font color="#ffffff"> </font><font color="#ffffff">$each</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">goto</font></b><font color="#ffffff"> deliver</font> +<font color="#ffffff">or </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><font color="#ffbb00">import</font><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$available</font><b><font color="#ee5896">,!!!</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> HO</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<font color="#ff0000">deliver</font><font color="#F3E651">:</font><font color="#ff0000"> gift </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">require</font></b><font color="#ff0000"> diagnostics </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#ff0000"> </font><font color="#F3E651">,</font><font color="#ff0000">not break</font><font color="#F3E651">;</font> -<b><font color="#ffffff">do</font></b><font color="#F3E651">{</font><font color="#ff0000"> </font><b><font color="#ffffff">use</font></b><font color="#ff0000"> NEXT</font><font color="#F3E651">;</font><font color="#ff0000"> time</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">tied</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">}</font><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> broken </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">dump</font></b><font color="#ff0000"> the</font><font color="#F3E651">,</font><font color="#ff0000"> broken</font><font color="#F3E651">,</font><font color="#ff0000"> ones</font><font color="#F3E651">;</font> -<font color="#ff0000">The_children</font><font color="#F3E651">:</font><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">wait</font></b><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#ffffff">each</font></b><font color="#ff0000"> </font><font color="#ff0000">%gift</font><font color="#F3E651">)</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> try </font><font color="#F3E651">{</font><font color="#ff0000"> to </font><font color="#F3E651">=></font><font color="#ff0000"> </font><b><font color="#ffffff">untie</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffffff">deliver</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> gift </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">require</font></b><font color="#ffffff"> diagnostics </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><font color="#ffffff"> </font><b><font color="#ee5896">,</font></b><font color="#ffffff">not break</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">do</font></b><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><b><font color="#00ffff">use</font></b><font color="#ffffff"> NEXT</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> time</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">tied</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> broken </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">dump</font></b><font color="#ffffff"> the</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> broken</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> ones</font><b><font color="#ee5896">;</font></b> +<font color="#ffffff">The_children</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">wait</font></b><font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><b><font color="#00ffff">each</font></b><font color="#ffffff"> </font><font color="#ffffff">%gift</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> try </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> to </font><b><font color="#ee5896">=></font></b><font color="#ffffff"> </font><b><font color="#00ffff">untie</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered</font><font color="#F3E651">;</font><font color="#ff0000"> </font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> -<font color="#ff0000">The_christmas_tree</font><font color="#F3E651">:</font><font color="#ff0000"> formline </font><b><font color="#ffffff">s</font></b><font color="#bb00ff">/ /childrens/</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">;</font> -<b><font color="#ffffff">alarm</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">warn</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> not </font><b><font color="#ffffff">exists</font></b><font color="#ff0000"> </font><font color="#ff0000">$Christmas</font><font color="#F3E651">{</font><font color="#ff0000"> tree</font><font color="#F3E651">}</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">@t</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$ENV</font><font color="#F3E651">{</font><font color="#ff0000">HOME</font><font color="#F3E651">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font> -<b><font color="#ffffff">write</font></b><font color="#ff0000"> </font><font color="#F3E651"><<</font><font color="#ff0000">EMail</font> -<font color="#ff0000"> to the parents to buy a new christmas tree</font><font color="#F3E651">!!!!</font><font color="#bb00ff">111</font> -<font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> send the</font> -<font color="#ff0000">EMail</font> -<font color="#F3E651">;</font><b><font color="#ffffff">wait</font></b><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">redo</font></b><font color="#ff0000"> deliver until </font><b><font color="#ffffff">defined</font></b><font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">$tree</font><font color="#F3E651">;</font> +<font color="#ffffff">The_christmas_tree</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> formline </font><b><font color="#00ffff">s</font></b><font color="#cd00ff">/ /childrens/</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">alarm</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">warn</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> not </font><b><font color="#00ffff">exists</font></b><font color="#ffffff"> </font><font color="#ffffff">$Christmas</font><b><font color="#ee5896">{</font></b><font color="#ffffff"> tree</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">@t</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">$ENV</font><b><font color="#ee5896">{</font></b><font color="#ffffff">HOME</font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font> +<b><font color="#00ffff">write</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">EMail</font> +<font color="#ffffff"> to the parents to buy a new christmas tree</font><b><font color="#ee5896">!!!!</font></b><font color="#ff00ff">111</font> +<font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> send the</font> +<font color="#ffffff">EMail</font> +<b><font color="#ee5896">;</font></b><b><font color="#00ffff">wait</font></b><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">redo</font></b><font color="#ffffff"> deliver until </font><b><font color="#00ffff">defined</font></b><font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">$tree</font><b><font color="#ee5896">;</font></b> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa</font><font color="#F3E651">,</font><font color="#ff0000"> </font><b><font color="#ffffff">pipe</font></b><font color="#ff0000"> </font><font color="#ff0000">$gifts</font><font color="#F3E651">,</font><font color="#ff0000"> to_childs</font><font color="#F3E651">;</font> -<b><font color="#ffffff">redo</font></b><font color="#ff0000"> Santa </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">last</font></b><font color="#ff0000"> one</font><font color="#F3E651">,</font><font color="#ff0000"> is</font><font color="#F3E651">,</font><font color="#ff0000"> delivered </font><font color="#F3E651">;</font><font color="#F3E651">}</font> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#00ffff">pipe</font></b><font color="#ffffff"> </font><font color="#ffffff">$gifts</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> to_childs</font><b><font color="#ee5896">;</font></b> +<b><font color="#00ffff">redo</font></b><font color="#ffffff"> Santa </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">last</font></b><font color="#ffffff"> one</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> is</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> delivered </font><b><font color="#ee5896">;</font></b><b><font color="#ee5896">}</font></b> -<font color="#ff0000">END </font><font color="#F3E651">{}</font><font color="#ff0000"> </font><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">$mission</font><font color="#ff0000"> </font><b><font color="#ffffff">and</font></b><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><b><font color="#ffffff">sleep</font></b><font color="#ff0000"> until </font><b><font color="#ffffff">next</font></b><font color="#ff0000"> Christmas </font><font color="#F3E651">;</font><font color="#F3E651">}</font> +<font color="#ffffff">END </font><b><font color="#ee5896">{}</font></b><font color="#ffffff"> </font><b><font color="#00ffff">our</font></b><font color="#ffffff"> </font><font color="#ffffff">$mission</font><font color="#ffffff"> </font><b><font color="#00ffff">and</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#00ffff">sleep</font></b><font color="#ffffff"> until </font><b><font color="#00ffff">next</font></b><font color="#ffffff"> Christmas </font><b><font color="#ee5896">;</font></b><b><font color="#ee5896">}</font></b> -<font color="#ff0000">__END__</font> +<font color="#ffffff">__END__</font> -<font color="#ff0000">This is perl</font><font color="#F3E651">,</font><font color="#ff0000"> v5</font><font color="#F3E651">.</font><font color="#bb00ff">8.8</font><font color="#ff0000"> built </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> i386</font><font color="#F3E651">-</font><font color="#ff0000">freebsd</font><font color="#F3E651">-</font><font color="#ff0000">64int</font> +<font color="#ffffff">This is perl</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> v5</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">8.8</font><font color="#ffffff"> built </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> i386</font><b><font color="#ee5896">-</font></b><font color="#ffffff">freebsd</font><b><font color="#ee5896">-</font></b><font color="#ffffff">64int</font> </pre> <br /> <a class='textlink' href='./2008-06-26-perl-poetry.html'>More Perl Poetry of mine</a><br /> @@ -3190,11 +3190,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update fetch</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update -r </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE upgrade</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas shutdown -r now</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update fetch</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update -r </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE upgrade</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas shutdown -r now</font> </pre> <br /> <span>And after rebooting, I ran:</span><br /> @@ -3203,10 +3203,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas freebsd-update install</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg update</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg upgrade</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas shutdown -r now</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas freebsd-update install</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg update</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg upgrade</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas shutdown -r now</font> </pre> <br /> <span>And after another reboot, I was on 14.2:</span><br /> @@ -3215,9 +3215,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> uname -a</font> -<font color="#ff0000">FreeBSD f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE FreeBSD </font><font color="#bb00ff">14.2</font><font color="#ff0000">-RELEASE </font> -<font color="#ff0000"> releng</font><font color="#F3E651">/</font><font color="#bb00ff">14.2</font><font color="#ff0000">-n</font><font color="#bb00ff">269506</font><font color="#ff0000">-c8918d6c7412 GENERIC amd64</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> uname -a</font> +<font color="#ffffff">FreeBSD f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE FreeBSD </font><font color="#ff00ff">14.2</font><font color="#ffffff">-RELEASE </font> +<font color="#ffffff"> releng</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">14.2</font><font color="#ffffff">-n</font><font color="#ff00ff">269506</font><font color="#ffffff">-c8918d6c7412 GENERIC amd64</font> </pre> <br /> <span>And, of course, I ran this on all 3 nodes!</span><br /> @@ -3263,8 +3263,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas dmesg </font><font color="#F3E651">|</font><font color="#ff0000"> grep UPS</font> -<font color="#ff0000">ugen0</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651"><</font><font color="#ff0000">American Power Conversion Back-UPS BX750MI</font><font color="#F3E651">></font><font color="#ff0000"> at usbus0</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas dmesg </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep UPS</font> +<font color="#ffffff">ugen0</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><</font></b><font color="#ffffff">American Power Conversion Back-UPS BX750MI</font><b><font color="#ee5896">></font></b><font color="#ffffff"> at usbus0</font> </pre> <br /> <h3 style='display: inline' id='apcupsd-installation'><span class='inlinecode'>apcupsd</span> Installation</h3><br /> @@ -3275,7 +3275,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas install apcupsd</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896">~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas install apcupsd</font> </pre> <br /> <span>I have made the following modifications to the configuration file so that the UPS can be used via the USB interface:</span><br /> @@ -3284,29 +3284,29 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> diff -u apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">--- apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample </font><font color="#bb00ff">2024</font><font color="#ff0000">-</font><font color="#bb00ff">11</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000"> </font><font color="#bb00ff">16</font><font color="#F3E651">:</font><font color="#bb00ff">40</font><font color="#F3E651">:</font><font color="#bb00ff">42.000000000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#F3E651">+++</font><font color="#ff0000"> apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf </font><font color="#bb00ff">2024</font><font color="#ff0000">-</font><font color="#bb00ff">12</font><font color="#ff0000">-</font><font color="#bb00ff">03</font><font color="#ff0000"> </font><font color="#bb00ff">10</font><font color="#F3E651">:</font><font color="#bb00ff">58</font><font color="#F3E651">:</font><font color="#bb00ff">24.009501000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">@@ -</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-0095C, 940-0625A, M-04-02-2000</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSCABLE smart</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSCABLE usb</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> diff -u apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">--- apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample </font><font color="#ff00ff">2024</font><font color="#ffffff">-</font><font color="#ff00ff">11</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff"> </font><font color="#ff00ff">16</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">40</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">42.000000000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<b><font color="#ee5896">+++</font></b><font color="#ffffff"> apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf </font><font color="#ff00ff">2024</font><font color="#ffffff">-</font><font color="#ff00ff">12</font><font color="#ffffff">-</font><font color="#ff00ff">03</font><font color="#ffffff"> </font><font color="#ff00ff">10</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">58</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">24.009501000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">@@ -</font><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-0095C, 940-0625A, M-04-02-2000</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSCABLE smart</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSCABLE usb</font> -<font color="#ff0000"> </font><i><font color="#ababab"># To get apcupsd to work, in addition to defining the cable</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># above, you must also define a UPSTYPE, which corresponds to</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">88</font><font color="#F3E651">,</font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">88</font><font color="#F3E651">,</font><font color="#bb00ff">10</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># that apcupsd binds to that particular unit</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (helpful if you have more than one USB UPS).</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSTYPE apcsmart</font> -<font color="#ff0000">-DEVICE /dev/usv</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSTYPE usb</font> -<font color="#F3E651">+</font><font color="#ff0000">DEVICE</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># To get apcupsd to work, in addition to defining the cable</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># above, you must also define a UPSTYPE, which corresponds to</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">88</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">8</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">88</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">10</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># that apcupsd binds to that particular unit</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (helpful if you have more than one USB UPS).</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSTYPE apcsmart</font> +<font color="#ffffff">-DEVICE /dev/usv</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSTYPE usb</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">DEVICE</font> -<font color="#ff0000"> </font><i><font color="#ababab"># POLLTIME <int></font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># POLLTIME <int></font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> </pre> <br /> <span>I left the remaining settings as the default ones; for example, the following are of main interest:</span><br /> @@ -3329,10 +3329,10 @@ MINUTES 3 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">apcupsd_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">apcupsd_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas service apcupsd start</font> -<font color="#ff0000">Starting apcupsd</font><font color="#F3E651">.</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas service apcupsd start</font> +<font color="#ffffff">Starting apcupsd</font><b><font color="#ee5896">.</font></b> </pre> <br /> <h3 style='display: inline' id='ups-connectivity-test'>UPS Connectivity Test</h3><br /> @@ -3343,43 +3343,43 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> apcaccess</font> -<font color="#ff0000">APC </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">001</font><font color="#F3E651">,</font><font color="#bb00ff">035</font><font color="#F3E651">,</font><font color="#bb00ff">0857</font> -<font color="#ff0000">DATE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#F3E651">:</font><font color="#bb00ff">27</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">HOSTNAME </font><font color="#F3E651">:</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">VERSION </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">3.14</font><font color="#F3E651">.</font><font color="#bb00ff">14</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">31</font><font color="#ff0000"> May </font><font color="#bb00ff">2016</font><font color="#F3E651">)</font><font color="#ff0000"> freebsd</font> -<font color="#ff0000">UPSNAME </font><font color="#F3E651">:</font><font color="#ff0000"> f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">CABLE </font><font color="#F3E651">:</font><font color="#ff0000"> USB Cable</font> -<font color="#ff0000">DRIVER </font><font color="#F3E651">:</font><font color="#ff0000"> USB UPS Driver</font> -<font color="#ff0000">UPSMODE </font><font color="#F3E651">:</font><font color="#ff0000"> Stand Alone</font> -<font color="#ff0000">STARTTIME</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#F3E651">:</font><font color="#bb00ff">25</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">MODEL </font><font color="#F3E651">:</font><font color="#ff0000"> Back-UPS BX750MI</font> -<font color="#ff0000">STATUS </font><font color="#F3E651">:</font><font color="#ff0000"> ONLINE</font> -<font color="#ff0000">LINEV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">230.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">LOADPCT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">4.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">BCHARGE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">100.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">TIMELEFT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">65.3</font><font color="#ff0000"> Minutes</font> -<font color="#ff0000">MBATTCHG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">MINTIMEL </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#ff0000"> Minutes</font> -<font color="#ff0000">MAXTIME </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> Seconds</font> -<font color="#ff0000">SENSE </font><font color="#F3E651">:</font><font color="#ff0000"> Medium</font> -<font color="#ff0000">LOTRANS </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">145.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">HITRANS </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">295.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">ALARMDEL </font><font color="#F3E651">:</font><font color="#ff0000"> No alarm</font> -<font color="#ff0000">BATTV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">13.6</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">LASTXFER </font><font color="#F3E651">:</font><font color="#ff0000"> Automatic or explicit self </font><b><font color="#ffffff">test</font></b> -<font color="#ff0000">NUMXFERS </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">TONBATT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> Seconds</font> -<font color="#ff0000">CUMONBATT</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> Seconds</font> -<font color="#ff0000">XOFFBATT </font><font color="#F3E651">:</font><font color="#ff0000"> N/A</font> -<font color="#ff0000">SELFTEST </font><font color="#F3E651">:</font><font color="#ff0000"> NG</font> -<font color="#ff0000">STATFLAG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0x05000008</font> -<font color="#ff0000">SERIALNO </font><font color="#F3E651">:</font><font color="#ff0000"> 9B2414A03599</font> -<font color="#ff0000">BATTDATE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2001</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">01</font> -<font color="#ff0000">NOMINV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">230</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">NOMBATTV </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">12.0</font><font color="#ff0000"> Volts</font> -<font color="#ff0000">NOMPOWER </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">410</font><font color="#ff0000"> Watts</font> -<font color="#ff0000">END APC </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">14</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#F3E651">:</font><font color="#bb00ff">06</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> apcaccess</font> +<font color="#ffffff">APC </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">001</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">035</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">0857</font> +<font color="#ffffff">DATE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">14</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">27</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">HOSTNAME </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">VERSION </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">3.14</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">14</font><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">31</font><font color="#ffffff"> May </font><font color="#ff00ff">2016</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> freebsd</font> +<font color="#ffffff">UPSNAME </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">CABLE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> USB Cable</font> +<font color="#ffffff">DRIVER </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> USB UPS Driver</font> +<font color="#ffffff">UPSMODE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Stand Alone</font> +<font color="#ffffff">STARTTIME</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">14</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">25</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">MODEL </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Back-UPS BX750MI</font> +<font color="#ffffff">STATUS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> ONLINE</font> +<font color="#ffffff">LINEV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">230.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">LOADPCT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">4.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">BCHARGE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">100.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">TIMELEFT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">65.3</font><font color="#ffffff"> Minutes</font> +<font color="#ffffff">MBATTCHG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">MINTIMEL </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><font color="#ffffff"> Minutes</font> +<font color="#ffffff">MAXTIME </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> Seconds</font> +<font color="#ffffff">SENSE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Medium</font> +<font color="#ffffff">LOTRANS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">145.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">HITRANS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">295.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">ALARMDEL </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> No alarm</font> +<font color="#ffffff">BATTV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">13.6</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">LASTXFER </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Automatic or explicit self </font><b><font color="#00ffff">test</font></b> +<font color="#ffffff">NUMXFERS </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">TONBATT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> Seconds</font> +<font color="#ffffff">CUMONBATT</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> Seconds</font> +<font color="#ffffff">XOFFBATT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> N/A</font> +<font color="#ffffff">SELFTEST </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> NG</font> +<font color="#ffffff">STATFLAG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0x05000008</font> +<font color="#ffffff">SERIALNO </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> 9B2414A03599</font> +<font color="#ffffff">BATTDATE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2001</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">01</font> +<font color="#ffffff">NOMINV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">230</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">NOMBATTV </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">12.0</font><font color="#ffffff"> Volts</font> +<font color="#ffffff">NOMPOWER </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">410</font><font color="#ffffff"> Watts</font> +<font color="#ffffff">END APC </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">14</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">06</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> </pre> <br /> <h2 style='display: inline' id='apc-info-on-partner-nodes'>APC Info on Partner Nodes:</h2><br /> @@ -3398,10 +3398,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f1</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> apcaccess -h f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org </font><font color="#F3E651">|</font><font color="#ff0000"> grep Percent</font> -<font color="#ff0000">LOADPCT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">12.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">BCHARGE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">94.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">MBATTCHG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> Percent</font> +<pre><font color="#ffffff">paul@f1</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> apcaccess -h f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep Percent</font> +<font color="#ffffff">LOADPCT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">12.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">BCHARGE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">94.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">MBATTCHG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> Percent</font> </pre> <br /> <span>But I want the daemon to be configured and enabled in such a way that it connects to the master UPS node (the one with the UPS connected via USB) so that it can also initiate a system shutdown when the UPS battery reaches low levels. For that, <span class='inlinecode'>apcupsd</span> itself needs to be aware of the UPS status.</span><br /> @@ -3412,52 +3412,52 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f2</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> diff -u apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font> -<font color="#ff0000">--- apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf</font><font color="#F3E651">.</font><font color="#ff0000">sample </font><font color="#bb00ff">2024</font><font color="#ff0000">-</font><font color="#bb00ff">11</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000"> </font><font color="#bb00ff">16</font><font color="#F3E651">:</font><font color="#bb00ff">40</font><font color="#F3E651">:</font><font color="#bb00ff">42.000000000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#F3E651">+++</font><font color="#ff0000"> apcupsd</font><font color="#F3E651">.</font><font color="#ff0000">conf </font><font color="#bb00ff">2025</font><font color="#ff0000">-</font><font color="#bb00ff">01</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000"> </font><font color="#bb00ff">15</font><font color="#F3E651">:</font><font color="#bb00ff">52</font><font color="#F3E651">:</font><font color="#bb00ff">45.108469000</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">0200</font> -<font color="#ff0000">@@ -</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">31</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># 940-0095C, 940-0625A, M-04-02-2000</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSCABLE smart</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSCABLE ether</font> - -<font color="#ff0000"> </font><i><font color="#ababab"># To get apcupsd to work, in addition to defining the cable</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># above, you must also define a UPSTYPE, which corresponds to</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">52</font><font color="#F3E651">,</font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">52</font><font color="#F3E651">,</font><font color="#bb00ff">6</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># Network Information Server. This is used if the</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># UPS powering your computer is connected to a</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># different computer for monitoring.</font></i> -<font color="#ff0000">-</font><i><font color="#ababab">#</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># snmp hostname:port:vendor:community</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># SNMP network link to an SNMP-enabled UPS device.</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Hostname is the ip address or hostname of the UPS</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">88</font><font color="#F3E651">,</font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">87</font><font color="#F3E651">,</font><font color="#bb00ff">8</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># that apcupsd binds to that particular unit</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (helpful if you have more than one USB UPS).</font></i> -<font color="#ff0000"> </font><i><font color="#ababab">#</font></i> -<font color="#ff0000">-UPSTYPE apcsmart</font> -<font color="#ff0000">-DEVICE /dev/usv</font> -<font color="#F3E651">+</font><font color="#ff0000">UPSTYPE net</font> -<font color="#F3E651">+</font><font color="#ff0000">DEVICE f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:</font><font color="#bb00ff">3551</font> - -<font color="#ff0000"> </font><i><font color="#ababab"># POLLTIME <int></font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> -<font color="#ff0000">@@ -</font><font color="#bb00ff">147</font><font color="#F3E651">,</font><font color="#bb00ff">12</font><font color="#ff0000"> </font><font color="#F3E651">+</font><font color="#bb00ff">146</font><font color="#F3E651">,</font><font color="#bb00ff">12</font><font color="#ff0000"> @@</font> -<font color="#ff0000"> </font><i><font color="#ababab"># If during a power failure, the remaining battery percentage</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (as reported by the UPS) is below or equal to BATTERYLEVEL,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># apcupsd will initiate a system shutdown.</font></i> -<font color="#ff0000">-BATTERYLEVEL </font><font color="#bb00ff">5</font> -<font color="#F3E651">+</font><font color="#ff0000">BATTERYLEVEL </font><font color="#bb00ff">10</font> - -<font color="#ff0000"> </font><i><font color="#ababab"># If during a power failure, the remaining runtime in minutes</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># (as calculated internally by the UPS) is below or equal to MINUTES,</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># apcupsd, will initiate a system shutdown.</font></i> -<font color="#ff0000">-MINUTES </font><font color="#bb00ff">3</font> -<font color="#F3E651">+</font><font color="#ff0000">MINUTES </font><font color="#bb00ff">6</font> - -<font color="#ff0000"> </font><i><font color="#ababab"># If during a power failure, the UPS has run on batteries for TIMEOUT</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># many seconds or longer, apcupsd will initiate a system shutdown.</font></i> +<pre><font color="#ffffff">paul@f2</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> diff -u apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font> +<font color="#ffffff">--- apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sample </font><font color="#ff00ff">2024</font><font color="#ffffff">-</font><font color="#ff00ff">11</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff"> </font><font color="#ff00ff">16</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">40</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">42.000000000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<b><font color="#ee5896">+++</font></b><font color="#ffffff"> apcupsd</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf </font><font color="#ff00ff">2025</font><font color="#ffffff">-</font><font color="#ff00ff">01</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff"> </font><font color="#ff00ff">15</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">52</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">45.108469000</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">0200</font> +<font color="#ffffff">@@ -</font><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">31</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-1524C, 940-0024G, 940-0095A, 940-0095B,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># 940-0095C, 940-0625A, M-04-02-2000</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSCABLE smart</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSCABLE ether</font> + +<font color="#ffffff"> </font><i><font color="#00ff00"># To get apcupsd to work, in addition to defining the cable</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># above, you must also define a UPSTYPE, which corresponds to</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">52</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">52</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">6</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># Network Information Server. This is used if the</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># UPS powering your computer is connected to a</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># different computer for monitoring.</font></i> +<font color="#ffffff">-</font><i><font color="#00ff00">#</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># snmp hostname:port:vendor:community</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># SNMP network link to an SNMP-enabled UPS device.</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Hostname is the ip address or hostname of the UPS</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">88</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">8</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">87</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">8</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># that apcupsd binds to that particular unit</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (helpful if you have more than one USB UPS).</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00">#</font></i> +<font color="#ffffff">-UPSTYPE apcsmart</font> +<font color="#ffffff">-DEVICE /dev/usv</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">UPSTYPE net</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">DEVICE f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">3551</font> + +<font color="#ffffff"> </font><i><font color="#00ff00"># POLLTIME <int></font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Interval (in seconds) at which apcupsd polls the UPS for status. This</font></i> +<font color="#ffffff">@@ -</font><font color="#ff00ff">147</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">12</font><font color="#ffffff"> </font><b><font color="#ee5896">+</font></b><font color="#ff00ff">146</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">12</font><font color="#ffffff"> @@</font> +<font color="#ffffff"> </font><i><font color="#00ff00"># If during a power failure, the remaining battery percentage</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (as reported by the UPS) is below or equal to BATTERYLEVEL,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># apcupsd will initiate a system shutdown.</font></i> +<font color="#ffffff">-BATTERYLEVEL </font><font color="#ff00ff">5</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">BATTERYLEVEL </font><font color="#ff00ff">10</font> + +<font color="#ffffff"> </font><i><font color="#00ff00"># If during a power failure, the remaining runtime in minutes</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># (as calculated internally by the UPS) is below or equal to MINUTES,</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># apcupsd, will initiate a system shutdown.</font></i> +<font color="#ffffff">-MINUTES </font><font color="#ff00ff">3</font> +<b><font color="#ee5896">+</font></b><font color="#ffffff">MINUTES </font><font color="#ff00ff">6</font> + +<font color="#ffffff"> </font><i><font color="#00ff00"># If during a power failure, the UPS has run on batteries for TIMEOUT</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># many seconds or longer, apcupsd will initiate a system shutdown.</font></i> </pre> <span>So I also ran the following commands on <span class='inlinecode'>f1</span> and <span class='inlinecode'>f2</span>:</span><br /> @@ -3466,10 +3466,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f1</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas sysrc </font><font color="#ff0000">apcupsd_enable</font><font color="#F3E651">=</font><font color="#ff0000">YES</font> -<font color="#ff0000">apcupsd_enable</font><font color="#F3E651">:</font><font color="#ff0000"> -</font><font color="#F3E651">></font><font color="#ff0000"> YES</font> -<font color="#ff0000">paul@f1</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> doas service apcupsd start</font> -<font color="#ff0000">Starting apcupsd</font><font color="#F3E651">.</font> +<pre><font color="#ffffff">paul@f1</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas sysrc </font><font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">=</font></b><font color="#ffffff">YES</font> +<font color="#ffffff">apcupsd_enable</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -</font><b><font color="#ee5896">></font></b><font color="#ffffff"> YES</font> +<font color="#ffffff">paul@f1</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas service apcupsd start</font> +<font color="#ffffff">Starting apcupsd</font><b><font color="#ee5896">.</font></b> </pre> <br /> <span>And then I was able to connect to localhost via the <span class='inlinecode'>apcaccess</span> command:</span><br /> @@ -3478,10 +3478,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f1</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas apcaccess </font><font color="#F3E651">|</font><font color="#ff0000"> grep Percent</font> -<font color="#ff0000">LOADPCT </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">BCHARGE </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">95.0</font><font color="#ff0000"> Percent</font> -<font color="#ff0000">MBATTCHG </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> Percent</font> +<pre><font color="#ffffff">paul@f1</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas apcaccess </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep Percent</font> +<font color="#ffffff">LOADPCT </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">BCHARGE </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">95.0</font><font color="#ffffff"> Percent</font> +<font color="#ffffff">MBATTCHG </font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> Percent</font> </pre> <br /> <h2 style='display: inline' id='power-outage-simulation'>Power outage simulation</h2><br /> @@ -3503,8 +3503,8 @@ Power failure. Running on UPS batteries. by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:</font><font color="#ff0000">/usr/local/etc/apcupsd </font><font color="#F3E651">%</font><font color="#ff0000"> apcaccess -p TIMELEFT</font> -<font color="#bb00ff">63.9</font><font color="#ff0000"> Minutes</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">/usr/local/etc/apcupsd </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> apcaccess -p TIMELEFT</font> +<font color="#ff00ff">63.9</font><font color="#ffffff"> Minutes</font> </pre> <br /> <span>And after around one hour (<span class='inlinecode'>f1</span> and <span class='inlinecode'>f2</span> a bit earlier, <span class='inlinecode'>f0</span> a bit later due to the different <span class='inlinecode'>BATTERYLEVEL</span> and <span class='inlinecode'>MINUTES</span> settings outlined earlier), the following broadcast was sent out:</span><br /> @@ -4272,9 +4272,9 @@ Jan 26 17:36:32 f2 apcupsd[2159]: apcupsd shutdown succeeded by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]~</font><font color="#ff0000">/Downloads</font><font color="#F3E651">%</font><font color="#ff0000"> sudo dd </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#F3E651">=</font><font color="#ff0000">FreeBSD-</font><font color="#bb00ff">14.1</font><font color="#ff0000">-RELEASE-amd</font><font color="#bb00ff">64</font><font color="#ff0000">-bootonly</font><font color="#F3E651">.</font><font color="#ff0000">iso </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#ff0000">of</font><font color="#F3E651">=</font><font color="#ff0000">/dev/sda </font><font color="#ff0000">conv</font><font color="#F3E651">=</font><font color="#ff0000">sync</font> +<pre><b><font color="#ee5896">[</font></b><font color="#ffffff">paul@earth</font><b><font color="#ee5896">]~</font></b><font color="#ffffff">/Downloads</font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sudo dd </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><b><font color="#ee5896">=</font></b><font color="#ffffff">FreeBSD-</font><font color="#ff00ff">14.1</font><font color="#ffffff">-RELEASE-amd</font><font color="#ff00ff">64</font><font color="#ffffff">-bootonly</font><b><font color="#ee5896">.</font></b><font color="#ffffff">iso </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#ffffff">of</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/dev/sda </font><font color="#ffffff">conv</font><b><font color="#ee5896">=</font></b><font color="#ffffff">sync</font> </pre> <br /> <span>Next, I plugged the Beelinks (one after another) into my monitor via HDMI (the resolution of the FreeBSD text console seems strangely stretched, as I am using the LG Dual Up monitor), connected Ethernet, an external USB keyboard, and the FreeBSD USB stick, and booted the devices up. With F7, I entered the boot menu and selected the USB stick for the FreeBSD installation.</span><br /> @@ -4300,9 +4300,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># freebsd-update fetch</font></i> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># freebsd-update install</font></i> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># freebsd-update reboot</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># freebsd-update fetch</font></i> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># freebsd-update install</font></i> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># freebsd-update reboot</font></i> </pre> <br /> <span>I also added the following entries for the three FreeBSD boxes to the <span class='inlinecode'>/etc/hosts</span> file:</span><br /> @@ -4311,11 +4311,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cat <<END >>/etc/hosts</font></i> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.130</font><font color="#ff0000"> f0 f0</font><font color="#F3E651">.</font><font color="#ff0000">lan f0</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.131</font><font color="#ff0000"> f1 f1</font><font color="#F3E651">.</font><font color="#ff0000">lan f1</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.132</font><font color="#ff0000"> f2 f2</font><font color="#F3E651">.</font><font color="#ff0000">lan f2</font><font color="#F3E651">.</font><font color="#ff0000">lan</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cat <<END >>/etc/hosts</font></i> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.130</font><font color="#ffffff"> f0 f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.131</font><font color="#ffffff"> f1 f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.132</font><font color="#ffffff"> f2 f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan f2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lan</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">END</font> </pre> <br /> <span>You might wonder why bother using the hosts file? Why not use DNS properly? The reason is simplicity. I don't manage 100 hosts, only a few here and there. Having an OpenWRT router in my home, I could also configure everything there, but maybe I'll do that later. For now, keep it simple and straightforward.</span><br /> @@ -4328,7 +4328,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># pkg install helix doas zfs-periodic uptimed</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># pkg install helix doas zfs-periodic uptimed</font></i> </pre> <br /> <h3 style='display: inline' id='helix-editor'>Helix editor</h3><br /> @@ -4345,7 +4345,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cp /usr/local/etc/doas.conf.sample /usr/local/etc/doas.conf</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cp /usr/local/etc/doas.conf.sample /usr/local/etc/doas.conf</font></i> </pre> <br /> <a class='textlink' href='https://man.openbsd.org/doas'>https://man.openbsd.org/doas</a><br /> @@ -4358,17 +4358,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cat <<END >>/etc/periodic.conf</font></i> -<font color="#ff0000">daily_zfs_snapshot_enable</font><font color="#F3E651">=</font><font color="#bb00ff">"YES"</font> -<font color="#ff0000">daily_zfs_snapshot_pools</font><font color="#F3E651">=</font><font color="#bb00ff">"zroot"</font> -<font color="#ff0000">daily_zfs_snapshot_keep</font><font color="#F3E651">=</font><font color="#bb00ff">"7"</font> -<font color="#ff0000">weekly_zfs_snapshot_enable</font><font color="#F3E651">=</font><font color="#bb00ff">"YES"</font> -<font color="#ff0000">weekly_zfs_snapshot_pools</font><font color="#F3E651">=</font><font color="#bb00ff">"zroot"</font> -<font color="#ff0000">weekly_zfs_snapshot_keep</font><font color="#F3E651">=</font><font color="#bb00ff">"5"</font> -<font color="#ff0000">monthly_zfs_snapshot_enable</font><font color="#F3E651">=</font><font color="#bb00ff">"YES"</font> -<font color="#ff0000">monthly_zfs_snapshot_pools</font><font color="#F3E651">=</font><font color="#bb00ff">"zroot"</font> -<font color="#ff0000">monthly_zfs_snapshot_keep</font><font color="#F3E651">=</font><font color="#bb00ff">"6"</font> -<font color="#ff0000">END</font> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cat <<END >>/etc/periodic.conf</font></i> +<font color="#ffffff">daily_zfs_snapshot_enable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"YES"</font> +<font color="#ffffff">daily_zfs_snapshot_pools</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"zroot"</font> +<font color="#ffffff">daily_zfs_snapshot_keep</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"7"</font> +<font color="#ffffff">weekly_zfs_snapshot_enable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"YES"</font> +<font color="#ffffff">weekly_zfs_snapshot_pools</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"zroot"</font> +<font color="#ffffff">weekly_zfs_snapshot_keep</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"5"</font> +<font color="#ffffff">monthly_zfs_snapshot_enable</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"YES"</font> +<font color="#ffffff">monthly_zfs_snapshot_pools</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"zroot"</font> +<font color="#ffffff">monthly_zfs_snapshot_keep</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"6"</font> +<font color="#ffffff">END</font> </pre> <br /> <a class='textlink' href='https://github.com/ross/zfs-periodic'>https://github.com/ross/zfs-periodic</a><br /> @@ -4381,9 +4381,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># cp /usr/local/mimecast/etc/uptimed.conf-dist \</font></i> -<font color="#ff0000"> /usr/local/mimecast/etc/uptimed</font><font color="#F3E651">.</font><font color="#ff0000">conf </font> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># hx /usr/local/mimecast/etc/uptimed.conf</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># cp /usr/local/mimecast/etc/uptimed.conf-dist \</font></i> +<font color="#ffffff"> /usr/local/mimecast/etc/uptimed</font><b><font color="#ee5896">.</font></b><font color="#ffffff">conf </font> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># hx /usr/local/mimecast/etc/uptimed.conf</font></i> </pre> <br /> <span>In the Helix editor session, I changed <span class='inlinecode'>LOG_MAXIMUM_ENTRIES</span> to <span class='inlinecode'>0</span> to keep all uptime entries forever and not cut off at 50 (the default config). After that, I enabled and started <span class='inlinecode'>uptimed</span>:</span><br /> @@ -4392,8 +4392,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># service uptimed enable</font></i> -<font color="#ff0000">root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># service uptimed start</font></i> +<pre><font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># service uptimed enable</font></i> +<font color="#ffffff">root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># service uptimed start</font></i> </pre> <br /> <span>To check the current uptime stats, I can now run <span class='inlinecode'>uprecords</span>:</span><br /> @@ -4402,15 +4402,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000"> root@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><i><font color="#ababab"># uprecords</font></i> -<font color="#ff0000"> </font><i><font color="#ababab"># Uptime | System Boot up</font></i> -<font color="#ff0000">----------------------------</font><font color="#F3E651">+</font><font color="#ff0000">---------------------------------------------------</font> -<font color="#ff0000">-</font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">07</font><font color="#F3E651">:</font><font color="#bb00ff">34</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> FreeBSD </font><font color="#bb00ff">14.1</font><font color="#ff0000">-RELEASE Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000">----------------------------</font><font color="#F3E651">+</font><font color="#ff0000">---------------------------------------------------</font> -<font color="#ff0000">NewRec </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">07</font><font color="#F3E651">:</font><font color="#bb00ff">33</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000"> up </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">07</font><font color="#F3E651">:</font><font color="#bb00ff">34</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000"> down </font><font color="#bb00ff">0</font><font color="#ff0000"> days</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">00</font><font color="#F3E651">:</font><font color="#bb00ff">00</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> -<font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000">up </font><font color="#bb00ff">100.000</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> since Mon Dec </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">12</font><font color="#F3E651">:</font><font color="#bb00ff">21</font><font color="#F3E651">:</font><font color="#bb00ff">44</font><font color="#ff0000"> </font><font color="#bb00ff">2024</font> +<pre><font color="#ffffff"> root@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><i><font color="#00ff00"># uprecords</font></i> +<font color="#ffffff"> </font><i><font color="#00ff00"># Uptime | System Boot up</font></i> +<font color="#ffffff">----------------------------</font><b><font color="#ee5896">+</font></b><font color="#ffffff">---------------------------------------------------</font> +<font color="#ffffff">-</font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">07</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">34</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> FreeBSD </font><font color="#ff00ff">14.1</font><font color="#ffffff">-RELEASE Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff">----------------------------</font><b><font color="#ee5896">+</font></b><font color="#ffffff">---------------------------------------------------</font> +<font color="#ffffff">NewRec </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">07</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">33</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff"> up </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">07</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">34</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff"> down </font><font color="#ff00ff">0</font><font color="#ffffff"> days</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">00</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">00</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> +<font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff">up </font><font color="#ff00ff">100.000</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> since Mon Dec </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">12</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">44</font><font color="#ffffff"> </font><font color="#ff00ff">2024</font> </pre> <br /> <span>This is how I track the uptimes for all of my host:</span><br /> @@ -4428,17 +4428,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> ifconfig re0</font> -<font color="#ff0000">re0</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#ff0000">flags</font><font color="#F3E651">=</font><font color="#bb00ff">1008843</font><font color="#F3E651"><</font><font color="#ff0000">UP</font><font color="#F3E651">,</font><font color="#ff0000">BROADCAST</font><font color="#F3E651">,</font><font color="#ff0000">RUNNING</font><font color="#F3E651">,</font><font color="#ff0000">SIMPLEX</font><font color="#F3E651">,</font><font color="#ff0000">MULTICAST</font><font color="#F3E651">,</font><font color="#ff0000">LOWER_UP</font><font color="#F3E651">></font><font color="#ff0000"> metric </font><font color="#bb00ff">0</font><font color="#ff0000"> mtu </font><font color="#bb00ff">1500</font> -<font color="#ff0000"> </font><font color="#ff0000">options</font><font color="#F3E651">=</font><font color="#ff0000">8209b</font><font color="#F3E651"><</font><font color="#ff0000">RXCSUM</font><font color="#F3E651">,</font><font color="#ff0000">TXCSUM</font><font color="#F3E651">,</font><font color="#ff0000">VLAN_MTU</font><font color="#F3E651">,</font><font color="#ff0000">VLAN_HWTAGGING</font><font color="#F3E651">,</font><font color="#ff0000">VLAN_HWCSUM</font><font color="#F3E651">,</font><font color="#ff0000">WOL_MAGIC</font><font color="#F3E651">,</font><font color="#ff0000">LINKSTATE</font><font color="#F3E651">></font> -<font color="#ff0000"> ether e8</font><font color="#F3E651">:</font><font color="#ff0000">ff</font><font color="#F3E651">:</font><font color="#ff0000">1e</font><font color="#F3E651">:</font><font color="#ff0000">d7</font><font color="#F3E651">:</font><font color="#ff0000">1c</font><font color="#F3E651">:</font><font color="#ff0000">ac</font> -<font color="#ff0000"> inet </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.130</font><font color="#ff0000"> netmask </font><font color="#bb00ff">0xffffff00</font><font color="#ff0000"> broadcast </font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.255</font> -<font color="#ff0000"> inet6 fe80</font><font color="#F3E651">::</font><font color="#ff0000">eaff</font><font color="#F3E651">:</font><font color="#ff0000">1eff</font><font color="#F3E651">:</font><font color="#ff0000">fed7</font><font color="#F3E651">:</font><font color="#ff0000">1cac</font><font color="#F3E651">%</font><font color="#ff0000">re0 prefixlen </font><font color="#bb00ff">64</font><font color="#ff0000"> scopeid </font><font color="#bb00ff">0x1</font> -<font color="#ff0000"> inet6 fd22</font><font color="#F3E651">:</font><font color="#ff0000">c702</font><font color="#F3E651">:</font><font color="#ff0000">acb7</font><font color="#F3E651">:</font><font color="#bb00ff">0</font><font color="#F3E651">:</font><font color="#ff0000">eaff</font><font color="#F3E651">:</font><font color="#ff0000">1eff</font><font color="#F3E651">:</font><font color="#ff0000">fed7</font><font color="#F3E651">:</font><font color="#ff0000">1cac prefixlen </font><font color="#bb00ff">64</font><font color="#ff0000"> detached autoconf</font> -<font color="#ff0000"> inet6 2a01</font><font color="#F3E651">:</font><font color="#ff0000">5a8</font><font color="#F3E651">:</font><font color="#bb00ff">304</font><font color="#F3E651">:</font><font color="#ff0000">1d5c</font><font color="#F3E651">:</font><font color="#ff0000">eaff</font><font color="#F3E651">:</font><font color="#ff0000">1eff</font><font color="#F3E651">:</font><font color="#ff0000">fed7</font><font color="#F3E651">:</font><font color="#ff0000">1cac prefixlen </font><font color="#bb00ff">64</font><font color="#ff0000"> autoconf pltime </font><font color="#bb00ff">10800</font><font color="#ff0000"> vltime </font><font color="#bb00ff">14400</font> -<font color="#ff0000"> media</font><font color="#F3E651">:</font><font color="#ff0000"> Ethernet autoselect </font><font color="#F3E651">(</font><font color="#ff0000">1000baseT </font><font color="#F3E651"><</font><font color="#ff0000">full-duplex</font><font color="#F3E651">>)</font> -<font color="#ff0000"> status</font><font color="#F3E651">:</font><font color="#ff0000"> active</font> -<font color="#ff0000"> nd6 </font><font color="#ff0000">options</font><font color="#F3E651">=</font><font color="#bb00ff">23</font><font color="#F3E651"><</font><font color="#ff0000">PERFORMNUD</font><font color="#F3E651">,</font><font color="#ff0000">ACCEPT_RTADV</font><font color="#F3E651">,</font><font color="#ff0000">AUTO_LINKLOCAL</font><font color="#F3E651">></font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> ifconfig re0</font> +<font color="#ffffff">re0</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ffffff">flags</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1008843</font><b><font color="#ee5896"><</font></b><font color="#ffffff">UP</font><b><font color="#ee5896">,</font></b><font color="#ffffff">BROADCAST</font><b><font color="#ee5896">,</font></b><font color="#ffffff">RUNNING</font><b><font color="#ee5896">,</font></b><font color="#ffffff">SIMPLEX</font><b><font color="#ee5896">,</font></b><font color="#ffffff">MULTICAST</font><b><font color="#ee5896">,</font></b><font color="#ffffff">LOWER_UP</font><b><font color="#ee5896">></font></b><font color="#ffffff"> metric </font><font color="#ff00ff">0</font><font color="#ffffff"> mtu </font><font color="#ff00ff">1500</font> +<font color="#ffffff"> </font><font color="#ffffff">options</font><b><font color="#ee5896">=</font></b><font color="#ffffff">8209b</font><b><font color="#ee5896"><</font></b><font color="#ffffff">RXCSUM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">TXCSUM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VLAN_MTU</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VLAN_HWTAGGING</font><b><font color="#ee5896">,</font></b><font color="#ffffff">VLAN_HWCSUM</font><b><font color="#ee5896">,</font></b><font color="#ffffff">WOL_MAGIC</font><b><font color="#ee5896">,</font></b><font color="#ffffff">LINKSTATE</font><b><font color="#ee5896">></font></b> +<font color="#ffffff"> ether e8</font><b><font color="#ee5896">:</font></b><font color="#ffffff">ff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1e</font><b><font color="#ee5896">:</font></b><font color="#ffffff">d7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1c</font><b><font color="#ee5896">:</font></b><font color="#ffffff">ac</font> +<font color="#ffffff"> inet </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.130</font><font color="#ffffff"> netmask </font><font color="#ff00ff">0xffffff00</font><font color="#ffffff"> broadcast </font><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.255</font> +<font color="#ffffff"> inet6 fe80</font><b><font color="#ee5896">::</font></b><font color="#ffffff">eaff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1eff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">fed7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1cac</font><b><font color="#ee5896">%</font></b><font color="#ffffff">re0 prefixlen </font><font color="#ff00ff">64</font><font color="#ffffff"> scopeid </font><font color="#ff00ff">0x1</font> +<font color="#ffffff"> inet6 fd22</font><b><font color="#ee5896">:</font></b><font color="#ffffff">c702</font><b><font color="#ee5896">:</font></b><font color="#ffffff">acb7</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">:</font></b><font color="#ffffff">eaff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1eff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">fed7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1cac prefixlen </font><font color="#ff00ff">64</font><font color="#ffffff"> detached autoconf</font> +<font color="#ffffff"> inet6 2a01</font><b><font color="#ee5896">:</font></b><font color="#ffffff">5a8</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">304</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1d5c</font><b><font color="#ee5896">:</font></b><font color="#ffffff">eaff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1eff</font><b><font color="#ee5896">:</font></b><font color="#ffffff">fed7</font><b><font color="#ee5896">:</font></b><font color="#ffffff">1cac prefixlen </font><font color="#ff00ff">64</font><font color="#ffffff"> autoconf pltime </font><font color="#ff00ff">10800</font><font color="#ffffff"> vltime </font><font color="#ff00ff">14400</font> +<font color="#ffffff"> media</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Ethernet autoselect </font><b><font color="#ee5896">(</font></b><font color="#ffffff">1000baseT </font><b><font color="#ee5896"><</font></b><font color="#ffffff">full-duplex</font><b><font color="#ee5896">>)</font></b> +<font color="#ffffff"> status</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> active</font> +<font color="#ffffff"> nd6 </font><font color="#ffffff">options</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">23</font><b><font color="#ee5896"><</font></b><font color="#ffffff">PERFORMNUD</font><b><font color="#ee5896">,</font></b><font color="#ffffff">ACCEPT_RTADV</font><b><font color="#ee5896">,</font></b><font color="#ffffff">AUTO_LINKLOCAL</font><b><font color="#ee5896">></font></b> </pre> <br /> <h2 style='display: inline' id='ram'>RAM</h2><br /> @@ -4449,8 +4449,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> sysctl hw</font><font color="#F3E651">.</font><font color="#ff0000">physmem</font> -<font color="#ff0000">hw</font><font color="#F3E651">.</font><font color="#ff0000">physmem</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">16902905856</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sysctl hw</font><b><font color="#ee5896">.</font></b><font color="#ffffff">physmem</font> +<font color="#ffffff">hw</font><b><font color="#ee5896">.</font></b><font color="#ffffff">physmem</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">16902905856</font> </pre> <br /> @@ -4462,11 +4462,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> sysctl dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu </font><font color="#F3E651">|</font><font color="#ff0000"> grep freq</font><font color="#F3E651">:</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">3</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">705</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">705</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">604</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">604</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sysctl dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep freq</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">705</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">705</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">604</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">604</font> </pre> <br /> <h2 style='display: inline' id='cpu-throttling'>CPU throttling</h2><br /> @@ -4477,14 +4477,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> doas pkg install ubench</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> rehash </font><i><font color="#ababab"># For tcsh to find the newly installed command</font></i> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> ubench </font><font color="#F3E651">&</font> -<font color="#ff0000">paul@f0</font><font color="#F3E651">:~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> sysctl dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu </font><font color="#F3E651">|</font><font color="#ff0000"> grep freq</font><font color="#F3E651">:</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">3</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2922</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2922</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">1</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2923</font> -<font color="#ff0000">dev</font><font color="#F3E651">.</font><font color="#ff0000">cpu</font><font color="#F3E651">.</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">freq</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">2922</font> +<pre><font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> doas pkg install ubench</font> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> rehash </font><i><font color="#00ff00"># For tcsh to find the newly installed command</font></i> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> ubench </font><b><font color="#ee5896">&</font></b> +<font color="#ffffff">paul@f0</font><b><font color="#ee5896">:~</font></b><font color="#ffffff"> </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> sysctl dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep freq</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">3</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2922</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2922</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2923</font> +<font color="#ffffff">dev</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cpu</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">freq</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">2922</font> </pre> <br /> <span>Idle, all three Beelinks plus the switch consumed 26.2W. But with <span class='inlinecode'>ubench</span> stressing all the CPUs, it went up to 38.8W.</span><br /> @@ -4948,7 +4948,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">HTML_THEME_DIR</font><font color="#F3E651">=.</font><font color="#ff0000">/extras/html/themes/simple</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">HTML_THEME_DIR</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/extras/html/themes/simple</font> </pre> <br /> <span>To customize the theme or create your own, simply copy the theme directory and modify it as needed. This makes it also much easier to switch between layouts.</span><br /> @@ -5582,52 +5582,52 @@ WHOA!! ( o.o ) by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ traceroute -m </font><font color="#bb00ff">60</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse</font> -<font color="#ff0000">traceroute to bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.157</font><font color="#F3E651">),</font><font color="#ff0000"> </font><font color="#bb00ff">60</font><font color="#ff0000"> hops max</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">60</font><font color="#ff0000"> byte packets</font> -<font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#ff0000"> _gateway </font><font color="#F3E651">(</font><font color="#bb00ff">192.168</font><font color="#F3E651">.</font><font color="#bb00ff">1.1</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">5.237</font><font color="#ff0000"> ms </font><font color="#bb00ff">5.264</font><font color="#ff0000"> ms </font><font color="#bb00ff">6.009</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#bb00ff">77</font><font color="#ff0000">-</font><font color="#bb00ff">85</font><font color="#ff0000">-</font><font color="#bb00ff">0</font><font color="#ff0000">-</font><font color="#bb00ff">2</font><font color="#F3E651">.</font><font color="#ff0000">ip</font><font color="#F3E651">.</font><font color="#ff0000">btc-net</font><font color="#F3E651">.</font><b><font color="#ffffff">bg</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">77.85</font><font color="#F3E651">.</font><font color="#bb00ff">0.2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">8.753</font><font color="#ff0000"> ms </font><font color="#bb00ff">7.112</font><font color="#ff0000"> ms </font><font color="#bb00ff">8.336</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#ff0000"> </font><font color="#bb00ff">212</font><font color="#ff0000">-</font><font color="#bb00ff">39</font><font color="#ff0000">-</font><font color="#bb00ff">69</font><font color="#ff0000">-</font><font color="#bb00ff">103</font><font color="#F3E651">.</font><font color="#ff0000">ip</font><font color="#F3E651">.</font><font color="#ff0000">btc-net</font><font color="#F3E651">.</font><b><font color="#ffffff">bg</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">212.39</font><font color="#F3E651">.</font><font color="#bb00ff">69.103</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">9.434</font><font color="#ff0000"> ms </font><font color="#bb00ff">9.268</font><font color="#ff0000"> ms </font><font color="#bb00ff">9.986</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> xe-</font><font color="#bb00ff">1</font><font color="#ff0000">-</font><font color="#bb00ff">2</font><font color="#ff0000">-</font><font color="#bb00ff">0</font><font color="#F3E651">.</font><font color="#ff0000">mpr1</font><font color="#F3E651">.</font><font color="#ff0000">fra4</font><font color="#F3E651">.</font><font color="#ff0000">de</font><font color="#F3E651">.</font><font color="#ff0000">above</font><font color="#F3E651">.</font><font color="#ff0000">net </font><font color="#F3E651">(</font><font color="#bb00ff">80.81</font><font color="#F3E651">.</font><font color="#bb00ff">194.26</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">39.812</font><font color="#ff0000"> ms </font><font color="#bb00ff">39.030</font><font color="#ff0000"> ms </font><font color="#bb00ff">39.772</font><font color="#ff0000"> ms</font> -<font color="#ff0000"> </font><font color="#bb00ff">6</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> ae12</font><font color="#F3E651">.</font><font color="#ff0000">cs1</font><font color="#F3E651">.</font><font color="#ff0000">fra6</font><font color="#F3E651">.</font><font color="#ff0000">de</font><font color="#F3E651">.</font><font color="#ff0000">eth</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">26.172</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">123.576</font><font color="#ff0000"> ms </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">7</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">8</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#ff0000"> </font><font color="#bb00ff">9</font><font color="#ff0000"> ae10</font><font color="#F3E651">.</font><font color="#ff0000">cr1</font><font color="#F3E651">.</font><font color="#ff0000">lhr15</font><font color="#F3E651">.</font><font color="#ff0000">uk</font><font color="#F3E651">.</font><font color="#ff0000">eth</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">29.17</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">119.097</font><font color="#ff0000"> ms </font><font color="#bb00ff">119.478</font><font color="#ff0000"> ms </font><font color="#bb00ff">120.767</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">10</font><font color="#ff0000"> ae2</font><font color="#F3E651">.</font><font color="#ff0000">cr1</font><font color="#F3E651">.</font><font color="#ff0000">lhr11</font><font color="#F3E651">.</font><font color="#ff0000">uk</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">24.140</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">120.398</font><font color="#ff0000"> ms </font><font color="#bb00ff">121.147</font><font color="#ff0000"> ms </font><font color="#bb00ff">120.948</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">11</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#bb00ff">12</font><font color="#ff0000"> ae25</font><font color="#F3E651">.</font><font color="#ff0000">mpr1</font><font color="#F3E651">.</font><font color="#ff0000">yyz1</font><font color="#F3E651">.</font><font color="#ff0000">ca</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">23.117</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">145.072</font><font color="#ff0000"> ms </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#bb00ff">181.773</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">13</font><font color="#ff0000"> ae5</font><font color="#F3E651">.</font><font color="#ff0000">mpr1</font><font color="#F3E651">.</font><font color="#ff0000">tor3</font><font color="#F3E651">.</font><font color="#ff0000">ca</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.125</font><font color="#F3E651">.</font><font color="#bb00ff">23.118</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">168.239</font><font color="#ff0000"> ms </font><font color="#bb00ff">168.158</font><font color="#ff0000"> ms </font><font color="#bb00ff">168.137</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">14</font><font color="#ff0000"> </font><font color="#bb00ff">64.124</font><font color="#F3E651">.</font><font color="#bb00ff">217.237</font><font color="#F3E651">.</font><font color="#ff0000">IDIA-</font><font color="#bb00ff">265104</font><font color="#ff0000">-ZYO</font><font color="#F3E651">.</font><font color="#ff0000">zip</font><font color="#F3E651">.</font><font color="#ff0000">zayo</font><font color="#F3E651">.</font><font color="#ff0000">com </font><font color="#F3E651">(</font><font color="#bb00ff">64.124</font><font color="#F3E651">.</font><font color="#bb00ff">217.237</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">168.026</font><font color="#ff0000"> ms </font><font color="#bb00ff">167.999</font><font color="#ff0000"> ms </font><font color="#bb00ff">165.451</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">15</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000"> </font><font color="#F3E651">*</font> -<font color="#bb00ff">16</font><font color="#ff0000"> t00</font><font color="#F3E651">.</font><font color="#ff0000">toroc1</font><font color="#F3E651">.</font><font color="#ff0000">on</font><font color="#F3E651">.</font><font color="#ff0000">ca</font><font color="#F3E651">.</font><font color="#ff0000">sn11</font><font color="#F3E651">.</font><font color="#ff0000">net </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">204.2</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">131.598</font><font color="#ff0000"> ms </font><font color="#bb00ff">131.308</font><font color="#ff0000"> ms </font><font color="#bb00ff">131.482</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">17</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.130</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">131.430</font><font color="#ff0000"> ms </font><font color="#bb00ff">145.914</font><font color="#ff0000"> ms </font><font color="#bb00ff">130.514</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">18</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.131</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">136.634</font><font color="#ff0000"> ms </font><font color="#bb00ff">145.295</font><font color="#ff0000"> ms </font><font color="#bb00ff">135.631</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">19</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.132</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">139.158</font><font color="#ff0000"> ms </font><font color="#bb00ff">148.363</font><font color="#ff0000"> ms </font><font color="#bb00ff">138.934</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">20</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.133</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">145.395</font><font color="#ff0000"> ms </font><font color="#bb00ff">148.054</font><font color="#ff0000"> ms </font><font color="#bb00ff">147.140</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">21</font><font color="#ff0000"> he</font><font color="#F3E651">.</font><font color="#ff0000">rides</font><font color="#F3E651">.</font><font color="#ff0000">across</font><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">nation </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.134</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">149.687</font><font color="#ff0000"> ms </font><font color="#bb00ff">147.731</font><font color="#ff0000"> ms </font><font color="#bb00ff">150.135</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">22</font><font color="#ff0000"> the</font><font color="#F3E651">.</font><font color="#ff0000">thoroughbred</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">sin </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.135</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">156.644</font><font color="#ff0000"> ms </font><font color="#bb00ff">155.155</font><font color="#ff0000"> ms </font><font color="#bb00ff">156.447</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">23</font><font color="#ff0000"> he</font><font color="#F3E651">.</font><font color="#ff0000">got</font><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">application </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.136</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">161.187</font><font color="#ff0000"> ms </font><font color="#bb00ff">162.318</font><font color="#ff0000"> ms </font><font color="#bb00ff">162.674</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">24</font><font color="#ff0000"> that</font><font color="#F3E651">.</font><font color="#ff0000">you</font><font color="#F3E651">.</font><font color="#ff0000">just</font><font color="#F3E651">.</font><font color="#ff0000">sent</font><font color="#F3E651">.</font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.137</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">166.763</font><font color="#ff0000"> ms </font><font color="#bb00ff">166.675</font><font color="#ff0000"> ms </font><font color="#bb00ff">164.243</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">25</font><font color="#ff0000"> it</font><font color="#F3E651">.</font><font color="#ff0000">needs</font><font color="#F3E651">.</font><font color="#ff0000">evaluation </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.138</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">172.073</font><font color="#ff0000"> ms </font><font color="#bb00ff">171.919</font><font color="#ff0000"> ms </font><font color="#bb00ff">171.390</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">26</font><font color="#ff0000"> so</font><font color="#F3E651">.</font><b><font color="#ffffff">let</font></b><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">games</font><font color="#F3E651">.</font><font color="#ff0000">begin </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.139</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">175.386</font><font color="#ff0000"> ms </font><font color="#bb00ff">174.180</font><font color="#ff0000"> ms </font><font color="#bb00ff">175.965</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">27</font><font color="#ff0000"> a</font><font color="#F3E651">.</font><font color="#ff0000">heinous</font><font color="#F3E651">.</font><font color="#ff0000">crime </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.140</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">180.857</font><font color="#ff0000"> ms </font><font color="#bb00ff">180.766</font><font color="#ff0000"> ms </font><font color="#bb00ff">180.192</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">28</font><font color="#ff0000"> a</font><font color="#F3E651">.</font><font color="#ff0000">show</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">force </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.141</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">187.942</font><font color="#ff0000"> ms </font><font color="#bb00ff">186.669</font><font color="#ff0000"> ms </font><font color="#bb00ff">186.986</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">29</font><font color="#ff0000"> a</font><font color="#F3E651">.</font><font color="#ff0000">murder</font><font color="#F3E651">.</font><font color="#ff0000">would</font><font color="#F3E651">.</font><font color="#ff0000">be</font><font color="#F3E651">.</font><font color="#ff0000">nice</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">course </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.142</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">191.349</font><font color="#ff0000"> ms </font><font color="#bb00ff">191.939</font><font color="#ff0000"> ms </font><font color="#bb00ff">190.740</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">30</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.143</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">195.425</font><font color="#ff0000"> ms </font><font color="#bb00ff">195.716</font><font color="#ff0000"> ms </font><font color="#bb00ff">196.186</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">31</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.144</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">199.238</font><font color="#ff0000"> ms </font><font color="#bb00ff">200.620</font><font color="#ff0000"> ms </font><font color="#bb00ff">200.318</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">32</font><font color="#ff0000"> bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.145</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">207.554</font><font color="#ff0000"> ms </font><font color="#bb00ff">206.729</font><font color="#ff0000"> ms </font><font color="#bb00ff">205.201</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">33</font><font color="#ff0000"> he-s</font><font color="#F3E651">.</font><font color="#ff0000">bad </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.146</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">211.087</font><font color="#ff0000"> ms </font><font color="#bb00ff">211.649</font><font color="#ff0000"> ms </font><font color="#bb00ff">211.712</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">34</font><font color="#ff0000"> the</font><font color="#F3E651">.</font><font color="#ff0000">evil</font><font color="#F3E651">.</font><font color="#ff0000">league</font><font color="#F3E651">.</font><font color="#ff0000">of</font><font color="#F3E651">.</font><font color="#ff0000">evil </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.147</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">212.657</font><font color="#ff0000"> ms </font><font color="#bb00ff">216.777</font><font color="#ff0000"> ms </font><font color="#bb00ff">216.589</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">35</font><font color="#ff0000"> is</font><font color="#F3E651">.</font><font color="#ff0000">watching</font><font color="#F3E651">.</font><font color="#ff0000">so</font><font color="#F3E651">.</font><font color="#ff0000">beware </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.148</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">220.911</font><font color="#ff0000"> ms </font><font color="#bb00ff">220.326</font><font color="#ff0000"> ms </font><font color="#bb00ff">221.961</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">36</font><font color="#ff0000"> the</font><font color="#F3E651">.</font><font color="#ff0000">grade</font><font color="#F3E651">.</font><font color="#ff0000">that</font><font color="#F3E651">.</font><font color="#ff0000">you</font><font color="#F3E651">.</font><font color="#ff0000">receive </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.149</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">225.384</font><font color="#ff0000"> ms </font><font color="#bb00ff">225.696</font><font color="#ff0000"> ms </font><font color="#bb00ff">225.640</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">37</font><font color="#ff0000"> will</font><font color="#F3E651">.</font><font color="#ff0000">be</font><font color="#F3E651">.</font><font color="#ff0000">your</font><font color="#F3E651">.</font><font color="#ff0000">last</font><font color="#F3E651">.</font><font color="#ff0000">we</font><font color="#F3E651">.</font><font color="#ff0000">swear </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.150</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">232.312</font><font color="#ff0000"> ms </font><font color="#bb00ff">230.989</font><font color="#ff0000"> ms </font><font color="#bb00ff">230.919</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">38</font><font color="#ff0000"> so</font><font color="#F3E651">.</font><font color="#ff0000">make</font><font color="#F3E651">.</font><font color="#ff0000">the</font><font color="#F3E651">.</font><font color="#ff0000">bad</font><font color="#F3E651">.</font><font color="#ff0000">horse</font><font color="#F3E651">.</font><font color="#ff0000">gleeful </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.151</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">235.761</font><font color="#ff0000"> ms </font><font color="#bb00ff">235.291</font><font color="#ff0000"> ms </font><font color="#bb00ff">235.585</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">39</font><font color="#ff0000"> or</font><font color="#F3E651">.</font><font color="#ff0000">he-ll</font><font color="#F3E651">.</font><font color="#ff0000">make</font><font color="#F3E651">.</font><font color="#ff0000">you</font><font color="#F3E651">.</font><font color="#ff0000">his</font><font color="#F3E651">.</font><font color="#ff0000">mare </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.152</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">241.350</font><font color="#ff0000"> ms </font><font color="#bb00ff">239.407</font><font color="#ff0000"> ms </font><font color="#bb00ff">238.394</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">40</font><font color="#ff0000"> o_o </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.153</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">246.154</font><font color="#ff0000"> ms </font><font color="#bb00ff">247.650</font><font color="#ff0000"> ms </font><font color="#bb00ff">247.110</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">41</font><font color="#ff0000"> you-re</font><font color="#F3E651">.</font><font color="#ff0000">saddled</font><font color="#F3E651">.</font><font color="#ff0000">up </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.154</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">250.925</font><font color="#ff0000"> ms </font><font color="#bb00ff">250.401</font><font color="#ff0000"> ms </font><font color="#bb00ff">250.619</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">42</font><font color="#ff0000"> there-s</font><font color="#F3E651">.</font><font color="#ff0000">no</font><font color="#F3E651">.</font><font color="#ff0000">recourse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.155</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">256.071</font><font color="#ff0000"> ms </font><font color="#bb00ff">251.154</font><font color="#ff0000"> ms </font><font color="#bb00ff">255.340</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">43</font><font color="#ff0000"> it-s</font><font color="#F3E651">.</font><font color="#ff0000">hi-ho</font><font color="#F3E651">.</font><font color="#ff0000">silver </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.156</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">260.152</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.775</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.544</font><font color="#ff0000"> ms</font> -<font color="#bb00ff">44</font><font color="#ff0000"> signed</font><font color="#F3E651">.</font><font color="#ff0000">bad</font><font color="#F3E651">.</font><font color="#ff0000">horse </font><font color="#F3E651">(</font><font color="#bb00ff">162.252</font><font color="#F3E651">.</font><font color="#bb00ff">205.157</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#bb00ff">262.430</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.410</font><font color="#ff0000"> ms </font><font color="#bb00ff">261.365</font><font color="#ff0000"> ms</font> +<pre><font color="#ffffff">❯ traceroute -m </font><font color="#ff00ff">60</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse</font> +<font color="#ffffff">traceroute to bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.157</font><b><font color="#ee5896">),</font></b><font color="#ffffff"> </font><font color="#ff00ff">60</font><font color="#ffffff"> hops max</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">60</font><font color="#ffffff"> byte packets</font> +<font color="#ffffff"> </font><font color="#ff00ff">1</font><font color="#ffffff"> _gateway </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">192.168</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">1.1</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">5.237</font><font color="#ffffff"> ms </font><font color="#ff00ff">5.264</font><font color="#ffffff"> ms </font><font color="#ff00ff">6.009</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><font color="#ff00ff">77</font><font color="#ffffff">-</font><font color="#ff00ff">85</font><font color="#ffffff">-</font><font color="#ff00ff">0</font><font color="#ffffff">-</font><font color="#ff00ff">2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">btc-net</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">bg</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">77.85</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">0.2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">8.753</font><font color="#ffffff"> ms </font><font color="#ff00ff">7.112</font><font color="#ffffff"> ms </font><font color="#ff00ff">8.336</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">3</font><font color="#ffffff"> </font><font color="#ff00ff">212</font><font color="#ffffff">-</font><font color="#ff00ff">39</font><font color="#ffffff">-</font><font color="#ff00ff">69</font><font color="#ffffff">-</font><font color="#ff00ff">103</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">btc-net</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">bg</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">212.39</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">69.103</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">9.434</font><font color="#ffffff"> ms </font><font color="#ff00ff">9.268</font><font color="#ffffff"> ms </font><font color="#ff00ff">9.986</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">4</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> xe-</font><font color="#ff00ff">1</font><font color="#ffffff">-</font><font color="#ff00ff">2</font><font color="#ffffff">-</font><font color="#ff00ff">0</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mpr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">fra4</font><b><font color="#ee5896">.</font></b><font color="#ffffff">de</font><b><font color="#ee5896">.</font></b><font color="#ffffff">above</font><b><font color="#ee5896">.</font></b><font color="#ffffff">net </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">80.81</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">194.26</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">39.812</font><font color="#ffffff"> ms </font><font color="#ff00ff">39.030</font><font color="#ffffff"> ms </font><font color="#ff00ff">39.772</font><font color="#ffffff"> ms</font> +<font color="#ffffff"> </font><font color="#ff00ff">6</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> ae12</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cs1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">fra6</font><b><font color="#ee5896">.</font></b><font color="#ffffff">de</font><b><font color="#ee5896">.</font></b><font color="#ffffff">eth</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">26.172</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">123.576</font><font color="#ffffff"> ms </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">7</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">8</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ffffff"> </font><font color="#ff00ff">9</font><font color="#ffffff"> ae10</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lhr15</font><b><font color="#ee5896">.</font></b><font color="#ffffff">uk</font><b><font color="#ee5896">.</font></b><font color="#ffffff">eth</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">29.17</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">119.097</font><font color="#ffffff"> ms </font><font color="#ff00ff">119.478</font><font color="#ffffff"> ms </font><font color="#ff00ff">120.767</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">10</font><font color="#ffffff"> ae2</font><b><font color="#ee5896">.</font></b><font color="#ffffff">cr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">lhr11</font><b><font color="#ee5896">.</font></b><font color="#ffffff">uk</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">24.140</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">120.398</font><font color="#ffffff"> ms </font><font color="#ff00ff">121.147</font><font color="#ffffff"> ms </font><font color="#ff00ff">120.948</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">11</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ff00ff">12</font><font color="#ffffff"> ae25</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mpr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">yyz1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ca</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">23.117</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">145.072</font><font color="#ffffff"> ms </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><font color="#ff00ff">181.773</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">13</font><font color="#ffffff"> ae5</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mpr1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tor3</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ca</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.125</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">23.118</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">168.239</font><font color="#ffffff"> ms </font><font color="#ff00ff">168.158</font><font color="#ffffff"> ms </font><font color="#ff00ff">168.137</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">14</font><font color="#ffffff"> </font><font color="#ff00ff">64.124</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">217.237</font><b><font color="#ee5896">.</font></b><font color="#ffffff">IDIA-</font><font color="#ff00ff">265104</font><font color="#ffffff">-ZYO</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zip</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zayo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">com </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">64.124</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">217.237</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">168.026</font><font color="#ffffff"> ms </font><font color="#ff00ff">167.999</font><font color="#ffffff"> ms </font><font color="#ff00ff">165.451</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">15</font><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b> +<font color="#ff00ff">16</font><font color="#ffffff"> t00</font><b><font color="#ee5896">.</font></b><font color="#ffffff">toroc1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">on</font><b><font color="#ee5896">.</font></b><font color="#ffffff">ca</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sn11</font><b><font color="#ee5896">.</font></b><font color="#ffffff">net </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">204.2</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">131.598</font><font color="#ffffff"> ms </font><font color="#ff00ff">131.308</font><font color="#ffffff"> ms </font><font color="#ff00ff">131.482</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">17</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.130</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">131.430</font><font color="#ffffff"> ms </font><font color="#ff00ff">145.914</font><font color="#ffffff"> ms </font><font color="#ff00ff">130.514</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">18</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.131</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">136.634</font><font color="#ffffff"> ms </font><font color="#ff00ff">145.295</font><font color="#ffffff"> ms </font><font color="#ff00ff">135.631</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">19</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.132</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">139.158</font><font color="#ffffff"> ms </font><font color="#ff00ff">148.363</font><font color="#ffffff"> ms </font><font color="#ff00ff">138.934</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">20</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.133</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">145.395</font><font color="#ffffff"> ms </font><font color="#ff00ff">148.054</font><font color="#ffffff"> ms </font><font color="#ff00ff">147.140</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">21</font><font color="#ffffff"> he</font><b><font color="#ee5896">.</font></b><font color="#ffffff">rides</font><b><font color="#ee5896">.</font></b><font color="#ffffff">across</font><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">nation </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.134</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">149.687</font><font color="#ffffff"> ms </font><font color="#ff00ff">147.731</font><font color="#ffffff"> ms </font><font color="#ff00ff">150.135</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">22</font><font color="#ffffff"> the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">thoroughbred</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sin </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.135</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">156.644</font><font color="#ffffff"> ms </font><font color="#ff00ff">155.155</font><font color="#ffffff"> ms </font><font color="#ff00ff">156.447</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">23</font><font color="#ffffff"> he</font><b><font color="#ee5896">.</font></b><font color="#ffffff">got</font><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">application </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.136</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">161.187</font><font color="#ffffff"> ms </font><font color="#ff00ff">162.318</font><font color="#ffffff"> ms </font><font color="#ff00ff">162.674</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">24</font><font color="#ffffff"> that</font><b><font color="#ee5896">.</font></b><font color="#ffffff">you</font><b><font color="#ee5896">.</font></b><font color="#ffffff">just</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sent</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.137</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">166.763</font><font color="#ffffff"> ms </font><font color="#ff00ff">166.675</font><font color="#ffffff"> ms </font><font color="#ff00ff">164.243</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">25</font><font color="#ffffff"> it</font><b><font color="#ee5896">.</font></b><font color="#ffffff">needs</font><b><font color="#ee5896">.</font></b><font color="#ffffff">evaluation </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.138</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">172.073</font><font color="#ffffff"> ms </font><font color="#ff00ff">171.919</font><font color="#ffffff"> ms </font><font color="#ff00ff">171.390</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">26</font><font color="#ffffff"> so</font><b><font color="#ee5896">.</font></b><b><font color="#00ffff">let</font></b><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">games</font><b><font color="#ee5896">.</font></b><font color="#ffffff">begin </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.139</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">175.386</font><font color="#ffffff"> ms </font><font color="#ff00ff">174.180</font><font color="#ffffff"> ms </font><font color="#ff00ff">175.965</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">27</font><font color="#ffffff"> a</font><b><font color="#ee5896">.</font></b><font color="#ffffff">heinous</font><b><font color="#ee5896">.</font></b><font color="#ffffff">crime </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.140</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">180.857</font><font color="#ffffff"> ms </font><font color="#ff00ff">180.766</font><font color="#ffffff"> ms </font><font color="#ff00ff">180.192</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">28</font><font color="#ffffff"> a</font><b><font color="#ee5896">.</font></b><font color="#ffffff">show</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">force </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.141</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">187.942</font><font color="#ffffff"> ms </font><font color="#ff00ff">186.669</font><font color="#ffffff"> ms </font><font color="#ff00ff">186.986</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">29</font><font color="#ffffff"> a</font><b><font color="#ee5896">.</font></b><font color="#ffffff">murder</font><b><font color="#ee5896">.</font></b><font color="#ffffff">would</font><b><font color="#ee5896">.</font></b><font color="#ffffff">be</font><b><font color="#ee5896">.</font></b><font color="#ffffff">nice</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">course </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.142</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">191.349</font><font color="#ffffff"> ms </font><font color="#ff00ff">191.939</font><font color="#ffffff"> ms </font><font color="#ff00ff">190.740</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">30</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.143</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">195.425</font><font color="#ffffff"> ms </font><font color="#ff00ff">195.716</font><font color="#ffffff"> ms </font><font color="#ff00ff">196.186</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">31</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.144</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">199.238</font><font color="#ffffff"> ms </font><font color="#ff00ff">200.620</font><font color="#ffffff"> ms </font><font color="#ff00ff">200.318</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">32</font><font color="#ffffff"> bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.145</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">207.554</font><font color="#ffffff"> ms </font><font color="#ff00ff">206.729</font><font color="#ffffff"> ms </font><font color="#ff00ff">205.201</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">33</font><font color="#ffffff"> he-s</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bad </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.146</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">211.087</font><font color="#ffffff"> ms </font><font color="#ff00ff">211.649</font><font color="#ffffff"> ms </font><font color="#ff00ff">211.712</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">34</font><font color="#ffffff"> the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">evil</font><b><font color="#ee5896">.</font></b><font color="#ffffff">league</font><b><font color="#ee5896">.</font></b><font color="#ffffff">of</font><b><font color="#ee5896">.</font></b><font color="#ffffff">evil </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.147</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">212.657</font><font color="#ffffff"> ms </font><font color="#ff00ff">216.777</font><font color="#ffffff"> ms </font><font color="#ff00ff">216.589</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">35</font><font color="#ffffff"> is</font><b><font color="#ee5896">.</font></b><font color="#ffffff">watching</font><b><font color="#ee5896">.</font></b><font color="#ffffff">so</font><b><font color="#ee5896">.</font></b><font color="#ffffff">beware </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.148</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">220.911</font><font color="#ffffff"> ms </font><font color="#ff00ff">220.326</font><font color="#ffffff"> ms </font><font color="#ff00ff">221.961</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">36</font><font color="#ffffff"> the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">grade</font><b><font color="#ee5896">.</font></b><font color="#ffffff">that</font><b><font color="#ee5896">.</font></b><font color="#ffffff">you</font><b><font color="#ee5896">.</font></b><font color="#ffffff">receive </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.149</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">225.384</font><font color="#ffffff"> ms </font><font color="#ff00ff">225.696</font><font color="#ffffff"> ms </font><font color="#ff00ff">225.640</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">37</font><font color="#ffffff"> will</font><b><font color="#ee5896">.</font></b><font color="#ffffff">be</font><b><font color="#ee5896">.</font></b><font color="#ffffff">your</font><b><font color="#ee5896">.</font></b><font color="#ffffff">last</font><b><font color="#ee5896">.</font></b><font color="#ffffff">we</font><b><font color="#ee5896">.</font></b><font color="#ffffff">swear </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.150</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">232.312</font><font color="#ffffff"> ms </font><font color="#ff00ff">230.989</font><font color="#ffffff"> ms </font><font color="#ff00ff">230.919</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">38</font><font color="#ffffff"> so</font><b><font color="#ee5896">.</font></b><font color="#ffffff">make</font><b><font color="#ee5896">.</font></b><font color="#ffffff">the</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gleeful </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.151</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">235.761</font><font color="#ffffff"> ms </font><font color="#ff00ff">235.291</font><font color="#ffffff"> ms </font><font color="#ff00ff">235.585</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">39</font><font color="#ffffff"> or</font><b><font color="#ee5896">.</font></b><font color="#ffffff">he-ll</font><b><font color="#ee5896">.</font></b><font color="#ffffff">make</font><b><font color="#ee5896">.</font></b><font color="#ffffff">you</font><b><font color="#ee5896">.</font></b><font color="#ffffff">his</font><b><font color="#ee5896">.</font></b><font color="#ffffff">mare </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.152</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">241.350</font><font color="#ffffff"> ms </font><font color="#ff00ff">239.407</font><font color="#ffffff"> ms </font><font color="#ff00ff">238.394</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">40</font><font color="#ffffff"> o_o </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.153</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">246.154</font><font color="#ffffff"> ms </font><font color="#ff00ff">247.650</font><font color="#ffffff"> ms </font><font color="#ff00ff">247.110</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">41</font><font color="#ffffff"> you-re</font><b><font color="#ee5896">.</font></b><font color="#ffffff">saddled</font><b><font color="#ee5896">.</font></b><font color="#ffffff">up </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.154</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">250.925</font><font color="#ffffff"> ms </font><font color="#ff00ff">250.401</font><font color="#ffffff"> ms </font><font color="#ff00ff">250.619</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">42</font><font color="#ffffff"> there-s</font><b><font color="#ee5896">.</font></b><font color="#ffffff">no</font><b><font color="#ee5896">.</font></b><font color="#ffffff">recourse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.155</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">256.071</font><font color="#ffffff"> ms </font><font color="#ff00ff">251.154</font><font color="#ffffff"> ms </font><font color="#ff00ff">255.340</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">43</font><font color="#ffffff"> it-s</font><b><font color="#ee5896">.</font></b><font color="#ffffff">hi-ho</font><b><font color="#ee5896">.</font></b><font color="#ffffff">silver </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.156</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">260.152</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.775</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.544</font><font color="#ffffff"> ms</font> +<font color="#ff00ff">44</font><font color="#ffffff"> signed</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bad</font><b><font color="#ee5896">.</font></b><font color="#ffffff">horse </font><b><font color="#ee5896">(</font></b><font color="#ff00ff">162.252</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">205.157</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><font color="#ff00ff">262.430</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.410</font><font color="#ffffff"> ms </font><font color="#ff00ff">261.365</font><font color="#ffffff"> ms</font> </pre> <br /> <h2 style='display: inline' id='2-ascii-cinema'>2. ASCII cinema</h2><br /> @@ -5655,20 +5655,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ababab">#include</font><font color="#ff0000"> </font><font color="#bb00ff"><stdio.h></font> +<pre><font color="#ffbb00">#include</font><font color="#ffffff"> </font><font color="#cd00ff"><stdio.h></font> -<b><font color="#F35E1E">int</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">(</font><b><font color="#F35E1E">void</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> array</font><font color="#F3E651">[</font><font color="#bb00ff">5</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffff00">int</font><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">(</font></b><font color="#ffff00">void</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffff00">int</font><font color="#ffffff"> array</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> array</font><font color="#F3E651">[</font><font color="#ff0000">i</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> array</font><b><font color="#ee5896">[</font></b><font color="#ffffff">i</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> i</font><font color="#F3E651">[</font><font color="#ff0000">array</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">[</font></b><font color="#ffffff">array</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">*(</font><font color="#ff0000">i </font><font color="#F3E651">+</font><font color="#ff0000"> array</font><font color="#F3E651">));</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*(</font></b><font color="#ffffff">i </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> array</font><b><font color="#ee5896">));</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h3 style='display: inline' id='5-variables-with-prefix-'>5. Variables with prefix <span class='inlinecode'>$</span></h3><br /> @@ -5679,20 +5679,20 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ababab">#include</font><font color="#ff0000"> </font><font color="#bb00ff"><stdio.h></font> +<pre><font color="#ffbb00">#include</font><font color="#ffffff"> </font><font color="#cd00ff"><stdio.h></font> -<b><font color="#F35E1E">int</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">(</font><b><font color="#F35E1E">void</font></b><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $array</font><font color="#F3E651">[</font><font color="#bb00ff">5</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">{</font><font color="#ff0000"> </font><font color="#bb00ff">1</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">3</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">4</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#F3E651">}</font><font color="#F3E651">;</font> +<font color="#ffff00">int</font><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">(</font></b><font color="#ffff00">void</font><b><font color="#ee5896">)</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffff00">int</font><font color="#ffffff"> $array</font><b><font color="#ee5896">[</font></b><font color="#ff00ff">5</font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">4</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><b><font color="#ee5896">}</font></b><b><font color="#ee5896">;</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> $i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> $i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> $array</font><font color="#F3E651">[</font><font color="#ff0000">$i</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> $i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> $array</font><b><font color="#ee5896">[</font></b><font color="#ffffff">$i</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> $i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> $i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> $i</font><font color="#F3E651">[</font><font color="#ff0000">$array</font><font color="#F3E651">]);</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> $i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">[</font></b><font color="#ffffff">$array</font><b><font color="#ee5896">]);</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><b><font color="#F35E1E">int</font></b><font color="#ff0000"> $i </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">0</font><font color="#F3E651">;</font><font color="#ff0000"> $i </font><font color="#F3E651"><</font><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651">;</font><font color="#ff0000"> $i</font><font color="#F3E651">++)</font> -<font color="#ff0000"> </font><font color="#7bc710">printf</font><font color="#F3E651">(</font><font color="#bb00ff">"%d</font><font color="#ffffff">\n</font><font color="#bb00ff">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">*(</font><font color="#ff0000">$i </font><font color="#F3E651">+</font><font color="#ff0000"> $array</font><font color="#F3E651">));</font> -<font color="#F3E651">}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> </font><b><font color="#ee5896">(</font></b><font color="#ffff00">int</font><font color="#ffffff"> $i </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i </font><b><font color="#ee5896"><</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> $i</font><b><font color="#ee5896">++)</font></b> +<font color="#ffffff"> </font><b><font color="#ffffff">printf</font></b><b><font color="#ee5896">(</font></b><font color="#cd00ff">"%d</font><font color="#cd00ff">\n</font><font color="#cd00ff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*(</font></b><font color="#ffffff">$i </font><b><font color="#ee5896">+</font></b><font color="#ffffff"> $array</font><b><font color="#ee5896">));</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <h2 style='display: inline' id='6-object-oriented-shell-scripts-using-ksh'>6. Object oriented shell scripts using <span class='inlinecode'>ksh</span></h2><br /> @@ -5703,40 +5703,40 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/ksh93</font></i> -<font color="#ff0000"> </font> -<b><font color="#ffffff">typeset</font></b><font color="#ff0000"> -T </font><font color="#ff0000">Point_t</font><font color="#F3E651">=(</font> -<font color="#ff0000"> integer -h </font><font color="#bb00ff">'x coordinate'</font><font color="#ff0000"> </font><font color="#ff0000">x</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> integer -h </font><font color="#bb00ff">'y coordinate'</font><font color="#ff0000"> </font><font color="#ff0000">y</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><b><font color="#ffffff">typeset</font></b><font color="#ff0000"> -h </font><font color="#bb00ff">'point color'</font><font color="#ff0000"> </font><font color="#ff0000">color</font><font color="#F3E651">=</font><font color="#bb00ff">"red"</font> +<pre><i><font color="#00ff00">#!/usr/bin/ksh93</font></i> +<font color="#ffffff"> </font> +<b><font color="#00ffff">typeset</font></b><font color="#ffffff"> -T </font><font color="#ffffff">Point_t</font><b><font color="#ee5896">=(</font></b> +<font color="#ffffff"> integer -h </font><font color="#cd00ff">'x coordinate'</font><font color="#ffffff"> </font><font color="#ffffff">x</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> integer -h </font><font color="#cd00ff">'y coordinate'</font><font color="#ffffff"> </font><font color="#ffffff">y</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#00ffff">typeset</font></b><font color="#ffffff"> -h </font><font color="#cd00ff">'point color'</font><font color="#ffffff"> </font><font color="#ffffff">color</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"red"</font> -<font color="#ff0000"> </font><font color="#7bc710">function getcolor </font><font color="#ff0000">{</font> -<font color="#ff0000"> print -r </font><font color="#ff0000">${_.color}</font> -<font color="#ff0000"> }</font> +<font color="#ffffff"> </font><b><font color="#ffffff">function getcolor </font></b><font color="#ffffff">{</font> +<font color="#ffffff"> print -r </font><font color="#ffffff">${_.color}</font> +<font color="#ffffff"> }</font> -<font color="#ff0000"> </font><font color="#7bc710">function setcolor </font><font color="#ff0000">{</font> -<font color="#ff0000"> _</font><font color="#F3E651">.</font><font color="#ff0000">color</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> -<font color="#ff0000"> }</font> +<font color="#ffffff"> </font><b><font color="#ffffff">function setcolor </font></b><font color="#ffffff">{</font> +<font color="#ffffff"> _</font><b><font color="#ee5896">.</font></b><font color="#ffffff">color</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> +<font color="#ffffff"> }</font> -<font color="#ff0000"> </font><font color="#7bc710">setxy()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> _</font><font color="#F3E651">.</font><font color="#ff0000">x</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> _</font><font color="#F3E651">.</font><font color="#ff0000">y</font><font color="#F3E651">=</font><font color="#ff0000">$2</font> -<font color="#ff0000"> }</font> +<font color="#ffffff"> </font><b><font color="#ffffff">setxy()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> _</font><b><font color="#ee5896">.</font></b><font color="#ffffff">x</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> _</font><b><font color="#ee5896">.</font></b><font color="#ffffff">y</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$2</font> +<font color="#ffffff"> }</font> -<font color="#ff0000"> </font><font color="#7bc710">getxy()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> print -r </font><font color="#bb00ff">"(${_.x},${_.y})"</font> -<font color="#ff0000"> }</font> -<font color="#F3E651">)</font> -<font color="#ff0000"> </font> -<font color="#ff0000">Point_t point</font> -<font color="#ff0000"> </font> -<font color="#ff0000">echo </font><font color="#bb00ff">"Initial coordinates are (${point.x},${point.y}). Color is ${point.color}"</font> -<font color="#ff0000"> </font> -<font color="#ff0000">point</font><font color="#F3E651">.</font><font color="#ff0000">setxy </font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#bb00ff">6</font> -<font color="#ff0000">point</font><font color="#F3E651">.</font><font color="#ff0000">setcolor blue</font> -<font color="#ff0000"> </font> -<font color="#ff0000">echo </font><font color="#bb00ff">"New coordinates are ${point.getxy}. Color is ${point.getcolor}"</font> -<font color="#ff0000"> </font> -<b><font color="#ffffff">exit</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> +<font color="#ffffff"> </font><b><font color="#ffffff">getxy()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> print -r </font><font color="#cd00ff">"(${_.x},${_.y})"</font> +<font color="#ffffff"> }</font> +<b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font> +<font color="#ffffff">Point_t point</font> +<font color="#ffffff"> </font> +<font color="#ffffff">echo </font><font color="#cd00ff">"Initial coordinates are (${point.x},${point.y}). Color is ${point.color}"</font> +<font color="#ffffff"> </font> +<font color="#ffffff">point</font><b><font color="#ee5896">.</font></b><font color="#ffffff">setxy </font><font color="#ff00ff">5</font><font color="#ffffff"> </font><font color="#ff00ff">6</font> +<font color="#ffffff">point</font><b><font color="#ee5896">.</font></b><font color="#ffffff">setcolor blue</font> +<font color="#ffffff"> </font> +<font color="#ffffff">echo </font><font color="#cd00ff">"New coordinates are ${point.getxy}. Color is ${point.getcolor}"</font> +<font color="#ffffff"> </font> +<b><font color="#00ffff">exit</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> </pre> <br /> <a class='textlink' href='https://blog.fpmurphy.com/2010/05/ksh93-using-types-to-create-object-orientated-scripts.html'>Using types to create object oriented Korn shell 93 scripts</a><br /> @@ -5749,18 +5749,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">package</font></b><font color="#ff0000"> main</font> +<pre><b><font color="#00ffff">package</font></b><font color="#ffffff"> main</font> -<b><font color="#ffffff">import</font></b><font color="#ff0000"> </font><font color="#bb00ff">"fmt"</font> +<b><font color="#00ffff">import</font></b><font color="#ffffff"> </font><font color="#cd00ff">"fmt"</font> -<b><font color="#ffffff">func</font></b><font color="#ff0000"> </font><font color="#7bc710">main</font><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">var</font></b><font color="#ff0000"> i int</font> -<font color="#ff0000"> f </font><font color="#F3E651">:=</font><font color="#ff0000"> </font><b><font color="#ffffff">func</font></b><font color="#F3E651">()</font><font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#ff0000">int </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#F3E651">&</font><font color="#ff0000">i</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">*</font><font color="#7bc710">f</font><font color="#F3E651">()++</font> -<font color="#ff0000"> fmt</font><font color="#F3E651">.</font><font color="#7bc710">Println</font><font color="#F3E651">(</font><font color="#ff0000">i</font><font color="#F3E651">)</font> -<font color="#F3E651">}</font> +<b><font color="#00ffff">func</font></b><font color="#ffffff"> </font><b><font color="#ffffff">main</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">var</font></b><font color="#ffffff"> i int</font> +<font color="#ffffff"> f </font><b><font color="#ee5896">:=</font></b><font color="#ffffff"> </font><b><font color="#00ffff">func</font></b><b><font color="#ee5896">()</font></b><font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><font color="#ffffff">int </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&</font></b><font color="#ffffff">i</font> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">*</font></b><b><font color="#ffffff">f</font></b><b><font color="#ee5896">()++</font></b> +<font color="#ffffff"> fmt</font><b><font color="#ee5896">.</font></b><b><font color="#ffffff">Println</font></b><b><font color="#ee5896">(</font></b><font color="#ffffff">i</font><b><font color="#ee5896">)</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <a class='textlink' href='https://go.dev/play/p/sPRdyDvXefK?__s=mk8u899owb9yurl256gw'>Go playground</a><br /> @@ -6015,13 +6015,13 @@ jgs `-=========-`() by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tm</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tl</font><font color="#F3E651">=</font><font color="#bb00ff">'tmux list-sessions'</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tn</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">new</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ta</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">attach</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tx</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">remote</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ts</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">search</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tssh</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">cluster_ssh</font> +<pre><b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tm</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tl</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'tmux list-sessions'</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tn</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ta</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">attach</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tx</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">remote</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ts</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">search</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tssh</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">cluster_ssh</font> </pre> <br /> <span>Note all <span class='inlinecode'>tmux::...</span>; those are custom shell functions doing certain things, and they aren't part of the Tmux distribution. But let's run through every aliases one by one. </span><br /> @@ -6036,23 +6036,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Create new session and if alread exists attach to it</font></i> -<font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">new ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">readonly</font></b><font color="#ff0000"> </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">date</font><font color="#F3E651">=</font><font color="#ff0000">date</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> where gdate </font><font color="#F3E651">&></font><font color="#ff0000">/dev/null</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><font color="#ff0000">date</font><font color="#F3E651">=</font><font color="#ff0000">gdate</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<pre><i><font color="#00ff00"># Create new session and if alread exists attach to it</font></i> +<font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">new ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">readonly</font></b><font color="#ffffff"> </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">date</font><b><font color="#ee5896">=</font></b><font color="#ffffff">date</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> where gdate </font><b><font color="#ee5896">&></font></b><font color="#ffffff">/dev/null</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><font color="#ffffff">date</font><b><font color="#ee5896">=</font></b><font color="#ffffff">gdate</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">cleanup_default</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -z </font><font color="#bb00ff">"$session"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">new T</font><font color="#ff0000">$($date</font><font color="#ff0000"> </font><font color="#F3E651">+%</font><font color="#ff0000">s</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux new-session -d -s </font><font color="#ff0000">$session</font> -<font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> attach-session -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> switch-client -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tn</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">new</font> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">cleanup_default</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$session"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new T</font><font color="#ffffff">$($date</font><font color="#ffffff"> </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">s</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux new-session -d -s </font><font color="#ffffff">$session</font> +<font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> attach-session -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> switch-client -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tn</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new</font> </pre> <br /> <span>There is a lot going on here. Let's have a detailed look at what it is doing. As a note, the function relies on GNU Date, so MacOS is looking for the <span class='inlinecode'>gdate</span> commands to be available. Otherwise, it will fall back to <span class='inlinecode'>date</span>. You need to install GNU Date for Mac, as it isn't installed by default there. As I use Fedora Linux on my personal Laptop and a MacBook for work, I have to make it work for both.</span><br /> @@ -6067,14 +6067,14 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">cleanup_default ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> s</font> -<font color="#ff0000"> tmux list-sessions </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">'^T.*: '</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep -F -v attached </font><font color="#F3E651">|</font> -<font color="#ff0000"> cut -d</font><font color="#F3E651">:</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> </font><b><font color="#ffffff">while</font></b><font color="#ff0000"> </font><b><font color="#ffffff">read</font></b><font color="#ff0000"> -r s</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Killing $s"</font> -<font color="#ff0000"> tmux kill-session -t </font><font color="#bb00ff">"$s"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> -<font color="#ff0000">}</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">cleanup_default ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> s</font> +<font color="#ffffff"> tmux list-sessions </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#cd00ff">'^T.*: '</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -F -v attached </font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> cut -d</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#00ffff">while</font></b><font color="#ffffff"> </font><b><font color="#00ffff">read</font></b><font color="#ffffff"> -r s</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Killing $s"</font> +<font color="#ffffff"> tmux kill-session -t </font><font color="#cd00ff">"$s"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> +<font color="#ffffff">}</font> </pre> <br /> <span>The cleanup function kills all open Tmux sessions that haven't been renamed properly yet—but only if they aren't attached (e.g., don't run in the foreground in any terminal). Cleaning them up automatically keeps my Tmux sessions as neat and tidy as possible. </span><br /> @@ -6091,16 +6091,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">attach ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">readonly</font></b><font color="#ff0000"> </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">attach ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">readonly</font></b><font color="#ffffff"> </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -z </font><font color="#bb00ff">"$session"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux attach-session </font><font color="#F3E651">||</font><font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">new</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux attach-session -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">new </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ta</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">attach</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$session"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux attach-session </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux attach-session -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">new </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ta</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">attach</font> </pre> <br /> <span>If no session is specified (as the argument of the function), it will try to attach to the first open session. If no Tmux server is running, it will create a new one with <span class='inlinecode'>tmux::new</span>. Otherwise, with a session name given as the argument, it will attach to it. If unsuccessful (e.g., the session doesn't exist), it will be created and attached to.</span><br /> @@ -6113,12 +6113,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">remote ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">readonly</font></b><font color="#ff0000"> </font><font color="#ff0000">server</font><font color="#F3E651">=</font><font color="#ff0000">$1</font> -<font color="#ff0000"> tmux new -s </font><font color="#ff0000">$server</font><font color="#ff0000"> </font><font color="#bb00ff">"ssh -t $server 'tmux attach-session || tmux'"</font><font color="#ff0000"> </font><font color="#F3E651">||</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> tmux attach-session -d -t </font><font color="#ff0000">$server</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tr</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">remote</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">remote ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">readonly</font></b><font color="#ffffff"> </font><font color="#ffffff">server</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font> +<font color="#ffffff"> tmux new -s </font><font color="#ffffff">$server</font><font color="#ffffff"> </font><font color="#cd00ff">"ssh -t $server 'tmux attach-session || tmux'"</font><font color="#ffffff"> </font><b><font color="#ee5896">||</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> tmux attach-session -d -t </font><font color="#ffffff">$server</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tr</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">remote</font> </pre> <br /> <h3 style='display: inline' id='change-of-the-tmux-prefix-for-better-nesting'>Change of the Tmux prefix for better nesting</h3><br /> @@ -6141,15 +6141,15 @@ set-option -g prefix C-g by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">search ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">tmux list-sessions </font><font color="#F3E651">|</font><font color="#ff0000"> fzf </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">:</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#F3E651">)</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -z </font><font color="#bb00ff">"$TMUX"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux attach-session -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">else</font></b> -<font color="#ff0000"> tmux switch -t </font><font color="#ff0000">$session</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">ts</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">search</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">search ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">tmux list-sessions </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> fzf </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -z </font><font color="#cd00ff">"$TMUX"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux attach-session -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">else</font></b> +<font color="#ffffff"> tmux switch -t </font><font color="#ffffff">$session</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">ts</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">search</font> </pre> <br /> <span>All it does is list all currently open sessions in <span class='inlinecode'>fzf</span>, where one of them can be searched and selected through fuzzy find, and then either switch (if already inside a session) to the other session or attach to the other session (if not yet in Tmux).</span><br /> @@ -6176,15 +6176,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">cluster_ssh ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#bb00ff">"$1"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">tssh_from_file </font><font color="#ff0000">$1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">cluster_ssh ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#cd00ff">"$1"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">tssh_from_file </font><font color="#ffffff">$1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">tssh_from_argument </font><font color="#ff0000">$@</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">alias</font></b><font color="#ff0000"> </font><font color="#ff0000">tssh</font><font color="#F3E651">=</font><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#ff0000">cluster_ssh</font> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">tssh_from_argument </font><font color="#ffffff">$@</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">alias</font></b><font color="#ffffff"> </font><font color="#ffffff">tssh</font><b><font color="#ee5896">=</font></b><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">cluster_ssh</font> </pre> <br /> <span>This function is just a wrapper around the more complex <span class='inlinecode'>tmux::tssh_from_file</span> and <span class='inlinecode'>tmux::tssh_from_argument</span> functions, as you have learned already. Most of the magic happens there.</span><br /> @@ -6197,23 +6197,23 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">tssh_from_argument ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">first_server</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">tssh_from_argument ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">first_server</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> -<font color="#ff0000"> tmux new-session -d -s </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#bb00ff">"ssh -t $first_server"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> tmux list-session </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">"^$session:"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Could not create session $session"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">2</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<font color="#ffffff"> tmux new-session -d -s </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><font color="#cd00ff">"ssh -t $first_server"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> tmux list-session </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep </font><font color="#cd00ff">"^$session:"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Could not create session $session"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> server </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#bb00ff">"${@[@]}"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> tmux split-window -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#bb00ff">"tmux select-layout tiled; ssh -t $server"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">for</font></b><font color="#ffffff"> server </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> </font><font color="#cd00ff">"${@[@]}"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> tmux split-window -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><font color="#cd00ff">"tmux select-layout tiled; ssh -t $server"</font> +<font color="#ffffff"> </font><b><font color="#00ffff">done</font></b> -<font color="#ff0000"> tmux setw -t </font><font color="#ff0000">$session</font><font color="#ff0000"> synchronize-panes on</font> -<font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> attach-session -t </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> tmux -</font><font color="#bb00ff">2</font><font color="#ff0000"> switch-client -t </font><font color="#ff0000">$session</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> tmux setw -t </font><font color="#ffffff">$session</font><font color="#ffffff"> synchronize-panes on</font> +<font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> attach-session -t </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> tmux -</font><font color="#ff00ff">2</font><font color="#ffffff"> switch-client -t </font><font color="#ffffff">$session</font> +<font color="#ffffff">}</font> </pre> <br /> <span>It expects at least two arguments. The first argument is the session name to create for the clustered SSH session. All other arguments are server hostnames or FQDNs to which to connect. The first one is used to make the initial session. All remaining ones are added to that session with <span class='inlinecode'>tmux split-window -t $session...</span>. At the end, we enable synchronized panes by default, so whenever you type, the commands will be sent to every SSH connection, thus allowing the neat ClusterSSH feature to run commands on multiple servers simultaneously. Once done, we attach (or switch, if already in Tmux) to it.</span><br /> @@ -6233,12 +6233,12 @@ bind-key P setw synchronize-panes on by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">tmux</font><font color="#F3E651">::</font><font color="#7bc710">tssh_from_file ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">serverlist</font><font color="#F3E651">=</font><font color="#ff0000">$1</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">session</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">basename </font><font color="#ff0000">$serverlist</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">.</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font><font color="#F3E651">)</font> +<pre><font color="#ffffff">tmux</font><b><font color="#ee5896">::</font></b><b><font color="#ffffff">tssh_from_file ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">serverlist</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$1</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">session</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">basename </font><font color="#ffffff">$serverlist</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> cut -d</font><b><font color="#ee5896">.</font></b><font color="#ffffff"> -f</font><font color="#ff00ff">1</font><b><font color="#ee5896">)</font></b> -<font color="#ff0000"> tmux</font><font color="#F3E651">::</font><font color="#ff0000">tssh_from_argument </font><font color="#ff0000">$session</font><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#ff0000">awk </font><font color="#bb00ff">'{ print $1} '</font><font color="#ff0000"> </font><font color="#ff0000">$serverlist</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> sed </font><font color="#bb00ff">'s/.lan./.lan/g'</font><font color="#F3E651">)</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> tmux</font><b><font color="#ee5896">::</font></b><font color="#ffffff">tssh_from_argument </font><font color="#ffffff">$session</font><font color="#ffffff"> </font><font color="#ffffff">$(</font><font color="#ffffff">awk </font><font color="#cd00ff">'{ print $1} '</font><font color="#ffffff"> </font><font color="#ffffff">$serverlist</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> sed </font><font color="#cd00ff">'s/.lan./.lan/g'</font><b><font color="#ee5896">)</font></b> +<font color="#ffffff">}</font> </pre> <br /> <h3 style='display: inline' id='tssh-examples'><span class='inlinecode'>tssh</span> examples</h3><br /> @@ -6586,12 +6586,12 @@ Art by Laura Brown by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">Cluster </font><font color="#F3E651">:</font><font color="#ff0000">UK</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#F3E651">:</font><font color="#ff0000">uk01 </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> Customer</font><font color="#F3E651">.</font><font color="#ff0000">C1A1</font><font color="#F3E651">.</font><font color="#ff0000">segments</font><font color="#F3E651">.</font><font color="#ff0000">volumes</font><font color="#F3E651">.</font><font color="#ff0000">each </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000">volume</font><font color="#F3E651">|</font> -<font color="#ff0000"> puts volume</font><font color="#F3E651">.</font><font color="#ff0000">usage_stats</font> -<font color="#ff0000"> volume</font><font color="#F3E651">.</font><font color="#ff0000">move_off! </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> volume</font><font color="#F3E651">.</font><font color="#ff0000">over_subscribed?</font> -<font color="#ff0000"> </font><b><font color="#ffffff">end</font></b> -<b><font color="#ffffff">end</font></b> +<pre><font color="#ffffff">Cluster </font><b><font color="#ee5896">:</font></b><font color="#ffffff">UK</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><b><font color="#ee5896">:</font></b><font color="#ffffff">uk01 </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> Customer</font><b><font color="#ee5896">.</font></b><font color="#ffffff">C1A1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">segments</font><b><font color="#ee5896">.</font></b><font color="#ffffff">volumes</font><b><font color="#ee5896">.</font></b><font color="#ffffff">each </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff">volume</font><b><font color="#ee5896">|</font></b> +<font color="#ffffff"> puts volume</font><b><font color="#ee5896">.</font></b><font color="#ffffff">usage_stats</font> +<font color="#ffffff"> volume</font><b><font color="#ee5896">.</font></b><font color="#ffffff">move_off! </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> volume</font><b><font color="#ee5896">.</font></b><font color="#ffffff">over_subscribed?</font> +<font color="#ffffff"> </font><b><font color="#00ffff">end</font></b> +<b><font color="#00ffff">end</font></b> </pre> <br /> <span>I am abandoning this project because my workplace has stopped the annual pet project competition, and I have other more important projects to work on at the moment.</span><br /> @@ -6967,38 +6967,38 @@ _____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. ksh under-water (((\'/ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/bin/ksh</font></i> +<pre><i><font color="#00ff00">#!/bin/ksh</font></i> -<font color="#ff0000">ZONES_DIR</font><font color="#F3E651">=</font><font color="#ff0000">/var/nsd/zones/master</font><font color="#F3E651">/</font> -<font color="#ff0000">DEFAULT_MASTER</font><font color="#F3E651">=</font><font color="#ff0000">fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> -<font color="#ff0000">DEFAULT_STANDBY</font><font color="#F3E651">=</font><font color="#ff0000">blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ffffff">ZONES_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/var/nsd/zones/master</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff">DEFAULT_MASTER</font><b><font color="#ee5896">=</font></b><font color="#ffffff">fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> +<font color="#ffffff">DEFAULT_STANDBY</font><b><font color="#ee5896">=</font></b><font color="#ffffff">blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font> -<font color="#7bc710">determine_master_and_standby ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$DEFAULT_MASTER</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$DEFAULT_STANDBY</font> +<b><font color="#ffffff">determine_master_and_standby ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$DEFAULT_MASTER</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$DEFAULT_STANDBY</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> ftp -</font><font color="#bb00ff">4</font><font color="#ff0000"> -o - https</font><font color="#F3E651">://</font><font color="#ff0000">$master</font><font color="#ff0000">/index</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q </font><font color="#bb00ff">"Welcome to $master"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"https://$master/index.txt IPv4 health check failed"</font> -<font color="#ff0000"> </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><b><font color="#ffffff">elif</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> ftp -</font><font color="#bb00ff">6</font><font color="#ff0000"> -o - https</font><font color="#F3E651">://</font><font color="#ff0000">$master</font><font color="#ff0000">/index</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q </font><font color="#bb00ff">"Welcome to $master"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"https://$master/index.txt IPv6 health check failed"</font> -<font color="#ff0000"> </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">0</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">$health_ok</font><font color="#ff0000"> -eq </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">tmp</font><font color="#F3E651">=</font><font color="#ff0000">$master</font> -<font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$standby</font> -<font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$tmp</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> ftp -</font><font color="#ff00ff">4</font><font color="#ffffff"> -o - https</font><b><font color="#ee5896">://</font></b><font color="#ffffff">$master</font><font color="#ffffff">/index</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q </font><font color="#cd00ff">"Welcome to $master"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"https://$master/index.txt IPv4 health check failed"</font> +<font color="#ffffff"> </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#00ffff">elif</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> ftp -</font><font color="#ff00ff">6</font><font color="#ffffff"> -o - https</font><b><font color="#ee5896">://</font></b><font color="#ffffff">$master</font><font color="#ffffff">/index</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q </font><font color="#cd00ff">"Welcome to $master"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"https://$master/index.txt IPv6 health check failed"</font> +<font color="#ffffff"> </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">$health_ok</font><font color="#ffffff"> -eq </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">tmp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$master</font> +<font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$standby</font> +<font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$tmp</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000"> </font><font color="#F3E651">.</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b> +<font color="#ffffff">}</font> </pre> <br /> <span>The failover scripts looks for the <span class='inlinecode'> ; Enable failover</span> string in the DNS zone files and swaps the <span class='inlinecode'>A</span> and <span class='inlinecode'>AAAA</span> records of the DNS entries accordingly:</span><br /> @@ -7007,42 +7007,42 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">fishfinger$ grep failover /var/nsd/zones/master/foo</font><font color="#F3E651">.</font><font color="#ff0000">zone</font><font color="#F3E651">.</font><font color="#ff0000">zone</font> -<font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">www </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">www </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">standby </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> -<font color="#ff0000">standby </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a01</font><font color="#F3E651">:</font><font color="#ff0000">4f8</font><font color="#F3E651">:</font><font color="#ff0000">c17</font><font color="#F3E651">:</font><font color="#ff0000">20f1</font><font color="#F3E651">::</font><font color="#bb00ff">42</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font> +<pre><font color="#ffffff">fishfinger$ grep failover /var/nsd/zones/master/foo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zone</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zone</font> +<font color="#ffffff"> </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff"> </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a03</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">6000</font><b><font color="#ee5896">:</font></b><font color="#ffffff">6f67</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">624</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">www </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">www </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a03</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">6000</font><b><font color="#ee5896">:</font></b><font color="#ffffff">6f67</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">624</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">standby </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> +<font color="#ffffff">standby </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a01</font><b><font color="#ee5896">:</font></b><font color="#ffffff">4f8</font><b><font color="#ee5896">:</font></b><font color="#ffffff">c17</font><b><font color="#ee5896">:</font></b><font color="#ffffff">20f1</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">42</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#7bc710">transform ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> sed -E </font><font color="#bb00ff">'</font> -<font color="#bb00ff"> /IN A .*; Enable failover/ {</font> -<font color="#bb00ff"> /^standby/! {</font> -<font color="#bb00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN A '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/master_a</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> /^standby/ {</font> -<font color="#bb00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN A '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/standby_a</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> /IN AAAA .*; Enable failover/ {</font> -<font color="#bb00ff"> /^standby/! {</font> -<font color="#bb00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN AAAA '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/master_aaaa</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> /^standby/ {</font> -<font color="#bb00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN AAAA '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/standby_aaaa</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> / ; serial/ {</font> -<font color="#bb00ff"> s/^( +) ([0-9]+) .*; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> '</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">s</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font> -<font color="#bb00ff"> }</font> -<font color="#bb00ff"> '</font> -<font color="#ff0000">}</font> +<pre><b><font color="#ffffff">transform ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> sed -E </font><font color="#cd00ff">'</font> +<font color="#cd00ff"> /IN A .*; Enable failover/ {</font> +<font color="#cd00ff"> /^standby/! {</font> +<font color="#cd00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN A '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/master_a</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> /^standby/ {</font> +<font color="#cd00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN A '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/standby_a</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> /IN AAAA .*; Enable failover/ {</font> +<font color="#cd00ff"> /^standby/! {</font> +<font color="#cd00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN AAAA '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/master_aaaa</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> /^standby/ {</font> +<font color="#cd00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN AAAA '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/standby_aaaa</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> / ; serial/ {</font> +<font color="#cd00ff"> s/^( +) ([0-9]+) .*; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> '</font><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">s</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font> +<font color="#cd00ff"> }</font> +<font color="#cd00ff"> '</font> +<font color="#ffffff">}</font> </pre> <br /> <span>After the failover, the script reloads <span class='inlinecode'>nsd</span> and performs a sanity check to see if DNS still works. If not, a rollback will be performed:</span><br /> @@ -7051,48 +7051,48 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#! Race condition !#</font></i> -<font color="#ff0000"> </font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#ff0000">$zone_file</font> -<b><font color="#ffffff">fi</font></b> +<pre><i><font color="#00ff00">#! Race condition !#</font></i> +<font color="#ffffff"> </font> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><font color="#ffffff">$zone_file</font> +<b><font color="#00ffff">fi</font></b> -<font color="#ff0000">cat </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> transform </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font> +<font color="#ffffff">cat </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> transform </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font> -<font color="#ff0000">grep -v </font><font color="#bb00ff">' ; serial'</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font> -<font color="#ff0000">grep -v </font><font color="#bb00ff">' ; serial'</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#F3E651">></font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">old</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font> +<font color="#ffffff">grep -v </font><font color="#cd00ff">' ; serial'</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font> +<font color="#ffffff">grep -v </font><font color="#cd00ff">' ; serial'</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><b><font color="#ee5896">></font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">old</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font> -<font color="#ff0000">echo </font><font color="#bb00ff">"Has zone $zone_file changed?"</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> diff -u </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">old</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"The zone $zone_file hasn't changed"</font> -<font color="#ff0000"> rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.*.</font><font color="#ff0000">tmp</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<b><font color="#ffffff">fi</font></b> +<font color="#ffffff">echo </font><font color="#cd00ff">"Has zone $zone_file changed?"</font> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> diff -u </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">old</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"The zone $zone_file hasn't changed"</font> +<font color="#ffffff"> rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.*.</font></b><font color="#ffffff">tmp</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<b><font color="#00ffff">fi</font></b> -<font color="#ff0000">cp </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak</font> -<font color="#ff0000">mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$zone_file</font> -<font color="#ff0000">rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.*.</font><font color="#ff0000">tmp</font> -<font color="#ff0000">echo </font><font color="#bb00ff">"Reloading nsd"</font> -<font color="#ff0000">nsd-control reload</font> +<font color="#ffffff">cp </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak</font> +<font color="#ffffff">mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$zone_file</font> +<font color="#ffffff">rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.*.</font></b><font color="#ffffff">tmp</font> +<font color="#ffffff">echo </font><font color="#cd00ff">"Reloading nsd"</font> +<font color="#ffffff">nsd-control reload</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> zone_is_ok </font><font color="#ff0000">$zone</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Rolling back $zone_file changes"</font> -<font color="#ff0000"> cp </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">invalid</font> -<font color="#ff0000"> mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#ff0000">$zone_file</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Reloading nsd"</font> -<font color="#ff0000"> nsd-control reload</font> -<font color="#ff0000"> zone_is_ok </font><font color="#ff0000">$zone</font> -<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">3</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> zone_is_ok </font><font color="#ffffff">$zone</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Rolling back $zone_file changes"</font> +<font color="#ffffff"> cp </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">invalid</font> +<font color="#ffffff"> mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><font color="#ffffff">$zone_file</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Reloading nsd"</font> +<font color="#ffffff"> nsd-control reload</font> +<font color="#ffffff"> zone_is_ok </font><font color="#ffffff">$zone</font> +<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font> +<b><font color="#00ffff">fi</font></b> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> cleanup </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> invalid bak</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">$cleanup</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">$cleanup</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<b><font color="#ffffff">done</font></b> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> cleanup </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> invalid bak</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">$cleanup</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">$cleanup</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<b><font color="#00ffff">done</font></b> -<font color="#ff0000">echo </font><font color="#bb00ff">"Failover of zone $zone to $MASTER completed"</font> -<b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font> +<font color="#ffffff">echo </font><font color="#cd00ff">"Failover of zone $zone to $MASTER completed"</font> +<b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font> </pre> <br /> <span>A non-zero return code (here, 3 when a rollback and 1 when a DNS failover was performed) will cause CRON to send an E-Mail with the whole script output.</span><br /> @@ -7149,13 +7149,13 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Weekly auto-failover for Let's Encrypt automation</font></i> -<b><font color="#ffffff">local</font></b><font color="#ff0000"> -i -r </font><font color="#ff0000">week_of_the_year</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">U</font><font color="#F3E651">)</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#F3E651">(</font><font color="#ff0000"> week_of_the_year </font><font color="#F3E651">%</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#F3E651">))</font><font color="#ff0000"> -eq </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">tmp</font><font color="#F3E651">=</font><font color="#ff0000">$master</font> -<font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$standby</font> -<font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$tmp</font> -<b><font color="#ffffff">fi</font></b> +<pre><i><font color="#00ff00"># Weekly auto-failover for Let's Encrypt automation</font></i> +<b><font color="#00ffff">local</font></b><font color="#ffffff"> -i -r </font><font color="#ffffff">week_of_the_year</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">U</font><b><font color="#ee5896">)</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">$(</font><b><font color="#ee5896">(</font></b><font color="#ffffff"> week_of_the_year </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><b><font color="#ee5896">))</font></b><font color="#ffffff"> -eq </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">tmp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$master</font> +<font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$standby</font> +<font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$tmp</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>This way, a DNS failover is performed weekly so that the ACME automation can update the Let's Encrypt certificates (for master and standby) before they expire on each VM.</span><br /> @@ -7534,8 +7534,8 @@ SSFISHKISSFISHKISSFISHKISSFISHKIS SFIS by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ doas installboot sd0 </font><i><font color="#ababab"># Update the bootloader (not for every upgrade required)</font></i> -<font color="#ff0000">$ doas sysupgrade </font><i><font color="#ababab"># Update all binaries (including Kernel)</font></i> +<pre><font color="#ffffff">$ doas installboot sd0 </font><i><font color="#00ff00"># Update the bootloader (not for every upgrade required)</font></i> +<font color="#ffffff">$ doas sysupgrade </font><i><font color="#00ff00"># Update all binaries (including Kernel)</font></i> </pre> <br /> <span><span class='inlinecode'>sysupgrade</span> downloaded and upgraded to the next release and rebooted the system. After the reboot, I run:</span><br /> @@ -7544,9 +7544,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ doas sysmerge </font><i><font color="#ababab"># Update system configuration files</font></i> -<font color="#ff0000">$ doas pkg_add -u </font><i><font color="#ababab"># Update all packages</font></i> -<font color="#ff0000">$ doas reboot </font><i><font color="#ababab"># Just in case, reboot one more time</font></i> +<pre><font color="#ffffff">$ doas sysmerge </font><i><font color="#00ff00"># Update system configuration files</font></i> +<font color="#ffffff">$ doas pkg_add -u </font><i><font color="#00ff00"># Update all packages</font></i> +<font color="#ffffff">$ doas reboot </font><i><font color="#00ff00"># Just in case, reboot one more time</font></i> </pre> <br /> <span>That's it! Took me around 5 minutes in total! No issues, only these few comands, only 5 minutes! It just works! No problems, no conflicts, no tons (actually none) config file merge conflicts.</span><br /> @@ -7715,24 +7715,24 @@ jgs^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">log ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">level</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">message</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">pid</font><font color="#F3E651">=</font><font color="#bb00ff">"$$"</font> +<b><font color="#ffffff">log ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">level</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">message</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$1"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">shift</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">pid</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">"$$"</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">callee</font><font color="#F3E651">=</font><font color="#ff0000">${FUNCNAME[1]}</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">stamp</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">Y</font><font color="#F3E651">%</font><font color="#ff0000">m</font><font color="#F3E651">%</font><font color="#ff0000">d-</font><font color="#F3E651">%</font><font color="#ff0000">H</font><font color="#F3E651">%</font><font color="#ff0000">M</font><font color="#F3E651">%</font><font color="#ff0000">S</font><font color="#F3E651">)</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">callee</font><b><font color="#ee5896">=</font></b><font color="#ffffff">${FUNCNAME[1]}</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -r </font><font color="#ffffff">stamp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">Y</font><b><font color="#ee5896">%</font></b><font color="#ffffff">m</font><b><font color="#ee5896">%</font></b><font color="#ffffff">d-</font><b><font color="#ee5896">%</font></b><font color="#ffffff">H</font><b><font color="#ee5896">%</font></b><font color="#ffffff">M</font><b><font color="#ee5896">%</font></b><font color="#ffffff">S</font><b><font color="#ee5896">)</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$level|$stamp|$pid|$callee|$message"</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">2</font> -<font color="#ff0000">}</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$level|$stamp|$pid|$callee|$message"</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">2</font> +<font color="#ffffff">}</font> -<font color="#7bc710">at_home_friday_evening ()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> log INFO </font><font color="#bb00ff">'One Peperoni Pizza, please'</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">at_home_friday_evening ()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> log INFO </font><font color="#cd00ff">'One Peperoni Pizza, please'</font> +<font color="#ffffff">}</font> -<font color="#ff0000">at_home_friday_evening</font> +<font color="#ffffff">at_home_friday_evening</font> </pre> <br /> <span>The output is as follows:</span><br /> @@ -7741,8 +7741,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">❯ </font><font color="#F3E651">.</font><font color="#ff0000">/logexample</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<font color="#ff0000">INFO</font><font color="#F3E651">|</font><font color="#bb00ff">20231210</font><font color="#ff0000">-</font><font color="#bb00ff">082732</font><font color="#F3E651">|</font><font color="#bb00ff">123002</font><font color="#F3E651">|</font><font color="#ff0000">at_home_friday_evening</font><font color="#F3E651">|</font><font color="#ff0000">One Peperoni Pizza</font><font color="#F3E651">,</font><font color="#ff0000"> please</font> +<pre><font color="#ffffff">❯ </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/logexample</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<font color="#ffffff">INFO</font><b><font color="#ee5896">|</font></b><font color="#ff00ff">20231210</font><font color="#ffffff">-</font><font color="#ff00ff">082732</font><b><font color="#ee5896">|</font></b><font color="#ff00ff">123002</font><b><font color="#ee5896">|</font></b><font color="#ffffff">at_home_friday_evening</font><b><font color="#ee5896">|</font></b><font color="#ffffff">One Peperoni Pizza</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> please</font> </pre> <br /> <h2 style='display: inline' id='--'><span class='inlinecode'>:(){ :|:& };:</span></h2><br /> @@ -7776,18 +7776,18 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">outer()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><font color="#7bc710">inner()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Intel inside!'</font> -<font color="#ff0000"> }</font> -<font color="#ff0000"> inner</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">outer()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#ffffff">inner()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Intel inside!'</font> +<font color="#ffffff"> }</font> +<font color="#ffffff"> inner</font> +<font color="#ffffff">}</font> -<font color="#ff0000">inner</font> -<font color="#ff0000">outer</font> -<font color="#ff0000">inner</font> +<font color="#ffffff">inner</font> +<font color="#ffffff">outer</font> +<font color="#ffffff">inner</font> </pre> <br /> <span>And let's execute it:</span><br /> @@ -7805,26 +7805,26 @@ Intel inside! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">outer1()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><font color="#7bc710">inner()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Intel inside!'</font> -<font color="#ff0000"> }</font> -<font color="#ff0000"> inner</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">outer1()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#ffffff">inner()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Intel inside!'</font> +<font color="#ffffff"> }</font> +<font color="#ffffff"> inner</font> +<font color="#ffffff">}</font> -<font color="#7bc710">outer2()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><font color="#7bc710">inner()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">'Wintel inside!'</font> -<font color="#ff0000"> }</font> -<font color="#ff0000"> inner</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">outer2()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#ffffff">inner()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">'Wintel inside!'</font> +<font color="#ffffff"> }</font> +<font color="#ffffff"> inner</font> +<font color="#ffffff">}</font> -<font color="#ff0000">outer1</font> -<font color="#ff0000">inner</font> -<font color="#ff0000">outer2</font> -<font color="#ff0000">inner</font> +<font color="#ffffff">outer1</font> +<font color="#ffffff">inner</font> +<font color="#ffffff">outer2</font> +<font color="#ffffff">inner</font> </pre> <br /> <span>And let's run it:</span><br /> @@ -7845,14 +7845,14 @@ Wintel inside! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">some_expensive_operations()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Doing expensive operations with '$1' from pid $$"</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">some_expensive_operations()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Doing expensive operations with '$1' from pid $$"</font> +<font color="#ffffff">}</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> {</font><font color="#bb00ff">0</font><font color="#F3E651">..</font><font color="#bb00ff">9</font><font color="#ff0000">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> echo </font><font color="#ff0000">$i</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> xargs -P</font><font color="#bb00ff">10</font><font color="#ff0000"> -I{} bash -c </font><font color="#bb00ff">'some_expensive_operations "{}"'</font> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> {</font><font color="#ff00ff">0</font><b><font color="#ee5896">..</font></b><font color="#ff00ff">9</font><font color="#ffffff">}</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> echo </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> xargs -P</font><font color="#ff00ff">10</font><font color="#ffffff"> -I{} bash -c </font><font color="#cd00ff">'some_expensive_operations "{}"'</font> </pre> <br /> <span>We try here to run ten parallel processes; each of them should run the <span class='inlinecode'>some_expensive_operations</span> function with a different argument. The arguments are provided to <span class='inlinecode'>xargs</span> through <span class='inlinecode'>STDIN</span> one per line. When executed, we get this:</span><br /> @@ -7877,15 +7877,15 @@ bash: line 1: some_expensive_operations: command not found by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">some_expensive_operations()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"Doing expensive operations with '$1' from pid $$"</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> -f some_expensive_operations</font> +<b><font color="#ffffff">some_expensive_operations()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"Doing expensive operations with '$1' from pid $$"</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> -f some_expensive_operations</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> {</font><font color="#bb00ff">0</font><font color="#F3E651">..</font><font color="#bb00ff">9</font><font color="#ff0000">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> echo </font><font color="#ff0000">$i</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> xargs -P</font><font color="#bb00ff">10</font><font color="#ff0000"> -I{} bash -c </font><font color="#bb00ff">'some_expensive_operations "{}"'</font> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> {</font><font color="#ff00ff">0</font><b><font color="#ee5896">..</font></b><font color="#ff00ff">9</font><font color="#ffffff">}</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> echo </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> xargs -P</font><font color="#ff00ff">10</font><font color="#ffffff"> -I{} bash -c </font><font color="#cd00ff">'some_expensive_operations "{}"'</font> </pre> <br /> <span>When we run this now, we get:</span><br /> @@ -7910,19 +7910,19 @@ Doing expensive operations with '9' from pid 132840 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">some_other_function()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$1"</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">some_other_function()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$1"</font> +<font color="#ffffff">}</font> -<font color="#7bc710">some_expensive_operations()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> some_other_function </font><font color="#bb00ff">"Doing expensive operations with '$1' from pid $$"</font> -<font color="#ff0000">}</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> -f some_expensive_operations</font> +<b><font color="#ffffff">some_expensive_operations()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> some_other_function </font><font color="#cd00ff">"Doing expensive operations with '$1' from pid $$"</font> +<font color="#ffffff">}</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> -f some_expensive_operations</font> -<b><font color="#ffffff">for</font></b><font color="#ff0000"> i </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> {</font><font color="#bb00ff">0</font><font color="#F3E651">..</font><font color="#bb00ff">9</font><font color="#ff0000">}</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b><font color="#ff0000"> echo </font><font color="#ff0000">$i</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> xargs -P</font><font color="#bb00ff">10</font><font color="#ff0000"> -I{} bash -c </font><font color="#bb00ff">'some_expensive_operations "{}"'</font> +<b><font color="#00ffff">for</font></b><font color="#ffffff"> i </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> {</font><font color="#ff00ff">0</font><b><font color="#ee5896">..</font></b><font color="#ff00ff">9</font><font color="#ffffff">}</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b><font color="#ffffff"> echo </font><font color="#ffffff">$i</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">done</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> xargs -P</font><font color="#ff00ff">10</font><font color="#ffffff"> -I{} bash -c </font><font color="#cd00ff">'some_expensive_operations "{}"'</font> </pre> <br /> <span>... because <span class='inlinecode'>some_other_function</span> isn't exported! You will also need to add an <span class='inlinecode'>export -f some_other_function</span>!</span><br /> @@ -7935,22 +7935,22 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#7bc710">foo()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">bar </font><i><font color="#ababab"># Declare local/dynamic variable</font></i> -<font color="#ff0000"> bar</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$foo"</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">foo()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">bar </font><i><font color="#00ff00"># Declare local/dynamic variable</font></i> +<font color="#ffffff"> bar</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$foo"</font> +<font color="#ffffff">}</font> -<font color="#7bc710">bar()</font><font color="#ff0000"> {</font> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$foo"</font> -<font color="#ff0000"> </font><font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">baz</font> -<font color="#ff0000">}</font> +<b><font color="#ffffff">bar()</font></b><font color="#ffffff"> {</font> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$foo"</font> +<font color="#ffffff"> </font><font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">baz</font> +<font color="#ffffff">}</font> -<font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">foo </font><i><font color="#ababab"># Declare global variable</font></i> -<font color="#ff0000">foo </font><i><font color="#ababab"># Call function foo</font></i> -<font color="#ff0000">echo </font><font color="#bb00ff">"$foo"</font> +<font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">foo </font><i><font color="#00ff00"># Declare global variable</font></i> +<font color="#ffffff">foo </font><i><font color="#00ff00"># Call function foo</font></i> +<font color="#ffffff">echo </font><font color="#cd00ff">"$foo"</font> </pre> <br /> <span>Let's pause a minute. What do you think the output would be?</span><br /> @@ -7975,34 +7975,34 @@ foo by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -r </font><font color="#ff0000">foo</font><font color="#F3E651">=</font><font color="#ff0000">foo</font> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -r </font><font color="#ff0000">bar</font><font color="#F3E651">=</font><font color="#ff0000">bar</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -r </font><font color="#ffffff">foo</font><b><font color="#ee5896">=</font></b><font color="#ffffff">foo</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -r </font><font color="#ffffff">bar</font><b><font color="#ee5896">=</font></b><font color="#ffffff">bar</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> bar </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok1</font> -<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok1</font> +<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b> +<b><font color="#00ffff">fi</font></b> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok2a</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok2a</font> +<b><font color="#00ffff">fi</font></b> -<font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> echo ok2b</font> +<b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> echo ok2b</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">]];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok3a</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">]];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok3a</font> +<b><font color="#00ffff">fi</font></b> -<font color="#ff0000"> </font><font color="#F3E651">[[</font><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">==</font><font color="#ff0000"> bar </font><font color="#F3E651">]]</font><font color="#ff0000"> </font><font color="#F3E651">&&</font><font color="#ff0000"> echo ok3b</font> +<font color="#ffffff"> </font><b><font color="#ee5896">[[</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">==</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">]]</font></b><font color="#ffffff"> </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> echo ok3b</font> -<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> bar</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo ok4a</font> -<b><font color="#ffffff">fi</font></b> +<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> bar</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo ok4a</font> +<b><font color="#00ffff">fi</font></b> -<b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> foo </font><font color="#F3E651">&&</font><font color="#ff0000"> </font><b><font color="#ffffff">test</font></b><font color="#ff0000"> </font><font color="#bb00ff">"$bar"</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> bar </font><font color="#F3E651">&&</font><font color="#ff0000"> echo ok4b</font> +<b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> foo </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> </font><b><font color="#00ffff">test</font></b><font color="#ffffff"> </font><font color="#cd00ff">"$bar"</font><font color="#ffffff"> </font><b><font color="#ee5896">=</font></b><font color="#ffffff"> bar </font><b><font color="#ee5896">&&</font></b><font color="#ffffff"> echo ok4b</font> </pre> <br /> <span>The output we get is:</span><br /> @@ -8026,18 +8026,18 @@ ok4b by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<i><font color="#ababab"># Single line comment</font></i> +<i><font color="#00ff00"># Single line comment</font></i> -<i><font color="#ababab"># These are two single line</font></i> -<i><font color="#ababab"># comments one after another</font></i> +<i><font color="#00ff00"># These are two single line</font></i> +<i><font color="#00ff00"># comments one after another</font></i> -<font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#F3E651"><<</font><font color="#ff0000">COMMENT</font> -<font color="#ff0000">This is another way a</font> -<font color="#ff0000">multi line comment</font> -<font color="#ff0000">could be written</font><font color="#F3E651">!</font> -<font color="#ff0000">COMMENT</font> +<b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><b><font color="#ee5896"><<</font></b><font color="#ffffff">COMMENT</font> +<font color="#ffffff">This is another way a</font> +<font color="#ffffff">multi line comment</font> +<font color="#ffffff">could be written</font><b><font color="#ee5896">!</font></b> +<font color="#ffffff">COMMENT</font> </pre> <br /> <span>I will not demonstrate the execution of this script, as it won't print anything! It's obviously not the most pretty way of commenting on your code, but it could sometimes be handy!</span><br /> @@ -8050,11 +8050,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab">#!/usr/bin/env bash</font></i> +<pre><i><font color="#00ff00">#!/usr/bin/env bash</font></i> -<font color="#ff0000">echo foo</font> -<font color="#ff0000">echo echo baz </font><font color="#F3E651">>></font><font color="#ff0000"> </font><font color="#ff0000">$0</font> -<font color="#ff0000">echo bar</font> +<font color="#ffffff">echo foo</font> +<font color="#ffffff">echo echo baz </font><b><font color="#ee5896">>></font></b><font color="#ffffff"> </font><font color="#ffffff">$0</font> +<font color="#ffffff">echo bar</font> </pre> <br /> <span>When it is run, it will do:</span><br /> @@ -8432,42 +8432,42 @@ photoalbum makemake by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> photoalbum makemake</font> -<font color="#ff0000">You may now customize </font><font color="#F3E651">.</font><font color="#ff0000">/photoalbumrc and run make</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> photoalbum makemake</font> +<font color="#ffffff">You may now customize </font><b><font color="#ee5896">.</font></b><font color="#ffffff">/photoalbumrc and run make</font> -<font color="#F3E651">%</font><font color="#ff0000"> cat Makefile</font> -<font color="#ff0000">all</font><font color="#F3E651">:</font> -<font color="#ff0000"> photoalbum generate photoalbumrc</font> -<font color="#ff0000">clean</font><font color="#F3E651">:</font> -<font color="#ff0000"> photoalbum clean photoalbumrc</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> cat Makefile</font> +<font color="#ffffff">all</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff"> photoalbum generate photoalbumrc</font> +<font color="#ffffff">clean</font><b><font color="#ee5896">:</font></b> +<font color="#ffffff"> photoalbum clean photoalbumrc</font> -<font color="#F3E651">%</font><font color="#ff0000"> cat photoalbumrc</font> -<i><font color="#ababab"># The title of the photoalbum</font></i> -<font color="#ff0000">TITLE</font><font color="#F3E651">=</font><font color="#bb00ff">'A simple Photoalbum'</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> cat photoalbumrc</font> +<i><font color="#00ff00"># The title of the photoalbum</font></i> +<font color="#ffffff">TITLE</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'A simple Photoalbum'</font> -<i><font color="#ababab"># Thumbnail height geometry</font></i> -<font color="#ff0000">THUMBHEIGHT</font><font color="#F3E651">=</font><font color="#bb00ff">300</font> -<i><font color="#ababab"># Normal geometry height (when viewing photo). Uncomment, to keep original size.</font></i> -<font color="#ff0000">HEIGHT</font><font color="#F3E651">=</font><font color="#bb00ff">1200</font> -<i><font color="#ababab"># Max previews per page.</font></i> -<font color="#ff0000">MAXPREVIEWS</font><font color="#F3E651">=</font><font color="#bb00ff">40</font> -<i><font color="#ababab"># Randomly shuffle all previews.</font></i> -<i><font color="#ababab"># SHUFFLE=yes</font></i> +<i><font color="#00ff00"># Thumbnail height geometry</font></i> +<font color="#ffffff">THUMBHEIGHT</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">300</font> +<i><font color="#00ff00"># Normal geometry height (when viewing photo). Uncomment, to keep original size.</font></i> +<font color="#ffffff">HEIGHT</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1200</font> +<i><font color="#00ff00"># Max previews per page.</font></i> +<font color="#ffffff">MAXPREVIEWS</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">40</font> +<i><font color="#00ff00"># Randomly shuffle all previews.</font></i> +<i><font color="#00ff00"># SHUFFLE=yes</font></i> -<i><font color="#ababab"># Diverse directories, need to be full paths, not relative!</font></i> -<font color="#ff0000">INCOMING_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/incoming</font> -<font color="#ff0000">DIST_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$(pwd)</font><font color="#ff0000">/dist</font> -<font color="#ff0000">TEMPLATE_DIR</font><font color="#F3E651">=</font><font color="#ff0000">/usr/share/photoalbum/templates/default</font> -<i><font color="#ababab">#TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font></i> +<i><font color="#00ff00"># Diverse directories, need to be full paths, not relative!</font></i> +<font color="#ffffff">INCOMING_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(pwd)</font><font color="#ffffff">/incoming</font> +<font color="#ffffff">DIST_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(pwd)</font><font color="#ffffff">/dist</font> +<font color="#ffffff">TEMPLATE_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/usr/share/photoalbum/templates/default</font> +<i><font color="#00ff00">#TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font></i> -<i><font color="#ababab"># Includes a .tar of the incoming dir in the dist, can be yes or no</font></i> -<font color="#ff0000">TARBALL_INCLUDE</font><font color="#F3E651">=</font><font color="#ff0000">yes</font> -<font color="#ff0000">TARBALL_SUFFIX</font><font color="#F3E651">=.</font><font color="#ff0000">tar</font> -<font color="#ff0000">TAR_OPTS</font><font color="#F3E651">=</font><font color="#bb00ff">'-c'</font> +<i><font color="#00ff00"># Includes a .tar of the incoming dir in the dist, can be yes or no</font></i> +<font color="#ffffff">TARBALL_INCLUDE</font><b><font color="#ee5896">=</font></b><font color="#ffffff">yes</font> +<font color="#ffffff">TARBALL_SUFFIX</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">tar</font> +<font color="#ffffff">TAR_OPTS</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'-c'</font> -<i><font color="#ababab"># Some debugging options</font></i> -<i><font color="#ababab">#set -e</font></i> -<i><font color="#ababab">#set -x</font></i> +<i><font color="#00ff00"># Some debugging options</font></i> +<i><font color="#00ff00">#set -e</font></i> +<i><font color="#00ff00">#set -x</font></i> </pre> <br /> <span>In the case for <span class='inlinecode'>irregular.ninja</span>, I changed the defaults to the following:</span><br /> @@ -8476,38 +8476,38 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">--- photoalbumrc 2023-10-29 21:42:00.894202045 +0200</font> -<font color="#ff0000">+++ photoalbumrc.new 2023-06-04 10:40:08.030994440 +0300</font> -<font color="#ff0000">@@ -1,23 +1,24 @@</font> -<font color="#ff0000"> # The title of the photoalbum</font> -<font color="#ff0000">-TITLE='A simple Photoalbum'</font> -<font color="#ff0000">+TITLE='Irregular.Ninja'</font> +<pre><font color="#ffffff">--- photoalbumrc 2023-10-29 21:42:00.894202045 +0200</font> +<font color="#ffffff">+++ photoalbumrc.new 2023-06-04 10:40:08.030994440 +0300</font> +<font color="#ffffff">@@ -1,23 +1,24 @@</font> +<font color="#ffffff"> # The title of the photoalbum</font> +<font color="#ffffff">-TITLE='A simple Photoalbum'</font> +<font color="#ffffff">+TITLE='Irregular.Ninja'</font> -<font color="#ff0000"> # Thumbnail height geometry</font> -<font color="#ff0000">-THUMBHEIGHT=300</font> -<font color="#ff0000">+THUMBHEIGHT=400</font> -<font color="#ff0000"> # Normal geometry height (when viewing photo). Uncomment, to keep original size.</font> -<font color="#ff0000">-HEIGHT=1200</font> -<font color="#ff0000">+HEIGHT=1800</font> -<font color="#ff0000"> # Max previews per page.</font> -<font color="#ff0000"> MAXPREVIEWS=40</font> -<font color="#ff0000">-# Randomly shuffle all previews.</font> -<font color="#ff0000">-# SHUFFLE=yes</font> -<font color="#ff0000">+# Randomly shuffle</font> -<font color="#ff0000">+SHUFFLE=yes</font> +<font color="#ffffff"> # Thumbnail height geometry</font> +<font color="#ffffff">-THUMBHEIGHT=300</font> +<font color="#ffffff">+THUMBHEIGHT=400</font> +<font color="#ffffff"> # Normal geometry height (when viewing photo). Uncomment, to keep original size.</font> +<font color="#ffffff">-HEIGHT=1200</font> +<font color="#ffffff">+HEIGHT=1800</font> +<font color="#ffffff"> # Max previews per page.</font> +<font color="#ffffff"> MAXPREVIEWS=40</font> +<font color="#ffffff">-# Randomly shuffle all previews.</font> +<font color="#ffffff">-# SHUFFLE=yes</font> +<font color="#ffffff">+# Randomly shuffle</font> +<font color="#ffffff">+SHUFFLE=yes</font> -<font color="#ff0000"> # Diverse directories, need to be full paths, not relative!</font> -<font color="#ff0000">-INCOMING_DIR=$(pwd)/incoming</font> -<font color="#ff0000">+INCOMING_DIR=~/Nextcloud/Photos/irregular.ninja</font> -<font color="#ff0000"> DIST_DIR=$(pwd)/dist</font> -<font color="#ff0000"> TEMPLATE_DIR=/usr/share/photoalbum/templates/default</font> -<font color="#ff0000"> #TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font> +<font color="#ffffff"> # Diverse directories, need to be full paths, not relative!</font> +<font color="#ffffff">-INCOMING_DIR=$(pwd)/incoming</font> +<font color="#ffffff">+INCOMING_DIR=~/Nextcloud/Photos/irregular.ninja</font> +<font color="#ffffff"> DIST_DIR=$(pwd)/dist</font> +<font color="#ffffff"> TEMPLATE_DIR=/usr/share/photoalbum/templates/default</font> +<font color="#ffffff"> #TEMPLATE_DIR=/usr/share/photoalbum/templates/minimal</font> -<font color="#ff0000"> # Includes a .tar of the incoming dir in the dist, can be yes or no</font> -<font color="#ff0000">-TARBALL_INCLUDE=yes</font> -<font color="#ff0000">+TARBALL_INCLUDE=no</font> -<font color="#ff0000"> TARBALL_SUFFIX=.tar</font> -<font color="#ff0000"> TAR_OPTS='-c'</font> +<font color="#ffffff"> # Includes a .tar of the incoming dir in the dist, can be yes or no</font> +<font color="#ffffff">-TARBALL_INCLUDE=yes</font> +<font color="#ffffff">+TARBALL_INCLUDE=no</font> +<font color="#ffffff"> TARBALL_SUFFIX=.tar</font> +<font color="#ffffff"> TAR_OPTS='-c'</font> </pre> <br /> <span>So I changed the album title, adjusted some image and thumbnail dimensions, and I want all images to be randomly shuffled every time the album is generated! I also have all my photos in my Nextcloud Photo directory and don't want to copy them to the local <span class='inlinecode'>incoming</span> directory. Also, a tarball containing the whole album as a download isn't provided.</span><br /> @@ -8680,7 +8680,7 @@ blurs html index.html photos thumbs by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt --grep INFO --files </font><font color="#bb00ff">"/var/log/dserver/*.log"</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt --grep INFO --files </font><font color="#cd00ff">"/var/log/dserver/*.log"</font> </pre> <br /> <span>Hint: you can also provide a comma separated server list, e.g.: <span class='inlinecode'>servers server1.example.org,server2.example.org:PORT,...</span></span><br /> @@ -8693,7 +8693,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt --grep INFO </font><font color="#bb00ff">"/var/log/dserver/*.log"</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt --grep INFO </font><font color="#cd00ff">"/var/log/dserver/*.log"</font> </pre> <br /> <h2 style='display: inline' id='aggregating-logs'>Aggregating logs</h2><br /> @@ -8706,10 +8706,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> -<font color="#bb00ff"> last($time),max(lifetimeConnections)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> +<font color="#cd00ff"> last($time),max(lifetimeConnections)'</font> </pre> <br /> <span>Beware: For map-reduce queries to work, you have to ensure that DTail supports your log format. Check out the documentaiton of the DTail query language and the DTail log formats on the DTail homepage for more information.</span><br /> @@ -8722,10 +8722,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> </font><font color="#bb00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> -<font color="#bb00ff"> last($time),max(lifetimeConnections)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> </font><font color="#cd00ff">'from STATS select sum($goroutines),sum($cgocalls),</font> +<font color="#cd00ff"> last($time),max(lifetimeConnections)'</font> </pre> <br /> <span>Here is another example:</span><br /> @@ -8734,10 +8734,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <a href='./dtail-usage-examples/dtail-map2.gif'><img alt='Tail map-reduce example 2' title='Tail map-reduce example 2' src='./dtail-usage-examples/dtail-map2.gif' /></a><br /> @@ -8748,9 +8748,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select ... outfile append result.csv'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select ... outfile append result.csv'</font> </pre> <br /> <h2 style='display: inline' id='how-to-use-dcat'>How to use <span class='inlinecode'>dcat</span></h2><br /> @@ -8763,7 +8763,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt --files /etc/hostname</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt --files /etc/hostname</font> </pre> <br /> <a href='./dtail-usage-examples/dcat.gif'><img alt='Cat example' title='Cat example' src='./dtail-usage-examples/dcat.gif' /></a><br /> @@ -8774,7 +8774,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt /etc/hostname</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt /etc/hostname</font> </pre> <br /> <h2 style='display: inline' id='how-to-use-dgrep'>How to use <span class='inlinecode'>dgrep</span></h2><br /> @@ -8785,9 +8785,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dgrep --servers server1</font><font color="#F3E651">.</font><font color="#ff0000">example</font><font color="#F3E651">.</font><font color="#ff0000">org</font><font color="#F3E651">:</font><font color="#bb00ff">2223</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files /etc/passwd </font><font color="#F3E651">\</font> -<font color="#ff0000"> --regex nologin</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dgrep --servers server1</font><b><font color="#ee5896">.</font></b><font color="#ffffff">example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">2223</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files /etc/passwd </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --regex nologin</font> </pre> <br /> <span>Generally, <span class='inlinecode'>dgrep</span> is also a very useful way to search historic application logs for certain content.</span><br /> @@ -8804,10 +8804,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dmap --servers serverlist</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">\</font> -<font color="#ff0000"> --files </font><font color="#bb00ff">'/var/log/dserver/*.log'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap --servers serverlist</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --files </font><font color="#cd00ff">'/var/log/dserver/*.log'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <span>Remember: For that to work, you have to make sure that DTail supports your log format. You can either use the ones already defined in <span class='inlinecode'>internal/mapr/logformat</span> or add an extension to support a custom log format. The example here works out of the box though, as DTail understands its own log format already. </span><br /> @@ -8830,9 +8830,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dmap --files /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> -<font color="#ff0000"> --query </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap --files /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> +<font color="#ffffff"> --query </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <span>As a shorthand version the following command can be used:</span><br /> @@ -8841,9 +8841,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dmap </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> /var/log/dsever/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> /var/log/dsever/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <span>You can also use a file input pipe as follows:</span><br /> @@ -8852,9 +8852,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log </font><font color="#F3E651">|</font><font color="#ff0000"> </font><font color="#F3E651">\</font> -<font color="#ff0000"> dmap </font><font color="#bb00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> -<font color="#bb00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> </font><b><font color="#ee5896">\</font></b> +<font color="#ffffff"> dmap </font><font color="#cd00ff">'from STATS select $hostname,max($goroutines),max($cgocalls),$loadavg,</font> +<font color="#cd00ff"> lifetimeConnections group by $hostname order by max($cgocalls)'</font> </pre> <br /> <h3 style='display: inline' id='aggregating-csv-files'>Aggregating CSV files</h3><br /> @@ -8865,16 +8865,16 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat example</font><font color="#F3E651">.</font><font color="#ff0000">csv</font> -<font color="#ff0000">name</font><font color="#F3E651">,</font><font color="#ff0000">lastname</font><font color="#F3E651">,</font><font color="#ff0000">age</font><font color="#F3E651">,</font><font color="#ff0000">profession</font> -<font color="#ff0000">Michael</font><font color="#F3E651">,</font><font color="#ff0000">Jordan</font><font color="#F3E651">,</font><font color="#bb00ff">40</font><font color="#F3E651">,</font><font color="#ff0000">Basketball player</font> -<font color="#ff0000">Michael</font><font color="#F3E651">,</font><font color="#ff0000">Jackson</font><font color="#F3E651">,</font><font color="#bb00ff">100</font><font color="#F3E651">,</font><font color="#ff0000">Singer</font> -<font color="#ff0000">Albert</font><font color="#F3E651">,</font><font color="#ff0000">Einstein</font><font color="#F3E651">,</font><font color="#bb00ff">200</font><font color="#F3E651">,</font><font color="#ff0000">Physician</font> -<font color="#F3E651">%</font><font color="#ff0000"> dmap --query </font><font color="#bb00ff">'select lastname,name where age > 40 logformat csv outfile result.csv'</font><font color="#ff0000"> example</font><font color="#F3E651">.</font><font color="#ff0000">csv</font> -<font color="#F3E651">%</font><font color="#ff0000"> cat result</font><font color="#F3E651">.</font><font color="#ff0000">csv</font> -<font color="#ff0000">lastname</font><font color="#F3E651">,</font><font color="#ff0000">name</font> -<font color="#ff0000">Jackson</font><font color="#F3E651">,</font><font color="#ff0000">Michael</font> -<font color="#ff0000">Einstein</font><font color="#F3E651">,</font><font color="#ff0000">Albert</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">csv</font> +<font color="#ffffff">name</font><b><font color="#ee5896">,</font></b><font color="#ffffff">lastname</font><b><font color="#ee5896">,</font></b><font color="#ffffff">age</font><b><font color="#ee5896">,</font></b><font color="#ffffff">profession</font> +<font color="#ffffff">Michael</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Jordan</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">40</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Basketball player</font> +<font color="#ffffff">Michael</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Jackson</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">100</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Singer</font> +<font color="#ffffff">Albert</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Einstein</font><b><font color="#ee5896">,</font></b><font color="#ff00ff">200</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Physician</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> dmap --query </font><font color="#cd00ff">'select lastname,name where age > 40 logformat csv outfile result.csv'</font><font color="#ffffff"> example</font><b><font color="#ee5896">.</font></b><font color="#ffffff">csv</font> +<b><font color="#ee5896">%</font></b><font color="#ffffff"> cat result</font><b><font color="#ee5896">.</font></b><font color="#ffffff">csv</font> +<font color="#ffffff">lastname</font><b><font color="#ee5896">,</font></b><font color="#ffffff">name</font> +<font color="#ffffff">Jackson</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Michael</font> +<font color="#ffffff">Einstein</font><b><font color="#ee5896">,</font></b><font color="#ffffff">Albert</font> </pre> <br /> <span>DMap can also be used to query and aggregate CSV files from remote servers.</span><br /> @@ -8887,44 +8887,44 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dtail --logLevel trace /var/log/dserver/dserver</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dtail --logLevel trace /var/log/dserver/dserver</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat /etc/passwd</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat /etc/passwd</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dcat --plain /etc/passwd </font><font color="#F3E651">></font><font color="#ff0000"> /etc/test</font> -<i><font color="#ababab"># Should show no differences.</font></i> -<font color="#ff0000">diff /etc/test /etc/passwd </font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dcat --plain /etc/passwd </font><b><font color="#ee5896">></font></b><font color="#ffffff"> /etc/test</font> +<i><font color="#00ff00"># Should show no differences.</font></i> +<font color="#ffffff">diff /etc/test /etc/passwd </font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dgrep --regex ERROR --files /var/log/dserver/dsever</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dgrep --regex ERROR --files /var/log/dserver/dsever</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> dgrep --before </font><font color="#bb00ff">10</font><font color="#ff0000"> --after </font><font color="#bb00ff">10</font><font color="#ff0000"> --max </font><font color="#bb00ff">10</font><font color="#ff0000"> --grep ERROR /var/log/dserver/dsever</font><font color="#F3E651">.</font><font color="#ff0000">log</font> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> dgrep --before </font><font color="#ff00ff">10</font><font color="#ffffff"> --after </font><font color="#ff00ff">10</font><font color="#ffffff"> --max </font><font color="#ff00ff">10</font><font color="#ffffff"> --grep ERROR /var/log/dserver/dsever</font><b><font color="#ee5896">.</font></b><font color="#ffffff">log</font> </pre> <br /> <span>Use <span class='inlinecode'>--help</span> for more available options. Or go to the DTail page for more information! Hope you find DTail useful!</span><br /> @@ -9094,9 +9094,9 @@ DC on fire: by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -n </font><font color="#bb00ff">"$foo"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo </font><font color="#bb00ff">"$foo"</font> -<b><font color="#ffffff">fi</font></b> +<pre><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -n </font><font color="#cd00ff">"$foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo </font><font color="#cd00ff">"$foo"</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <span>Please run <span class='inlinecode'>source-highlight --lang-list</span> for a list of all supported languages.</span><br /> @@ -9125,7 +9125,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">MASTODON_URI</font><font color="#F3E651">=</font><font color="#bb00ff">'https://fosstodon.org/@snonux'</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">MASTODON_URI</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'https://fosstodon.org/@snonux'</font> </pre> <br /> <span>and add the following into your <span class='inlinecode'>index.gmi</span>:</span><br /> @@ -9140,7 +9140,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff"><a</font></b><font color="#ff0000"> </font><b><font color="#F35E1E">href</font></b><font color="#F3E651">=</font><font color="#bb00ff">'https://fosstodon.org/@snonux'</font><font color="#ff0000"> </font><b><font color="#F35E1E">rel</font></b><font color="#F3E651">=</font><font color="#bb00ff">'me'</font><b><font color="#ffffff">></font></b><font color="#ff0000">Me at Mastodon</font><b><font color="#ffffff"></a></font></b> +<pre><b><font color="#00ffff"><a</font></b><font color="#ffffff"> </font><font color="#ffff00">href</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'https://fosstodon.org/@snonux'</font><font color="#ffffff"> </font><font color="#ffff00">rel</font><b><font color="#ee5896">=</font></b><font color="#cd00ff">'me'</font><b><font color="#00ffff">></font></b><font color="#ffffff">Me at Mastodon</font><b><font color="#00ffff"></a></font></b> </pre> <br /> <h2 style='display: inline' id='more'>More</h2><br /> @@ -9642,11 +9642,11 @@ Have a nice day! by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">git clone https</font><font color="#F3E651">:</font><font color="#ff0000">//codeberg</font><font color="#F3E651">.</font><font color="#ff0000">org/snonux/gogios</font><font color="#F3E651">.</font><font color="#ff0000">git</font> -<font color="#ff0000">cd gogios</font> -<font color="#ff0000">go build -o gogios cmd/gogios/main</font><font color="#F3E651">.</font><font color="#ff0000">go</font> -<font color="#ff0000">doas cp gogios /usr/local/bin/gogios</font> -<font color="#ff0000">doas chmod </font><font color="#bb00ff">755</font><font color="#ff0000"> /usr/local/bin/gogios</font> +<pre><font color="#ffffff">git clone https</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//codeberg</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org/snonux/gogios</font><b><font color="#ee5896">.</font></b><font color="#ffffff">git</font> +<font color="#ffffff">cd gogios</font> +<font color="#ffffff">go build -o gogios cmd/gogios/main</font><b><font color="#ee5896">.</font></b><font color="#ffffff">go</font> +<font color="#ffffff">doas cp gogios /usr/local/bin/gogios</font> +<font color="#ffffff">doas chmod </font><font color="#ff00ff">755</font><font color="#ffffff"> /usr/local/bin/gogios</font> </pre> <br /> <span>You can use cross-compilation if you want to compile Gogios for OpenBSD on a Linux system without installing the Go compiler on OpenBSD. Follow these steps:</span><br /> @@ -9655,9 +9655,9 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GOOS</font><font color="#F3E651">=</font><font color="#ff0000">openbsd</font> -<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GOARCH</font><font color="#F3E651">=</font><font color="#ff0000">amd64</font> -<font color="#ff0000">go build -o gogios cmd/gogios/main</font><font color="#F3E651">.</font><font color="#ff0000">go</font> +<pre><b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">GOOS</font><b><font color="#ee5896">=</font></b><font color="#ffffff">openbsd</font> +<b><font color="#00ffff">export</font></b><font color="#ffffff"> </font><font color="#ffffff">GOARCH</font><b><font color="#ee5896">=</font></b><font color="#ffffff">amd64</font> +<font color="#ffffff">go build -o gogios cmd/gogios/main</font><b><font color="#ee5896">.</font></b><font color="#ffffff">go</font> </pre> <br /> <span>On your OpenBSD system, copy the binary to <span class='inlinecode'>/usr/local/bin/gogios</span> and set the correct permissions as described in the previous section. All steps described here you could automate with your configuration management system of choice. I use Rexify, the friendly configuration management system, to automate the installation, but that is out of the scope of this document.</span><br /> @@ -9672,11 +9672,11 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">doas adduser -group _gogios -batch _gogios</font> -<font color="#ff0000">doas usermod -d /var/run/gogios _gogios</font> -<font color="#ff0000">doas mkdir -p /var/run/gogios</font> -<font color="#ff0000">doas chown _gogios</font><font color="#F3E651">:</font><font color="#ff0000">_gogios /var/run/gogios</font> -<font color="#ff0000">doas chmod </font><font color="#bb00ff">750</font><font color="#ff0000"> /var/run/gogios</font> +<pre><font color="#ffffff">doas adduser -group _gogios -batch _gogios</font> +<font color="#ffffff">doas usermod -d /var/run/gogios _gogios</font> +<font color="#ffffff">doas mkdir -p /var/run/gogios</font> +<font color="#ffffff">doas chown _gogios</font><b><font color="#ee5896">:</font></b><font color="#ffffff">_gogios /var/run/gogios</font> +<font color="#ffffff">doas chmod </font><font color="#ff00ff">750</font><font color="#ffffff"> /var/run/gogios</font> </pre> <br /> <span>Please note that creating a user and group might differ depending on your operating system. For other operating systems, consult their documentation for creating system users and groups.</span><br /> @@ -9689,8 +9689,8 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">doas pkg_add monitoring-plugins</font> -<font color="#ff0000">doas pkg_add nrpe </font><i><font color="#ababab"># If you want to execute checks remotely via NRPE.</font></i> +<pre><font color="#ffffff">doas pkg_add monitoring-plugins</font> +<font color="#ffffff">doas pkg_add nrpe </font><i><font color="#00ff00"># If you want to execute checks remotely via NRPE.</font></i> </pre> <br /> <span>Once the installation is complete, you can find the monitoring plugins in the <span class='inlinecode'>/usr/local/libexec/nagios</span> directory, which then can be configured to be used in <span class='inlinecode'>gogios.json</span>.</span><br /> @@ -9717,41 +9717,41 @@ echo 'This is a test email from OpenBSD.' | mail -s 'Test Email' by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">EmailTo</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">paul@dev.buetow.org</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">EmailFrom</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">gogios@buetow.org</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">CheckTimeoutS</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">10</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">CheckConcurrency</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">2</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">StateDir</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/var/run/gogios</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Checks</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP4 www.foo.zone</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-H</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-4</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-w</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">50,10%</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-c</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">100,15%</font><font color="#ff0000">"</font><font color="#ff0000"> </font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Retries</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">3</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">RetryInterval</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">10</font> -<font color="#ff0000"> </font><font color="#F3E651">},</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP6 www.foo.zone</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-H</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-6</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-w</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">50,10%</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-c</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">100,15%</font><font color="#ff0000">"</font><font color="#ff0000"> </font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Retries</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">3</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">RetryInterval</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#bb00ff">10</font> -<font color="#ff0000"> </font><font color="#F3E651">},</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone HTTP IPv4</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_http</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-4</font><font color="#ff0000">"</font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">DependsOn</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP4 www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><font color="#F3E651">},</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone HTTP IPv6</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_http</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-6</font><font color="#ff0000">"</font><font color="#F3E651">],</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">DependsOn</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">Check ICMP6 www.foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Check NRPE Disk Usage foo.zone</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">{</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Plugin</font><font color="#ff0000">"</font><font color="#ff0000">:</font><font color="#ff0000"> "</font><font color="#bb00ff">/usr/local/libexec/nagios/check_nrpe</font><font color="#ff0000">"</font><font color="#F3E651">,</font> -<font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">Args</font><font color="#ff0000">"</font><font color="#ff0000">: </font><font color="#F3E651">[</font><font color="#ff0000">"</font><font color="#ff0000">-H</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">foo.zone</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-c</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">check_disk</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-p</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">5666</font><font color="#ff0000">"</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">"</font><font color="#ff0000">-4</font><font color="#ff0000">"</font><font color="#F3E651">]</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#ff0000"> </font><font color="#F3E651">}</font> -<font color="#F3E651">}</font> +<pre><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">EmailTo</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">paul@dev.buetow.org</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">EmailFrom</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">gogios@buetow.org</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">CheckTimeoutS</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">10</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">CheckConcurrency</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">2</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">StateDir</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/var/run/gogios</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Checks</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Check ICMP4 www.foo.zone</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-H</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-4</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-w</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">50,10%</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-c</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">100,15%</font><font color="#ffffff">"</font><font color="#ffffff"> </font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Retries</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">RetryInterval</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">10</font> +<font color="#ffffff"> </font><b><font color="#ee5896">},</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Check ICMP6 www.foo.zone</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_ping</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-H</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-6</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-w</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">50,10%</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-c</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">100,15%</font><font color="#ffffff">"</font><font color="#ffffff"> </font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Retries</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">3</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">RetryInterval</font><font color="#ffffff">"</font><font color="#ffffff">: </font><font color="#ff00ff">10</font> +<font color="#ffffff"> </font><b><font color="#ee5896">},</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone HTTP IPv4</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_http</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-4</font><font color="#ffffff">"</font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">DependsOn</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">Check ICMP4 www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">},</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone HTTP IPv6</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_http</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-6</font><font color="#ffffff">"</font><b><font color="#ee5896">],</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">DependsOn</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">Check ICMP6 www.foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Check NRPE Disk Usage foo.zone</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">{</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Plugin</font><font color="#ffffff">"</font><font color="#ffffff">:</font><font color="#ffffff"> "</font><font color="#cd00ff">/usr/local/libexec/nagios/check_nrpe</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b> +<font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">Args</font><font color="#ffffff">"</font><font color="#ffffff">: </font><b><font color="#ee5896">[</font></b><font color="#ffffff">"</font><font color="#ffffff">-H</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">foo.zone</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-c</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">check_disk</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-p</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">5666</font><font color="#ffffff">"</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ffffff">"</font><font color="#ffffff">-4</font><font color="#ffffff">"</font><b><font color="#ee5896">]</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<font color="#ffffff"> </font><b><font color="#ee5896">}</font></b> +<b><font color="#ee5896">}</font></b> </pre> <br /> <ul> @@ -9780,7 +9780,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">doas -u _gogios /usr/local/bin/gogios -cfg /etc/gogios</font><font color="#F3E651">.</font><font color="#ff0000">json</font> +<pre><font color="#ffffff">doas -u _gogios /usr/local/bin/gogios -cfg /etc/gogios</font><b><font color="#ee5896">.</font></b><font color="#ffffff">json</font> </pre> <br /> <span>To run Gogios via CRON on OpenBSD as the <span class='inlinecode'>gogios</span> user and check all services once per minute, follow these steps:</span><br /> @@ -10032,7 +10032,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#ff0000">$ raku guprecords</font><font color="#F3E651">.</font><font color="#ff0000">raku --stats</font><font color="#F3E651">=</font><font color="#ff0000">dir</font><font color="#F3E651">=</font><font color="#ff0000">$HOME</font><font color="#ff0000">/git/uprecords/stats --all</font> +<pre><font color="#ffffff">$ raku guprecords</font><b><font color="#ee5896">.</font></b><font color="#ffffff">raku --stats</font><b><font color="#ee5896">=</font></b><font color="#ffffff">dir</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$HOME</font><font color="#ffffff">/git/uprecords/stats --all</font> </pre> <br /> <span>This command will generate a comprehensive uptime report from the collected statistics, making it easy to review and enjoy the data.</span><br /> @@ -10446,8 +10446,8 @@ Blablabla... by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">PRE_GENERATE_HOOK</font><font color="#F3E651">=.</font><font color="#ff0000">/pre_generate_hook</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> -<b><font color="#ffffff">declare</font></b><font color="#ff0000"> -xr </font><font color="#ff0000">POST_PUBLISH_HOOK</font><font color="#F3E651">=.</font><font color="#ff0000">/post_publish_hook</font><font color="#F3E651">.</font><font color="#ff0000">sh</font> +<pre><b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">PRE_GENERATE_HOOK</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/pre_generate_hook</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> +<b><font color="#00ffff">declare</font></b><font color="#ffffff"> -xr </font><font color="#ffffff">POST_PUBLISH_HOOK</font><b><font color="#ee5896">=.</font></b><font color="#ffffff">/post_publish_hook</font><b><font color="#ee5896">.</font></b><font color="#ffffff">sh</font> </pre> <br /> <h2 style='display: inline' id='use-of-safer-bash-options'>Use of safer Bash options</h2><br /> @@ -10464,10 +10464,10 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat gemfeed</font><font color="#F3E651">/</font><font color="#bb00ff">2023</font><font color="#ff0000">-</font><font color="#bb00ff">02</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000">-title-here</font><font color="#F3E651">.</font><font color="#ff0000">gmi</font> -<i><font color="#ababab"># Title here</font></i> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat gemfeed</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">2023</font><font color="#ffffff">-</font><font color="#ff00ff">02</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff">-title-here</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gmi</font> +<i><font color="#00ff00"># Title here</font></i> -<font color="#ff0000">The remaining content of the Gemtext file</font><font color="#F3E651">...</font> +<font color="#ffffff">The remaining content of the Gemtext file</font><b><font color="#ee5896">...</font></b> </pre> <br /> <span>Gemtexter will add a line starting with <span class='inlinecode'>> Published at ...</span> now. Any subsequent Atom feed generation will then use that date.</span><br /> @@ -10476,12 +10476,12 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><font color="#F3E651">%</font><font color="#ff0000"> cat gemfeed</font><font color="#F3E651">/</font><font color="#bb00ff">2023</font><font color="#ff0000">-</font><font color="#bb00ff">02</font><font color="#ff0000">-</font><font color="#bb00ff">26</font><font color="#ff0000">-title-here</font><font color="#F3E651">.</font><font color="#ff0000">gmi</font> -<i><font color="#ababab"># Title here</font></i> +<pre><b><font color="#ee5896">%</font></b><font color="#ffffff"> cat gemfeed</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">2023</font><font color="#ffffff">-</font><font color="#ff00ff">02</font><font color="#ffffff">-</font><font color="#ff00ff">26</font><font color="#ffffff">-title-here</font><b><font color="#ee5896">.</font></b><font color="#ffffff">gmi</font> +<i><font color="#00ff00"># Title here</font></i> -<font color="#F3E651">></font><font color="#ff0000"> Published at </font><font color="#bb00ff">2023</font><font color="#ff0000">-</font><font color="#bb00ff">02</font><font color="#ff0000">-26T21</font><font color="#F3E651">:</font><font color="#bb00ff">43</font><font color="#F3E651">:</font><font color="#bb00ff">51</font><font color="#F3E651">+</font><font color="#bb00ff">01</font><font color="#F3E651">:</font><font color="#bb00ff">00</font> +<b><font color="#ee5896">></font></b><font color="#ffffff"> Published at </font><font color="#ff00ff">2023</font><font color="#ffffff">-</font><font color="#ff00ff">02</font><font color="#ffffff">-26T21</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">43</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">51</font><b><font color="#ee5896">+</font></b><font color="#ff00ff">01</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">00</font> -<font color="#ff0000">The remaining content of the Gemtext file</font><font color="#F3E651">...</font> +<font color="#ffffff">The remaining content of the Gemtext file</font><b><font color="#ee5896">...</font></b> </pre> <br /> <h2 style='display: inline' id='xmllint-support'>XMLLint support</h2><br /> @@ -13,17 +13,11 @@ </p> <h1 style='display: inline' id='hello'>Hello!</h1><br /> <br /> -<span class='quote'>This site was generated at 2025-06-22T22:39:21+03:00 by <span class='inlinecode'>Gemtexter</span></span><br /> +<span class='quote'>This site was generated at 2025-06-22T23:02:51+03:00 by <span class='inlinecode'>Gemtexter</span></span><br /> <br /> <span>Welcome to the ...</span><br /> <br /> -<pre> - ____ __ __ ____ __ __ _ ____ -( __)/ \ / \ (__ )/ \ ( ( \( __) - ) _)( O )( O )_ / _/( O )/ / ) _) -(__) \__/ \__/(_)(____)\__/ \_)__)(____) - -</pre> +<a href='./foozone.webp'><img alt='foo.zone logo' title='foo.zone logo' src='./foozone.webp' /></a><br /> <br /> <span>Everything you read on this site is my personal opinion and experience. You can call me a Linux/*BSD enthusiast and hobbyist. I mainly write about tech, IT, coding, programming and sometimes also about self-improvement here.</span><br /> <br /> @@ -1,4 +1,4 @@ -/* Retro Theme: classic_matrix */ +/* Retro Theme: binary_compiler */ @font-face { font-family: 'text'; src: url("./text.ttf") format("truetype"); @@ -20,12 +20,12 @@ } :root { - --color-bg: #2a2a3e; - --color-text: #ffffff; - --color-primary: #ff66b2; - --color-secondary: #66ffff; - --color-accent: #ffff99; - --color-glow: rgba(255, 102, 178, 0.4); + --color-bg: #1a0f00; + --color-text: #ff6600; + --color-primary: #ff3300; + --color-secondary: #ff9900; + --color-accent: #ffcc00; + --color-glow: rgba(255, 102, 0, 0.2); } * { @@ -37,30 +37,6 @@ html { background-color: var(--color-bg); min-height: 100vh; } -/* Terminal scan effect */ -@keyframes terminal-scan { - 0% { transform: translateY(-100%); } - 100% { transform: translateY(100vh); } -} - -html::before { - content: ""; - position: fixed; - top: 0; - left: 0; - right: 0; - height: 100px; - background: linear-gradient( - 180deg, - transparent 0%, - rgba(102, 255, 255, 0.08) 50%, - transparent 100% - ); - pointer-events: none; - z-index: 9999; - animation: terminal-scan 6s linear infinite; -} - body { font-family: text, monospace; @@ -73,8 +49,6 @@ body { max-width: 1400px; position: relative; overflow-x: auto; - - text-shadow: 0 0 1px currentColor; } /* Retro glow effect */ @@ -85,7 +59,7 @@ body::before { left: 0; right: 0; bottom: 0; - background: radial-gradient(ellipse at center, transparent 0%, var(--color-bg) 100%); + background: radial-gradient(ellipse at center, transparent 0%, var(--color-bg) 125%); pointer-events: none; z-index: 2; } @@ -118,19 +92,10 @@ h1 { padding-bottom: 0.5em; } -h1::before { - content: "$ "; - color: var(--color-secondary); -} - h2 { font-size: 1.8em; color: var(--color-secondary); -} - -h2::before { - content: "> "; - color: var(--color-accent); + text-shadow: 0 0 5px var(--color-glow); } h3 { @@ -138,25 +103,6 @@ h3 { color: var(--color-accent); } -h3::before { - content: "# "; - color: var(--color-secondary); -} - -/* Terminal cursor effect */ -@keyframes blink { - 0%, 49% { opacity: 1; -} - 50%, 100% { opacity: 0; -}; -} - -h1::after { - content: "_"; - animation: blink 1s infinite; - color: var(--color-primary); -} - /* Links with retro hover effects */ a { font-family: code, monospace; @@ -198,7 +144,7 @@ a:hover::after { border-right: 4px solid var(--color-accent); padding: 1em 2em; margin: 2em 0; - background-color: rgba(255, 255, 255, 0.05); + background-color: rgba(255, 255, 255, 0.02); font-style: italic; position: relative; } @@ -225,7 +171,7 @@ a:hover::after { /* Code blocks with terminal styling */ pre { font-family: code, monospace; - background-color: rgba(0, 0, 0, 0.3); + background-color: rgba(0, 0, 0, 0.5); border: 1px solid var(--color-primary); padding: 1.5em; overflow-x: auto; @@ -323,30 +269,6 @@ h1:hover { animation: glitch 0.3s infinite; } -/* Terminal scan refresh */ -@keyframes terminal-scan { - 0% { transform: translateY(-100%); } - 100% { transform: translateY(100%); } -} - -body::after { - content: ""; - position: fixed; - top: 0; - left: 0; - right: 0; - height: 100px; - background: linear-gradient( - 180deg, - transparent 0%, - rgba(255, 255, 255, 0.02) 50%, - transparent 100% - ); - pointer-events: none; - z-index: 5; - animation: terminal-scan 8s linear infinite; -} - /* Footer styling */ .footer { margin-top: 4em; diff --git a/testpage.html b/testpage.html index 905bb5f0..af47df74 100644 --- a/testpage.html +++ b/testpage.html @@ -49,31 +49,31 @@ by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#bb00ff">"foo"</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b> -<font color="#ff0000"> echo foo</font> -<b><font color="#ffffff">else</font></b> -<font color="#ff0000"> echo bar</font> -<b><font color="#ffffff">fi</font></b> +<pre><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#cd00ff">"foo"</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b> +<font color="#ffffff"> echo foo</font> +<b><font color="#00ffff">else</font></b> +<font color="#ffffff"> echo bar</font> +<b><font color="#00ffff">fi</font></b> </pre> <br /> <!-- Generator: GNU source-highlight 3.1.9 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="#ababab"># Jo</font></i> -<font color="#ff0000">❯ </font><b><font color="#ffffff">exec</font></b><font color="#ff0000"> </font><font color="#bb00ff">5</font><font color="#F3E651"><></font><font color="#ff0000">/dev/tcp/google</font><font color="#F3E651">.</font><font color="#ff0000">de</font><font color="#F3E651">/</font><font color="#bb00ff">80</font> -<font color="#ff0000">❯ echo -e </font><font color="#bb00ff">"GET / HTTP/1.1</font><font color="#ffffff">\n</font><font color="#bb00ff">host: google.de</font><font color="#ffffff">\n\n</font><font color="#bb00ff">"</font><font color="#ff0000"> </font><font color="#F3E651">>&</font><font color="#bb00ff">5</font> -<font color="#ff0000">❯ cat </font><font color="#F3E651"><&</font><font color="#bb00ff">5</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> head</font> -<font color="#ff0000">HTTP</font><font color="#F3E651">/</font><font color="#bb00ff">1.1</font><font color="#ff0000"> </font><font color="#bb00ff">301</font><font color="#ff0000"> Moved Permanently</font> -<font color="#ff0000">Location</font><font color="#F3E651">:</font><font color="#ff0000"> http</font><font color="#F3E651">:</font><font color="#ff0000">//www</font><font color="#F3E651">.</font><font color="#ff0000">google</font><font color="#F3E651">.</font><font color="#ff0000">de</font><font color="#F3E651">/</font> -<font color="#ff0000">Content-Type</font><font color="#F3E651">:</font><font color="#ff0000"> text/html</font><font color="#F3E651">;</font><font color="#ff0000"> </font><font color="#ff0000">charset</font><font color="#F3E651">=</font><font color="#ff0000">UTF-</font><font color="#bb00ff">8</font> -<font color="#ff0000">Date</font><font color="#F3E651">:</font><font color="#ff0000"> Thu</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">18</font><font color="#ff0000"> Nov </font><font color="#bb00ff">2021</font><font color="#ff0000"> </font><font color="#bb00ff">08</font><font color="#F3E651">:</font><font color="#bb00ff">27</font><font color="#F3E651">:</font><font color="#bb00ff">18</font><font color="#ff0000"> GMT</font> -<font color="#ff0000">Expires</font><font color="#F3E651">:</font><font color="#ff0000"> Sat</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#bb00ff">18</font><font color="#ff0000"> Dec </font><font color="#bb00ff">2021</font><font color="#ff0000"> </font><font color="#bb00ff">08</font><font color="#F3E651">:</font><font color="#bb00ff">27</font><font color="#F3E651">:</font><font color="#bb00ff">18</font><font color="#ff0000"> GMT</font> -<font color="#ff0000">Cache-Control</font><font color="#F3E651">:</font><font color="#ff0000"> public</font><font color="#F3E651">,</font><font color="#ff0000"> max-age</font><font color="#F3E651">=</font><font color="#bb00ff">2592000</font> -<font color="#ff0000">Server</font><font color="#F3E651">:</font><font color="#ff0000"> gws</font> -<font color="#ff0000">Content-Length</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">218</font> -<font color="#ff0000">X-XSS-Protection</font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">0</font> -<font color="#ff0000">X-Frame-Options</font><font color="#F3E651">:</font><font color="#ff0000"> SAMEORIGIN</font> +<pre><i><font color="#00ff00"># Jo</font></i> +<font color="#ffffff">❯ </font><b><font color="#00ffff">exec</font></b><font color="#ffffff"> </font><font color="#ff00ff">5</font><b><font color="#ee5896"><></font></b><font color="#ffffff">/dev/tcp/google</font><b><font color="#ee5896">.</font></b><font color="#ffffff">de</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">80</font> +<font color="#ffffff">❯ echo -e </font><font color="#cd00ff">"GET / HTTP/1.1</font><font color="#cd00ff">\n</font><font color="#cd00ff">host: google.de</font><font color="#cd00ff">\n\n</font><font color="#cd00ff">"</font><font color="#ffffff"> </font><b><font color="#ee5896">>&</font></b><font color="#ff00ff">5</font> +<font color="#ffffff">❯ cat </font><b><font color="#ee5896"><&</font></b><font color="#ff00ff">5</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> head</font> +<font color="#ffffff">HTTP</font><b><font color="#ee5896">/</font></b><font color="#ff00ff">1.1</font><font color="#ffffff"> </font><font color="#ff00ff">301</font><font color="#ffffff"> Moved Permanently</font> +<font color="#ffffff">Location</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> http</font><b><font color="#ee5896">:</font></b><font color="#ffffff">//www</font><b><font color="#ee5896">.</font></b><font color="#ffffff">google</font><b><font color="#ee5896">.</font></b><font color="#ffffff">de</font><b><font color="#ee5896">/</font></b> +<font color="#ffffff">Content-Type</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> text/html</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><font color="#ffffff">charset</font><b><font color="#ee5896">=</font></b><font color="#ffffff">UTF-</font><font color="#ff00ff">8</font> +<font color="#ffffff">Date</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Thu</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">18</font><font color="#ffffff"> Nov </font><font color="#ff00ff">2021</font><font color="#ffffff"> </font><font color="#ff00ff">08</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">27</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">18</font><font color="#ffffff"> GMT</font> +<font color="#ffffff">Expires</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> Sat</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> </font><font color="#ff00ff">18</font><font color="#ffffff"> Dec </font><font color="#ff00ff">2021</font><font color="#ffffff"> </font><font color="#ff00ff">08</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">27</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">18</font><font color="#ffffff"> GMT</font> +<font color="#ffffff">Cache-Control</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> public</font><b><font color="#ee5896">,</font></b><font color="#ffffff"> max-age</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">2592000</font> +<font color="#ffffff">Server</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> gws</font> +<font color="#ffffff">Content-Length</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">218</font> +<font color="#ffffff">X-XSS-Protection</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font> +<font color="#ffffff">X-Frame-Options</font><b><font color="#ee5896">:</font></b><font color="#ffffff"> SAMEORIGIN</font> </pre> <br /> <span>Foo0</span><br /> diff --git a/uptime-stats.html b/uptime-stats.html index 934ae2d1..26f67847 100644 --- a/uptime-stats.html +++ b/uptime-stats.html @@ -13,7 +13,7 @@ </p> <h1 style='display: inline' id='my-machine-uptime-stats'>My machine uptime stats</h1><br /> <br /> -<span class='quote'>This site was last updated at 2025-06-22T22:39:21+03:00</span><br /> +<span class='quote'>This site was last updated at 2025-06-22T23:02:51+03:00</span><br /> <br /> <span>The following stats were collected via <span class='inlinecode'>uptimed</span> on all of my personal computers over many years and the output was generated by <span class='inlinecode'>guprecords</span>, the global uptime records stats analyser of mine.</span><br /> <br /> |
