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
Ryu
September 14, 2019
Programming
0
110
PHPでも記号プログラミング
僕が入門したよって話
Ryu
September 14, 2019
Tweet
Share
More Decks by Ryu
See All by Ryu
Sotuken
s17001
0
970
フレームワークの気持ちになりたかった
s17001
0
350
Quine雑日記
s17001
0
1.3k
eve hackers champloo
s17001
0
980
記号プログラミングの集大成
s17001
0
5.9k
JSで読み取れる記号を吐くコード
s17001
2
280
making pokemondex !
s17001
0
70
create thinkingface
s17001
0
1.7k
Other Decks in Programming
See All in Programming
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
490
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
690
型で語るカタ
irof
1
810
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
180
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
190
テスト駆動Kaggle
isax1015
1
890
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
320
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
640
AIともっと楽するE2Eテスト
myohei
9
3.1k
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
240
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
160
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
470
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
KATA
mclloyd
30
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
GraphQLとの向き合い方2022年版
quramy
49
14k
For a Future-Friendly Web
brad_frost
179
9.8k
RailsConf 2023
tenderlove
30
1.2k
Navigating Team Friction
lara
187
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Agile that works and the tools we love
rasmusluckow
329
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
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