Birthday tribute Japh
liverpole
created: 2006-03-26 17:35:52
I wrote this as a tribute to my younger brother, who unfortunately passed away when he was only 23.

Yesterday was his birthday; he would have been 39 years old.

Of course I can't be certain, but I suspect he would have liked Perl.  He always had the kind of mind that enjoyed mathematics, puzzles, and games, and I'm quite sure that he would have gotten a kick out of programs like this.

The program is similar in appearance to Latent Japh and Japhy New Year, but uses a completely new trick, which, by its nature, does a better job of "randomizing" the ascii output.  Can you figure out how it works?

Update:  On Windows, the module "Win32::CONSOLE::ANSI" is required.  On Linux, you'll need to run it with "perl ", since it doesn't have the shebang line.

$_=' `  `  `````   ```` ` ``  `` ```  ` ``` ````  ` ```` `` ``    ``` ``   `  
 ` ```  ` ``  ` ````   ```` ` ``` `  ````  ` ``  ` ` `     ` ` ````` `  ``` ``
`  ``  `` ``  `  ``` `  ``` ` `    ```  `````  ``` ` `  ```  `````  ``  `   ` 
` ``` `  ``` ` `     ``  ``` ` `  ```  `  ` `   `  ``` `````  ````` ` ```   ` 
 `     ` `  `````` `````  ````  ` ``` ``  ``  ` ```   ````` `   `  `  ` `` `  
` ``   `  `  ` `` `  ` ``   `  `  ` `` `  ` ``   `  `  ` `````` `` `` ``    ` 
``` `````` ````  ````` ` ```   `  `     `` ```  ` `   ` ```   `  `   ` `  ````
` `` ` `    `  `  ` `     ` `  ` `.`` `` ,;   ` ````` ``` `` `  `   `  `  ` ` 
    ```` ``````` ```  `` ` `` ` . `    ` .>bx!.,:;!|;.,`` ` ` `` `````    ``` 
`` `  `  ```   ` ```` ` `  `  ,..,  ` ``:!ob)Fp>;,``` !:`  ` `   `` ```````  `
 ``  `   `  `  ```   ` `````,!|:;.   ``,,.;o!`  `  ```   ` ```` `
`` ```````  ` ``  `   ` ` ;!<pEFMWo` .. .x<`  ` ` ` ` ```` ` `
 `    `  `  ```   ` ` `:xoxbpxoxpo<:,``  ` .<(WM@#F:`:<>:.x;` ``` `` `  `  ` `
 ``  ```` ` `  `  ``` ;p)()(WWE)pbo>; ` ` `,| ` `` ` `` `   ```
 `` `  `  ` ` ` ` ` `|(WM@@WWMW()o<:;,`````,|obp(b(>.|(WWMp))`  ````  ` ````` 
`` `  `   `  `  ` ` ;pM#@@@@#WF)bo>>!:..  `.;|>>:.,;:<>x>!x>;|(#@#@#)Mx  ` ```  ` `  `
 ` `` ` ` `` ` ``` )W#@#@####@MMWEEFE)()x|;.;|>!.x###@EM@EM#@@< `  ` `  ` ` 
`` ` ``  `` ``  o@#@#@@###@@@##@#@@###M#F()xox<|<>!(#@@#WW#MW@##F,``` ``` ``  
`````` `  `` `  ##@##@###@@##@@#@#@##WMWM)poooopob>oW@@#MW#@@##@#( ` `    `  `
   `` `   ` `  >#@#@@#@#@@##@@#@@##@@#@#@M#W(b)F(b><)EMWEE@@@###@#>``` ```````
  ` ````` `` ``#@####@#@###@#@#@@@#@#@#@@@WWFE(((>|:pbFFE@@##@###@# `  ` ` ` `
 ```` ` ` `` `;@##@##@#@#@#@#@@@#@@#@##@#MWF)xxxo;..>>(WW@@@@@##@#@o``` `` `` 
`    ` `   ```(@@@#@#@#@@@@@@####@@@#@@@MWFp<>!x@#@#@@##@@@@M` ` `` ` `
  `  ` ` `` ``@@@#@#@#@####@##@##@#@#@#@MWEo|!;,` ,:!;>E@#@@##@#@##@````` ` ` 
 `  ` `  `` ``@@#@#@@#####@#@@@##@@####MWW(<::,``` .:::o##@@@@@#@#@@`   `  `  
   `   `  ```:#@@#@#@####@##@##@@@##@#MWE)x!.,```` .:;;!###@#@@@@@#@.` `````  
  ```  ` `` `x#@@@#@@@#@@@#@###@###@MWE)b>;;.`  ` `.;::!)@@##@###@#@.`  ``  ` 
`` `` ```  ` )##@###@##@@@#@@@####MMF)bx!;, ```` ``,;,;!xE@##@##@@@#;`  ``` ``
 `  `  ` ` ``F#@@@@#@@@@##@@@@#F(ppoo<|; ```  `` .`.,.,<>pE####@@@##;  ``` ```
`  `` `` ````F@@##@##@#@###@#Exxb(###@##@#<``  `   `
 ``   `  `  `)####@#@#@##@#@b>.,.`` ```  `  ` ,:!:>obo<|oobFFEFF(WM)(pxx@##@##@W` ` ` ` `
`   `  `  ```,@@##@#@##@#Wb>>!|:.,..` ,.  `;!o(W@@W)x>>o(F)xoE#@##@## `   ````
 ```    ```   )#@@@##@@#@Mpoppboo<>!:,.`.``;|:!!opbpb(F))x>!|>xxxM@@@###` ```  ``
 `  `  ``` ``  @@@#@@@@#@@#@WFEM##@@W)x!,,`.|opbbF@@#MME>||xxoE@@#@##:`` ``` `
`` `  ``  ``  `p##@#@#@@@##Fo<<>p)@#@W(o:,.;!>p)>oEMbxxx>|:!>>(@##@#@>`  `  ` 
 `    `  `  ` `,@@@#@###@##b<>o(##@(#@EE>:,;!!><>!><:.:.;:;;>>bM@@@#@o` `   ` 
`    `  `  ` ```@@#@#@#@##)p(WME@@F<)WEMb!.:||;|x)##W#@p``   `  
`  ``  `   ` ` `)@@#@##@@Fxb@@(ob)<|<(MF(>,;<<:!;:;;.,.:...,|###@###WE)((o|::|:!|p@EFx;,!>|!;;;,:,`..,,.!>obEp><#.  `   ` 
  ` `` ` ``   ` .#@##@#@WFpo>:;|;;.:<)MMFx!.;>!!::,...,..,.,!|xpb><>!|;,:;,:|(EMEb<.;|<|:;....,` .,;:!xb>|!>b  ``` ```
```` `````` `` ` (@@#@##Wpx>;:;,..;:;)EWM(>:;;>!!::;,,,``...,|ob||!>:`   `   `
 `   ` `` `` `  ``@@@#@#Wp<|;,...,.,|bEMM)<,.:|<|!;:;,,....;;!op|::>,`   `  ` 
```` `    ` `    `@#@@@#M(>!;...,.,,;bMMW(>.`,:!;;!>!,,.:;|<

:x| `` ` ` `` ``` `` `` ```,#@##@#Eo<|:.,,,,.<)MEMEo|:!x)Eo>|!xo|;;:!<>>pM)(, ` ```` ` ` `` ``` ` ```E@##W@Mp<||;,,,,.oEE(M##FpxbpEb>|!xxo|||!<>@MWE@#Fx<|;,,..:bWMW@#@W()bx>>|!;|<<>>!;><;;.,.;x(FEM@MF))<:|><|::,:><::<|>oE#@#(`` ` `` `` ` ``` ` ` `pFEFE#W(o>|!:.;;>oxp()o>!;;;:!|:|!.:;|.:>!>x(@###)!` ` ``` `` ``` `` ```,MWME@WM(x>||!||!><!::.,,:!|||;|xo##@@#M`` ` ` ` `` ` ``` `M##@MM)bo<><||<|:,.;;:;|px@@@@#@``` ``` ` ` ` ``` ` ``:#@###E)p><;.|ooxoo>!|!:;|p(WEb|:,``.<<;>px(@#@#, ` `` ` ` ` ````` ` ` ``` `,:)MEEb!p>|op)(E)((())((()p>!:.. `,>|!ox>E@@#,`` `` ` ` ` `` ` ` ` ````` :MWM(><:.<)M#M@MEbx<>:!!>!,..,`,;>|

!(@@( ` `` ` ` ` ` ` `` ` `````FWMEb!:..;!;;.`:!|::,, `,!|>oo!>oW#! ` ````` ` ` ` ``` `` `` ` ` ``xo>|;:;:,.;;;.:;.,;!|;;>>#@x` ` ` ` ` ` ` ` ` ` `` ` p#WWx|,,||<>>x|:|!.>#@M.` ` ` ``` `` ` ` ` ``` ` ``` ` )@WMo,;!|>><||!!|;;;,.,.,,.:!!><<::!.`,F#@#!` ``` `` ``` `` `` ``` ` ` ` .W#WE<.!><<x;::, ` <@##@<``` ` ``` ` ``` `` ` `` ` `;W#M(>><<<>!;:;;:::,.,,:.;!|<>>.,.`` o#@#@#E `` ` ` ` ` ` `` ` ` ` `` `!M#W)<!:;;::;;.,,..;:|<<>:, ` `E#@##@@@, ` `` ` `` ` `` ``` ` `` ```<#@Ebxox>|!;:;:::,,.:;;|!>>>,``` ``.#@@#@@##@F ``` ` ` ` ` ` ` ``` `` oM@(boo><|::;:.,...,;||>!:;,:::||>xpx; ` ```E@#@@###@##@@ ` ` ` `` ` `` ` ` `.(##@#Mx)##E)x<|!!|!!!|<>:;` :(@##@@W!@#@@###@ ``` ` ` `` ` `` !F##@##@###@#@x;!!|,` ` ``>##@@).`>#@@@#@## `` ` `` ` ` .x##@@@#@@@###@##@@W!|!x(W@@WFx>!>>. ` ;..#@@): )#@#@@##@ ` `` ``````` ```:(###@#@####@#@##@#@@@;|;:x(W#Wbo<>o| ,|)E@@#)@@p`` .@#@@@#@@# ``` ` ``` ` o@@###@@@@###@@@#@###@@#!:!;:|xMM(oxx>oW#@#@####@|` ` |#@@#@@@@@ `` `` ````;(#@@#@@@#@@#@@#@@#@@#@@#@M<>>>|;.|)M@EW#@##@#@@@#@@` `(##@#@###@ `` `` `,p@@@@@#@####@##@@@#@#@@###@##@@@#W(<>E##@#@##@#@###@@@. ` #@#@#@#@@# ``` .p##@##@##@###@##@@#@###@##@####@@@##@#@@@#@#@###@##@@@#@(`` ,#@##@@@#@# ` ,oW#@@@@#@@@###@##@@@@###@##@###@#@@###@#@@##@@@#@@####@@#@@ `,@@@@@@@### !W@#@@@@##@#@@@####@#@#@@@@@@@@####@@##@@##@##@###@#@@###@###;``|@#@##@#@@# ` .M@###@@#####@@####@#@####@@@##@@##@#@#@@#@#@@@##@@#@#@@@@###@|` p@@##@#@#@@ )##@###@##@@##@####@@@#@#@#@#@@#@#@#@@#@@@#@@@##@@##@@#@#@@@#@| M###@#####@ `,#@#@@@##@@#@@#@#@#@@@##@#@@@##@##@##@#@#@#@@@#Wbo)#@#@#@###@@#` @@##@##@@## `p##@@#@##@###@#@####@###@##@#@####@@#####@##(oo .;!|>pEWMWMM(>` :##@@##@##@# `@@##@#@@@#@@#@#@#@@##@#@@@####@#@##@#@#@##@x,`` ` `.;.... ` ` `x@@@##@@@@@# ,@#@@@#@@#@@@##@##@@###@@@#@@#@#@#@##@#@##W! `` ` ` ` ``` `` (@#@@@@#@#@@ >#@@@##@#@@@#@@#@@@##@##@#@@#@#@#@@#@#@M@p,` ` ` ``` ```` ``` `@@##@#@@@##@ x@@####@@@##@@##@#@@@@#@@@#@@@#@##@@Fbx|:` ` ` ` ` ``` `` ` ` |#@##@@#@@@@# b#@@#####@#@@@##@@#####@@#@###@#@@#@;. ` ` ` `` ``` ````` ` `o##@#@@@##@## F@#@@@@@@@@@#@######################, , E';s,\n,,gxm; while(s&(.{7})&&){$x=64;$y=0;$z=$1;while($x){$z=~s-(.)--x;$w=$1;##by liverpole ($w=~/[\@WF)bo>|:.`]/)and$y+=$x;$x>>=1;}$y and$v.=chr($y)}eval$v#March 25,2006


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
Re: Birthday tribute Japh
created: 2006-03-27 07:28:40
Holy (#!curse!#) Now that is a hel..heck of a job!!

Happy Birthday!

Re: Birthday tribute Japh
created: 2006-03-27 15:28:52
I'm sure your brother would have appreciated your efforts. I lost my brother at the age of 25 he'd be 53 this month, it never feels right.

Nice job on your obfu, very clever!

Sweetblood

Re: Birthday Tribute Japh
created: 2006-03-29 05:17:43
That's very nice.

Opening in gvim shows breaks in strings etc which help see some of it but it's not all there yet.

Re: Birthday Tribute Japh
created: 2006-03-30 16:01:10
nice job xoxo
Re^2: Birthday Tribute Japh
created: 2006-04-02 16:36:45
I just talked to my 22-year old daughter, who is a junior at college, and had a very close relationship to her uncle.  She told me it was she who wrote the above message!

I *thought* that xoxo was a little unusual ... :)


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/

perlmonks.org content © perlmonks.org and Anonymous Monk, liverpole, sweetblood, tweetiepooh, wulvrine

prlmnks.org © 2006 edmund von der burg (eccles & toad)

v 0.03