一本義

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

1329211392

生酛だけあって酸がしっかりしていて旨い。燗つけて飲むといい感じ。残らないので飲み飽きしなかった。

モジュールのグルーブはこのままキープでー

gitのブランチを使った流れは何かに似てるなぁと思ったら、DJingだった。今、blogのテンプレートをhamlish-jinjaにするかpyjadeにするか悩んでいてトピックブランチを切って両方書いてみている。

フロアー(つまり自分と自分を取り巻く環境)の反応を見ながらtrunkにmergeするbranchを選択するという行為そのものがまさにアートなわけですな。

ProductName Via [DVD]
田中フミヤ
インディーズ・メーカー / ?円 ( 2007-09-28 )


というわけで4デッキ対応のVCI-100MK2が欲しいなぁ。

Pygameでゲーム作りを楽しむ本

Pythonの入門としていい感じですね。ライセンスがCreative Commons Attribution-Noncommercial-Share Alike 3.0 でオンラインでも読めるし、pdfでダウンロードすることも出来て素敵です。

暇をつくって、これをCoffeeScript+Canvasで書いてみたいと思う。

もうひとつのほうのInvent with PythonもPythonの入門書としていいかもしれない。今度、入門書を尋ねられたらこれを薦めてみようっと。

娘の誕生日

自分のためにカップケーキを作っていた。あっという間に成長するなぁと。

1329210829

1329210831

そろそろプログラミングも教えないとなぁ。あと、Drum'n'Bassの素晴らしさも早めに植えつけたいので、プリキュアのテーマソングはブレイクビーツにして欲しい。

ProductName Let’s go!スマイルプリキュア!(DVD付)
吉田仁美 池田彩
SMD itaku (music) / 1769円 ( 2012-03-07 )


開運 ひやおろし

開運のひやおろし。

1329211177

期待を裏切らないクオリティ。燗はつけないで最初から最後までひやで飲んだ。

開栓時が一番美味しかったかな。

bashのプロンプトにGitのbranch名を表示させる

最近トピックブランチをきる習慣が定着してきたので、プロンプトにブランチ名を表示させたくなった。

このとおりにやっただけだけど快適になった。

ProductName 入門Git
濱野 純(Junio C Hamano)
秀和システム / 2310円 ( 2009-09-19 )


parseできない浮動小数点のJSON表記

やたらとこけるJSONを出力する商用のツールを追いかけていたら、浮動小数点の表記に問題があった。1.e-2っていうのはJSON的にはmalformed numberなんだろうか?

Perl

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.

Python

>>> 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)

node-mecabを使おうとしたらSegmentation faultした

恋するプログラムを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("こちら葛飾区亀有公園前派出所"));

いい機会なのでデバッグのやり方を学んでおこう。

ProductName Debug Hacks -デバッグを極めるテクニック&ツール
吉岡 弘隆
オライリージャパン / 3360円 ( 2009-04-27 )


追記 12.02.14

MeCab::createTaggerでこけてるっぽいが、理由がよくわからんlinuxへのインストールはうまくいくのでとりあえずこっちで凌ぐか、別プロセスで呼び出すようにしようかね。

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")

「道は開ける」を読んだ

「人を動かす」とセットで読んでみたんだけど、こっちはあまり響かなかった。自己啓発系はもうごちそうさまですね、本質的な部分は一緒だろうし。

ProductName 道は開ける 新装版
デール カーネギー
創元社 / 1680円 ( 1999-10 )


  • 「起こりうる最悪の事態は何か」を自問しよう
  • やむを得ない場合は、最悪の事態を受け入れる覚悟をすること
  • それから落ち着いて最悪状態を好転させるよう努力をすること
  • 小事にこだわるには人生はあまりに短い