Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
PHPでも記号プログラミング
Ryu
September 14, 2019
Programming
0
60
PHPでも記号プログラミング
僕が入門したよって話
Ryu
September 14, 2019
Tweet
Share
More Decks by Ryu
See All by Ryu
Sotuken
s17001
0
470
フレームワークの気持ちになりたかった
s17001
0
170
Quine雑日記
s17001
0
520
eve hackers champloo
s17001
0
600
記号プログラミングの集大成
s17001
0
4.8k
JSで読み取れる記号を吐くコード
s17001
2
160
making pokemondex !
s17001
0
42
create thinkingface
s17001
0
1.1k
Other Decks in Programming
See All in Programming
Java アプリとAWS の良い関係 - AWS でJava アプリを実行する一番簡単な方法教えます / AWS for Javarista
kanamasa
2
1.2k
BASE BANKチームの技術選定と歴史 / how to decide technology selection for startup
budougumi0617
0
1.1k
【Scrum Fest Osaka 2022】スクラムチームに放り込まれた若手エンジニアの皆さん、どのように技術のキャッチアップをしていくかイメージはついていますか?
miiiki
0
120
オブジェクト指向で挫折する初学者へ
deepoil
0
170
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
250
Gitlab CIでMRを自動生成する
forcia_dev_pr
0
120
プロダクトのタイプ別 GraphQL クライアントの選び方
shozawa
0
5.2k
Springin‘でみんなもクリエイターに!
ueponx
0
220
JSのウェブフレームワークで高速なルーターを実装する方法
usualoma
1
1.8k
Jetpack Compose best practices 動画紹介 @GoogleI/O LT会
takakitojo
0
330
How we run a Realtime Puzzle Fighting Game on AWS Serverless
falken
0
250
Meet Swift Regex
usamik26
0
350
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1020
420k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1.1k
Practical Orchestrator
shlominoach
178
8.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
Rails Girls Zürich Keynote
gr2m
86
12k
The Mythical Team-Month
searls
209
39k
Support Driven Design
roundedbygravity
86
8.5k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.4k
Robots, Beer and Maslow
schacon
152
7.1k
How to Ace a Technical Interview
jacobian
265
21k
Making Projects Easy
brettharned
98
4.3k
Design by the Numbers
sachag
271
17k
Transcript
ه߸ΤϞ͍ ه߸ϓϩάϥϛϯά ΤϞ͍ Ryuichi Iha (@Ryu1__1uyR)
͜ΜʹͪΘ
‘ΓΎ͏’͍͍ͬͯ·͢
ΓΎ͏͍͍ͬͯ·͢ • ໘ന͍ϓϩάϥϜΛॻ͘ͷ͕͖ • ීஈJavaScriptΑ͘ॻ͍ͯΔ • ϢχίʔυͷΈ(ֆจࣈपΓ)͕͖͢ • ࠷ۙ͘͢͝HͳຊΛಡΈ࢝Ίͨ •
Α͘ه߸റΓͰίʔσΟϯάͯ͠Δ (ࣗݾղऍ) ※HaskellͷຊͩΑ @Ryu1__1uyR
໘ന͍ϓϩάϥϜ @Ryu1__1uyR
໘ന͍ϓϩάϥϜ @Ryu1__1uyR ແݶ࣮ߦͰ͖ΔQuine
໘ന͍ϓϩάϥϜ @Ryu1__1uyR
ΑΖ͘͠Ͷ @Ryu1__1uyR
ͯ͞
Perlͷ͓͠·ͤΜ
PHPͷ͓Λ͠·͢
Ͱ
None
PHP࣮࣭Perl
ηʔϑʂ
ຊ
ຊ
PHPΛॻ͍͍ͯΔ ͋Δͷ͜ͱ
echo ‘r’ & ‘y’;
// p
None
Ͳ͏Β ASCIIcodeͷ ཧੵͬΆ͍
ͭ·Γ
‘r’ & ‘y’;
01110010 : r 01111001 :y 01110000 :p and
͓ʁ
ͦ͏͍ɺrͱyͬͯ
Array͔Β ͱΓͩͤΔͳ…
Array ه߸Ͱ࡞ΕΔʂʂ
͜ΕͰจࣈྻͷArray
‘r’ & ‘y’;
$__[!!_] & $__[-!!_]; ͜Ε͖ͬ͞ͷม
!!_ ͱ͔ -!!_
ܕΩϟετ
var_dump( 0 . '1'); ͜Εࣈ ͜Εจࣈ
string(2) "01" ͜Ε0͕จࣈʹܕ͔ͬͯʹม͞ΕͯΔ
͜ΕͰ४උͬͨ
ͷͰ
ͪΐͬͱPerlΛ࡞͖ͬͯͨ
01010000 01100101 01110010 01101100 Perl
P
‘p’ & ’T’ 01110000 01010100
p
‘r’ & ’y’ 01110010 01111001
T
‘r’ ^ _ ^ ‘y’ 01110010 01111001 01011111
‘p’ & ’T’ 01110000 01010100
(‘r’ & ’y’) & (‘r’ ^ _ ^ ‘y’)
ه߸Ͱॻ͘ͱ
None
e = ‘p’ ^ ’T’ | ‘A’
r Array͔Β
l = ‘A’ ^ ‘r’ ^ _
ͦΕͧΕ
$$_ = $___ ^ $____ | $__[!_];
$__[!!_]
$$__ = $__[!_] ^ $__[!!_] ^ _ ;
Ͱ͖ͨʂʂʂʂ
࣮ߦͯ͠ΈΑ͏ʂʂʂ
λʔϛφϧ
ͪͳΈʹJSͰॻ͘ͱ
[__,_]=[-~-~[-~[]],[...{}+[]][(-~-~[-~[]]+-~-~[- ~[]])- -~[]]+[...{}+[]][-~[]]+([]['']+[])[-~[]]+ (([]==[])+[])[(-~-~[-~[]])]+(-~[]/[]+[])[(-~-~[- ~[]]+-~-~[-~[]])]+(!![]+[])[-~[]]+([]['']+[])[+ []]+[...{}+[]][(-~-~[-~[]]+-~-~[-~[]])- -~[]]+(!! []+[])[+[]]+[...{}+[]][-~[]]+(!![]+[])[-~[]]];[][_] [_]((!![]+[])[-~[]]+(!![]+[])[__]+(!![]+[])[+[]]+ (!![]+[])[-~[-~[]]]+(!![]+[])[-~[]]+([]['']+[])[-
~[]]+' "'+'\\' +([]['']+[])[[]-[]] +'{' +(-~[]+[] +-~[]>>-~[])+([]-[]+[])+ '}'+'"')()+(!![]+[])[- ~-~[-~[]]]+(!![]+[])[-~[]]+(![]+[])[-~[-~[]]]
$__=$_[].=$_; $___ = $__[!!_] & $__[-!!_]; $____ = $__[!!_] ^
_ ^ $__[-!!_]; $$$___.=$___ & $____; $$_ = $___ ^ $____ | $__[!_]; $$$___ .= $$_; $$$___ .= $__[!!_] ; $$__ = $__[!_] ^ $__[!!_] ^ _ ; $$$___ .= $$__; echo $$$___ ;
PHP,JSه߸Ͱॻ͚Δ
όοΫΤϯυϑϩϯτ ه߸Ͱॻ͚Δ
ه߸͚ͩͰWEBΞϓϦ ࡞ΕΔ͔͠Εͳ͍ʂʂ
ه߸͚ͩͰWEBΞϓϦ ࡞ΕΔ͔͠Εͳ͍ʂʂ emotional
͓ΘΓ ɹऴ ɹ੍࡞ɾஶ࡞ ɹᴸᴸᴸᴸᴸ R Y U @Ryu1__1uyR