I just had to do this one first:
Of course, now that I have a good source and tool for making O’Reilly-ish (technically Dover Pictorial Archive style) cover images, more could appear at any time.
The top script comes from here; the bottom one is my old minimized CipherSaber implementation.
[Final version of the new japh I came up with after making this cover; intermediate steps after the jump]
sub _'__'_{sub{map{pop.shift}@_}}sub{print+(map{pack$..h.2,$_}_ _::__->
(split$,,shift.pop.shift))[map{hex}split$\,pop]}->(map y{#-`}{+-]}r,qw&
...../. (aa(+f*(,-0+e)-cb ../// ////..*. e/-0d+,b0.*ad1*a)d.+c(*af&)&0_
Original, too-obvious japh:
&{sub{@!=split//,pack'h2'x0x10,grep$_,
split/(..)/,pop.shift;print$![hex]for#
split//,pop}}(qw/78657470727f63602a6a0
e758d34b862ad92a1d63c02af b6c65616e63/)
This obscures it a bit more…
&{sub{@!=split//,pack'h2'x0x10,grep$_,split/(..)/,join'',&{sub{push@!,
pop.shift while@_;@!}}(split//,pop.shift);print$![hex]for split//,pop}
}(qw/260aa03f204583e15cb bfd e758d34b862ad92a1d63c02af 6666676777766/)
Hmmm, hadn’t noticed that made some of the original code redundant.
Best to remove it to make room for unique obfuscation (or at least
come up with another distinct use for pop.shift
…).
&{sub{@!=split//,pack'h2'x0x10,&{sub{push@!,pop.shift while@_
;@!}}(split//,pop.shift);print$![hex]for split//,pop}}(qw/5cb
bfd e758d34b862ad92a1d63c02af 6666676777766260aa03f204583e1/)
Getting ‘better’…
&{sub{@__=split//,pack'h2'x0x10,&{sub{map pop.shift,@_}}(
split//,pop.shift);print@__[map hex,split//,pop]}}(qw/5cb
e758d34b862ad92a1d63c02af 6666676777766260aa03f204583e1/)
Ahhh, that felt good. Got rid of all but one space character, because fuck Python:
&{sub{@!=map{pack'h*',$_}&{sub{map{pop.shift}@_}}(split
//,pop.shift);print@![map{hex}split//,pop]}}(qw/83e15cb
e758d34b862ad92a1d63c02af 6666676777766260aa03f2045/)&1
Three steps forward, two steps back. Net gain of 6 bytes, but it would have been eight if I hadn’t needed padding to make the lines come out the same length. At least the padding is obfuscatory…
sub{print+(map{pack$..h.2,$_}sub{map{pop.shift}@_}->(
split$,,pop.pop))[map{hex}split$\,pop]}->(qw&583e15cb
6666676777766260aa03f204 e758d34b862ad92a1d63c02af&),
Okay, I had to add two space characters to this version, but it was worth it. 😄
sub _'__'___{sub{map{pop.shift}@_}}sub{print+(map{pack$..h.2,
$_}___ _::__->(split$,,pop.pop))[map{hex}split$\,pop]}->(qw&b
6666676777766260aa03f204583e15c e758d34b862ad92a1d63c02af&),0
Markdown formatting and simple HTML accepted.
Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.