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

間違えて al とタイプするとアリスが歌うコマンドを作った

私は 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 回くらい出ます.

How to 言語実装

この記事は OUCC Advent Calendar 2015 の 13 日目の記事です. 昨日は @yuntan_t 氏による 量子力学 matplotlibで図を描く,保存する,アニメーションさせる でした. さて, 今年 (というか去年の後半から) は何かと言語実装に縁があり, まとめると大体以下の…

Node.js で異なるオブジェクトを親にして Object.create すると速度が死ぬ話

なんですぐ死んでしまうん. 以下の 2 つをご覧ください. 前者 (A) は毎回同じオブジェクトを親にして Object.create() でオブジェクトを作成, 後者 (B) は違うオブジェクトを親にしています. console.time("A"); var parent = {}; var dummy; for (var i = 0…

Node.js (V8) で長い prototype chain を作ったら速度が死ぬ話

Object.create() 大好き人間の私としては, 京都銀行のように長〜〜〜い prototype chain を日常的に作りたくなるわけですが, そんなことをしていたらまた死んでしまいました. 以下は具体的な例で, 浅いケース (shallow) では, ひとつの同じオブジェクトを親…

部室の入り口に張り紙を貼った

この記事は OUCC Advent Calendar 2015 の1日目の記事です. 1日目ということで, 「入り口」に関する出来事についてです. 起 公式ツイッターフォロワー30000人突破を記念して、作中に出てくるアレを作っちゃいました!ぜひ、ご自宅や、学校、職場に貼ってお使…

昼間から自己 (Self) と格闘する人

していたら夜になっていた. Self とは プロトタイプベースのオブジェクト指向の元祖にして JavaScript の先祖のひとつ. Self - Wikipedia インストール 当方 OS X Mavericks (10.9.5) です. Self 言語のサイト http://www.selflanguage.org から OS X 用のデ…

深夜に GNU Smalltalk をインストールする人

タイトルで完結している. GNU Smalltalk Reference や GNU Smalltalk - Smalltalk によると, OS X に (Homebrew で? そうじゃなくても?) インストールする場合, 浮動小数演算周りがバグったりする (たぶんこれ osx - floating point raises divide by zero e…

ここ二週間の進捗

ほとんど進捗がない いちいち数値データを集計して和とか分散とかを計算するコードを書くのが面倒だったので, 適当にコマンド一発で計算してくれるようなのを作ろうとした わざわざ作る必要があるのかという感じがあるので, 誰かいい感じのを知っている方が…

今週末の進捗

17時まで寝た 以上です.

JavaScript で Lazy K インタプリタを実装した

github.com Emscriptenを使って変換したもの? は見つかったのですが, 生の JavaScript で書かれたものが見つからなかったので書きました. たぶん上手く動いてるんじゃないかしら. Lazy K ってなんですか 詳しくは Lazy K - Wikipedia とか The Lazy K Progra…

先週末+今日の進捗

もう週末じゃないし. 後で読むリストにみっつくらい追加した 今読め, すぐ読め 大学祭の企画用に使っているサーバーを書きなおした 2年前に書いたものなので, 色々設計が腐ってた (きがする) 完全に自己満足という説もある

今週末の進捗

午前中に起きたら体調を崩した. 久しぶりに Parsec クローンの拙作ライブラリ Loquat をいじった. タブ幅を変えられるようにした. Parsec でもタブ幅は8文字で固定. Megaparsec では可変になっている. テストコードの更新が骨が折れた. タブ幅を可変にしたの…

call/cc について勉強したり実装したりした

ゆゆ式一挙放送の裏番組みたいなノリでやっていたLT会でのスライドはこれ. 補足情報を少し call/cc の仕組みについては色々ぐぐったりしましたが, 個人的には Scheme:使いたい人のための継続入門 が分かりやすかったです. あと, スライドの内容は簡略化した…

価格が2^2000分の1になった

9月26日 Amazon特価「値引きシール 半額」 http://t.co/sdXtRWG1rL pic.twitter.com/LPIm6OQVId— fig速-フィギュア・プラモ情報 (@figsoku) September 26, 2015 面白い— うに (@mi0pekochan) September 26, 2015 すしすさん買ったら?— うに (@mi0pekochan) …

Wikipedia から偶然回文になっている文章を見つける その2

前回の記事の続きです. 変更点 辞書を ipadic から mecab-ipadic-NEologd に変更した. github.com 叫び声のようなものなどノイズが多かったので, 適当に弾くようにした. ついでに重複したものが多すぎて結果が見辛かったので, まとめて出力するようにした. …

Wikipedia から偶然回文になっている文章を見つける

Wikipedia 日本語版の記事から見つかった偶然 5・7・5・7・7 になっている文章をツイートする, 偶然短歌botというものがあります. twitter.com inaniwa3.hatenablog.com これと同じように, Wikipedia 日本語版の記事から偶然できている回文を見つけてみたと…

インクっぽい画像を作ろうとした

目が覚めた瞬間に思いついたやつ これを pic.twitter.com/4im9VHn5DT— 大宮忍 (@susisu2413) August 26, 2015 ランダムに円を描いて, こうして pic.twitter.com/WSTwweSaZH— 大宮忍 (@susisu2413) August 26, 2015 横幅を半分に縮小して, こうやって pic.twi…

ECMAScript 6th の仕様書を読み始めた

Standard ECMA-262 ちゃんと読んだことなかったし, 電車移動中に暇だったのでとりあえず第 4 節まで読んだ (歴史とか用語定義とか). おまけ 4.3.17 String value primitive value that is a finite ordered sequence of zero or more 16-bit unsigned intege…

8月

8月です. JavaScript とりあえず自作言語の方は区切りをつけて, ようやくもう一回音ゲーでも作ってみるかという気分になって, 環境構築したり環境構築したりしています. github.com github.com 前回は抽象的すぎて何もできていない感があったので, ちゃんと…

音ゲーを作っていたと思ったらいつのまにか言語を作っていた

というタイトルで LT をした のでスライドを置いておきます.

アボカドbot を Node.js で書きなおした

2011年9月からずっとサーバー上の PHP (EasyBotter) で動かしていたアボカドbot (@Avocado_bot) ですが, この度サーバーがサービスを終了する *1 とのことで, 自宅の Windows PC *2 上で動かすことにしました. ただ, 以前一時的に自宅で動かした時, Windows …

Node.js (v0.12.2) 上で Object.freeze と Object.create を併用すると速度が死ぬ話

Node.js (v0.12.2) でスクリプトが異常に遅かったから色々試したら原因がわかったのでメモ. 次のようなスクリプトで, Object.freeze (あるいは Object.seal や Object.preventExtensions) を行ったオブジェクトと行わなかったオブジェクトをObject.create に…

Object.create(null)

任意の入力文字列に対して値を管理したいとき, Object.create(null) が使える. var obj = Object.create(null); console.log(obj["toString"]); // => undefined こうすると Object.prototype に存在するプロパティ/メソッドを継承しない真に空のオブジェク…