ruby

携帯キャリアがサイトを何にカテゴライズしてるか分かるスクリプト

require "rubygems" require "net/http" require "uri" require "nkf" require "nokogiri" uri = URI.parse("http://category.netstar-inc.com/check/res.php") Net::HTTP.start(uri.host, uri.port) do |http| request = Net::HTTP::Post.new(uri.path) req…

Identicon

Identiconは一意なseedからユニークな画像を生成する、いわゆる画像版のHash値http://www.docuverse.com/blog/9block?code=1233456&size=32codeは32bitの整数、sizeは16〜64を指定する。何に使用するかというと 2chのIDみたいに IP+ユーザエージェントのハッ…

Rubyを使い始めて1年とコードの質の変化

Rubyを使い始めて1年が経ったが、PHPの頃と比べて明らかに大きな変化が2つあった バグが減った バグが減った要因として Rubyは暗黙の型変換が禁止されているので 例えば 1 + '1' はRubyでは構文エラーになる。一方PHPの場合は は暗黙の型変換が行われて、2…

rubyで簡単に文章の類似度を判定する

$KCODE =’u’ class String def trigram str def cacl_tri str h = {} a = str.split(//) s = a.size a.each_index{|v| h[a.slice(v, 3).join] = 1 if v+3 <= s } h end h1 = cacl_tri(self) h2 = cacl_tri(str) h3 = h1.merge h2 h1.size != 0 ? (h1.size + …

続 memcached-client with ConsistentHashing

ちゃんと検証した 4つのサーバに1000個の値を追加した後、サーバを5つに増やした時のミスキャッシュ率 require 'rubygems' require 'memcache' require 'mem_cache_with_consistent_hashing' COUNT = 1000 def set m m.flush_all COUNT.times {|v| m.set("ke…

さらに cas と getsを追加して、テストとRDocを書いて patchを作ってrubyforgeにPOSTした

http://rubyforge.org/tracker/index.php?func=detail&aid=19075&group_id=1513&atid=5923英語力がやばすぐる。

memcache-client の append と prependの対応

mecached 1.2.4から、元々ある文字列の前後に文字列を足す appendとかprependがサポートされた。これは統計情報をmemcachedに蓄積したい場合に便利なんだけど rubyのmemcache-client 1.50では対応していない require 'memcache' class MemCache def prepend(…

memcached with ConsistentHashing

rubyの memcache-client の http://www.hyuki.com/yukiwiki/wiki.cgi?ConsistentHashing 対応版があった。 sudo gem install consistent_hashing とかで入れて require 'rubygems' require 'mem_cache_with_consistent_hashing' cache = MemCacheWithConsist…

merb with ebb

git headのmerbは 今話題の ebbに対応している。ということで hello と出力するだけのベンチマークを取ってみた。事前準備 $ yum install git $ yum install glib2-devel $ git clone git://github.com/wycats/merb-core.git $ git clone git://github.com/w…