This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/35

Script.aculo.usのバージョンが新しくなって、Ajax.InPlaceCollectionEditorが導入されました。このオブジェクトを利用すると、セレクションボックスに関してInPlaceEditingを行う事ができます。

諸事情により、この機能をRailsから使いたくなったので、いろいろ調べてみました。比較的新しい機能なのでまだEdgeRailsにも入っていないようですが、ruairi氏がpatchをポストしているのを見つけました。

使い方に関しては、同氏がRailsMLに投稿したメールにざっくりと書かれています。プラグインとして作成されているので、利用するのは非常に簡単です。

実はruairi氏のpatchの他にも、in_place_select_editorなどもあります。こちらはRails Recipesの"Making Your Own JavaScript Helper"の項で書かれているものと同じもののようです。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/35

posted by Png genki on Tue 30 May 2006 at 22:42

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/34

5/18(日)にGree勉強会#3に行ってきました。この日は、前半に圏論勉強会、後半はGree勉強会と、勉強会尽くしでした。

今回はRubyの会会長の高橋さんと、Gree CTO の藤本さんがスピーカーです。

微妙にRailsとEthnaのフレームワーク対決みたいな感じでいて、そうでもなく。むしろ、ページコントローラとフロントコントローラの対決のようではありました。

セッションの内容としては、Railsの国際化の話とか、携帯対応の話とかが面白かったです。Railsの国際化はRubyGetTextがお勧めです。日本語化だけであればActiveHeartが便利。ActiveHeartには携帯対応をする時に便利な機能もついてます。

それから、隣にはてなのnaoyaさんが座っていたので色々面白い話ができました。反対側の隣はYahoo!の角田さんで、だいぶお疲れモードっぽかったです。

懇親会では、モバイルファクトリーのtokuhiromさんとか、ウフルの永上さんと話してました。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/34

posted by Png genki on Mon 29 May 2006 at 10:54

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/33

5/28(日)に圏論勉強会#17に行ってきました。

Wiki:CategoryTheory:圏論勉強会

第17回ということで、もうそろそろ終わり間近な感じでした。参加者数は5〜6人。素人くさいSICP読書会の参加者もいました。

やった場所は、p292〜p294のあたり。8:30から開始したのですが、16時からGree勉強会があったので、15時ごろに中座しました。次回までにもっと自習しておかないと。

圏論って何?という方には、この辺の資料がわかりやすいかもしれません:

向井研発表1 〜 圏論への誘い
向井研発表2 〜 圏論への誘い (その2)
向井研発表3 〜 圏論への誘い (その3)
なぜ圏論に興味を持ったかというと、HaskellのMonad関連という事もありますが、Photorealistic Renderingに関するChristensen氏の論文(Adjoints and Importance in Rendering: an Overview)を最初に見たときに、ああ、圏論に関する知識があれば、こういった事柄をうまく記述できそうだなー、と思っていた事が大きいですね。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/33

posted by Png genki on Mon 29 May 2006 at 10:40

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/32

Ruby on Railsでは、URLのマッピングに関する情報を routes.rbファイルに記述します。これを記述する際に、URLを丸ごとパラメータとして渡したい事があります。例えば、はてなブックマークでは、特定のURLに関するエントリーの情報を参照するためのURLは、こんな感じになります:

http://b.hatena.ne.jp/entry/http://foo.bar.com/

これがdel.icio.usの場合、URLを直接指定するのではなく、md5を使ったダイジェストを渡すようになっています。URLの規格としては後者の方が正しいアプローチなのですが、アドレス記入欄にURLを手入力する場合や、グリースモンキーから利用する場合を考えると、md5を使わずに済んで楽なので、前者の方法も捨てがたいわけです。

では、これと同じ事をRailsでやるにはどうしたら良いでしょうか。単純に考えると、routes.rbファイルに;

map.connect 'entry/:url', :controller => 'entry', :action => :list

という感じに書けば良さそうです。しかし、実際にこのコードを実行してみると、URLに含まれる'/'がデリミタだと見なされてしまうため、うまく認識してくれません。

最後の'/'より後に続く部分をまとめてパラメータとして捕捉するためには、下記のように記述する必要があります。

map.connect 'entry/*url', :controller => 'entry', :action => :list

こうする事で、params[:url] には ActionController::Routing::PathComponent::Result オブジェクトが渡されます。このオブジェクトの実体は、デリミタ'/'で区切られたパートを保持する配列です。また、to_sメソッドを呼び出す事で、元のURLを再現できるようになっているので、

url = params[:url].to_s

とすると、パラメータとしてURLを丸ごと渡す事ができます。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/32

posted by Png genki on Fri 26 May 2006 at 21:43

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/31

Login Generator - ユーザ認証 へのトラックバック

転ばぬ先の杖という事で、login_generatorを初めて使った時にはまりやすい罠の情報。

login_generatorが生成するaccountのfunctional testのコードは、Fixtureのデータを@bob のような感じで参照できる、instantiated_fixturesという機能を使うように書かれています。

しかしながら、Railsのデフォルト設定ではこの機能はOFFになっているので、rake test:functionals を実行すると失敗します。

この機能をONにするには、test/test_helpler.rbの中にある

self.use_instantiated_fixtures  = false

という行を true に変えればOKです。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/31

posted by Png genki on Fri 26 May 2006 at 11:32

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/30

Debian(sarge)にMySQL5.0を導入する方法のメモです。

/etc/apt/sources.list に下記の2行を追加します。

deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free

そして

# aptitude update
# aptitude install mysql-server-5.0

で、質問にYesで答えて完了。

途中で mysql のバージョンを変更すると、下記のようなエラーが出る場合があります。

Lost connection to MySQL server during query: SELECT version FROM schema_info

そのような場合、ここのサイトに書かれている事が解決の助けになるかもしれません。

僕の場合、上記の問題が発生したため、上記サイトの情報と、このあたり ([ruby-list:33513] Re: Mysql/Ruby のコンパイル)の情報を参考にしつつ、下記のように対処しました。

# gem install mysql
# cd /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7
# vim extconf.rb

ここで、extconf.rbの中身(L14)を下記のように修正:

  #while not find_library('mysqlclient', 'mysql_query', lib, "#{ lib }/mysql") do
  #  exit 1 if libs.empty?
  #  have_library(libs.shift)
  #end
  have_library("mysqlclient")

あとは、

# ruby extconf.rb
# make install

でOK!

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/30

posted by Png genki on Thu 25 May 2006 at 19:03

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/29

素人くさいSICP読書会に参加してきました。

今回も、前回に引き続いてサイボウズ・ラボ様にて開催されました。素晴らしい環境を利用させてくださいましてありがとうございます。

参加者数は、だいたい20名前後でした。前回同様、演習問題を黙々と解いていくという形式で進められました。今回の範囲は、演習問題 1.37〜1.39でした。連分数に関するところです。連分数を使って、πや自然対数の底の導出や、正接関数の構成などを行いました。

ということで、今回使ったコードを置いておきます。

; 5/24 sicp#14
;
(define (cont-frac n d k)
  (define (frac i)
    (if (= i k)
        (/ (n i) (d i))
        (/ (n i)
           (+ (d i) (frac (inc i))))))
  (frac 1))
(define (dec n) (- n 1))
(define (cont-frac-i n d k)
  (define (frac i result)
    (if (= i 0)
        result
        (frac (dec i)
              (/ (n i) (+ (d i) result)))))
  (frac k 0))
(define (e-38 k)
  (/ 1 (cont-frac-i
        (lambda (i) 1.0)
        (lambda (i)
          *1 1) 2 1)
             (+ (floor (/ i 3)) 1)))
        k)))
(define (tan-cf x k)
  (define (n i) (if (= i 1) x (- *2)))
  (define (d i) (dec *3))
  (cont-frac-i n d k))

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/29

  1. 1 (if (= (remainder i 3

  2. 2 x x

  3. 3 2 i

posted by Png genki on Thu 25 May 2006 at 10:09

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/28

今月は、各所でRailsアプリケーションの国際化が話題になっていたようですね。

Ruby on Rails > Re: no one cares about i18n (was [OT]: Asking questions on t
Rails i18n Gets a Mailing List

中でも秀逸なのがこちらの記事

InternationalizationComparison

Railsアプリケーションの国際化における選択肢とその比較を行った記事が投稿されていました。

この表を見るかぎり、現時点ではむとうさんのRubyGetTextが良い感じですね。

RubyGetTextの使用法に関しては以下のサイトが詳しいです。

Ruby on RailsへRuby-GetTextの適用
Using Gettext To Translate Your Rails Application

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/28

posted by Png genki on Tue 23 May 2006 at 15:07

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/27

単にヘッダとフッタを消すだけですが。
http://js.gthp.net/gm/ldr/without_header_footer.user.js

headerとfooterというidを使っているサイトなら何でも使えます。

ファイル名の末尾に .user.js ってつけると自動でインストールしてくれるんですね。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/27

posted by Png genki on Tue 23 May 2006 at 00:13

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/26

5/21日のRails勉強会@東京#6に参加してきました。

今回も前回同様オープンスペース形式で、前半・後半に分かれて7つのセッションが行われました。

■前半
・Rubricksの紹介
・Typo改造(I18N)
・SeaserでRails
・ChangeLogを淡々と読むよ

■後半
・Validation
・Mongrelのソースを読むよ
・AWDwRのテストの章を読むよ

今回は「ChangeLogを淡々と読む」と「Mongrelのソースを読む」に参加しました。
□ChangeLogを淡々と読む
Rails1.1以降の変更を追いかけて面白そうな機能を探すために、Railsのコンポーネントである、ActiveRecord、ActionPack、ActiveSupport、それからRakeのChangeLogを(本当に)淡々と読みました。5人の参加者でそれぞれ分担し、僕はActionPackの最新Logを読んでいきました。

・routesでサブパスのデリミタとして「;」が使えるようになった
・assert_recognizesの第2引数でmethodを指定できるようになった。
・link_to_functionでRJSテンプレートっぽいものをその場で記述できるようになった
・remote_form_for が form_for と同じように使えるようになった
・Prototype 1.5.0_rc0 にアップデート

定期的にChangeLogを追いかけるのは面白いですね。

□Mongrelのソースを読むよ
最近流行のMongrelのソースを読みました。SCGIの開発者がMongrelに移ったらしいという話ですが、確かにMongrelとSCGIは使い方が似ていますね。static file は Lighttpdに任せるという使い方だと、なお更SCGIと似たような立ち位置になります(この辺の図がわかりやすい)

起動が早いので、 development 環境で使用するには持って来いのようです。

□懇親会
懇親会では、荻野さん周辺で数学の話に花が咲いていました。やっぱり数学は面白いですね。数論の話、P≠NP問題の話…。クレイ数学研究所のミレニアム賞金問題の話も出ていました。

・リーマン予想
・バーチ&スウィンナートン・ダイアー予想
・P≠NP 問題
・ホッジ予想
・ポアンカレ予想
・ヤン-ミルズ方程式の質量ギャップ問題
・ナビエ-ストークス方程式の解の存在問題

この問題を解いたらそれぞれ100万ドルですが、全く歯が立たないです。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/26

posted by Png genki on Mon 22 May 2006 at 12:02