読者です 読者をやめる 読者になる 読者になる

狐の王国

人は誰でも心に王国を持っている。

Twitterコナミコマンドの発見の経緯がそこはかとなくおもしろい

どうやらTwitterに隠しコマンドが発見された様子。「上上下下左右左右BA」といえば有名なコナミコマンドなわけだけれども、それをTwitterの検索窓に入力するとくるりと鳥のアイコンが回転する。
UNIX板にスレが立ってることでも有名なやす師匠に教わったところ、どうも発見者はこちらの方らしい。

Twitterソースコードを読んでて konami_watcher という文字列を見つけて「おや?」と思ったようだ。この時点では「何に使われてるんだろう」という段階だった様子。

define("app/ui/konami_watcher",["module","require","exports","core/component"],function(module, require, exports) {
function konamiWatcher(){this.defaultAttrs({logoSelector:".topbar .Icon--bird",konami:"38,38,40,40,37,39,37,39,66,65"}),this.handleCodeEntered=function(){var a=this.select("logoSelector");a.css("transition","all 1s ease"),a.css("transform","rotate(360deg)"),setTimeout(this.undoCSS.bind(this),1050)},this.undoCSS=function(){var a=this.select("logoSelector");a.css({transition:"all 0s ease",transform:""}),setTimeout(function(){this.select("logoSelector").css("transition","")}.bind(this),0)},this.logKeystroke=function(a,b){this.keys.push(a.keyCode),this.keys.toString().indexOf(this.attr.konami)>=0?(this.keys=,this.handleCodeEntered()):this.attr.konami.indexOf(a.keyCode)<0&&(this.keys=)},this.after("initialize",function(){this.keys=[],this.on(document,"keydown",this.logKeystroke)})}var defineComponent=require("core/component"),KonamiWatcher=defineComponent(konamiWatcher);module.exports=KonamiWatcher
});

https://abs.twimg.com/c/swift/en/init.4021dcf7dc0cba9d1a50bec60c67dbcd18a4be76.js

確かにこんなコードが書かれている。

「38,38,40,40,37,39,37,39,66,65」という数字を見てパッと「上上下下左右左右BA」とわかるのもすごいなと思うが、キーコードというやつである。各ブラウザのキーコード表というページの表と見比べてみると確かにコナミコマンドであることがわかる。

そうしてコナミコマンドを実際に入力してみる人が出てきて、発見となったようだ。

公開されてるコードを読んでみるのはプログラミングの勉強にたいへんよいことで、書いた量より読んだ量のほうが多いくらいでないとなかなかよいコードというのは書けるものではない。こんな発見の楽しみもあるかもしれないので、ぜひぜひいろんなサイトのソースコードを読んでみたいところである。

とはいえ Twitter の js は minify されてるのでこれを戻さないと読めたものではないけれど。

Sugano `Koshian' Yoshihisa(E) <koshian@foxking.org>