Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPでも記号プログラミング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ryu
September 14, 2019
Programming
0
130
PHPでも記号プログラミング
僕が入門したよって話
Ryu
September 14, 2019
Tweet
Share
More Decks by Ryu
See All by Ryu
Sotuken
s17001
0
1k
フレームワークの気持ちになりたかった
s17001
0
370
Quine雑日記
s17001
0
1.9k
eve hackers champloo
s17001
0
1k
記号プログラミングの集大成
s17001
0
6.1k
JSで読み取れる記号を吐くコード
s17001
2
310
making pokemondex !
s17001
0
93
create thinkingface
s17001
0
1.8k
Other Decks in Programming
See All in Programming
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.3k
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
330
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
780
実践ハーネスエンジニアリング #MOSHTech
kajitack
5
2.7k
Pythonデータ分析コトハジメinFukuoka
kanan
0
100
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
390
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
520
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.1k
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
420
OTP を自動で入力する裏技
megabitsenmzq
0
120
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
860
The SEO identity crisis: Don't let AI make you average
varn
0
420
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.4k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
エンジニアに許された特別な時間の終わり
watany
106
240k
How to Ace a Technical Interview
jacobian
281
24k
The browser strikes back
jonoalderson
0
830
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Designing for humans not robots
tammielis
254
26k
The Invisible Side of Design
smashingmag
302
51k
How to build a perfect <img>
jonoalderson
1
5.3k
Visualization
eitanlees
150
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