Ruby による情報科学入門

Posted by okkez Thu, 25 Dec 2008 23:28:00 GMT

今、一生懸命読んでます。コンピュータサイエンスをマジメに勉強した事の無い人や SICP に挫折した人にはちょうどいいかもしれません。演習問題の解答例が直後に載ってるのがいいです。さすがは教科書。

解答例のコーディングスタイルが微妙におかしいのは、丸写ししないようにかなぁ?

Posted in | コメントはありません |

rcodetools が emacs 上で動かない

Posted by okkez Tue, 16 Dec 2008 17:17:00 GMT

解決したのでメモっとく。

環境変数 GEM_HOME を設定するなどして、標準のインストール先と違う場所に Gem パッケージをインストールしていると emacs 上から rcodetools が動かない。

とりあえずシステムに rcodetools をインストールしてさっくり解決。 多分、emacs にわかるように Gem 関連の設定を環境変数経由でやればシステムに rcodetools をインストールしなくても 行けそうな気がするけど、試してない。

Posted in | コメントはありません |

るりまの今月の進捗

Posted by okkez Mon, 15 Dec 2008 11:32:00 GMT
$ svn log -r{2008-12-01}:{2008-12-16} -q | grep okkez |wc -l 71

我ながらなかなか頑張ってる。

  • RubyGems 一通り書いた。けどまだ書いてないメソッドエントリがあるし説明不足。todo タグも消してない。
  • Rake 一通り書いた。todo タグを消してない。
  • minitest 書き始めた。意外と量が少ない模様。

最新ドキュメントは http://doc.okkez.net/ から (毎日 01:00 ころ更新予定)

うまく行けば今週中に上記三つを完了させられるかもしれない。

Posted in | コメントはありません |

Ruby で Church 数を書いてみた

Posted by okkez Sat, 13 Dec 2008 15:00:00 GMT

今日は SICP 読書会だったので復習がてら Ruby で書いてみた。 分かってしまえば簡単に書けた。

zero = lambda{|f| lambda{|x| x } } one = lambda{|f| lambda{|x| f.call(x) } } two = lambda{|f| lambda{|x| f.call(f.call(x)) } } three = lambda{|f| lambda{|x| f.call(f.call(f.call(x))) } } p zero.call(lambda{|x| x + 1 }).call(0) # => 0 p one.call(lambda{|x| x + 1 }).call(0) # => 1 p two.call(lambda{|x| x + 1 }).call(0) # => 2 p three.call(lambda{|x| x + 1 }).call(0) # => 3 add = lambda{|a, b| lambda{|f| lambda{|x| a.call(f).call(b.call(f).call(x)) } } } p add.call(two, three).call(lambda{|x| x + 1 }).call(0) # => 5

Posted in | コメントはありません |

nginx + webrick でるりまを公開する方法

Posted by okkez Thu, 30 Oct 2008 15:31:00 GMT

nginx と webrick を使用してるりまを公開しているので手順と使っているスクリプトを公開しときます。

nginx の設定は以下。

Debian 風に設定ファイルが分かれているのでそれ以外の人は適当に想像して読み替えてください。

server { listen 80; server_name doc.okkez.net; access_log /var/log/nginx/doc.okkez.net-access.log combined; root /var/www/doc.okkez.net; index index.html; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; #proxy_redirect off; location / { root /var/www/doc.okkez.net; index index.html; } location /archives { autoindex on; } location /180 { include maintenance; proxy_pass http://localhost:8180; break; } # … 180 から 191 までの設定がありますが略 }
以下の点に注意します。 * location /archives は月次リリースのファイル置き場です * location /180 は Ruby1.8.0 用のパスです * location は バージョン番号からドットを取り除いたもの * proxy_pass の最後に指定しているポート番号は 8000 + 上で作成した数値 ### webrick 起動スクリプト 書いてあるとおりなんですが、ポイントは以下。 * DB の作成場所などを工夫してパラメタライズしやすくした * –baseurl オプションを指定すると CGI で作成されるパスがそのパスを起点にしたパスになる * バインドされる IP アドレスは localhost なので安全 * port は nginx の設定で使用したものを使う
#!/bin/sh DB_BASE=$HOME/ruby/rubydoc/refm/api BITCLUST_DIR=$HOME/ruby/bitclust for v in 180 181 182 183 184 185 186 187 188 191 do ruby ${BITCLUST_DIR}/standalone.rb \ –baseurl=http://doc.okkez.net/${v} \ –port=8${v} \ –pid-file=${DB_BASE}/pids/standalone-${v}.pid \ –database=${DB_BASE}/db${v} done
こんな感じです。 ### DB を全て再作成するスクリプト
#!/usr/bin/ruby BITCLUST = ‘/home/xxxx/bin/bitclust’ VERSIONS = %w[ 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.9.1 ] REF_BASE=’/home/xxxx/ruby/rubydoc/refm/api’ def setup_db(version) db = “#{REF_BASE}/db#{version.gsub(/./, ”)}” `rm -rf #{db}` `#{BITCLUST} -d #{db} init version=#{version} encoding=euc-jp` `#{BITCLUST} -d #{db} update –stdlibtree=#{REF_BASE}/src` puts “#{version} is done” end system “svn up -q #{REF_BASE}” VERSIONS.reverse_each do |version| setup_db(version) end
なんとなく Ruby で書いてみた。 ### cron に登録してるスクリプト * このスクリプトが動いている間はメンテナンス中の画面になるようにあらかじめ nginx にも設定しておく * あとは上で作ったスクリプトの組み合わせ * メンテ中でも archives 以下はアクセス可能
#!/bin/sh DOC_BASE=/var/www/doc.okkez.net mv ${DOC_BASE}/system/maintenance.html.no ${DOC_BASE}/system/maitenance.html for f in $(find $HOME/ruby/rubydoc/refm/api/pids -name ‘*.pid’ -print) do kill $(cat ${f}) done $HOME/bin/bc-setup-all $HOME/bin/bc-view-all mv ${DOC_BASE}/system/maintenance.html ${DOC_BASE}/system/maitenance.html.no

こんな感じです。

まとめ

webrick を 10 個も起動しているのがちょっとダサいところなんですが、まあメモリもたくさん積んでいるのでいいのかな、と。

もっといいやり方があったら教えていただけるとうれしいです。

Posted in , | コメントはありません |

るりまを書くのに工夫していること

Posted by okkez Sun, 12 Oct 2008 00:05:00 GMT

試しに見てみるサーバ。

#!/bin/sh cd $HOME/ruby/rubydoc/refm/api ruby $HOME/ruby/bitclust/standalone.rb \ –baseurl=http://localhost:10088 \ –port=10088 \ –database=./db \ –debug

るりまの DB をコンパイルする。

#!/bin/sh VERSION=${1:-‘1.8.7’} cd $HOME/ruby/rubydoc/refm/api rm -rf ./db bitclust -d ./db init version=$VERSION encoding=euc-jp bitclust -d ./db update –stdlibtree=src

全てのバージョン。

#!/usr/bin/ruby BITCLUST = ‘/home/kenji/bin/bitclust’ VERSIONS = %w[ 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.9.0 ] REF_BASE=’/home/kenji/ruby/rubydoc/refm/api’ def setup_db(version) db = “#{REF_BASE}/db#{version}” `rm -rf #{db}` `#{BITCLUST} -d #{db} init version=#{version} encoding=euc-jp` `#{BITCLUST} -d #{db} update –stdlibtree=#{REF_BASE}/src` puts “#{version} is done” end system “svn up -q #{REF_BASE}” VERSIONS.reverse_each do |version| setup_db(version) end

こんな感じです。

Posted in | コメントはありません |

Typo のバグ

Posted by okkez Fri, 26 Sep 2008 13:19:00 GMT

コメントが有効になりました のコメントで指摘された件ですが、どうやら Typo のバグのようです。

RAILS_ROOT/config/routes.rb にあるルート定義を行っている方法が古いようです。

たぶん、名前付きのルートの部分を全面的に直さないといけない気がします。 とりあえず、上で指摘されていた部分は先頭(追加場所は未検証)

map.resources :articles

を追加すれば直りました。

本家にバグレポして直してもらう必要があるようです。

Posted in | コメントはありません |

るりま進捗 @ RubyGems

Posted by okkez Thu, 25 Sep 2008 05:29:00 GMT

るりまで RubyGems のドキュメントを書いてます。

あと 23 ファイルで一通り終わります。 まだ、内容の精査は必要なのだけど、 RubyGems のリファレンスが日本語で読めるのはるりまだけ!(と思いたい)

Posted in | 2 comments |

nginx + thin or Apache + fcgi

Posted by okkez Mon, 15 Sep 2008 08:45:00 GMT

両方試した結果、しばらく後者で運用することにしました。

理由は以下。

  • サーバマシンのメモリが 256MB しかない
  • thin はプロセスごとの消費メモリが 50MB から 100MB 程度
  • Rails アプリを三つ動かしてるので thin のプロセスが多い (6プロセス)

そんな感じでメモリの消費が多くてスワップしまくりだったのが遅い原因でした。

Rails アプリで nginx + thin を使うときは thin のプロセス数 * 100MB を以上搭載するのが目安になりそうです。

Posted in | コメントはありません |

nginx + thin

Posted by okkez Mon, 01 Sep 2008 09:30:00 GMT

やってみた。

色々と試行錯誤した結果なんとか安定したのでその手順をメモしておく。

インストール

nginx からソースを落としてビルドする。

$ ./configure –prefix=/usr/local $ make $ sudo make install

Thin - yet another web server は RubyGems でインストールする。

$ sudo gem install thin eventmachine

設定

thin の設定はコマンドラインでサンプルファイルを生成して、 /etc/thin 以下へコピーするだけ。 サーバの数を増やしすぎると、パフォーマンスが悪くなるので程々にしておく。 うちの場合は Rails アプリが三つあるのでそれぞれに二つずつサーバを起動するようにした。

# 三つずつにした場合は極端にパフォーマンスが悪化した。

$ thin config -C thin.yml -s2 -S /tmp/thin-qa.sock -u www-data -g www-data $ vim thin.yml # 都合に合わせて編集する。 $ sudo cp thin.yml /etc/thin/ $ sudo thin install # /etc/init.d/thin を作成する

nginx の設定は Main - Nginx Wiki を参照して行う。

# 一部抜粋 # backend settings upstream thin-typo { server unix:/tmp/thin-typo.0.sock; server unix:/tmp/thin-typo.1.sock; } # virtual host settings # typo (blog) server { listen 80; server_name typo.okkez.net; access_log logs/typo.access.log main; root /home/kenji/ruby/typo/public; index index.html; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; # static files if (-f $request_filename){ break; } # rails caching if (-f $request_filename.html){ rewrite (.*) $1.html break; } # dynamic request if (!-f $request_filename){ proxy_pass http://thin-typo; break; } } }

移行

  • Apache の設定を変更 (Listen 8080 にする)
  • thin を起動
  • Apache を再起動
  • nginx を起動
  • 動作確認

以降の設定変更は気をつける。

  • thin -C 設定ファイル restart
  • kill -HUP nginx の pid (pid ファイルを参照) ** すぐには反映されないので注意する
  • Apache は普通に再起動する

はまったポイント

  • proxy の設定
  • rewrite の設定
  • 設定の再読み込みが出来ていなかったこと (kill -HUP pid)

疑問点

  • 特定のアプリで prototype.js の読み込みはすぐに終わるのにその後の動きが鈍い ** 読み込まなければ速い

Posted in , | コメントはありません |

mongrel-1.1.5-java と mongrel-1.1.5

Posted by okkez Fri, 29 Aug 2008 07:03:00 GMT

JRuby で mongrel を動かしたくて mongrel-1.1.5-java を入れたけど動かなかった。

それをそのまま放置していたら普通の Ruby で mongrel が動かなくて焦った。 mongrel-java を消したら解決したけど、焦った。

たぶん、原因はロードパスがおかしくなったことだと思う。

ちょっとこれ以上はわからない。。。

Posted in | コメントはありません |

JRuby on Rails with Tomcat

Posted by okkez Fri, 29 Aug 2008 02:31:00 GMT

とりあえず、動いたので手順だけ。

必要なもの。

  • JRuby 1.1.3
  • Tomcat6 (Tomcat5.5だと動かなかった)
  • Gem (必要なものを入れる) ** activerecord-jdbc-adapter (0.8.2) ** activerecord-jdbcmysql-adapter (0.8.2) ** activerecord-jdbcpostgresql-adapter (0.8.2) ** activerecord-jdbcsqlite3-adapter (0.8.2) ** jdbc-mysql (5.0.4) ** jdbc-postgres (8.2) ** jdbc-sqlite3 (3.5.8) ** warbler (0.9.10)
  • database.yml を必要に応じて編集する
$ cd $RAILS_ROOT $ warble config … config/warble.rb を編集する Warbler::Config.new do |config| config.dirs = %w(app config lib log vendor tmp) config.includes = FileList[“po/**/*.po”, “locale/**/*.mo”] config.gems << "activerecord-jdbcpostgresql-adapter" config.gem_dependencies = true config.webxml.rails.env = 'development' end ... $ warble ... カレントディレクトリに *.war が作成される ... $TOMCAT_ROOT/webapps 以下にコピーする ... tomcat を再起動する ... 以上

こんな感じでとりあえずは動いた。 けど mongrel の二倍位遅かった。

Posted in | コメントはありません |

REXML DoS 脆弱性対策

Posted by okkez Wed, 27 Aug 2008 23:25:00 GMT

REXML DoS 脆弱性対策をしようとして typo があったため落ちてましたorz

落ちてる間に見ようとした人達がもしいたら、ご迷惑をお掛けしました。

Posted in | コメントはありません |

Hash#default_proc をあとでセットする方法

Posted by okkez Fri, 22 Aug 2008 03:48:00 GMT

Hash#default_proc= がなかったのであるハッシュにあとで default_proc をセットする方法を考えてみました。

以下のようにするとうまく行きます。

hash = {} # default_proc が無い。 hash.default_proc # => nil other_hash = Hash.new{|h, k| h[k] = [] }.merge(hash) other_hash.default_proc # => #

Posted in , | コメントはありません |

Hiki on Rack 2

Posted by okkez Fri, 22 Aug 2008 03:04:00 GMT

続き。

とりあえず、ページを編集できるところまで確認。 作業手順をまとめると以下のような感じ。

  • hiki.ru を用意する。
  • hiki.rb を用意する。
    • Hiki::App クラスを作って call メソッドを定義する
  • @cgi を使っている部分を全て @request に変更する
  • params[‘hoge’][0] を全て params[‘hoge’] に変更する
  • ENV を使用している部分を @request.env に変更する
  • クッキーを使用している部分を修正する
    • セッションキーだけなので簡単
  • print している部分を Rack::Response 的なものを返すように変更
    • [ヘッダー,ステータス,ボディ] な配列で OK
    • 面倒なのでヘッダーとボディだけ返してステータスは常に 200 にしといた
  • Rack::Lint によるとヘッダーに Status を入れてはいけないらしいのでそれを入れてる部分を削除
  • その他こまごまとした修正が必要。
    • CGI に依存している部分とか、ロードパスとか。

まとめ

頑張ればできる。

いや、でも Hiki のソースも意外とひどいというのがわかった。統一感がないというかカオス一歩手前というか。

Posted in | コメントはありません |

Hiki on Rack

Posted by okkez Thu, 21 Aug 2008 15:34:00 GMT

Hiki - Hiki -Front Page-Rack: a Ruby Webserver Interface に載せる実験中。

概ねうまく行きそうな感じだけど、セッションまわりに苦戦中。あと、たぶんプラグインを全部修正しないといけないのが辛いかもしれない。

ちゃんと出来たら公開する予定。

Posted in | コメントはありません |

第29回 Ruby/Rails勉強会@関西

Posted by okkez Tue, 19 Aug 2008 05:31:00 GMT

行ってきました。

ちょっと睡眠不足気味だったので各セッションの記憶はあまりなかったりします。

なので今回は行ったという記録のみ残しておきます。

Posted in | コメントはありません |

RSpec で transaction のテスト

Posted by okkez Sun, 03 Aug 2008 15:36:00 GMT

Yuya さんのヒントをもとにしてこんな風にしてみました。

sqlite3? は spec_helper に定義した。ヘルパーメソッド。 SQLite3 だとトランザクションの入れ子が出来なかった(例外が発生する)のでこうしてます。

一応 shouldnotreceive で特定の処理から先には進んでないことは確認しているし、 エラーメッセージも確認しているのでこれでテストとしては良さそう。

あとは、実装コードの最初の方で呼んでる処理をモック化すればいいと思う。

これをモック化すると、通しのテストはどうすればいいのだろう、というのが今の疑問。

describe BatchController do describe "POST create" do describe "by login user" do describe "when posted data was invalid (subject)" do before do Question.should_not_receive(:create!) Choice.should_not_receive(:create!) unless sqlite3? ActiveRecord::Base.connection.should_receive(:rollback_db_transaction) end end before do login_as :quentin post :create, :batch => { :body => INVALID_DATA_WITHOUT_TITLE } end it "should have error message" do flash[:error].should == invalid data. end it "should redirect to ‘subject/index’" do response.should redirect_to(subjects_path) end end end end end

Posted in , | コメントはありません |

アンケートのデータ修正しました

Posted by okkez Fri, 01 Aug 2008 03:46:00 GMT

http://q.okkez.net/ の第 28 回 Ruby/Rails 勉強会のアンケートで選択肢が英語になっていたデータを修正しました。

簡単なスクリプトを書いて script/console にコピペして実行した。 ちょっと複雑な修正なら SQL 書くより早いしわかりやすいね。

一部のデータがおかしくなってしまったのは SQL 書いて修正しましたけど。。。

多分、原因は私が使ってる Iceweasel に日本語言語パックをインストールしていなかったためだと思います。 次に同じようなミスがあった場合はすぐに修正できそうです。 r

Posted in , | コメントはありません |

Rack 使ってみた

Posted by okkez Wed, 30 Jul 2008 14:37:00 GMT

諸事情で web アプリを Rails を不使用で書く必要があったので cgi.rb の代わりに Rack を使ってみた。

主に上記を参考にして書いた。

ソースコードは整理して色々名前とか変えたら公開できるかもしれない。

感想

意外と短い行数で書けてびっくりした。 Rails の劣化版くらいなら一日くらいででっちあげられそうな感じ。

Posted in , | コメントはありません |

第 28 回 Ruby/Rails 勉強会

Posted by okkez Sun, 27 Jul 2008 07:23:00 GMT

日本Rubyの会 公式Wiki - 第28回 Ruby/Rails勉強会@関西

行ってきました。

エラトステネスの嵐—Rubyの集合演算を活用する by こなみさん

いろいろやってたらあまり聞けなかった。残念。

git - 分散バージョン管理システム by 舘野祐一さん a.k. id:secondlife

かわいいよ git かわいいよ。

今、作ってる某課題の管理はこれでやってみようかなぁ。

git-svn の使い方とか調べたい。

Ruby 初級者向けレッスン 第 22 回 by okkez さん

今回は irb について。

演習の後半は irb 関係ない感じでいきました。

演習の解答例は wiki にアップしたのでそちらを参照してください。

とりあえず、うちの ~/.irbrc です。refe2 のところはあまりうまく動かない。 まともに実装しようとすると bitclust を require してごにょごにょする必要があったりなかったりする。

#!/usr/bin/ruby # ri を使えるようにする # 例. # irb> String.ri # irb> ri String # same as above # irb> String.ri ‘reverse’ # irb> ri ‘File.new’ def ri(*args) puts `ri #{args.join( )}` end class Module def ri(meth=nil) if meth if instance_methods(false).include? meth.to_s puts `ri #{self}##{meth}` else super end else puts `ri #{self}` end end end # refe2 も使えるように module Kernel def r(*args) puts `refe2 #{args.join( )}` end private :r end class Module def r(meth = nil) if meth if instance_methods(false).include? meth.to_s puts `refe2 #{self}##{meth}` else super end else puts `refe2 #{self}` end end end IRB.conf[:EVAL_HISTORY] = 1000 # タブ補完を有効にする require irb/completion # simple prompt IRB.conf[:PROMPT_MODE] = :SIMPLE # ヒストリーを有効にする require irb/ext/save-history IRB.conf[:SAVE_HISTORY] = 1000 IRB.conf[:HISTORY_FILE] = "#{ENV[HOME]}/.irb-save-history" # サブ irb の設定 IRB.conf[:IRB_RC] = lambda{|_| IRB.conf[:IRB_RC] = lambda{|conf| conf.prompt_mode = :DEFAULT } } require pp require yaml

Posted in | コメントはありません |

RubyKaigi2008 extra

Posted by okkez Sun, 29 Jun 2008 13:23:00 GMT

http://i.loveruby.net/d/20080629.html

青木さんが大変な中、発表してくれたのにそんな裏側があったなんて。 外野の戯れ言には負けてられないので、頑張る。

来年はもっとよいリファレンスマニュアルにしてやるぞ。

Posted in | コメントはありません |

KansaiWorkshop#27

Posted by okkez Sat, 28 Jun 2008 14:02:00 GMT

行ってきた。@京都女子大学

関数型言語 Ruby by keisuken さん

最初ネットワークに全くつながらなくて、ust 配信に失敗してた。 なので、内容の方があまり聞けなかった。

途中から真剣に聞いたけど、わかりやすい説明で非常によかった。

日本 Ruby 会議 2008 参加報告 by いまいさん

Matz のバランスボール写真が素敵だった。多分次のるびまの著者近影はアレになると予想。

あと、あゆさんの営業活動が素晴らしかった。

Ruby 初級者向けレッスン 第 21 回 by okkez さん

オブジェクト指向。

ポリモルフィズムの説明のところが、やっぱり引っかかった。

初級者レッスンに対するアンケートの回答は全部読んでいるので、次回以降改善されるかもしれません。

オープンソースとビジネスの実際 by かずひこさん

京都大学でも聞いたのであとで書く。

Posted in | コメントはありません |

RubyKaigi2008 2nd day

Posted by okkez Mon, 23 Jun 2008 06:28:00 GMT

2日目。

午前 1

arton さんの発表は arton さんが普通にマイペース過ぎておもしろかった。 typo に気付かない arton さんが素敵。「うしろー、うしろー!」

Ruby で出来たアプリケーションを活用してお仕事するお話。 去年と同じかなぁーって思っていたら、さらに参考になる話だったのでいい意味で期待を裏切られた感じ。 使ってるツール自体は、自分も使ったことのあるものだったのでわかりやすかった。

IRC で調子に乗りすぎて反省。 これも、去年と似てるのかなぁと思ったらそうでもなかった。 今後の erb に期待。

午前 2

matz を説得する方法は、一般的に応用が出来そうだと思った。 自分のしたいことを正しく相手に伝える必要があるのだと思った。

るりま。青木さんのセッション。 コミット数ランキング 2 位。いつか追いつきたいけど多分無理。 そんなにたくさん文章を書いているわけでもないのですが、今後は細かいフォーマットのチェックとかバージョン間の 動作の違いとかに気をつけて書着たいです。 あと、るりまを書く人向けの用語集は整備した方が、今後参加する人は書きやすいのかしら?

MacRuby の話。 デモがよかった。あと、自分は mac 持ってないけど、試してみたくなった。

午後 1

REST。Ruby と REST は相性がよい。 、 大場さんがボケで高井さんがボケでした。 アドリブが多かったらしく、大変そうでした。 Ruby でやったプロジェクトの FP 計測結果には興味があるのだけど、企業秘密らしく公開してもらえなかった。 いつかそんな情報が気軽に共有出来るようになったらいいなと思いました。

午後 2

iKnow! の舞台裏。 スケールさせるのが大変なのがよくわかった。あと OpenID のせいで天然 DDoS されて困った話とか。

食べログ。 おいしいポジションにいる人の話。 大規模サイトでいかにしてスケールさせたかと言う話。 食べログでは、ハイスペックサーバを少数精鋭で運用するポリシーらしい。 ここも、MySQLを使っていた。

携帯プラグインの話。 携帯向けサービスは面倒なのがわかっていたので避けていたけど、やっぱり面倒だと再認識した。

午後3

どのセッションもあまり聞かずに、企業ブースめぐりなど。 多目的ホールで、セッションやってるときにブースを回るのが困難であることがわかった。

Closing

今年の総括など。 いつか Regional RubyKaigi が行われるらしい。

RejectKaigi and Reject RejectKaigi

RejectKaigi と Reject RejectKaigi の場所が近すぎでわけわからないことになっていた。 正直、 Reject RejectKaigi は要らないと思った。

かくたにさんの RegionalRubyKaigi の話は詳しく聞きたかった。いつかどこかに詳細が公開されるのを期待して待つことにしよう。

まとめ

始まる前は、「メインセッションが去年と同じだなぁ」と思っていたけど、実際はそんなこと無くてパワーアップしていた。 結局、ほとんどサブセッションは見てなくて、メインホールに張り付いてた感じ。ブースもほとんど手伝わなくて、ちょっと申し訳なかった。 ust 中継は文句言っている人がいたけど個人的には良かったと思う。 IRC は翻訳用と、ツッコミ用は分かれてた方がいいのではないかと思った。

最後に、写真のことでちょっと心配なことがあったけど撮った人の良心に期待する。

知らない人の写真を撮った人は、その人がweb上に公開される事を本当に迷惑だと思っていないかというのをもう一度よく考えてから公開してほしいと思います。

Posted in | コメントはありません |

RubyKaigi2008 0th day

Posted by okkez Fri, 20 Jun 2008 15:17:00 GMT

前日入りしていたので、朝から行ったら、Ruby関西の人は誰もいませんでした。

裏シリコンバレーツアーで一緒だった友人にも再会して楽しい会話をした。 twitter でいつも見てるから久しぶりだけど、あまり久しぶりな感じがしなかった。

コードゴルフコンペがおもしろかったけど、コードゴルフに夢中でスポンサーセッションをほとんど聞いてなかった。 あと、ブースに人が来なかったなぁ。

コミュニティ紹介のコーナーでは、なんか無理矢理いれてもらった感があって、ちょっと申し訳ないことをした。 やっぱり、イベントごとにディレクタを決めてきっちりスケジュールを押さえていかないと、他が主催している大きなイベントに参加しつづけるのは難しい。

まわりのテンションについていけないうちに終わってしまった感じ。

明日はテンション上げて行こうと思う。

Posted in | コメントはありません |

KansaiWorkshop#27 on 2008-06-28

Posted by okkez Wed, 18 Jun 2008 08:10:00 GMT

日本Rubyの会 公式Wiki - 第27回 Ruby/Rails勉強会@関西

もうすぐ開催されます。

今回はかずひこさんも久しぶりに登壇しますので、すごく楽しみです。

お時間のある方は、上記URIに申し込み方法が書いてあるので、そちらを参照の上、参加申し込みしてくださいね。

Posted in | コメントはありません |

るりまに検索機能とかいろいろ付きました

Posted by okkez Thu, 12 Jun 2008 07:52:00 GMT

羊堂本舗 脳ざらし紀行 (2008-06-11)

sheepmanさん++

俺も、1.8.7対応頑張ろう。まだ 1/3 も出来てない。

Ruby reference manual (beta)

Posted in | コメントはありません |

Ruby1.8.7 で Ruby on Rails が

Posted by okkez Fri, 06 Jun 2008 12:36:00 GMT

動かない。

Ruby1.8.7/Rails2.0.2 で動かない。

[ruby-dev:34939] で解決したと思ったけど、やっぱり動かない部分がある。

ActiveScaffold で動的に作成した Controller が動かない。ちゃんと調べてないけど どうやら色々なものが Enumerable::Enumerator を返すようになったのが問題らしい。

ActiveScaffold にパッチあてるしかないのかな。

Posted in , | コメントはありません |

RSpec で rollback のテストを行う方法

Posted by okkez Thu, 05 Jun 2008 15:36:00 GMT

色々と調べたり試したりした結果、以下の方法で妥協することにした。

RAILS_ROOT/spec/spec_helper.rb をコピーして RAILS_ROOT/spec/rollback_spec_helper.rb を作成して、 use_transactional_fixtures = false にする。

これで、ファイルごとに実行するテストはうまくいくようになる。

この方法は簡単なんだけど、 rake spec や rake spec:rcov でテストを実行すると rollback 関連のテストが必ず失敗する。

もっとうまい方法はないのだろうか。

Posted in , | 2 comments |

第 26 回 Ruby/Rails 勉強会 初級者レッスン添削

Posted by okkez Sat, 24 May 2008 07:08:00 GMT

添削しようと思って、日本Rubyの会 公式Wiki - 第26回 Ruby/Rails勉強会@関西 にトラックバックをしているサイトを見たけど、みんなそれぞれなりに上手に書いてるなぁと思った。

回答例は 日本Rubyの会 公式Wiki - Ruby勉強会@関西-15 を見てもらうことにしよう。

Posted in | コメントはありません |