2009-03-01から1ヶ月間の記事一覧

ruby-modeで、リターンキーだけでインデントと改行を行う

Emacsのruby-modeでは、C-jでインデントと改行を行える(ruby-reindent-then-newline-and-indent 関数)。これを、リターンキーでも行えるようにした。改行をC-jで行うというのが不自然で慣れないので。

配列のコピーと破壊的メソッド

配列のコピーをdupやcloneでとる場合、一方の配列の要素オブジェクトを破壊すると、他方にも影響を与える(浅いコピー。→参考)。しかし、数値配列のように、要素*1が破壊的メソッドをもたない*2場合は、コピー元とコピー先との相互作用はないので、事実上の深…

ruby-profの0.6.0より大きいバージョンがインストールできなかった

ruby-prof-0.7.3をインストールしようとしてエラー発生。ruby-prof.cのコンパイルで "expected declaration specifiers or '...' before 'NODE'" なんたらかんたら。ruby-prof.cを読んでも、何がおかしいのかわからず、挫折。バージョンを0.7.0まで下げてみ…

研究発表で気をつけること(本番直前編): ロバート・R・H・アンホルト「理系のための口頭発表術」

去る3月6日に研究発表を行った。その際、発表の仕方の勉強のために、以下の本を読んだ。理系のための口頭発表術―聴衆を魅了する20の原則 (ブルーバックス)作者: R.H.R.アンホルト,鈴木炎,I.S.リー出版社/メーカー: 講談社発売日: 2008/01/22メディア: 新書購…

collect は Enumerable#collect だが collect! は Array#collect! だった

Rubyのドキュメントを見て、「あれ? Arrayでcollectが定義されているぞ。eachから派生するイテレータ*1はEnumerableで定義するんじゃなかったか?」と思ったが、よく見たらexclamation markが付いていた。collect!、つまり破壊的メソッドだ。破壊的なイテレー…

grepとegrepでORによるマッチングを行う際に注意すること

grepでは "\|" を使い、egrepでは "|" を使わなくてはいけない。

飛行機が着陸するときに耳が痛くなる時は、息を止めて耳に空気を送ればいいよ

研究発表に行くために久しぶりに飛行機に乗ったら、着陸時にすごく耳が痛くなった。現地のホテルで対策を聞くと、「息を止めて耳に空気を送ればいい」といわれた。帰りの便ではその対策によって、事なきを得た。