☣ ppencode ♨
DESCRIPTION
A humorous lightning talk for Perl folks, delivered on OSCON, YAPC::NA, CONISLI, OSDC and many other occasions. Original author: @takesako (in Japanese); translated by your truly.TRANSCRIPT
![Page 1: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/1.jpg)
☣ ppencode ♨
竹迫 良範TAKESAKO Yoshinori
1
![Page 2: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/2.jpg)
☣ ppencode ♨
唐鳳Otori-tan
2
![Page 3: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/3.jpg)
Where is the Next OSCON?
3
![Page 4: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/4.jpg)
Where’s the next Conference?
4
![Page 5: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/5.jpg)
Where’s the next Conference?
“waterfall”
4
![Page 6: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/6.jpg)
Waterfall
5
![Page 7: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/7.jpg)
Waterfall
Reallypopular
5
![Page 8: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/8.jpg)
Waterfall
ReallypopularNotjustfortourists
5
![Page 9: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/9.jpg)
Waterfall
ReallypopularNotjustfortouristsProgrammerstoo
Drowning
5
![Page 10: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/10.jpg)
Waterfall
ReallypopularNotjustfortouristsProgrammerstoo(ExceptforAgilehackers)
Drowning
5
![Page 11: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/11.jpg)
Waterfall
Model
6
![Page 12: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/12.jpg)
makes a slippery slope…
Waterfall
Model
6
![Page 13: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/13.jpg)
makes a slipping deadline!
Waterfall
Model
7
![Page 14: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/14.jpg)
8
![Page 15: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/15.jpg)
Rewrite = Biohazard8
![Page 16: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/16.jpg)
Escapeawaterygrave
9
![Page 17: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/17.jpg)
use Ruby;
10
![Page 18: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/18.jpg)
Ruby On Snails
11
![Page 19: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/19.jpg)
Ruby On Snails
ThenewframeworkforWeb3.14159...Grindsanysystemtoahalt!byDaveThomasandMikeClark
11
![Page 20: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/20.jpg)
Waterfall OSCON
12
![Page 21: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/21.jpg)
Waterfall OSCON
Where?NiagaraFalls,NY
12
![Page 22: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/22.jpg)
Waterfall OSCON
Where?NiagaraFalls,NY
When?April1st,2007
12
![Page 23: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/23.jpg)
Waterfall OSCON
Where?NiagaraFalls,NY
When?April1st,2007
Registrationbeginstoday!http://waterfall2007.com/
12
![Page 24: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/24.jpg)
Pair Managing
13
![Page 25: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/25.jpg)
Pair Managing
NotPairProgramming
13
![Page 26: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/26.jpg)
Pair Managing
NotPairProgrammingGroundbreakingMethodology
13
![Page 27: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/27.jpg)
Pair Managing
NotPairProgrammingGroundbreakingMethodology
1Programmer
13
![Page 28: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/28.jpg)
Pair Managing
NotPairProgrammingGroundbreakingMethodology
1Programmer2Managers
☹☻☻
13
![Page 29: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/29.jpg)
Pair Managing
NotPairProgrammingGroundbreakingMethodology
1Programmer2Managers
byJimHighsmith☹☻☻
13
![Page 30: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/30.jpg)
Unfactoring
14
![Page 31: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/31.jpg)
Unfactoring
Takecodeoutfromfunctions
14
![Page 32: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/32.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
14
![Page 33: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/33.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk
14
![Page 34: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/34.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk➡Cut
14
![Page 35: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/35.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk➡Cut➡Paste
14
![Page 36: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/36.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk➡Cut➡Paste➡Paste
14
![Page 37: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/37.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk➡Cut➡Paste➡Paste➡Paste
14
![Page 38: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/38.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk➡Cut➡Paste➡Paste➡Paste➡Release!
14
![Page 39: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/39.jpg)
Unfactoring
TakecodeoutfromfunctionsInlinethemeverywhere
byJoshuaKerievsk➡Cut➡Paste➡Paste➡Paste➡Release!
OptimizeforObscurity!14
![Page 40: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/40.jpg)
Obscurity?
15
![Page 41: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/41.jpg)
Obscurity?Perl?
15
![Page 42: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/42.jpg)
QuitBadHabits
WriteHealthyCode!
16
![Page 43: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/43.jpg)
Prescription
17
![Page 44: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/44.jpg)
Prescription
17
![Page 45: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/45.jpg)
PlanBFixthelanguage
18
![Page 46: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/46.jpg)
Obscure
Perl5→19
![Page 47: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/47.jpg)
Crazy Sigils in Perl 5
Scalar Array Hash------ ----- ----$s @a %h$$s $a[0] $h{'?'}$s->foo ☹ ☹
20
![Page 48: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/48.jpg)
Happy Sigils in Perl 6
Scalar Array Hash------ ----- ----$s @a %h$$s @a[0] %h<?>$s.foo @a.foo %h.foo
☺
21
![Page 49: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/49.jpg)
Readable
Perl 6!22
![Page 50: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/50.jpg)
23
![Page 51: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/51.jpg)
O’REILLY
24
![Page 52: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/52.jpg)
NOT’REALLY
25
![Page 53: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/53.jpg)
26
![Page 54: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/54.jpg)
Itmaylooklike…
27
![Page 55: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/55.jpg)
Obscure
JAPH!28
![Page 56: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/56.jpg)
JAPH
print “just another perl hacker”;
¥1,500 - By 水野 貴明 (著)
@a=split(/(\d)/,"4Hacker,2another3Perl1Just");
shift(@a);%a=@a;print "@a{1..4}";
Randal Schwartz 1 Feb 1990 22:28:58 GMT
●FirstJAPHinhistory:
29
![Page 57: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/57.jpg)
But
It’sokay...30
![Page 58: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/58.jpg)
Because…
31
![Page 59: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/59.jpg)
JobSecuritythroughObscurity
32
![Page 60: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/60.jpg)
hello world
package Earth;sub Greet{ %_=('Y','~');$_='$;=!(Middle Earth.age~~~<Eart~~~~~~~~~~~~~h .age)?!(defined$ti~~~~~~~~~~~mez~~~On e[2])?!(push@time~~~~~~~~~~~~~~~~Zone,loc ~altime())?rotation?~~~~~~~~~~~~~q~~?The Worl ~~d?:q:[\w]::q=[\~~~~~~~~~~~~~~~~~d~a-f]=:q?..~~ ~~~?:q:.:;"42b3d3~~~~~~~~~~~~~~~~~~~~~728656c6c6f6 ~~~~~0277f627c64672~~~~~~~~~~~~~~~~~~~~~b3072796e647 ~~~~~~~42b3b3rg7d"=Ym~~~~~~~~~~~~~~~~~~~\$;~~*\;p~~~~u ~~~~~~~~~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';
http://www.perlmonks.org/index.pl?node_id=329174
33
![Page 61: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/61.jpg)
Saturn#!/usr/bin/perl ;;;;;; ;;;;;;;;;;; ;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;; +$I=sub{+s+^+ ;;;;;;; ;;;;;;;;; $"x$_[1]+gem;$/x$_# ;;;; ;;;;;;;; [0].$_.$/};$W=sub{$~=!q~ ;;;;;;; ~.pop();system($^O=~Win?ClS:# ;;;;;;; 'clear'),print,select$Z,$Z,$Z,!" ;;;;;; "||$~for@_};$H=sub{+join$/,map($_# ;;;;;; x$_[0],pop=~m-.+-g),!_};$_=!Mima,s-- ;;;;; "@{['=9+)w'^RINGS]}\%;local@{[Saturn^# ;;;;; wNXIBP]}"-see;s-^#!..+?$/(?=$"+;)--is ;;;; y-;-'-;s-\w-~-gi;$S=$_;#--Beautiful] ;;;; @S=m-.+-g;$N=1+.6-!th_,$--=-82-$--- ;;; $_.=$"x-(y---c-$-)for@S;$R=sub{$i# ;;; -d =0;join$/,map{$j=$%;join!_,grep# ;;; Rhea !($j++%$_[$%]),m-.-g}grep!($i# ;;; -Titan ++%$_[0]),@S};$L=join!_,map# ;;; -Huygens ~~reverse.$/,@S;@R=(&$I(q- ;;; -&&20,051, $_=_^q-q-),&$I(20,41-!q- ;;; -,$_=F|K),$ I->(15,31,$_=&$R(4-!q- ;;; -)),&$I(13-!" ;;",28,$_=&$R(3)),&${ ;;; _^_^I}(10,20-!" ;;;;;",$_=$R->(2)),q- ;;; -&&$S);@O=map&{" ;;;;;; "&&$H}($_,&${ ;;; R.!-_}($_))x$_,!" ;;;;; "+2..2*~~2 ;;; @Y=reverse@R#Dione ;;;;;; &${m-- ;;; S|A|T|U}(@R,$N)||!q- ;;;;;;; b- ;;; &$W(@O[0,1,2,1,0!=!q- ;;;;;;; ;;;; -],!1!~~1);&$W($S.!q- ;;;;;;;;; ;;;;; -,$L,0.16)for$%..5+!q- ;;;;;;;;;; ;;;;;;;;; Cassini-;&{$W||q- ;;;;;;;;;;;;;;;;;;;;;; -}(@Y,1.6) ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; http://www.perlmonks.org/index.pl?node_id=329174
34
![Page 62: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/62.jpg)
Good Job! ∩ ( ⌒) ∩_ _グッジョブ !! /,. ノ i .,,E) ./ /" / /" _n グッジョブ!! ./ /_、_ / ノ' ( l _、 _ / / ,_ノ` )/ / _、 _ グッジョブ!! \ \ ( <_,` )( /( ,_ノ` ) n ヽ___‾‾ ノ ヽ ¦ ‾ \ ( E) / / \ ヽフ / ヽ ヽ_//
35
![Page 63: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/63.jpg)
Perlsucks
36
![Page 64: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/64.jpg)
use Ruby;(^_^)
37
![Page 65: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/65.jpg)
Ruby: Brainwash Weapon
TAKAHASHIMasayoshi,YAPC::Asia2006
38
![Page 66: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/66.jpg)
Perl -> Ruby
Thebestwaytoconvert
PerlProgrammerstoRuby...
39
![Page 67: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/67.jpg)
Eureka!
Takeoutthe“$”and“;”keysfromPerlpeople’skeyboards!
40
![Page 68: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/68.jpg)
PerlPeoplewillbeforcedto
useRuby;
41
![Page 69: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/69.jpg)
Sounds
Good…42
![Page 70: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/70.jpg)
But43
![Page 71: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/71.jpg)
Counter Strike!
#!/usr/bin/perl -wlength q chr uc and print chr oct ord q gt log and print chr oct ord q qx eq and print chr ord uc q qw eq and print chr ord q q q and print chr ord uc q or no and print chr ord q pop and print chr ord q oct do and print chr ord qw q keys q and print chr ord qw q s q and print chr hex length q q bless localtime ref q
RealPerlprogrammercandowithoutpunctuation!
44
![Page 72: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/72.jpg)
Counter Strike!
#!/usr/bin/perl -wlength q chr uc and print chr oct ord q gt log and print chr oct ord q qx eq and print chr ord uc q qw eq and print chr ord q q q and print chr ord uc q or no and print chr ord q pop and print chr ord q oct do and print chr ord qw q keys q and print chr ord qw q s q and print chr hex length q q bless localtime ref q
→ print “OSCON Rocks!”;
RealPerlprogrammercandowithoutpunctuation!
44
![Page 73: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/73.jpg)
PerlProgrammingwithonly
Keywordsandwhitespace!
45
![Page 74: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/74.jpg)
Keywords
ltgtlegeeqnecmpnotandorxorifelseelsifwhileforforeachcontinuegotolastlocalmapmynextredorequirereturnusetrysmqqqqrqwqxx
absacceptalarmatan2bindbinmodeblesscallerchdirchmodchompchopchownchrchrootcloseclosedirconnectcoscryptdbmclosedbmopendefineddeletediedodumpeacheofevalexecexistsexitexpfcntlfilenoflockforkformlinegetcgetlogingetpeernamegetpgrpgetppidgetprioritygetpwnamgetgrnamgethostbynamegetnetbynamegetprotobynamegetpwuidgetgrgidgetservbynamegethostbyaddrgetnetbyaddrgetprotobynumbergetservbyportgetpwentgetgrentgethostentgetnetentgetprotoentgetserventsetpwentsetgrentsethostentsetnetentsetprotoentsetserventendpwentendgrentendhostentendnetentendprotoentendserventgetsocknamegetsockoptglobgmtimegrepheximportindexintioctljoinkeyskilllclcfirstlengthlinklistenlocaltimeloglstatmkdirmsgctlmsggetmsgrcvmsgsndnooctopenopendirordpackpipepopposprintprintfpushquotemetarandreadreaddirreadlinkrecvrefrenameresetreverserewinddirrindexrmdirscalarseekseekdirselectsemctlsemgetsemopsendsetpgrpsetprioritysetsockoptshiftshmctlshmgetshmreadshmwriteshutdownsinsleepsocketsocketpairsortsplicesplitsprintfsqrtsrandstatstudysubstrsymlinksyscallsysreadsystemsyswritetelltelldirtietimetimestruncateucucfirstumaskundefunlinkunpackuntieunshiftutimevaluesvecwaitwaitpidwantarraywarnwrite
■Builtins… (182) nodigits,either
■Operators… (38)
46
![Page 75: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/75.jpg)
ButJAPHs
shouldn’tbewritten
Manually
47
![Page 76: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/76.jpg)
No coding➥ Best coding
Laziness++
48
![Page 77: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/77.jpg)
♨ ppencode ☣
So“ppencode”wasborn.
49
![Page 78: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/78.jpg)
Demo (Ajax flavored!)
http://namazu.org/~takesako/ppencode/demo.html
50
![Page 79: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/79.jpg)
JAPH with ppencode
gen_ppencode.pl‐aGeneratorGenerator
gen_ppencode(6KB)
ppencode(perl,JavaScript)
amessage(8‐bitsafe)
programming JAPH
autogen
inputoutputautogen
♨
51
![Page 80: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/80.jpg)
Impatience++
No coding➥ Best coding
52
![Page 81: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/81.jpg)
Perl
Rubyvs.
53
![Page 82: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/82.jpg)
Ruby version
rrencodeisborn!
./rrencode.rb‘hello,world!’($,^$$&&@_=$@);$><<($,|$$&&(%!%!<<(?!*(?/‐?.+?$‐?")))%(?}‐?=+(?_‐??+?/‐?')))+($,&$,||(%!%!<<(?!*(?"‐?!+?.‐?,)))%(?|‐?<+(?_‐??+?&‐?!)))+($,&$,||(%!%!<<(?!*(?*‐?)+?/‐?‐)))%(?}‐?=+(?}‐?]+?‐‐?!)));($,|$$&&_=$\);$><<($,&$,||(%!%!<<(?!+?!+?!))%(?{‐?;+(?]‐?=+?‐‐?!)));($,^$$&&_=$`);$><<($,&$,||(%!%!<<(?!*(?'‐?&+?%‐?#)))%(?~‐?>+(?[‐?;+(?/‐?'+?)‐?"))))+($,^$$&&(%!%!<<(?!+?!+?!))%(?{‐?[+?‐‐?!))+($,|$$&&(%!%!<<(?!+?!+?!))%(?]‐?=+?"‐?"));($,|$$&&@_=$~);$><<($,^$$&&(%!%!<<(?!+?!+?!))%(?}‐?=+(?}‐?]+(?;‐?++?*‐?#))))+($,&$,||(%!%!<<(?!*(?/‐?.+?)‐?')))%(?}‐?=+(?~‐?^+(?/‐?'+?(‐?!))))+($,^$$&&(%!%!<<(?!*(?'‐?&+?+‐?))))%(?~‐?>+(?}‐?]+(?:‐?*+?&‐?$))));($,&$,||_=$&);$><<($,|$$&&(%!%!<<(?!*(?$‐?#+?*‐?()))%(?{‐?;+(?^‐?>+?‐‐?!)))+($,&$,||(%!%!<<(?!+?!+?!))%(?|‐?<+(?\\‐?<+?(‐?$)));($,&$,||@@_=$@);$><<($,^$$&&(%!%!<<(?!*(?‐‐?,+?$‐?")))%(?{‐?[+?#‐?"));($,^$$&&@@_=$@);$><<$/
no Alphanumerics;
By 吉田悠一 (Mr. oxy)
54
![Page 83: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/83.jpg)
Where’s the Python version?
_ ∩ (゚∀゚)彡 ⊂彡
pypyencode!?
55
![Page 84: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/84.jpg)
Thank You!
唐鳳Otori-tan
56
![Page 85: ☣ ppencode ♨](https://reader033.vdocuments.site/reader033/viewer/2022060107/554ab43ab4c905da668b5706/html5/thumbnails/85.jpg)
Thank You!
竹迫 良範TAKESAKO Yoshinori
57