Friendship Is Magic

Overview

I am fluent in an absurd number of programming languages. I love programming languages - even terrible ones like Pikachu.

But no language has tempted me as much as Friendship is Magic++.

Setup

Fimp++ is great fun, but I'm not going to corrupt an operating system's packages with it permanently. So this is a job for podman. Instructions that follow will be for Centos9, because I happen to be playing with OpenShift right now.

  1. Install Podman

    sudo yum install epel-release -y
    sudo yum install podman -y
    
  2. Pull the Friendship is Magic Docker image

    podman pull avian2/fimpp

  3. Create a program.

# 
Dear Princess Celestia: Hello World.

Today I learned about zigzags:

Did you know Spike likes "/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\"?
Did you know Rainbow Dash likes "///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\"?

I did this 9 times:

I quickly said Spike.
I quickly said Rainbow Dash.
I said Spike.
I quickly said Rainbow Dash.
I quickly said Spike.
I said Spike.

That's what I did.

Your faithful student, Twilight Sparkle.
# 

  1. Poke around inside the container to realize that I have SELinux helping me.

    podman run -v `pwd`:/letters --entrypoint=bash -it avian2/fimpp
    
  2. Run the program with fimpp inside the podman container

    $ podman run -v `pwd`:/letters:z avian2/fimpp /letters/zig.fimp
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    /\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\
    ///////\\//\/\\\\/\/\/\/\///\\/\/\/\/\/\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\/\\//\/\\\/\///\/\////\/\/\/\/\/\/\///\\