16022012 sake
東京の大丸のなかにあった酒屋で購入。

生酛だけあって酸がしっかりしていて旨い。燗つけて飲むといい感じ。残らないので飲み飽きしなかった。
gitのブランチを使った流れは何かに似てるなぁと思ったら、DJingだった。今、blogのテンプレートをhamlish-jinjaにするかpyjadeにするか悩んでいてトピックブランチを切って両方書いてみている。
フロアー(つまり自分と自分を取り巻く環境)の反応を見ながらtrunkにmergeするbranchを選択するという行為そのものがまさにアートなわけですな。
というわけで4デッキ対応のVCI-100MK2が欲しいなぁ。
15022012 Python
Pythonの入門としていい感じですね。ライセンスがCreative Commons Attribution-Noncommercial-Share Alike 3.0 でオンラインでも読めるし、pdfでダウンロードすることも出来て素敵です。
暇をつくって、これをCoffeeScript+Canvasで書いてみたいと思う。
もうひとつのほうのInvent with PythonもPythonの入門書としていいかもしれない。今度、入門書を尋ねられたらこれを薦めてみようっと。
15022012 life
自分のためにカップケーキを作っていた。あっという間に成長するなぁと。


そろそろプログラミングも教えないとなぁ。あと、Drum'n'Bassの素晴らしさも早めに植えつけたいので、プリキュアのテーマソングはブレイクビーツにして欲しい。
14022012 git
最近トピックブランチをきる習慣が定着してきたので、プロンプトにブランチ名を表示させたくなった。
このとおりにやっただけだけど快適になった。
やたらとこけるJSONを出力する商用のツールを追いかけていたら、浮動小数点の表記に問題があった。1.e-2っていうのはJSON的にはmalformed numberなんだろうか?
use strict; use warnings; use JSON; print decode_json('{"num": 1.e-2}')->{'num'};
実行
$ perl jsontest.pl malformed number (no digits after decimal point), at character offset 10 (before "e-2}") at jsontest.pl line 5.
>>> import json >>> json.loads('{"num":1.0e-2}') {u'num': 0.01} >>> json.loads('{"num":1e-2}') {u'num': 0.01} >>> json.loads('{"num":1.e-2}') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/Cellar/python/2.7.2/lib/python2.7/json/__init__.py", line 326, in loads return _default_decoder.decode(s) File "/usr/local/Cellar/python/2.7.2/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/Cellar/python/2.7.2/lib/python2.7/json/decoder.py", line 382, in raw_decode obj, end = self.scan_once(s, idx) ValueError: Expecting , delimiter: line 1 column 8 (char 8)
13022012 Node.js
恋するプログラムをCoffeeScriptで書いているんだけど、やっと7章まで進んだ。この章ではNode.jsでmecabが使う必要があるので調べてみたらnode-mecabっていうのを見つけた。
コンパイルは出来たんだけど、実際にrequireしようとしたらSegmentation faultした(Mac OSX(10.6)+Node6.8)
デバッグどうすんのかなぁ、あとnvmで入れたnodeってdebugオプションついてんだっけと見よう見真似で実行してみたがさっぱりわからん。
$ gdb --args /Users/kzfm/.nvm/v0.6.8/bin/node t.js (gdb) run Starting program: /Users/kzfm/.nvm/v0.6.8/bin/node t.js ... Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: 13 at address: 0x0000000000000000 0x0000000100de8cd1 in btrie_close () (gdb) backtrace #0 0x0000000100de8cd1 in btrie_close () #1 0x0000000100de5fbc in MeCab::Dictionary::close () #2 0x0000000100dded6a in MeCab::Dictionary::~Dictionary () #3 0x0000000100ddb3c2 in MeCab::TokenizerImpl<mecab_node_t, mecab_path_t>::~TokenizerImpl () #4 0x0000000100de5844 in MeCab::TaggerImpl::~TaggerImpl () #5 0x0000000100de435a in MeCab::createTagger () #6 0x00000001007db588 in Tagger::New (args=@0x7fff5fbfddc0) at ../mecab.cc:17
t.js
var mecab = require('mecab') console.log( mecab.parse("こちら葛飾区亀有公園前派出所"));
いい機会なのでデバッグのやり方を学んでおこう。
MeCab::createTaggerでこけてるっぽいが、理由がよくわからんlinuxへのインストールはうまくいくのでとりあえずこっちで凌ぐか、別プロセスで呼び出すようにしようかね。
13022012 coffeescript
exports.Test = class Test method_a: () -> method_b() method_b: () -> console.log("method b")
がmethod_bが見つからないっていうエラーが出た。
coffee> Test = require("./test").Test [Function: Test] coffee> t = new Test {} coffee> t.method_a() ReferenceError: method_b is not defined
小一時間悩んだ挙句@が必要なことに気づいた
exports.Test = class Test method_a: () -> @method_b() method_b: () -> console.log("method b")
12022012 life