






isa_okとかいらない)implicit conversion の解決遅すぎ問題lazy valパラメーターのプレースホルダー
numbers.filter(x => x > 0)
numbers.filter(_ > 0)
numbers.foreach(x => println(x))
numbers.foreach(println _)
numbers.foreach(println) // 関数が期待されている場所では `_` も省略可能
_ を省略不可能def add(a:Int, b:Int) = a + b
val a = add _
val b = add:(Int, Int) => Int
val c = add(_:Int, _:Int)
val d = a // コレはOK
val ng = add // コレはエラー
val ng2 = add(_) // コレもエラー


Perlのモジュールの思想を受け継いだものが結構できた
データありきでそれに対して振る舞いを定義する。 > bless っぽさ
type Centigrade float64
type Fahrenheit float64
func (ce Centigrade) ToFahrenheit() Fahrenheit {
...
}
こんなかんじの構成ですって以外にはあまり特筆すべきことはない。
シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か

Perlでツール作成(標準モジュール縛り)
% perl tool/releng% prove tool/releng$ENV{HARNESS_ACTIVE}を見て分岐ちゃんとテストを書けるのは安心
if (!$ENV{HARNESS_ACTIVE}) {
main();
} else {
# When called via `prove`, tests will run.
run_tests();
}

travis encrypt-file を使って暗号化したものをrepoに置くtravis コマンドのサブコマンド
gem install travistravis encrypt-fileで暗号化した秘密鍵をリポジトリにコミットgit remote set-url origin git@github.com:mackerelio/mackerel-agent.gitでリモート書き換え
プロジェクトの渋い脇役としても活きる