{"id":1044,"date":"2010-08-21T00:15:32","date_gmt":"2010-08-21T04:15:32","guid":{"rendered":"http:\/\/nickm.com\/post\/?p=1044"},"modified":"2010-08-21T00:15:32","modified_gmt":"2010-08-21T04:15:32","slug":"finally-your-50-character-reward","status":"publish","type":"post","link":"https:\/\/nickm.com\/post\/2010\/08\/finally-your-50-character-reward\/","title":{"rendered":"Finally, Your 50 Character Reward!"},"content":{"rendered":"<p>After I presented poetry generators <a href=\"http:\/\/nickm.com\/poems\/ppg256.html\">ppg256-1 through ppg256-5<\/a> at Banff in February, I shouted out, more or less spontaneously, &#8220;50 character reward to whoever gives us the best explanation of what ppg256 is!&#8221; Why did I say that? Childhood trauma, possibly, but the more immediate reason, as I <a href=\"http:\/\/nickm.com\/post\/2010\/02\/interventions-in-medias-res\/\">mentioned earlier,<\/a> is that the last of these, ppg256-5, is based on a section of Tristan Tzara&#8217;s February 1921 <a href=\"http:\/\/www.ralphmag.org\/AR\/dada.html\">Dada Manifesto,<\/a> one which ends with the phrase \u201c50 francs reward to the person who finds the best way to explain DADA to us.\u201d<\/p>\n<p>I got some great answers, including &#8220;It does a lot with a little&#8221; (Chris Funkhouser) and &#8220;ppg combines atoms of language&#8221; (John Cayley). But at this point I&#8217;ll skip right to the one from Travis Kirton, who did the following without having any previous experience programming in Perl:<\/p>\n<blockquote><p>\n<code>perl -le '@a=split\/,\/,\"illmn,imgn,ltr,mut,pxl,popl,strlz,pnctu,typfc,poetc,glmr,idl,ion,cptl,cpsl,cvl,atom,pltc,txtul,erotc,rvl\";sub f{pop if rand>.5}sub w{$a[rand@a]}{print f(\"de\").f(\"over\").w.\"izes \".w.\"ation\".f(\"s\").\"\\n\".(\" \"x45).\"IS WHAT ppg DOES!\";sleep 5;redo}'<\/code>\n<\/p><\/blockquote>\n<p>The program is a modification of ppg256-5, one that answers the questions that ppg256-5 generates. That&#8217;s not only clever; it showcases the expressive power of small programs and the many, if not arbitrary, uses to which a language generator can be put. This certainly earns the reward. Travis, here&#8217;s an base64-encoded version of a 32-byte DOS intro, <a href=\"http:\/\/pouet.net\/prod.php?which=54485\">matisse,<\/a> by orbitaldecay. When you run it after decoding it with <a href=\"http:\/\/www.motobit.com\/util\/base64-decoder-encoder.asp\">a base64 decoder,<\/a> it should <a href=\"http:\/\/www.youtube.com\/watch?v=NbV9enPFpO4\">look like this.<\/a> The base64-encoded string, you will notice, is exactly 50 characters in length:<\/p>\n<pre>sBPNEMUPHgeLFwmXQAEJVwFL4vSsQKq5ZQDkYEh16cM=<\/pre>\n<p>Okay, I lied. It&#8217;s only 44 characters long. Please accept <code>base64<\/code> as the remaining part of the prize.<\/p>\n<p>Now, I think <a href=\"http:\/\/epc.buffalo.edu\/ezines\/elp\/issue-1\/ppg256.php\">Mark Markino&#8217;s explanation of ppg256,<\/a> which I <a href=\"http:\/\/nickm.com\/post\/2010\/08\/new-journal-primes-you-for-ppg256\/\">wrote about yesterday,<\/a> is also great and will suffice. It&#8217;s a wide-ranging and deep study of the series of generators, similar programs I&#8217;ve discussed, and some relevant contexts of techneculture. I can&#8217;t really decide which of these explanations is best, as they both work excellently for what they are. So I am going to offer Mark Marino a 50-character generator, too. Mark, here is an ASCII encoding of a set of tools that, used properly, will allow you to draw any image:<\/p>\n<pre>())\\_\\_\\_RED\\_\\_\\_))\\_> ())\\_\\_GREEN\\_\\_))\\_> ())\\_\\_\\_BLUE\\_\\_))\\_><\/pre>\n<p>Enjoy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After I presented poetry generators ppg256-1 through ppg256-5 at Banff in February, I shouted out, more or less spontaneously, &#8220;50 character reward to whoever gives us the best explanation of what ppg256 is!&#8221; Why did I say that? Childhood trauma, possibly, but the more immediate reason, as I mentioned earlier, is that the last of &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/nickm.com\/post\/2010\/08\/finally-your-50-character-reward\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Finally, Your 50 Character Reward!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[44,21,17,4,15,13],"class_list":["post-1044","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-competitions","tag-constraint","tag-digital","tag-poetry","tag-programming","tag-writing"],"_links":{"self":[{"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/posts\/1044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/comments?post=1044"}],"version-history":[{"count":12,"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/posts\/1044\/revisions"}],"predecessor-version":[{"id":1076,"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/posts\/1044\/revisions\/1076"}],"wp:attachment":[{"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/media?parent=1044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/categories?post=1044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nickm.com\/post\/wp-json\/wp\/v2\/tags?post=1044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}