ES6 以降で書きなおしたい 読みやすさ モジュールごとに package 分けたい 各モジュール (ファイル) が肥大化しすぎて扱いにくい テストのファイル分割したい 関数ごとにファイルわけないとひどい (現状) エラーメッセージの localization 機能追加 正規表現…
方法1: SVG の foreignObject を使って HTML を埋め込む 参考: Drawing DOM objects into a canvas - Web APIs | MDN SVG の <foreignObject> という要素内に描画したい HTML 要素を埋め込み, それを ctx.drawImage() とかで canvas に描画するという流れ. 利点は, 描画する</foreignobject>…
諸々 適切. 食事 魚介類!!!!!!!!!1 魚介類に見えた人は手を挙げてください.
水分 過剰だった. カプサイシン 過剰だった. 食事 魚類から進化したものみな魚類という思想のもとで, 魚介類です.
水分 不足しなかった. 食事 また魚介類じゃなかった. 深夜に食べると翌朝厳しい.
起床 5時に起きる必要はない. 水分 不足しがち. 食事 完全に, 魚介類ではなかった.
視力 何度か倒れてくる松葉杖状のものを幻視して虚無を避けたりしていた. 食事 ほぼ魚介類です.
こちらから遊べます → dotris 昔Flash で作ったもの (なんと最初のバージョンは 5 年も前らしい) を JS / HTML Canvas に移植しました. 最新の Firefox か Chrome ならとりあえず動くと思います. 2016年7月31日追記: たぶん flag 変更しなくても大丈夫になり…
未だに Flash 脳の私は canvas の操作をする時に「BitmapData のあのメソッドと同じことをしたい」と考えるのですが, canvas の API はパッと見では必要最低限以下なんじゃないかというくらいの機能しか提供していないので, どうしたら実現できるのかすぐに…
ラムダ計算から Grass へのコンパイラ作ったったwWWwwwwWWww - Object.create(null) の続きです. 経緯 ラムダ計算から Grass への変換ができたのは良かったものの, 生成コードはそのままでは無駄が多く, 例えば Brainfuck インタプリタの場合, 生成さ…
github.com いつものように JavaScript で書いたので, npm でインストールできます. npm i -g @susisu/grasspiler 例えば, (* fixed-point operator *) let fix = fun f -> (fun x -> f (fun y -> x x y)) (fun x -> f (fun y -> x x y)) (* infinite loop *…
connpass.com タイトルの通りの LT をしました. 先日の Grass インタプリタはその伏線だったというわけですね. 当初は真面目路線で作ってたのですが, LT の制限時間 (5分) で簡潔にまとめるのが難しくて, 結局こんな感じになってしまいました. まだまだ修行…
継続渡しスタイル (CPS: Continuation-assing style) 例えば以下は引数として与えられた数に 1 を加えるだけの関数と, それを呼び出すプログラム. function succ(x) { return x + 1; } console.log(succ(2)); // -> 3 CPS では関数がその継続 (callback) を…
辛辛魚の在庫が去年より二ヶ月ほど早く無くなってしまい, 世界は悲しみに包まれております. www.amazon.co.jp というわけで, これからどう QOL を維持していこうかと考えていたところ, 深夜急にタンドリーチキン (チキンティッカ) を無限に食べたくなったの…
いつものように JavaScript で書きました. github.com npm があればnpm install -g @susisu/grass-js でインストールできて, grass /path/to/progfile とかで遊べます. Grass とは Grass the grass-planting programming language の通り, 草を生やす言語で…
Bogosort ボゴソート - Wikipedia 配列の要素をランダムに並び替えて, 運良くソートできていればソート完了というソートアルゴリズム. 配列のサイズが で, 要素がすべて異なるとしたとき, 平均計算時間は . 要素の交換回数の期待値は となる *1. Bozosort Bo…
こういうのを作りました. Lazy Jiro - 神域プログラミング言語 毎年思ってるけどこれ別に嘘じゃないし馬鹿なの私だよね— すしす (@susisu2413) March 31, 2016 なんでこうなったのか 当初やろうと思っていたものが, 急がずに時間をかけてやればそこそこ面白…
LT をしました (定期). connpass.com 肝心の成果物は https://github.com/susisu/est にあって, npm install -g @susisu/est でインストールできますので, 使いたい方がいたらどうぞ.
ライブラリ側の実装は 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…
github.com $ npm install -g https://github.com/susisu/kinmosa-gen.git $ kinmosa きんいろモザイク きんいろモザイクは 900 回に 1 回くらい出ます.
この記事は 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) では, ひとつの同じオブジェクトを親…
この記事は OUCC Advent Calendar 2015 の1日目の記事です. 1日目ということで, 「入り口」に関する出来事についてです. 起 公式ツイッターフォロワー30000人突破を記念して、作中に出てくるアレを作っちゃいました!ぜひ、ご自宅や、学校、職場に貼ってお使…
していたら夜になっていた. Self とは プロトタイプベースのオブジェクト指向の元祖にして JavaScript の先祖のひとつ. Self - Wikipedia インストール 当方 OS X Mavericks (10.9.5) です. Self 言語のサイト http://www.selflanguage.org から OS X 用のデ…
タイトルで完結している. GNU Smalltalk Reference や GNU Smalltalk - Smalltalk によると, OS X に (Homebrew で? そうじゃなくても?) インストールする場合, 浮動小数演算周りがバグったりする (たぶんこれ osx - floating point raises divide by zero e…
ほとんど進捗がない いちいち数値データを集計して和とか分散とかを計算するコードを書くのが面倒だったので, 適当にコマンド一発で計算してくれるようなのを作ろうとした わざわざ作る必要があるのかという感じがあるので, 誰かいい感じのを知っている方が…
17時まで寝た 以上です.
github.com Emscriptenを使って変換したもの? は見つかったのですが, 生の JavaScript で書かれたものが見つからなかったので書きました. たぶん上手く動いてるんじゃないかしら. Lazy K ってなんですか 詳しくは Lazy K - Wikipedia とか The Lazy K Progra…