Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

exactly 390 bytes

by Anonymous Monk
on Mar 22, 2004 at 17:25 UTC ( #338686=obfuscated: print w/ replies, xml ) Need Help??

s dducfirstde and s ici chr oct hex acdaciego xor s ror study diverge +and s l lleg and s fr foo do reverse foo xor s go dog chr reverse ord + srand hypergeom and s eselcfirstexeseeo if s e e ILwHChJwulrZrjqBkNA +sAoXVcFMopbloPRZAcwJMcAcR ogctmccXVNgNLoorWVPvJoPocohNPoaccoSRcQWMcqw +WAngtcugnAKocovocoKxSLdiocEocTJTMY obcTJEcTcZocccDBcbEjcoWRABvGZoYoVc +fAnaoooAQATJnbLcoCoHzuPyJQIaIWNLqSxsLwremix

2005-01-07 Janitored by Arunbear - replaced pre tags with code tags, to allow code extraction

Comment on exactly 390 bytes
Download Code
Re: exactly 390 bytes
by MidLifeXis (Prior) on Mar 22, 2004 at 18:13 UTC

    Other than looking like some of the spam I receive, nice job :)

Re: exactly 390 bytes
by muba (Priest) on Mar 22, 2004 at 18:34 UTC
    I dislike the large amount of warnings I get. It's nice to see no special characters are used, like " and $ and such.
Re: exactly 390 bytes
by flyingmoose (Priest) on Mar 23, 2004 at 02:06 UTC
    I Can't Believe It's Not Text! (excellent, and I have absolutely no idea how this works or what magic can be done with s here...)
Re: exactly 390 bytes
by mce (Curate) on Mar 23, 2004 at 08:07 UTC
    Cool, but it coredumps on 5.8.0.
    (but I guess it is more related to the perl version than to your code :-) ).
    On 5.6.1 it works OK.

    ---------------------------
    Dr. Mark Ceulemans
    Senior Consultant
    BMC, Belgium
Re: exactly 390 bytes
by Anonymous Monk on Mar 23, 2004 at 08:23 UTC

    Well, here's the start of the ripping apart of this cool piece of text. I don't currently have the time to reverse engineer the whole thing, I may come back to it later if nobody else does so first:

    s//ucfirst/e and s/c/ chr oct hex acdac/eg xor s/o/ study dive/eg and s/\n//g and s/r /oo do reverse / xor s/o do/chr reverse ord srand hyper/e and s/s/lcfirst/eee if s// ILwHChJwulrZrjqBkNAsAoXVcFMopbloPRZAcwJMcAcR ogctmccXVNgNLoorWVPvJoPocohNPoaccoSRcQWMcqwWAngtc ugnAKocovocoKxSLdiocEocTJTMYobcTJEcTcZocccDBcbEjc oWRABvGZoYoVcfAnaoooAQATJnbLcoCoHzuPyJQIaIWNLqSxs Lwr/x

      My /eee foo is weak. I have absolutely no clue what a /eee switch does on a regex. Here's what I've worked the whole thing down to and I don't understand how it works its magic. I know that /eee is on the perl purity test, but I'm still clueless :|

      $_ = " ILwHChJwulrZrjqBkNAsA1XV8FM1pbl1PRZA8wJM 8A8R1g8tm88XVNgNL11rWVPvJ1P181hNP1a881SR8QWM8qw WAngt8ugnAK181v181KxSLdi18E18TJTMY1b8TJE8T8Z188 8DB8bEj81WRABvGZ1Y1V8fAna111AQATJnbL81C1HzuPyJQ IaIWNLqSxsLwo^ reverse ILwHChJwulrZrjqBkNAsA1XV 8FM1pbl1PRZA8wJM8A8R1g8tm88XVNgNL11rWVPvJ1P181h NP1a881SR8QWM8qwWAngt8ugnAK181v181KxSLdi18E18TJ TMY1b8TJE8T8Z1888DB8bEj81WRABvGZ1Y1V8fAna111AQA TJnbL81C1HzuPyJQIaIWNLqSxsLwr"; s/\n//g; s/s/lcfirst/eee;
        This is a brilliant obfu
        I've worked it out i think following on from the above spoiler here's it a bit further:
        Basically the first /e replaces the first s with an lcfirst version of the string (which is actually
        exactly the same as the first char is a space) so we now have this in $_:
        $_=" ILwHChJwulrZrjqBkNAILwHChJwulrZrjqBkNAsA1XV8FM1 pbl1PRZA8wJM8A8R1g8tm88XVNgNL11rWVPvJ1P181hNP1a881SR8QWM8 qwWAngt8ugnAK181v181KxSLdi18E18TJTMY1b8TJE8T8Z1888DB8bEj8 1WRABvGZ1Y1V8fAna111AQATJnbL81C1HzuPyJQIaIWNLqSxsLwo^ reverse ILwHChJwulrZrjqBkNAsA1XV8FM1pbl1PRZA8wJM8A8R1g8tm 88XVNgNL11rWVPvJ1P181hNP1a881SR8QWM8qwWAngt8ugnAK181v181K xSLdi18E18TJTMY1b8TJE8T8Z1888DB8bEj81WRABvGZ1Y1V8fAna111A QATJnbL81C1HzuPyJQIaIWNLqSxsLwrA1XV8FM1pbl1PRZA8wJM8A8R1g 8tm88XVNgNL11rWVPvJ1P181hNP1a881SR8QWM8qwWAngt8ugnAK181v1 81KxSLdi18E18TJTMY1b8TJE8T8Z1888DB8bEj81WRABvGZ1Y1V8fAna1 11AQATJnbL81C1HzuPyJQIaIWNLqSxsLwo^ reverse LwHChJwulrZrj qBkNAsA1XV8FM1pbl1PRZA8wJM8A8R1g8tm88XVNgNL11rWVPvJ1P181h NP1a881SR8QWM8qwWAngt8ugnAK181v181KxSLdi18E18TJTMY1b8TJE8 T8Z1888DB8bEj81WRABvGZ1Y1V8fAna111AQATJnbL81C1HzuPyJQIaIW NLqSxsLwr"

        (without the linebreaks)
        This is actually three strings (split by ^).
        These three strings are ^'d by the second /e which produces this:
        ILwHChJwulrZrjqBkNA;;;;;;;;;;;;;;;;;;;;print$#{$#= pack V6,unpack N6,join$",tsuJona,rehtreP,ah,lrekc}if$\=$/ __END__
        which is the actual japh - this is evaled by the third e....
        very very nice. I must admit - i'm curious who this anonymous monk is....
        Alex
Re: exactly 390 bytes
by Anonymous Monk on Mar 23, 2004 at 15:55 UTC
    Here is a dumb hello world:
    s RRprint q qHelloX WorldY
    qR and s RXRchr oct oct ord BRe and s RYRchr oct oct oct oct ord MRe and eval
    
    From that everybody can construct their own alphabetic code.
      Pity it's anonymous.. This is nice.
Re: exactly 390 bytes
by ambrus (Abbot) on Mar 25, 2004 at 21:49 UTC

    And so great it does not use the length trick:

    s kdkchr oct hex hex hex hex length dbmopentutjavaisevilbutmarksegand s smschr hex hex length nooriginalideasegand eval for lc printmqqmbdujustmanothermduperlmhackerdnb

    Small change (to fit in an sms):

    s kdkchr oct hex hex hex hex length qr hypergeomopenclosehksegand s smschr hex hex length qr open cosegand eval for lc printmqqmbdujustmanothermduperlmhackerdnb

      Let me make it even shorter:

      s kdkchr oct oct hex cekegand s lmlchr hex hex hex elseg and eval for lc printmqqmbdujustmanothermduperlmhackerdnb

      Update: even a bit more shorter:

      s kdkchr oct oct hex cekegand s lmlchr oct hex ffflseg and eval for lc printmqqmbdujustmanothermduperlmhackerdnb

      And here's a list of ways of representing numbers in short code consisting of only lc letters and space:

      The list has been updated.

      -5 = log cos hex b -4 = log sin hex affff -3 = log cos ord c -2 = log cos ord f -1 = log sin ord t 0 = cos ord b 1 = length z 2 = log hex c 3 = length zzz 4 = log ord e 5 = log hex be 6 = oct ord uc e 7 = log hex aff 8 = oct ord l 9 = oct ord w 10 = hex a 11 = hex b 12 = hex c 13 = hex d 14 = hex e 15 = hex f 16 = hex hex a 17 = hex hex b 18 = hex hex c 19 = hex hex d 20 = hex hex e 21 = hex hex f 22 = hex hex hex a 23 = hex hex hex b 24 = hex hex hex c 25 = hex hex hex d 26 = oct oct hex fff 27 = oct hex hex hex f 28 = oct hex daa 29 = oct hex dff 30 = oct hex hex aa 31 = oct oct oct hex daaa 32 = oct hex fff 33 = hex hex hex f 34 = oct hex ffffffff 35 = hex hex hex hex b 36 = hex hex hex hex c 37 = oct oct hex daaa 38 = oct oct hex hex ee 39 = oct oct ord ord c 40 = oct ord hex dd 41 = oct hex caaa 42 = oct ord hex fff 43 = oct oct ord uc a 44 = oct ord hex ffff 45 = oct hex daaa 46 = oct hex hex ee 47 = oct ord ord c 48 = ord cos ord k 49 = ord ord o 50 = ord hex dd 51 = ord hex eaa 52 = ord hex fff 53 = oct ord uc a 54 = ord hex ffff 55 = ord ord uc n 56 = ord ord uc p 57 = ord ord c 58 = oct ord uc h 59 = oct ord uc i 60 = oct ord uc j 61 = oct ord uc k 62 = oct ord uc l 63 = oct ord uc mz 64 = oct ord d 65 = ord uc a 66 = ord uc b 67 = ord uc c 68 = ord uc d 69 = ord uc e 70 = ord uc f 71 = ord uc g 72 = ord uc h 73 = ord uc i 74 = ord uc j 75 = ord uc k 76 = ord uc l 77 = ord uc mz 78 = ord uc n 79 = ord uc o 80 = ord uc p 81 = ord uc qz 82 = ord uc r 83 = ord uc sz 84 = ord uc t 85 = ord uc u 86 = ord uc v 87 = ord uc w 88 = ord uc x 89 = ord uc yz 90 = ord uc z 91 = oct oct hex cd 92 = oct oct hex ce 93 = oct oct hex cf 94 = oct hex hex dff 95 = oct hex ord uc yz 96 = hex oct ord uc j 97 = ord a 98 = ord b 99 = ord c 100 = ord d 101 = ord e 102 = ord f 103 = ord g 104 = ord h 105 = ord i 106 = ord j 107 = ord k 108 = ord l 109 = ord mz 110 = ord n 111 = ord o 112 = ord p 113 = ord qz 114 = ord r 115 = ord sz 116 = ord t 117 = ord u 118 = ord v 119 = ord w 120 = ord x 121 = ord yz 122 = ord z 123 = oct hex ad 124 = oct hex ae 125 = oct hex af 126 = oct oct hex ord h 127 = oct oct hex ord i 128 = hex ord uc p

      Update: oh, I forgot those ending with ord plus a letter and ord uc plus a letter, I'll check for those later. -- update: done now

      I, however, did check the ones with length qr jzzz...zzzj which could help as qr increases the number with 9 for only 5 char's cost, but it turns out that it's never the shortest.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: obfuscated [id://338686]
Approved by jweed
Front-paged by jdporter
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2014-04-18 06:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (462 votes), past polls