« 2006年05月 | メイン | 2006年07月 »

2006年06月30日 (金)

16点ブレイク出た…はずなのに [ビリヤード・スヌーカー]

mixiつながりのAさんに久しぶりにスヌーカーに連れて行ってもらった。場所はと同じくドリームショット武蔵村山本店。3時間1500円なのでめちゃくちゃオトク。

Aさんは久しぶりのスヌーカーということで不調だったようで、1フレーム目はカラーボールゲームまでなんと僕がリードしていた。しかしカラーに入って僕がインオフして逆転され、僕もピンクを入れて追いすがるが、ブラックを入れられて負け。38-43。

2フレーム目。途中絶好の配置からレッド-ブラック-レッドとポットし、ブラックへぴったりポジション。今日はスポットのブラックがけっこう見えていたので、自信を持ってショット! ブラックをポット! やった16点ブレイク達成!!と思いきや、キューボールが周りのレッドにナッジしてインオフ!!! なんてこった…。

精神的にダメージを受けたのか(自分では自覚ないけど)、それとも疲れたのか、そこから調子は下降線。結局39-62で負け。

3フレーム目は2人ともぐだぐだでぜんぜん入らず、何回もファール。それでもAさんは最後ブルー-ピンク-ブラックとクリアランスを決めて38-87。まあ予想通りの全敗。

今日調子がよければ日曜日のブロードウェイコート杯に出てみるか?と言っていたのだが、それどころじゃない調子の悪さでお流れに。この調子じゃ同じmixiつながりのNさんにもかなわないです。まあNさんとも近いうちに撞きに行こうという話らしいので、なんとかいい勝負になるようにこれからちょくちょく練習しに行こうということで意見が一致。またよろしくお願いしま~す。

投稿者 4bit : 23:59 | コメント (2) | トラックバック (0)

2006年06月22日 (木)

ドラゴンのスヌーカーレッスン Part5 [ビリヤード・スヌーカー]

ドラゴン福田豊氏のレッスン会@スヌーカークラブに5回目の参加。

今日はダメだったー。といってもこれがいつも通りなのかもしれないけど。スクリューバックのショットのときにキューを引いてしまう悪い癖が出てしまった。この癖は前に直したはずだったのだが、無意識にまた出ていたとは…。

ハイエストブレイクはたしか、レッド-ブラウンの5点。しょぼい。。。

まあいくつかいいショットはあった。ロングレール際のブラウンをコーナーへロングポットとか…。あと初めて1番テーブル(トーナメントテーブルでポケットが渋い)を使って練習したが、さほど苦手のような感覚はなかったのがよかったかな。

さて、28日からはアジアスヌーカー選手権。日本代表の福田さんと栗本さんがんばってください!

投稿者 4bit : 23:59 | コメント (0) | トラックバック (0)

2006年06月19日 (月)

Rails勉強会@東京 第7回 [テクニカル]

前回に引き続きRails勉強会に参加。

ポジションペーパーは、ここのブログに書いてた「DHH loves REST!?」をマイナーチェンジしたものです。ogijunさん曰く「カンファレンスに行ってないのに煽ってる人がいる」とズバリ。はい、煽ってるつもりです(笑)。

今回は初めて恵比寿のドリコム東京事務所での開催。入ったらいきなりエントランスホールにビリヤード台が置いてあってびっくり。なんか煮詰まったときには遊んだりするそうだが、もし僕がこんな環境にいたらずっと遊んでしまいそうで恐い。スヌーカー台だったらもっとよかったのに(大きすぎて無理)。他も非常にきれいですばらしい環境でした。

前半セッションは「DHHふたたび」。先日の日本RubyカンファレンスのDHHの講演の音声をおおもりさんが録音されていたので、それを聴こうというセッション。

非常に聞き取りやすい英語だった…と思うのだが、自分の英語力のショボさで「とりあえず聞いただけー」に終わる。情けない…。翻訳Wikiのあんどうさんのまとめを手元に置きながら聞いたのだが、これがなかったらぜんぜんわからなかった。感謝。

講演の内容でDHHがCRUDとは何回も言っていたがRESTとは言っていないことが少し気になったが、正確な意味でのRESTではないので避けた説、RESTの宗教論争に巻き込まれるのがイヤだった説とかいろいろ挙がっていた。あとで懇親会のときに高橋さんに聞いたら「深く考えてないだけでは」ということだったが(笑)。

あとカンファレンス参加者が多かったせいか、このセッションの参加者が5人と少し寂しかった気がした。

後半セッションは「ActiveRecordモデリング」。ソーシャルブックマークを作るならというお題で、DB設計とモデリング、実際にActiveRecordを使ったコード例を書いてみようという趣旨。

UserとPageがあって、多対多の関係なのでBookmarkを追加し、habtmはやめてhas_many throughを使おう…、みたいな感じ?(詳細はあまりメモってなかった)

あとの懇親会も含めて、YuguiさんがABD(Activity Based Datamodel; はぶさん提唱のDB設計法)を連呼していたのが印象的だった。不勉強だったのでちょっと調べてみるとなかなかエキセントリック(は言い過ぎか)で興味深い。

懇親会では、はぶにっきを読みつついろいろ話した。DHHの講演内容に関連してREST話も少し出た。高橋さんがREST原理主義(?)だというのが判明して、意外だった。

で、結論としてはとりあえず「楽々ERDレッスン」読もうね、ということに(笑)。買おう。

楽々ERDレッスン
楽々ERDレッスン
posted with amazlet on 06.06.19
(株)スターロジック 羽生 章洋
翔泳社 (2006/04/18)

ヤドカリの人とほとんど一緒にいたのでかぶってしまってる(^^; とくに2次会が詳細です。

投稿者 4bit : 16:23 | コメント (0) | トラックバック (1)

2006年06月15日 (木)

DHH loves REST!? その2(ActiveResource) [テクニカル]

その1のつづき。ActiveResourceはさらにヤバイ。

ActiveResource

moroの日記 - 日本Rubyカンファレンス2006 二日目より
  • ActiveResouce!!
    • one more thingとか言うあたりがマカー
    • Webサービスで得られる情報をActiveRecordライクに。
    • 当然CRUDできる。
    • Rails 1.2の目玉。
      • 6/11 22:00 JST時点ではsvnツリーにもない模様。
    • ValidationとかAssociationも使えるんですかね? Validationは大丈夫そう。
    • RESTしか対応しない。SOAPとかXML-RPCは嫌いらしい。
    • ちゃんと使う似は厳しい規約が必要(HTTPメソッドだけでCRUDできるとか)。Rails製アプリケーション間での使用が中心になるのかなぁ。
UIE Japan Developer Blog: 日本Rubyカンファレンス2006レポート (2006/06/11)より

DHH > 「XMLRPCもSOAPも使いたくない」
Rails1.2のtrunkにもまだ上がっていない様子のActiveRecordからCRUDを操作できるActiveResourceの話が面白い。URLをモデルの中に隠蔽して後は気にせず、AR同様に使うことができる。認証周りは、HTTP Authentication, Digest認証, SSLを誰かが作ってくれるかも。


Person = ActiveResorce::Struct.new do |p|
p.uri "http;//www.example.com/people"
p.credentials :name => "dhh", :password => "secreat"
end
david = Person.new(:name => "David")
# GET http://www.example.com/people
# <person><name>David<name></person>
# => Location: http://www.exapmle.com/people/2
david.find(:name => "David")
# PUT http://www.example.com/people
# <person><name>David Heinemeier Hasson</name></person>
# => (200 OK)
david.save
class ActiveResource::Base
uri "http://www.example.com"
credentials :name =>"dhh", :password => ""
end

何がヤバイって、「ActiveResourceでアクセス可能なAPI」という合意を得て、REST APIのデファクトスタンダードを形成する可能性があるってこと。細かいことを言えばfindの規約とかどうするかわからないけど、OpenSearchでもいいし、とにかくRailsの機能として実装すればそれがデファクトになりうる。

例えばすごく単純に、columnカラムがquerywordなリソースを取ってくるには/controller?column=querywordとかでもいいんじゃない?pageとかとバッティングするのがちょっとまずいけど。

実はActiveResourceに似た構想はちょっと前に考えてたんだけど(とか言ってみるテスト)。僕の着想のベースは、Ajaxのクロスドメイン制約を回避するために、proxyのようなものが必要なので、それをRailsベースで作れないかなぁということだった。ActiveResourceができればproxyどころかもっと便利に使える。さすがDHH。ぜひ実現してほしい。

投稿者 4bit : 12:49 | コメント (0) | トラックバック (0)

DHH loves REST!? その1(RESTプラグインの紹介) [テクニカル]

日本Rubyカンファレンス2006DHHのセッション内容がヤバイ。チケットが入手できなかったので聞けなかったけど(発表資料くれー)。タイトルが「One controller, many ins, many outs」→「Discovering a world of Resources on Rails」。うひょー。世界リソース発見。

Blogなどでレポートを書いてるみなさんありがとうございます。以下関係部分を引用。

moroの日記 - 日本Rubyカンファレンス2006 二日目より
  • CRUD素晴らしい
    • HTTPのメソッドで、既にCRUDできるじゃん。HTTPのPOST GET PUT DELETEメソッドとコントローラのアクションcreate show update destroy、SQLのINSERT SELECT UPDATE DELETEは直接に対応してるじゃん。
    • これを繰り返すのはDRYじゃないよね?
    • ActionController::Routing::Routes.draw{|map| map.resource "/controller/:id" }という宣言をすると、HTTPの各メソッドによって"/controller"を叩くことでCRUDのお好きな操作をば。
UIE Japan Developer Blog: 日本Rubyカンファレンス2006レポート (2006/06/11)より

REST

HTTPメソッドだけでCRUDできるよね。複数個所に分かれているのはDRYじゃないし、
POST /people
GET /people/1
PUT /people/1
DELETE /people/1
form_forでmethodを定義 ブラウザのformでputやdeleteできないのでmethodはhiddenで渡す (javascriptで~~と言いかけて訂正していたのでjsのputやdeleteも使うようになるのかも) また、CRUDはゴールでなくゴールを目指す肝であり設計の技法ですよ。

このへんから推察するに、Simply RESTfulプラグイン、RESTful Railsプラグインの機能(に近いもの)を標準に取り込むということでは?

Simply RESTfulプラグイン

routes.rbにmap.resourceというメソッドを追加。map.resource :itemと書くと以下のようなルーティングが生成される。
VERB URL structure Rails method
Display
GET /items index
GET /items/1 show
Create
GET /items/new new
POST /items create
Remove
DELETE /items/1 destroy
POST /items/1?_method=DELETE destroy (synonym)
Update
GET /items/1;edit edit
PUT /items/1 update
POST /items/1?_method=PUT update (synonym)
POST /items/1;complete complete

これはDHHの言ってるルールと符合する。

RESTful Railsプラグイン

routes.rbにmap.connect_resourceというメソッドを追加。map.connect_resource :item と書くと以下のようなルーティングが生成される。

URL structure Rails method
/item new
/items collection
/items/1 by_id

さらにコントローラに

resource :collection do |r|
  conditions << @books = Book.find(:all)
  r.post do
  ...
  end
end
resource :by_id do |r|
  r.put do
  ...
  end
  r.delete do
  ...
  end
end

などと書いて処理を行う。

その他条件リクエスト処理機能(リクエストされたリソースが更新されていなければ304 Not Modifiedを返すなど)など。詳しい使い方はXML.com: Putting REST on Rails参照。

その2へつづく。

参考: rest/rails - Microformats

投稿者 4bit : 11:49 | コメント (0) | トラックバック (0)