ruby

RubyGemsをダウングレードする 

何回か同じこと繰り返してるのでここに書いておきます。Rails 2.3.5で運用しているプロジェクトがあります。(諸事情により) 最近のバージョンのRubyGemsでrakeを実行すると、 uninitialized constant ActiveSupport::Dependencies::Mutexが出たりします。 …

youRoomのAPIを使ってみた

youRoomのAPIを使ってなにかしてみたいと思いました。 APIを使うには申し込みが必要です。申し込みはここからできました。youRoom APIをベータユーザ向けに限定公開します!そうすると、Consumer KeyとConsumer Secretをすぐに発行してもらえます。発行して…

モデルのバリデーションのテストをダラダラ書きたくない

RSpecでモデルのバリデーションのテストをダラダラ書かないで済むうまいやり方ってあるんでしょうか? ダラダラ書かないで済む方法を模索してみました。 spec_helper.rbにこういうのを追加します。ここではバリデーションの種類はverify_hours(入力値が24…

10分でコーディング

10分でコーディングをやってみました。 10分でできなかったし、なんかセンスないです。出直します。。 def kubaru(cnt, tramp) tramp = tramp.split(//) limit = tramp.size/cnt sets = "" rtn = [] cnt.times do |c| tramp.each_with_index do |e, i| set…

オブジェクトの特異メソッドを定義する(明示的に特異クラスのインスタンスメソッドとして定義する場合)

今度こそinstance_evalとmodule_evalを理解してもらった 最近の基礎シリーズいいです!もっとやってほしい! 環境 # ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9] Objectのオブジェクトobj >> obj = Object.new => #<Object:0x1a896d8> >> block = Proc.new</object:0x1a896d8>…

ruby-growlが動かず

jugyoさんのgを試してみたんですが Growlで開発の効率をUP! >> require 'g' => true >> g "hello" Errno::ECONNREFUSED: Connection refused - send(2) from /opt/local/lib/ruby/gems/1.8/gems/ruby-growl-1.0.1/lib/ruby-growl.rb:187:in `send' from /opt…

RPCFN: Short Circuit (#3)の結果がサッパリだったのでやり直した

ぜんぜんダメだったw ダイクストラ法のことがぜんぜん理解できてなかったwwwイカンなー Aldric Giacomoniさんのコードを参考にしてやり直した。ほぼパクリであるとも言う。。 コード class ShortCircuit INFINITY = 1.0/0 def initialize(circuit, source, d…

githubからインストールしたgemをgemcutterへ移行する off_github

というツールをみつけました http://github.com/maxim/off_github 便利やなかろうか

RPCFN: Short Circuit (#3)やってみた

チャレンジしました AからGまでの最短経路を探した上で、不要な経路を出力するというものです RPCFN: Short Circuit (#3) ダイクストラ法を参考にしました。正面衝突ブチ当たり ダイクストラ法(最短経路問題) コード paths = [ {:from => "A", :to => "B",…

REXMLでXMLをパース

REXMLでできるパースの種類は4種類あるようです tree parsing API・・・DOMのようなもの stream parsing API・・・SAXのようなもの。SAXより速いらしい SAX2-based API・・・SAX2ベースドエーピーアイ Pull parsing API・・・Java SE 6で入ったStAXと似てい…

続・MacRubyインストール

ここを参考にまたやってみたけど・・ Getting Started with MacRuby またrakeでうまくいかなかったー bridgesupport.cpp: In member function ‘llvm::Function* RoxorCompiler::compile_bs_struct_writer(rb_vm_bs_boxed_t*, int)’: bridgesupport.cpp:143: …

RPCFN: Average Arrival Time For A Flight (#2)の見直し

RPCFN: Average Arrival Time For A Flight (#2)12:00pmの扱いがバグってたのを修正 amとpmが混在したときの扱いがバグってたのを修正 Time.atで時刻を出すようにした MIN = 60 HOUR = MIN*60 def average_time_of_day(args) times = [] r = /(\d+?):(\d+?)(…

RPCFN: Average Arrival Time For A Flight (#2)

ベタ書きしてしまいました。テストありません。例外処理してません。すいません。 MIN = 60 HOUR = MIN*60 def average_time_of_day(args) times = [] r = /(\d+?):(\d+?)(am|pm)/ args.each do |e| times << r.match(e).to_a[1..-1] end mixed = !(times.al…

Hash#invert

# irb >> h = {:banana => 100, :tomato => 120, :apple => 200} => {:apple=>200, :banana=>100, :tomato=>120} >> h.invert => {100=>:banana, 200=>:apple, 120=>:tomato}

任意の文字列の正規表現をまとめてつくる

a = %w(banana orange apple) #=> ["banana", "orange", "apple"] r = Regexp.union(a.map{|e| /\A#{Regexp.escape(e)}\z/}) #=> /(?-mix:\Abanana\z)|(?-mix:\Aorange\z)|(?-mix:\Aapple\z)/ "apple" =~ r #=> 0 "bananana" =~ r #=> nil

バイナリ→Base64エンコーディング→バイナリ

f = File.open("Firefoxでもっと便利に使おう - はてな.png") #バイナリ→Base64エンコーディング base64_text = [f.read].pack('m') File.open("fuga.png", "wb") do |f| #Base64エンコーディング→バイナリ f.write(base64_text.unpack('m')[0]) end

MacPortsで1.8.7を入れる

# sudo port -d selfupdate # sudo port -d sync # sudo port install ruby @1.8.7-p174 # ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]

MacRubyインストール失敗

llvmインストール # sudo port install llvm ソースコード取得 # git clone git://git.macruby.org/macruby/MacRuby.git rake実行 # rake rakeで失敗 bridgesupport.cpp:1299: error: ‘Create’ is not a member of ‘llvm::ReturnInst’ bridgesupport.cpp:129…

文字列の中のダブルコーテーション

>> o = "hello \"world\"" => "hello \"world\"" >> puts o hello "world" => nil >> o = 'hello "world"' => "hello \"world\"" >> puts o hello "world" => nil >> o = %Q|hello "world"| => "hello \"world\"" >> puts o hello "world" => nil

MapReduceの"Hello World"は単語数数え上げ

The “Hello World” of MapReduce is to perform a distributed word count. http://wiki.github.com/documentcloud/cloud-crowd/writing-an-action:site workersを5つつくる # crowd workers start -n 5 Job実行 # ruby word_count_example.rb 結果 >> Net::…

CloudCrowd ― Parallel Processing for the Rest of Us

Rubyによる並列処理システム「CloudCrowd 0.1.0」リリース ファミコン的なロゴとかアーキテクチャの図とかゆるい感じです。 インストール # sudo gem install cloud-crowd Password: Building native extensions. This could take a while... Successfully i…

Joruri

Joruriとは、Japan Originated Ruby-based RESTful and Integrated CMS(日本から生み出され、ルビーをベースにし、REST規約に従った、統合されたCMS)という意味から名づけられ、更には、人形浄瑠璃の三人遣いのように、すばらしいホームページを裏で支える…

Ruby 標準化 IPA報告書

Rubyの標準規格は、ISOとIEC(国際電気標準会議)が共同で運営している「ISO/IEC JTC 1」の「SC22」にて審査の後、認定される予定。SC22では、今のところCOBOL、FORTRAN、C言語などの標準化ドキュメントのメンテナンスを実施している。標準化の作業は、Ruby…

Class#inherited

>> class Class >> def inherited(subclass) >> puts "#{self}'s subclass:#{subclass} is defined" >> subclass.instance_variable_set('@klass_hensu', "KlassHensu") >> end >> end => nil >> class Hoge >> def self.hoge >> @klass_hensu >> end >> end…

なんちゃらlogicが気になる

#176 Searchlogic #170 OpenID with Authlogic #160 Authlogicbinarylogic

rvmを入れた

# rvm list ruby: - ruby-1.8.6-p383 - ruby-1.9.1-p243 jruby: - jruby-1.3.1 ree: - ruby-enterprise-1.8.6-20090610 system: - (ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin9.2.2]) rubiniusのインストールが失敗する・・ 複数のRubyを切り替え…

なにもしないクラスメソッドにブロック渡すとProcが返ってくる

なにもしないクラスメソッド irb(main):104:0> class A irb(main):105:1> def self.hoge(*args, &block) irb(main):106:2> end irb(main):107:1> end => nil irb(main):108:0> A.hoge("bar"){puts "bar"} => #<Proc:0xb7e739f4@(irb):108> なんかするクラスメソッド irb(main):109:0> cl</proc:0xb7e739f4@(irb):108>…

CentOSでmechanizeをインストール

libxml2-develとlibxslt-develを入れとく必要あり # sudo yum install libxml2-devel # sudo yum install libxslt-devel# sudo gem install mechanize

ブロックの中のブロック?

?> def hoge >> yield 1 >> end => nil >> ?> def bar >> yield 2 >> end => nil >> ?> total = 0 => 0 >> ?> hoge {|e| total+=e; bar{|e| total+=e}} => 3 >> total => 3>> def hoge >> p = Proc.new{p "world"} >> yield p >> end => nil >> hoge{|e| p "…

ruby-oci8セットアップ時にはLD_LIBRARY_PATHとNLS_LANGを必ず設定する

NLS_LANG忘れてた。Rails起動したらみたことないORAエラーがでてあせった。

メモリリーク

Ruby自体のメモリリーク RMagicのメモリリーク ruby-get-textのメモリリーク DBでセッション管理するとメモリリーク ロードしたクラスをキャッシュしてないとメモリリーク(developmentモード) around_filterでreset_sessionするとメモリリーク などなどあ…

ubygems.rb !! こんなのあるの知らなかった。 なんでubygems.rb なんだ?(ダイワハウス風)

をやってみました

12/20うう・・

「[http://dontstopmusic.no-ip.org/diary/20070910.html#p01:title=Ruby 技術者認定試験の問題を予想してみました]」をやってみました

25/30ネタにならない点数・・・

クラス変数・クラスインスタンス変数

こちらが詳しい。 クラスインスタンス変数 試してみる。 class Hoge @@class_hensu = 0 @class_instance_hensu = 0 def self.add_class_hensu @@class_hensu += 1 end def self.add_class_instance_hensu @class_instance_hensu += 1 end def self.class_hen…

omni補完できるまで

ごにょごにょしたらomni補完できるようになったので、その記録。 理屈は分かってません。 omni補完がエラるを調べていたら、 gemコマンドが2つ入っていることに気づきました。 # sudo find / -name gem /Library/Ruby/Gems/1.8/gems/rubygems-update-1.2.0/…

omni補完がエラる

-- Omni completion (^O^N^P) -- Searching...Missing the Rails 2.1.0 gem. Please `gem install -v=2.1.0 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_G…

xmpfilterがちゃんと<del datetime="2008-06-28T02:40:35+09:00">動かない</del>動きました

Vim+xmpfilterでirbいらずのRuby試行錯誤開発を読んで試してみたんだけど、期待どおりに動かない。こういうのを 1 a = "foo" 2 b = "bar" 3 a+b 4 a.size 5 c = 0 6 3.times do |count| 7 c+=5 8 puts "#{count+1}回目の値は#{c}です" 9 end xmpfilterつかっ…

Integer#times でした。いいと思います。

URIでアンダースコア含むホスト名がパースできない

かなり有名な問題らしい。先代のRFC2396ではアンスコはNGだったけど、RFC3986はOKになっているはず。最初に試したのは1.8.6 p114にて。1.8.7 p17のNEWSで「Change for RFC3986」とあったので、ワーイと思ってたけど駄目だった・・ sogo:# ruby -v ruby 1.8.7…

CSVのパース

Rubyの標準ライブラリのcsvは遅い、というのはよく聞く話です。 代替ではfastercsvが有名なように思いますが、他にもいろいろあったので調べてみました。 簡単な速度比較です。 環境 vmware player上のfedora core5(メモリ256M) ruby 1.8.6 (2008-03-03 pa…

Ragel

A custom HTTP 1.1 parser written based on the RFC standard and using an ABNF dump thankfully put online by someone. The parser is written using Ragel and is written C and Java as Ruby extension. mongrelのHTTPパーサはRagelというもので書かれ…

memo

大体3倍くらい速い (Rails Mongrel との比較) マジスカ!! とりあえず Hello nksk! できました!

rakeが実行されるまでを調べる(3)

やっとrakeが実行される流れの大枠が腑に落ちた(遅) 登場するヤツら Rake::Applicationクラス・・・rakeのブートストラップクラス Rake::TaskManagerモジュール・・・タスクをハンドルする機能。Applicationクラスがincludeする Rake::Taskクラス・・・Rak…

Ruby Business Commons 設立総会

2007/7/31、Ruby Business Commonsという新しいコミュニティの設立総会が福岡で行われました。 趣旨に賛同して登壇した面子がすげー。 Rubyのまつもとさん、福岡県の麻生知事、楽天の安武CTO、JRubyコアディベロッパーのThomasさん。 また、Ruby/Tkの永井さ…

RMagickインストール

OSはUbuntuです。 # uname -a Linux ubuntu704 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686 GNU/Linux# sudo aptitude install imagemagick # sudo apt-get install libmagick9-dev # sudo gem install rmagick

これからのRailsの日本語化はRuby-GetTextらしい

ActiveHeartは天に帰してあげましょうらしいので、Ruby-GetTextを試してみた。 Ruby on RailsでRuby-GetText-Packageを使う Ruby on Railsで日本語しか使わない場合でもRuby-GetText-Packageを使う理由 ロケールによるテンプレート切り替え やってみると、ス…

pagination_links

pagination_linksのactionを設定する。 <%= pagination_links @title_pages, :params => {:action => "search"} %> 設定しなければ、defaultはlistアクション?