• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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

Clipboxのアルファバージョンをリリースしました。

http://clipbox.drecom.jp/

ソーシャルデータベースの試作品です。カードという形でデータを作成し、作成したカードを「Box」に入れる事で流通するシステムになっています。 ほかのユーザの「Box」を自分の「Box」に入れることもできて、BoxからBoxにカードが伝播していくようになっています。

まだまだ発展途上ですが、よろしくお願いします。

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

posted by Png genki on Mon 20 Nov 2006 at 20:02

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

Rails勉強会は、第0回も含めると今回でちょうど一周年になるみたいです。 井上さん、お疲れ様です。今後ともよろしくお願いします。

さて今回は、参加したセッションの記録をこちら に記録してみました。

参加したセッションは、前半が「いまRSpec on Rails が熱い」、後半が「いまこそ ARと外部キーについて考える」でした。

■前半「いまRSpec on Rails が熱い」

前半の人気セッション。もろはしさんがセッションオーナーで、16人参加しました。 ポジションペーパーの自己紹介だけで40分ぐらいかかっていました。 個人的には、t-wadaさんにお会いできたのが嬉しかったです。

まずはRSpecのはじめ方。

# gem install rspec
# gem install ZenTest -v 3.4.1
例えばRSpecでモデル用のspecを生成するときはこんな感じに書く。
$ ./script/generate rspec_model person
specのfixturesをtest/fixturesにシンボリックリンクで持ってくると便利らしい。 中身が違う事はあまりなさそうだから、確かにそうですね。 むしろデフォルトでそういう動作をしても良いんじゃないかな。 そして、specファイルには以下のような感じで仕様を記述していく。
context "○○について" do
  fixture :people

  setup do
    @person = ...
  end

  def specify "○○のこと" do
    @person.should.have.at_least(1).parties
  end
end
それから、RSpecを使うと、コントローラの単体テストを書くことができる。 コントローラのspecを書くときは、アクションをcontextに対応させて、 specifyでactionに対するいろいろなケースの仕様を書いていく。 ひとつのコントローラが複数のコンテクストを持つ感じですね。
response.should_be_success
とか、
Person.should_receive(:find).with(1).and_return Person.new
のように記述することができる。should_receiveは、sendに対応するメソッドで、 あるオブジェクトのメソッドが呼び出されることを表す。 should_receiveはsendされるより前にあらかじめ呼んでおかないといけない。

最後に、GetTextを使って国際化している場合にSpecを書くにはどうしたら良いか、 などという話題が出ましたが、時間切れ。setupでGetText.locale = 'en'とかしてみたら良いのかな。

■後半「いまこそ ARと外部キーについて考える」

maihaさんがオーナー。ActiveRecordの習熟レベルの話で盛り上がる。

  1. CRUDをやったことがある
  2. Validationが書ける
  3. has_one, has_manyが使える
  4. has_and_belongs_to_manyが使える
  5. has_many :throughが使える
  6. with_scopeを使える
  7. シリアライズを使える
  8. 複数のDBをまたがってARを利用したことがある
  9. acts_as_XXXXを作れる
  10. ARのアソシエーションを自作できる
大体こんな感じでしたね。シリアライズは使ったことがなかった。 舞波さん曰く、STIを使うのは素人。

そしてようやく本題に。都道府県や男女を外部キーで持つか、データで持つか。 舞波さんの目論見に反して、みんな外部キー派。話が終わってしまいそうになるところを なんとか頑張ってbelongs_to :association_foreign_keyをライブ実装。

class User < ActiveRecord::Base
  belongs_to :zipcode, :foreign_key => :zip, :association_foreign_key => :zip7
こんな感じで使用すると、主キー以外でアソシエイションを定義できる。

そして、これをどうやってRails本体に入れてもらうかという話題に。 DHHは「積極的なNO」という態度らしく、Dave Thomasさんに頼んでみたらどうかという感じに。 なかなか茨の道のようですね。

■懇親会

今回は雨だったこともあり、会場の近くのZESTというところでやりました。 Roleごとにサーバを分割した場合のRailsのキャッシュの話、アカデミックな話、高橋さんが持参してきたディスプレイの話などに花が咲きました。

そしてなんだかわからないですが、突然ロデオマシーンが登場し、2名ほどロデオに興じました。 この文章意味不明だな…。でも詳しく描写する気力がないのでこれまたブレて良くわからない写真でご勘弁を。値段も手ごろだったし、これはこれでなかなか楽しかったです。

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

posted by Png genki on Mon 20 Nov 2006 at 18:02

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

debianのパッケージで入るsubversionは、バージョン1.1.4(r13838)と 古めのものなので、Pistonを使おうとすると不可解なエラーが出たりします。 そこで、新しいバージョンをソースから入れることにしました。手順をメモしておきます。

コーヒーを一杯飲み終わるぐらいの時間がかかるので、コーヒー好きな方は用意しておいたほうがいいでしょう。 まず、apr(Apache Portable Runtime)をソースからインストールします。0.9.x系の最新バージョンを使います。

# cd /usr/local/src
# wget http://www.meisei-u.ac.jp/mirror/\
apache/dist/apr/apr-0.9.12.tar.bz2
# tar xvjf apr-0.9.12.tar.bz2
# cd apr-0.9.12
# ./configure
# make
# make install
続いて、apr-utilをインストールします。
# cd /usr/local/src
# wget http://www.meisei-u.ac.jp/mirror/\
apache/dist/apr/apr-util-0.9.12.tar.bz2
# tar xvjf apr-util-0.9.12.tar.bz2
# cd apr-util-0.9.12
# ./configure --with-apr=/usr/local/src/apr-0.9.12
# make
# make install
すでにapache2-devがインストールされている環境ではそのまま次のSubversion本体 のインストールに進めます。入っていない場合は、パッケージマネージャを使って入れるか、 以下のようにソースからインストールします。
# cd /usr/local/src
# wget http://www.meisei-u.ac.jp/mirror/\
apache/dist/httpd/httpd-2.2.3.tar.bz2
# tar xvjf httpd-2.2.3.tar.bz2
# cd httpd-2.2.3
# configure
# make
# make install
これでインストールされるapxsがsvnでDAVにアクセスするために必要になります。 さらに、libneonも新しいバージョンをインストールします。これはlibsvn_ra_davを生成するのに必要になります。ちなみに、neonはWebDAVクライアントライブラリです。なぜか、neon 0.25.5じゃないと駄目らしいので、もっと新しいneonが入っている場合でもneon 0.25.5をインストールします。
# cd /usr/local/src
# wget http://www.webdav.org/neon/neon-0.25.5.tar.gz
# tar xvzf neon-0.25.5.tar.gz
# cd neon-0.25.5
# ./configure
# make
# make install
最後に、Subversion-1.4.2をインストールします。 なぜか必要になるので、python2.x-dev (where x >= 3)を入れておきます。
# cd /usr/local/src
# wget http://subversion.tigris.org/downloads/subversion-1.4.2.tar.bz2
# tar xvjf subversion-1.4.2.tar.bz2
# cd subversion-1.4.2
# ./configure --with-apr=/usr/local/src/apr-0.9.12 --with-apr-util=/usr/local/src/apr-util-0.9.12
# make
# make install
これで完了です。コーヒーは飲み終わりましたか?

今回はfsfsを使うのでBarkley DBはインストールしませんでしたが、 bdbを使う場合は、あらかじめBarkley DBをインストールしておく必要があります。

豆知識
svnコマンドを実行してこんなエラーが出た場合、
svn: Unrecognized URL scheme for \
'http://svn.foo.net/bar/baz/trunk' 
libsvn_ra_dav-1.soが見つけられてないことが原因です。おそらく、neon 0.25.5がない環境でSubversionをインストールした事が原因です。neon 0.25.5を入れてからreconfigureしてみると解決するかもしれません。 あるいは、libsvn_ra_dav-1.soにライブラリパスが通っていないことも考えられます。 /etc/ld.so.confにPATHを追加してldconfigしてみると良いかも。

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

posted by Png genki on Mon 20 Nov 2006 at 13:50
Contents
Clipboxのアルファバージョンをリリース
Rails勉強会@東京#12レポート
Subversionの最新版(1.4.2)をソースからインストールする
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ