WebアプリだけがRubyじゃないよ
〜 第一回Hokuriku.rb前哨戦 〜
wtnabe
金沢でもカフェコーディングしたいね委員会
Hokuriku.rb についてはこのあとの @checkela さんの話を待て!
※ 写真と本文は関係ありません
まずは自己紹介 (2)
お仕事内容
- Webシステム開発/サイト管理
- 社内/社外サーバ管理
- クライアント管理(Windows/Mac)
- 要するに田舎の中小企業にありがちな何でも屋
扱っているシステムとか言語とか
- Linux (RHEL/CentOS, Debian), Xen
- Apache, PostgreSQL, PHP, Ruby, Perl, JavaScript
- Windows 2003 Server, SQL Server
本日のお品書き
WebアプリだけがRubyじゃないよ
- セットアップツールで環境を抽象化する
- サーバ監視も無理矢理やる
- Trac の feed を統合して見通しをよくする
- スケジュール調整も Ruby で
- PukiWiki を Ruby でさらに便利に
- 文房具としての irb
セットアップツールで環境を抽象化 (1)
- Webシステム自体はPHPで書かれている
- 基本的に作りが古く、フレームワークも利用していない
- 開発は開発用サーバの個人スペース、本番環境は独自ドメインの VirtualHost
- rewrite などの設定が食い違う
- 開発サーバ用の設定と本番サーバ用の設定を別々に管理?
セットアップツールで環境を抽象化 (2)
VirtualHost っていうことは当然こうした環境が複数ある。
セットアップツールで環境を抽象化 (3)
PHP 4 から 5 に移行するときにこれが倍増
やっとれっか
セットアップツールで環境を抽象化 (4)
そこで Ruby で setup ツールを自作
- 依存している独自ライブラリの開発バージョンのパスの設定
- RewriteBase などのパスの調整
- 基本的には .htaccess を生成する形
- 一部 symbolic link 張ったり
Trac の feed を統合 (1)
- Trac は便利
- Changeset, Wiki, Ticket の更新を feed で取得できる
- 最近の BTS / ITS と呼ばれるツールでは割と当たり前
- ViewCVS とは違うのだよ!
- コードの更新、ドキュメントの更新、課題の管理を実際の作業とは別に情報共有に掛けるという二度手間からの解放!
Trac の feed を統合 (2)
- 基本的には扱っているサイトごとに svn repos を分離して、その分だけ Trac を用意している
- 一つの Trac 内での情報を見やすくなったが、全体像がつかみにくい
Trac の feed を統合 (3)
しかも全員が同じように購読 feed の管理をしないと情報が共有できない
せっかく feed 吐いてても「そんなの知らない」って話に
スケジュール調整も Ruby で
- 社内勉強会的なものを企画
- 内容や狙いを考えるのはいいんだけど順番の調整とか面倒だし好きじゃない
cf.
PukiWiki を Ruby でさらに便利に (2)
pukiassist にできること
- ページの作成
- ページの内容をなんちゃって setext 化
- setext 化した文書を特定のパターンのフォルダにコピー
- 作成したページの URL や setext 化した内容をメールで配信
- これらの設定、動作を YAML + Rake で定型化
Wiki文化圏内と文化圏外の橋渡し
文房具としての irb
- 補完のデモ
- 時間計算のデモ
- RestClientのデモ
ほかにも
- Webベースの管理画面を持つシステムを Mechanize と Rake で無理矢理自動化
- いま興味あるのは Sinatra と God
まとめ
- Railsは有名だけど、お仕事はそれだけじゃ済まないよ
- CLI 面白いよ。みんな Un*x 使おうよ。小道具作るの楽しくなるよ。
- 今日のところはそれ Perl でもとか Python でもとか禁止でお願いします
ありがとうございました