From 2fa917c369447694dc76308560d0c5f65673ec59 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 18 May 2021 21:35:38 +0100 Subject: add polyglot post change html quotes --- content/html/gemfeed/atom.xml | 111 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) (limited to 'content/html/gemfeed/atom.xml') diff --git a/content/html/gemfeed/atom.xml b/content/html/gemfeed/atom.xml index b87afe87..7f97acd0 100644 --- a/content/html/gemfeed/atom.xml +++ b/content/html/gemfeed/atom.xml @@ -1,6 +1,6 @@ - 2021-05-17T21:01:05+01:00 + 2021-05-18T21:32:49+01:00 buetow.org feed Having fun with computers! @@ -976,6 +976,7 @@ apply Service "dig6" {

Written by Paul Buetow 2016-04-09

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

+https://github.com/snonux/puppet-modules

ZFS

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

Puppet snippet:

@@ -1522,6 +1523,114 @@ chmod +x /data/local/userinit.sh exit

Reboot & test! Enjoy!

+

E-Mail me your thoughts at comments@mx.buetow.org!

+ + + + + The fibonacci.pl.c Polyglot + + https://buetow.org/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html + 2014-03-24T21:32:53+00:00 + + Paul Buetow + comments@mx.buetow.org + + In computing, a polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independent of the programming language used to compile or interpret it. .....to read on please visit my site. + +
+

The fibonacci.pl.c Polyglot

+

Written by Paul Buetow 2014-03-24

+

In computing, a polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independent of the programming language used to compile or interpret it

+https://en.wikipedia.org/wiki/Polyglot_(computing)
+

The Fibonacci numbers

+

For fun, I programmed my own Polyglot, which is both, valid Perl and C code. The interesting part about C is, that $ is a valid character to start variable names with:

+
+#include <stdio.h>
+
+#define $arg function_argument
+#define my int
+#define sub int
+#define BEGIN int main(void)
+
+my $arg;
+
+sub hello() {
+	printf("Hello, welcome to Perl-C!\n");
+	printf("This program is both, valid C and Perl code!\n");
+	printf("It calculates all fibonacci numbers from 0 to 9!\n\n");
+	return 0;
+}
+
+sub fibonacci() {
+	my $n = $arg;
+
+	if ($n < 2) {
+		return $n;
+	}
+
+	$arg = $n - 1;
+	my $fib1 = fibonacci();
+	$arg = $n - 2;
+	my $fib2 = fibonacci();
+
+	return $fib1 + $fib2;
+}
+
+BEGIN {
+	hello();
+	my $i = 0;
+
+	for ($i = 0; $i <= 10; ++$i) {
+		$arg = $i;
+		printf("fib(%d) = %d\n", $i, fibonacci());
+	}
+
+	return 0;
+}
+
+

You can find the whole source code at GitHub:

+https://github.com/snonux/perl-c-fibonacci
+

Let's run it with Perl:

+
+❯ perl fibonacci.pl.c
+Hello, welcome to Perl-C!
+This program is both, valid C and Perl code!
+It calculates all fibonacci numbers from 0 to 9!
+
+fib(0) = 0
+fib(1) = 1
+fib(2) = 1
+fib(3) = 2
+fib(4) = 3
+fib(5) = 5
+fib(6) = 8
+fib(7) = 13
+fib(8) = 21
+fib(9) = 34
+fib(10) = 55
+
+

Let's compile it as C and run the binary:

+
+❯ gcc fibonacci.pl.c -o fibonacci
+❯ ./fibonacci
+Hello, welcome to Perl-C!
+This program is both, valid C and Perl code!
+It calculates all fibonacci numbers from 0 to 9!
+
+fib(0) = 0
+fib(1) = 1
+fib(2) = 1
+fib(3) = 2
+fib(4) = 3
+fib(5) = 5
+fib(6) = 8
+fib(7) = 13
+fib(8) = 21
+fib(9) = 34
+fib(10) = 55
+
+

It's really fun to play with :-).

E-Mail me your thoughts at comments@mx.buetow.org!

-- cgit v1.2.3