Rails勉強会@東京第32回に参加してきた.
今回はお盆休み中ということもあってか,20名弱と少ない参加人数でした.そう言う私は風邪気味で,ちょっとログを追えていない部分があります(;´Д`).
セッションネタ
セッションの割り振りの時,どうせなら3つともやってしまおうと言うことになり,1時間15分 x 3という時間割になりました.
時間割
- 13:15〜14:30
- 14:40〜15:55
- 16:05〜17:20
Redmine RESTful 化
REST の話
- Web サービスとは
- RESTfulとは(高橋さん)
- Web は世界初の大規模分散アーキテクチャ
- REST はアーキテクチャスタイル
- HTTP Method で PUT/DELETE とか言ってるのは,原理主義者にとっては異端
- 原論文を見ないといけない?
- GET URL が重要
- URL にリソースに関する全ての情報が入っている
- cachable(キャッシュ可能)なリソース
- 認証はクライアントサイドで毎回認証情報をサーバに送信する
- RESTful だとサーバは stateless なのでセッション管理はクライアントでやるべき.
- URL にリソースに関する全ての情報が入っている
- Webサービスでユーザ個別の Presentation なのは,「ようこそ**さん」とかユーザへのメッセージとか
- この部分だけを更新するような Rich Client(Flash/Javascript)があれば,分離できる.
- 共通部分は cachable
- ユーザ個別の部分は認証込みのリクエストを出す.
- この部分だけを更新するような Rich Client(Flash/Javascript)があれば,分離できる.
- 認証は SSL-Basic認証が最強?
- DNS Poisoning 問題に波及
- どの部分をスケールして欲しいかで,認証・キャッシュなどを使い分ける
- 日本では確認画面が問題
- 確認画面は RESTful ?
- Lock 機構?
- 確認画面は RESTful ?
- HTTP Status
- 201 Created は新しく URI (リソース) が生成されたときに返す
- Updated は 204 (no content)
- Ruby Authentication
- RubyConf 2008 (http://www.rubyconf.org/) の Talk Proposal の最後
- REST をお手軽にやるには
- RESTful Web サービス 読書会
- 原論文
- 山本洋平さんのブログ
- Ricoh Lab の HP
Java を使って Ruby の Class を書く方法
- JRuby とは
- 開発者
- JRuby を拡張したい
- 動かしたいパッケージが C
- openssl, RMagick4J, etc..
- 速くしたい
- 動かしたいパッケージが C
- M な方におすすめ
- 素直に Ruby で書けば数行ですむところを,無理矢理数十行書きたい人向け
- 今日の話は超生もの
- 拡張の仕方
def foo(str) {str => :string, return => :integer} puts str return str.to_i end
@JRubyClass(name = "Iconv") class IconvClass { ... }
-
-
- メソッド
- 引数の数/可変長引数(required)
- インスタンスか,特異か(meta)
- ブロックの有無
- ブロックを受け取らないメソッドにできる.(frame)
- メソッド
-
@JRubyMethod(name = "open", required = 2, frame = true, meta = true) public static IRubyObject open(...){ ... }
-
-
- モジュール
- ロードの JRuby 拡張
-
require 'hogehoge' # .class/.jar も探索する require 'hogehoge.class' require 'hogehoge.jar'
git を maiha さんに教える
まず git とは
- 読み方?
- ギット?ジット?
- Matz や RailsConf 2008 ではジット
- 今日からジット
- ギット?ジット?
- git
- SCM/VCM
- 分散
- DVCM
- Subversion と git の連携
全く知らない Subversion の人に git を説明
- Local Repository と Remote Repository
- Local Repository が Subversion の Working Copy に対応
- オフラインでコミットできる
- ディレクトリかツリーか
- git clone
- Remote Repository から Local Repository にリポジトリをコピーする
- リビジョン番号がない
- SHA1 でリビジョン番号のようなハッシュで管理している
遊びの人から仕事の人へ
- Subversion から持ってくる
% git svn clone [URL] % git svn dcommit
- Subversion リポジトリがメインの時で,PC1/PC2で作業したい
- PC1 で更新
- PC2 で PC1 から pull
- PC2 で更新
- PC1 で PC2 から pull
- PC2 で更新して,PC1 に push しても,PC2 の .git 配下は更新されるが,ファイルが古いまま
- git stash
- HEADに戻すが,最終更新状態も記録している
- branch の処理が楽?
- git checkout /path/to
- 特定のディレクトリだけ任意の brance に戻す・変える
- master 以外の branch で,git rebase master
- master のコミットを全て適用した後に,その branch のコミットを適用する
- git は奥が深い
話を追えないほど展開が速かったので,あとで思い出しながら実際にやってみようと思います.
まとめ
- KPT はHPを参照
参加人数が少なかったので3セッションになりましたが,これはいいですね.いままで「あっちも聞きたかったなぁ」と言うのが多々あったので.次回は git で有名な人が来るかもしれないらしいので,ちょっと期待.