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

tapメソッドが便利すぎる件

Object#tapが便利すぎるのでメモ。 メソッドチェインの途中経過をprint Rubyで理解するMapReduceで書いたコードも、わざわざ分解することなく途中経過をprintすることができます。 p input_data.map{|d| d[/GET (.+?) /, 1]}.tap{|d| p d}. group_by{|d| d}.…

Rubyで理解するMapReduce

MapReduceの勉強と練習をかねてRubyでそれらしいことを書いてみます。 間違ったことをしてるかもしれないので、詳しい人がツッコミを入れてくれると嬉しいです。ruby 1.8.7で動作を確認しています。 テーマ Apacheのログっぽいデータを分析して、それぞれの…

sdbtoolをFirefox4にインストールする #jawsug

AmazonSimpleDBを操作するfirefoxプラグインのsdbtoolを、Firefox4にインストールする方法です。公式にサポートされた方法じゃないから動かない機能とかあるかも。とりあえず、今使ってる分には動いてるので書いておきます。以下の手順で操作します。 ソース…

RubyでGmailに届いたメールのメールアドレスを取得する

id:tottokugさんが地震情報をメールで配信するサービスを始めました。 http://d.hatena.ne.jp/tottokug/20110313/1300041440ただ、以下の欠点があるようです。 ーメールアドレスの登録は手での登録となってしまっていますので、 まずはメールいただいた方だ…

動的計画法でフィボナッチ数を求める

動的計画法でフィボナッチ数を求めるコードをRubyで書きました。 以下のプログラムの計算量はO(n)です。 n = 100 puts (1..n).inject([1,0]){|a,b| [a[1], a[0]+a[1]] }.last # => 354224848179261915075

階乗を高速に求める

なにやらid:nise_nabeさんが階乗を高速に求めるプログラムを掘り出していたので、Rubyで書きなおしてみました。何をやってるのかさっぱりなので、ほとんど写経です。 class Integer def factorial return 1 if self < 2 @n, p, r = 1, 1, 1 log = self.log2n…