JavaScript
未だに Flash 脳の私は canvas の操作をする時に「BitmapData のあのメソッドと同じことをしたい」と考えるのですが, canvas の API はパッと見では必要最低限以下なんじゃないかというくらいの機能しか提供していないので, どうしたら実現できるのかすぐに…
継続渡しスタイル (CPS: Continuation-assing style) 例えば以下は引数として与えられた数に 1 を加えるだけの関数と, それを呼び出すプログラム. function succ(x) { return x + 1; } console.log(succ(2)); // -> 3 CPS では関数がその継続 (callback) を…
こういうのを作りました. Lazy Jiro - 神域プログラミング言語 毎年思ってるけどこれ別に嘘じゃないし馬鹿なの私だよね— すしす (@susisu2413) March 31, 2016 なんでこうなったのか 当初やろうと思っていたものが, 急がずに時間をかけてやればそこそこ面白…
ライブラリ側の実装は ES2015 の構文を使わずに ES5 互換のままできることに気がついたので, ちゃっちゃーとやりました. github.com 今までは, var lq = require("loquat"); // 愚直に >>= (bind) と >> (then) を使う // do 構文なんてなかった var parser …
私は ls -la のエイリアスとして la を使っているのですが, 万が一 al とミスタイプしても問題ないように, アリスが歌ってくれるだけのコマンドを作りました. github.com インストール Node.js (最新版なら確実) と npm のある環境で npm install -g @susisu…
この記事は OUCC Advent Calendar 2015 の 13 日目の記事です. 昨日は @yuntan_t 氏による 量子力学 matplotlibで図を描く,保存する,アニメーションさせる でした. さて, 今年 (というか去年の後半から) は何かと言語実装に縁があり, まとめると大体以下の…
なんですぐ死んでしまうん. 以下の 2 つをご覧ください. 前者 (A) は毎回同じオブジェクトを親にして Object.create() でオブジェクトを作成, 後者 (B) は違うオブジェクトを親にしています. console.time("A"); var parent = {}; var dummy; for (var i = 0…
Object.create() 大好き人間の私としては, 京都銀行のように長〜〜〜い prototype chain を日常的に作りたくなるわけですが, そんなことをしていたらまた死んでしまいました. 以下は具体的な例で, 浅いケース (shallow) では, ひとつの同じオブジェクトを親…
github.com Emscriptenを使って変換したもの? は見つかったのですが, 生の JavaScript で書かれたものが見つからなかったので書きました. たぶん上手く動いてるんじゃないかしら. Lazy K ってなんですか 詳しくは Lazy K - Wikipedia とか The Lazy K Progra…
前回の記事の続きです. 変更点 辞書を ipadic から mecab-ipadic-NEologd に変更した. github.com 叫び声のようなものなどノイズが多かったので, 適当に弾くようにした. ついでに重複したものが多すぎて結果が見辛かったので, まとめて出力するようにした. …
Wikipedia 日本語版の記事から見つかった偶然 5・7・5・7・7 になっている文章をツイートする, 偶然短歌botというものがあります. twitter.com inaniwa3.hatenablog.com これと同じように, Wikipedia 日本語版の記事から偶然できている回文を見つけてみたと…
というタイトルで LT をした のでスライドを置いておきます.
2011年9月からずっとサーバー上の PHP (EasyBotter) で動かしていたアボカドbot (@Avocado_bot) ですが, この度サーバーがサービスを終了する *1 とのことで, 自宅の Windows PC *2 上で動かすことにしました. ただ, 以前一時的に自宅で動かした時, Windows …
Node.js (v0.12.2) でスクリプトが異常に遅かったから色々試したら原因がわかったのでメモ. 次のようなスクリプトで, Object.freeze (あるいは Object.seal や Object.preventExtensions) を行ったオブジェクトと行わなかったオブジェクトをObject.create に…
任意の入力文字列に対して値を管理したいとき, Object.create(null) が使える. var obj = Object.create(null); console.log(obj["toString"]); // => undefined こうすると Object.prototype に存在するプロパティ/メソッドを継承しない真に空のオブジェク…