rubyruby2012-04-02yyyymmdd形式の日付を含むファイルのうち、欠落している日を探すスクリプトrubyhoge.yyyymmdd.logのような形式を持つログファイルが大量に手元にあり、そのうち欠落している日を探すという処理が必要になったので、Rubyでちゃちゃっと書きました。Emacs国際会議の論文を書いていて、ある程度固まってきたので英訳する作業を始めたものの、いちいち書いてはYahoo翻訳にかけてチェック、書いてはチェックを繰り返すのは非常にめんどくさいので、なんとかならないかと思ってやってみた。MsgPack-RPC忘れてたので自分用にまとめておく。Rubyのタイムアウト系のエラーについてのメモ2011-11-07Rubyで配列に対して空かも知れない配列を追加する時は、事前にempty?でチェックした方が早いが、まとめて追加してから一気にflattenした方が圧倒的に早いが、そんなことするよりconcatした方が早い。rubyタイトルで完結シリーズ。(ご指摘頂いたArray#concatについて追記しました)ある配列に対して、「空かもしれない配列」を追加していく処理が必要になった。fruits2...Rubyで配列に対して空かも知れない配列を追加する時は、事前にempty?でチェックした方が早いが、まとめて追加してから一気にflattenした方が圧倒的に早いが、そんなことするよりconcatした方が早い。2011-11-02Rubyでifやcaseで頻繁に評価されるものに対して小手先の工夫をしてもあまり意味がなかったrubyタイトルで完結シリーズ。ある比較処理を頻繁に実行するとする。その比較対象が、ほとんどある値を取る場合、その値を優先的に評価してやると高速になるんじゃないか?と思い立って実験してみた。linuxのコードに出てくるif(likely(cond))やif(unlikely(cond...Rubyでifやcaseで頻繁に評価されるものに対して小手先の工夫をしてもあまり意味がなかった2011-10-20Rubyのcatch句のコストはそこまで安くないruby制御構造を適当にやっつけで作るときに(たまに)便利なcatch句のコストは、あまり安いわけではなさそうだ。以下のベンチマークが妥当かどうかは別として、catchじゃなくてもできる処理ならば、catchを書かずに実現した方がたぶん早い。6.1のslリポジトリにあるRubyは1.8.7なので、自分で1.9のrpmを作ってインストールしてみた。rubyタイトルで完結シリーズ。「いまさら」ではありますが。システムの稼働中に延々とインクリメントする変数が必要だったので、実際に実験してみた。1.9から、文字列にそのエンコーディングが含まれるようになった。MessagePack-RPCでは、Encoding::ASCII_8BITの文字列を送っても、受け手側ではEncoding::UTF_8になってしまうという仕様がある。Rubyででかいデータをやりとりするときの性能についての簡単な調査rubyをやってみた。Rubyででかいデータをやりとりするときの性能についての簡単な調査2010-11-18RubyでWHOIS情報を参照するrubyRubyを使ったスクリプトの中で、WHOIS情報を参照したいことがあったので調べてみたところ、Whoisというgemがあるらしい。