Date:  Wed, 20 Apr 2005 12:30:13 +0900
Subject:  【オブジェクト倶楽部: 2005-14号】

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.89 2005/04/20

■ I N D E X
┃
┣【Topics】モデリングコンテスト リベンジマッチ開催!
┣【Topics】JUDE/Professional 2.2 リリース
┣【XP】継続的結合 再入門[5]
┣【お役立ち情報】mindmap.jp
┗【アンケート】気になるシステム業界 ホントのところ

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇  モデリングコンテスト リベンジマッチ開催!
  〇 〇━━━━━━━━━━━━━ ━━・ 

好評のうちに終了しました第2回モデリングコンテスト。その反響は未だ収まら
ず。師範代の児玉さん曰く。「モデリング道場の目的は、コンテストに勝つこと
ではなくて、それを励みに日夜練習を積むことだ」。というわけでリベンジ作品
を募集します。リベンジモデルの公開は4月28日(木)。詳細はこちらからご覧く
ださい。http://www.objectclub.jp/community/modeling/modeling_contest2/

師範代のみなさんのモデルも公開しました!こちらからご覧下さい。
http://www.objectclub.jp/community/modeling/contest2_instructor/

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇  JUDE/Professional 2.2 リリース
  〇 〇━━━━━━━━━━━━━ ━━・ 

新しいJUDEでは、マインドマップの活用により発想面からも開発をサポート。
ハイパーリンク機能も追加されたため、付加情報として、URLやファイル、さら
にはモデルや図まで設定できるようになりました。評価版がダウンロードでき
ますので、ぜひ一度お試しください。
ダウンロード・リリースノートはこちらです。
http://www.esm.jp/jude-web/download/update.html#professional

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━1 s t ■━
■
┗【XP】継続的結合 再入門[5]

■はじめに

前回の予告では、継続的結合(Continuous Integration、以下CI)ツールの
CruiseControlについて解説しますと予告しました。しかし前回から今回の記事
までの間に、今までの連載でも話題にしたことのある「Pragmatic Automation」
の邦訳である「達人プログラマー ソフトウェア開発に不可欠な基礎知識」 [1]
が出版されました。こちらの書籍にはCruiseControlの導入から、実際のプロジェ
クトへの適用までの詳しい利用法が記載されています。このため本連載では
CruiseControlの解説はひとまず飛ばして、もう1つの注目すべきCIツールであ
るDamageControlにフォーカスして解説します。

■ DamageControlについて

DamageControl(以下DCと略)はCodehaus.org上で開発されている、クロスプラッ
トフォームのCIサーバです。クロスプラットフォームたる所以は、その実装言
語であるRubyが動く環境ならばどこでも動作するという点もあります。更に(1)
複数の言語に対応している、(2)様々なビルドツールに対応している、(3)様々
なソフトウェア構成管理ツール(SCM)に対応している、というところでしょう。
READMEを参照したところ、(1)のサポート言語としては Java、.Net、Ruby、
C/C++、(2)のビルドツールはAnt、Nant、Make、Rake(Rubyのmakeライクなビル
ドツール)、 Maven、Bash/Sh/Bat scriptsとあります。実質は(2)のビルドツー
ルでビルドできれば、(1)はそれほど重要ではありません。CruiseControlが
Ant/MavenといったJavaのビルドツール専用だった [2] のと比べるとサポート
している領域がとても広いことがおわかり頂けるでしょう。Makeに対応してい
るため、様々な領域のソフトウェアプロジェクトに対応できることが容易に推
測できます。

■DamageControlの特徴

実際にDamegeControlは何を行ってくれるのでしょうか。特徴を簡単にまとめて
みます。

(1) SCMに対応したスケジュールビルド

CIツールとして基本的なスケジュールビルドは、SCMの変更を逐一チェックして
変更のあった時のみ結合することができます。このため、変更がなければ実行
することはないので無駄なビルドを抑制することができます。

(2) Webベースの設定

DCは一旦起動してしまえば、ほぼ全ての操作をWebベースのインタフェースで行
うことができます。複雑な設定ファイルの記述などは特に必要ありません。ま
た設定はYAML(YAML Ain't Markup Language)で記述されています。このフォー
マットはXMLよりも、より人間が読みやすく書きやすいフォーマットになってい
ます。いざとなれば、 YAMLの設定ファイルを編集することも可能です。

(3) 複数のプロジェクトの管理

DCは複数のソフトウェアプロジェクトを管理することができます。そのため1つ
DCを起動しておけば、複数のプロジェクトで同時に使用することが可能です。

(4) 様々な結合通知方法

本家CruiseControlには及びませんが、標準でEmail、Jabber(OpenSourceのイン
スタントメッセンジャー)、 Growl(MacOSXの通知サービス)の3つの結合結果の
通知方法が用意されています。もちろんWebインターフェースからも結合結果を
参照することができます。緑と赤のランプで結果が表示されるため一目でわか
り やすくなっています。
 
(5) チェンジセットの表示

結合時に前回の結合からどのファイルが変更されたか、どこが変ったのかとい
うチェンジセットと呼ばれる情報をRSSやWebで閲覧することができます。Webイ
ンターフェースの場合は差分を色付けしたdiff形式で表示されるため、わかり
やすくなっています。

その他にも、IssueTracker(課題追跡システム)との連携なども可能になってい
ます。DamageControlのホスティングを行っているcodehausでも、DamageControl
がプロジェクトの継続的結合を実施しています。 [3]

■インストール
(1) Rubyのインストール

DCのインストールには、まず動作環境であるRubyのインストールが必要です。
Rubyのインストールについてはメルマガ連載中の「Rubyで進むオブジェクトの
道」を参照してください。 [4]

(2) RubyGemsのインストール

DCの動作には、Ruby On Rails、ActiveRecord、AcriveMailerなど様々なRubyの
ライブラリ、フレームワークが必要です。個々を別々にインストールしても構
わないませんが、RubyにはRubyGemsという独自のパッケージシステムがありま
すので、本稿ではDCのインストールはRubyGemsを利用することにします。
RubyGemsを利用すると、依存関係にあるライブラリやフレームワークをgem(宝
石)というパッケージとしてネットワーク経由で取得し、一緒にインストールす
ることができるため、非常に簡単です。

RubyGemsのアーカイブを入手 [5] して展開した後に以下のようなコマンドを入
力すればRubyGemsのインストールは完了です。

rubygemsのインストール:

$ ruby setup.rb config
$ ruby setup.rb setup
# ruby setup.rb install (UNIXの場合はルート権限で実行する必要あり)

(3) DamageControlのインストール

最後にようやくDCのインストールです。RubyGemsをインストールすると、「gem」
コマンドが使用できるようになります。DCは RubyGemsのパッケージのひとつと
して用意されているので、「gem install damagecontrol」とコマンドを実行し
て、リモートサーバ [6] よりDCの本体を入手してインストールすることができ
ます。更には自動的に依存関係にあるライブラリも自動的にインストールして
くれます。gemコマンドには他にも便利な機能があるので「gem --help」と実行
して機能を調べてみるとよいでしょう。

■まとめと次回予告

今回はDamageControlについての解説を行いました。DamageControlはRubyで記
述されており、クロスプラットフォームな CIサーバです。次にDamageControl
の特徴を紹介しました。最後に動作環境であるRubyとパッケージシステムの
RubyGemsをインストールして、DamageControlをネットワークインストールする
方法を解説しました。次回は実際のプロジェクトでDCを利用する際の解説をす
る予定です。(懸田)
 
[1] http://amazon.co.jp/o/ASIN/475614599X/xpjp-22/
[2] CruiseControlには姉妹製品の CruiseControl.NET もあります
[3] http://builds.codehaus.org/damagecontrol-outage.html
    現在は不良のため休止中のようですが(^^;
[4] http://www.ObjectClub.jp/ml-arch/magazine/81.html
[5] http://rubyforge.org/projects/rubygems/ 
[6] http://gems.rubyforge.org
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=G002-4&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=G002-4&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=G002-4&choice=2
 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2 n d ■━
■
┗【お役立ち情報】mindmap.jp

最近、凝っていることがあります。それは、「マインドマップ」で講義メモを
とることです。セミナーなどで人のプレゼンテーションを聞くときに、この方
法で情報カード1枚分のメモを取る。そして、最後に、一番印象に残った部分を
赤いマーカーで囲み、イメージとなる絵を添える。。。これだけで、とても印
象に残るメモとなります。

さて、さまざまなマインドマップの使い方や導入のしかたを紹介しているサイ
ト、「mindmap.jp」を紹介します。伊藤賢さんによって運営されており、メル
マガも配信しています。マインドマップをはじめようと思っている方は、ぜひ、
覗いてみてはいかがでしょうか?きっと導入のヒントがみつかります。
http://mindmap.jp/

素敵なメルマガも配信しています。
http://mindmap.jp/mag.html (平鍋)
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H004-1&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H004-1&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H004-1&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━3 r d ■━
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「マインドマップ使ってますか?」のホントのところ。上記記事でもご
紹介したマインドマップ。みなさん使ってますか?

  もう手が覚えてます。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=0
  意識して書いてます。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=1
  試しているところです。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=2
  これから試してみようかな。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=3
  自分には合わないです。。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=4
  マインドマップって何ですか?
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=5
  それは秘密です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=56&choice=6
  ちょっと語らせて!
     editors@ObjectClub.jp まで詳細を!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「お花見しましたか?」の結果は公開中。是非ご覧下さい。
⇒http://www.objectclub.jp/special/kininaru/vol55/PlonePopoll_results2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人です。最近の反日デモの様子を見るのは悲しいですね。う
まく協調できないものでしょうか。
一方、モデリングコンテストでは、師範代のみなさん、作品応募者、メーリン
グリスト購読者、スタッフが協調して、モデルに対する議論が繰り広げられて
います。思わぬ盛り上がりに、スタッフの一員として嬉しい悲鳴を上げている
毎日です。皆さんも、メーリングリストに参加して、その議論に参加してみま
せんか? http://www.ObjectClub.jp/community/modeling/#ml

今週の強引な一言
*** If we cannot now end our differences, 
    at least we can help make the world safe for diversity
                                            (ジョン・F・ケネディ)***
開発者・顧客のそれぞれに、それぞれの考え方・価値観を持っいるのが普通で
す。それを統一・共通にすることができなくても、少なくとも、多様性を認め
るようなチームを創る努力はできますね。  
(さとみ)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
■ 編集代表:平鍋  健児
Copyright (c)2003-2005 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.