2011-02-01から1ヶ月間の記事一覧

RubyのFileとFileUtilsの違い

何となくモヤッとしたまま必要なときにメソッドを調べて使っていたけど、FileとFileUtilsの違いは、Fileが文字通りファイルを抽象化するクラスで、その属性やタイプを調べたり、読み書きしたりするためのもの。ファイルをオブジェクトとして扱うだけではなく…

RubyのTime#strftimeを覚える(これっきりにしたい)

RubyのTime#strftimeのディレクティブは対称性があるように見えて、そうでもない例外があって覚えづらい。 %a - The abbreviated weekday name (``Sun'') %A - The full weekday name (``Sunday'') %b - The abbreviated month name (``Jan'') %B - The full…

ハフマンツリーをRubyで書く

ハフマン符号化に使うハフマンツリーをRubyで作ってみた。2本のキューを用意して、2つのノードをくっつけたり出し入れするのが簡単というのでそういう方針で。本当は1本はプライオリティ・キューでないとエンキュー時にソートするために効率が悪い。 # Huffm…

Rubyでぷよぷよ19連鎖

http://okajima.air-nifty.com/b/2011/01/2011-ffac.html にある、連鎖するプログラムを書けというやつ。大きな方針として、最初から以下のようにすべきだった。オブジェクトは各種状態を1つだけ表現するようにして、次々と状態が隣接状態を作るという。やっ…

cronでrakeが動かない問題

「man 5 crontab」とやれば書いてあるけど、Ubuntu(たぶんDebianも)のcronで、rakeが上手く動かないように見えた問題は、環境変数絡みだった。cronはSHELL、LOGNAME、HOME、PATH、NAMEなどの最低限の環境変数を独自に設定して/bin/shを呼ぶ。cronのPATHに…

Cで文字列を反転させる再帰関数

c

Cで文字列を反転させる関数を再帰を使って書け、という問題をふと思い出して書いてみた。久しぶりにCを書くと一発でコンパイルが通らなかったりする。で、プロトタイプ宣言なしだと、小粒の関数から順に並べないとダメだったりして、どうも気持ち悪い。抽象…

クラスが分からない

人気の高いライブラリのコードを読んだりすると、ナルホドそうやってクラスやモジュール、処理を切り分けるのかなんて思うけど、自分で書くとなると、なんだかむちゃくちゃ。読めるけど書けない、聞けるけど話せないというのは外国語の学習では普通のことな…

ぷよぷよ19連鎖にRubyで2時間かかった。

http://okajima.air-nifty.com/b/2011/01/2011-ffac.htmlまたしても2次元配列の初期化を間違えてハマったり、再帰による探索で初歩的なミスをしたり、なにより状態とクラスの扱いをどうするべきかで各関数の出し入れに統一感がなくぐちゃぐちゃになり、とい…