Most paint-spatters are valid perl programs

Originally published at: https://boingboing.net/2019/04/05/pollack-perl.html

4 Likes

Still funny, but four days late.

3 Likes

All this time Bob was secretly a master front end developer. Who knew?

17 Likes

I have no problem calling a paint splatter “Perl code”, but I do have a problem calling Perl code a “program”.

Across the board.

13 Likes

giphy

10 Likes

Sadly, the reverse is not true.

2 Likes

The co-author “Tim Toady” made me chuckle.

There’s more than one way to do it.

1 Like

I’ve come close in the past:

#!/usr/bin/perl
                       $l=                                                      
                     '10+[                                                      
                     2>7+>                                                      
                   12+>11+                                                      
                   >12+>3+        >10+>11+>11+>12+>10+>10+>11+>3+>8+            
                 >10+>11+>      11+>3+>10+>10+>10+>11+>10+>11+>4+>+[<]          
              <-]2>4+>3->5                   +>4->2+>3-2>+   >4->4+>+>4+>       
              2+2>+>4+>2->                                                      
           2+>4+>3- >->3-                                                       
       >+>4+>4+[    <]>[.                >  ]';$l=~                             
       s/ //g      ;$j=0                ;@c=('>','<','+'                        
                   ,'-',             '.',',','[',']');@v=('$P                   
                   ++;',            '$P--;'       ,'@B[$P]++;',                 
                   '@B[$P          ]--;','              print  chr              
                   (@B[$P         ]);','@B[$P]           =ord(getc              
                   (STDIN         ));','while            (@B[$P]                
                   ){',           '}');foreach           (@c){$p                
                  =$p.'$l         =~s/\\'.$_            .'/\\'.$_.              
                  '!/g;'           ;$i{$_}=@v        [$j];$j++;                 
                  }eval                $p;@a=split/!/,$l;foreach                
                  (@a){                 $h=chop$_;$_--;$q                       
                 =$q.$i                    {$h}x$_;$q                           
                 =$q.$i                      {$h};}                             
                 eval
		 $q;
5 Likes

So the question now is, what program was the paint-splattering robot writing?

And could programming a paint splattering robot to OCR it’s own paint splatters and then respond to the commands the funnest way to bring about the singularity?

6 Likes

It strikes me as quite odd (maybe because of my age) that “smearing paint on the walls” and “learning to code” are here set up as opposites, or at least, as mutually exclusive.

When I was first learning something about BASIC programming at about 9, I was doing it because I was interested, because it was fun. It wasn’t supposed to be a job training exercise.

A very large fraction of my high school class took some kind of introductory computer programming course, and that was true again in college. Few of those students had any interest in turning that into a career, and few of them did, as far as I know.

Maybe “teaching kids to code” means something different now than it did when I was a kid learning about computers. I would have guessed it would involve something like Scratch, where it’s easy to make something silly for fun but almost impossible to make something serious or useful. It’s “coding” in the same way that “smearing paint on the walls” is “painting.”

10 Likes

My mom is someone for whom this dichotomy exists. I was born in '81, but as a kid was never exposed or encouraged to get into programming (or math or science) because of the dichotomy she perceived between creative expression and anything smelling of engineering. I didn’t start writing scripts until my animation professor in college showed us some actionScript. Luckily Lego snuck me some of the fundamentals growing up, but I do lament the lost time.

10 Likes

Do you think that Harry Q. Bovik would be proud of the legacy he has left behind?

What’s a pear and how is this connected in any way to paint splots. (Asking for a ludite)

But are most Mondrian paintings valid Piet programs?

3 Likes

Pear Programming is where two engineers sit at one desk and one of them eats a snack while the other works.

8 Likes

For the record, I’m usually the one snacking

2 Likes

A significant part of my job now is coding, and I think this whole idea of teaching everyone to code in elementary school is really stupid.

I didn’t teach myself to code until I was in my 30s, and more of my colleagues have formal qualifications in math and physics than in anything directly related to computers.

Basically, anyone with a solid grounding in math/ mathematical abstractions can teach themselves to code using google, and people without that grounding are going to have trouble with anything more sophisticated than patching together a website from a framework even if they do learn to code.

Having an elective in junior high or high school is a good idea, but as far as required classes go, a solid grounding in math and basic science is far more important than coding.

3 Likes

Wow. Back when we were learning C, there were horrible operators like ?: and += that could only have been designed to make your code impenetrable. We learned them, but we saw them as cruel jokes.

I am grateful Perl didn’t exist.

5 Likes

Hello world in perl:

package Earth;sub Greet{
%=(‘Y’,’~’);_=';=!(Middle
Earth.age~~~<Eart~h
.age)?!(defined$ti
~mez
~On
e[2])?!(push@timeZone,loc
~altime())?rotation?~q?The Worl
d?:q:[\w]::q=[~d~a-f]=:q?..
~?:q:.:;"42b3d3
~728656c6c6f6
~0277f627c64672
~b3072796e647
~42b3b3rg7d"=Ym
~~~~~$;*;pu
~sh@
,$&;bless~~~~~~~~~~~~~~~c~~~~~~~ ~~~~~~~~~o~ntine~~~~~nt~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~s=\~~~~~~~~pangaea
~;{l
ocal@_;local$;
~="o
~cean";$^A=(defi
~n
~ed$continents)?
~(vec(
;, YYsplit(\' ~~~~~~~~~~~~~~~~~\',{$;}~~~~~~~~~~~~~~~~~~)%3,YYsplit(
q??,;)**2-~~~~~~~~~~~~~~~~~~~~~~((;=Ytr/oa
eiu//)**2))=
=28160)?q:
~.::q?!?:’?
’;}^A=Ys ~~~~~~~~~~~~~~~~:\Q.\E:pack(~~~~~~~~~~~~~~~~~~~~~~\'h*\',j ~~~~~~~~~~~~~~~~~oin(q(),~~~~~~~~~~~~~~~~~~~~~~~grep{=
Ym,$,}~split("
~",@_
[0]))
):e
~gexe
~;$d
~="s
ort
<=
~~~~~~~~~~~~>,~~~~YY
~@

~"
~’;;
s,(~|\r|\n|\s),g;s.Y.\x7e.g;
eval};Greet;‘the world’;
https://www.perlmonks.org/?node_id=329174

6 Likes

What’s wrong with +=? Or the ternary operator?

5 Likes