<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
   <channel>
      <title>Hudson blogs (ja)</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=f9cae10cbadf508a1285aef754b101cd</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=f9cae10cbadf508a1285aef754b101cd&amp;_render=rss&amp;page=2" />
      <pubDate>Fri, 10 Feb 2012 06:27:42 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/HudsonBlogs-ja" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="hudsonblogs-ja" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
         <title>[hudson][jenkins] Emotional Jenkinsプラグイン作りました</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20110806#1312567337</link>
         <description>Githubのjenkinsciにリポジトリ作る権限なかったので、とりあえず自分とこに作っておきました。まだ、Jenkins本体に取込まれてないので、急いで欲しいという奇特な方はこっちらかソース取得してビルドしてね。 https://github.com/masanobuimai/emotional-jenkins-plugin ホ</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 05 Aug 2011 18:02:17 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>Githubのjenkinsciにリポジトリ作る権限なかったので、とりあえず自分とこに作っておきました。まだ、Jenkins本体に取込まれてないので、急いで欲しいという奇特な方はこっちらかソース取得してビルドしてね。</p>
			<p><a rel="nofollow" target="_blank" href="https://github.com/masanobuimai/emotional-jenkins-plugin">https://github.com/masanobuimai/emotional-jenkins-plugin</a></p>
			<br>

			<p>ホントはPersonaプラグインとか参考に作り直すのが良いのだけれど、そこまで気力がわかなかったので、中身はEmotional Hudsonのままス。</p>
			<p>＃まさか「Emotional HudsonのJenkins版作れ」ってチケットが起こるとはおもわなんだった。:-)</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20110806031636" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20110806/20110806031636.png" alt="f:id:masanobuimai:20110806031636p:image" title="f:id:masanobuimai:20110806031636p:image" class="hatena-fotolife"></a></p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson][Jeknins][Memo]コマンドラインからJenkinsのジョブを実行する</title>
         <link>http://d.hatena.ne.jp/w650/20110419/1303183753</link>
         <description>コマンドラインからJenkinsのジョブを実行する方法を二つ。 wgetでURLにアクセスする Jenkins CLIを使う wget ジョブの実行ボタンをクリックしたときのURLにwgetやcURL経由でアクセスします。認証をかけている場合にはBasic認証でユーザ名/パスワードを渡します。 $ wget ht</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 19 Apr 2011 03:29:13 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>コマンドラインからJenkinsのジョブを実行する方法を二つ。</p>

			<ul>
				<li> wgetでURLにアクセスする</li>
				<li> Jenkins CLIを使う</li>
			</ul>
			<h4> wget</h4>
			<p>ジョブの実行ボタンをクリックしたときのURLにwgetやcURL経由でアクセスします。認証をかけている場合にはBasic認証でユーザ名/パスワードを渡します。</p>
<pre>
$ wget http://yourserver.com/job/&#38;lt;ジョブ&#38;gt;/build?delay=0sec --http-user=&#38;lt;ユーザ名&#38;gt; --http-passwd=&#38;lt;パスワード&#38;gt;
</pre>

			<h4> Jenkins CLI</h4>
			<p>Jenkins CLIは、<a rel="nofollow" target="_blank" href="http://yourserver.com/jnlpJars/jenkins-cli.jar">http://yourserver.com/jnlpJars/jenkins-cli.jar</a>からダウンロードできます。</p>
			<p>ジョブを実行する場合には、以下のコマンドを実行します。"-s"オプションでジョブが完了するまで待ちます。URLは環境変数JENKINS_URLで指定することもできます。</p>
<pre>
java -jar jenkins-cli.jar http://yourserver.com build --username &#38;lt;ユーザー名&#38;gt; --password &#38;lt;パスワード&#38;gt; -s &#38;lt;ジョブ&#38;gt;
</pre>

			<p>上の例では認証情報を引数として渡していますが、明示的にログインコマンドを実行してCredentialを取得することもできます(ユーザのホームにある.hudosnフォルダにcli-redentialsというファイルが作成されます)。</p>
<pre>
java -jar jenkins-cli.jar http://yourserver.com login --username &#38;lt;ユーザー名&#38;gt; --password &#38;lt;パスワード&#38;gt;
java -jar jenkins-cli.jar http://yourserver.com build -s &#38;lt;ジョブ&#38;gt;
...
java -jar jenkins-cli.jar http://yourserver.com logout
</pre>

			<p>ただし、現状ではActiveDirectoryとCrowdと連携して認証を行っている場合には、Jenkins CLIは正常に動作しないようです(Crowdについては私も確認しました)。詳細は参考にあげたJIRAのチケットを参照してください。</p>
			<p>でも、よく考えたらあまり使い道がないかも。人間が実行するならWebから実行する方が簡単ですし、Jenkinsの場合にはcronやタスクから実行するという用途もないです。</p>
			<h4> 参考</h4>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI">Jenkins CLI - Jenkins - Jenkins Wiki</a></li>
				<li> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/cloned/20060621">Basic認証でwget - cloned.log</a></li>
				<li> <a rel="nofollow" target="_blank" href="https://issues.jenkins-ci.org/browse/JENKINS-7995">[#JENKINS-7995] CLI login &#38; credentials do not work with AD - Jenkins JIRA</a></li>
				<li> <a rel="nofollow" target="_blank" href="https://issues.jenkins-ci.org/browse/JENKINS-7705">[#JENKINS-7705] Add CLI support to crowd plugin - Jenkins JIRA</a></li>
			</ul>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson][Jenkins][Mercurial]Jenkins Mercurial Pluginでbitbucketにアクセスする</title>
         <link>http://d.hatena.ne.jp/w650/20110415/1302838728</link>
         <description>JenkinsでMercurial Pluginを使ってbitbucketのリポジトリにアクセスしてみます。 まずは、マスタのサーバにMercurialをインストールします(Ubuntuです)。 ubuntu@ci: ~$sudo apt-get install mercurial 認証用のSSH鍵を作成していない場合には作成します。ログインしている</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 15 Apr 2011 03:38:48 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>JenkinsでMercurial Pluginを使ってbitbucketのリポジトリにアクセスしてみます。</p>
			<p>まずは、マスタのサーバにMercurialをインストールします(Ubuntuです)。</p>
<pre class="syntax-highlight">
ubuntu@ci: ~<span class="synPreProc">$sudo</span> apt-get <span class="synStatement">install</span> mercurial
</pre>

			<p>認証用のSSH鍵を作成していない場合には作成します。ログインしているユーザーではなくJenkinsの実行ユーザーです。</p>
<pre class="syntax-highlight">
ubuntu@ci: ~$ sudo <span class="synSpecial">-u</span> jenkins ssh-keygen
Generating public/private rsa key pair.
Enter file <span class="synError">in</span> which to save the key <span class="synStatement">(</span>/var/lib/jenkins/.ssh/id_rsa<span class="synStatement">)</span>:
Enter passphrase <span class="synStatement">(</span>empty <span class="synStatement">for</span> no passphrase):
Enter same passphrase again:
Your identification has been saved <span class="synStatement">in</span> /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
5b:5b:<span class="synConstant">39</span>:<span class="synConstant">87</span>:<span class="synConstant">80</span>:<span class="synConstant">42</span>:ff:<span class="synConstant">31</span>:<span class="synConstant">68</span>:<span class="synConstant">15</span>:<span class="synConstant">16</span>:<span class="synConstant">78</span>:<span class="synConstant">14</span>:<span class="synConstant">27</span>:9a:e2 jenkins@ci
</pre>

			<p>~/.ssh/id_rsa.pub の内容をbitbucketのAccount -&#62; SSH Keys のところに登録します。ファイルをアップロードするかファイルの内容を貼り付けます。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/w650/20110415121508" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/w/w650/20110415/20110415121508.png" alt="f:id:w650:20110415121508p:image" title="f:id:w650:20110415121508p:image" class="hatena-fotolife"></a></p>
			<p>Jenkinsのプラグインの管理から<a rel="nofollow" target="_blank" href="http://wiki.jenkins-ci.org/display/JENKINS/Mercurial+Plugin">Mercurial Plugin</a>をインストールするとプロジェクトのソースコード管理システムでMecurialが選択できるようになります。</p>
			<p>bitbucketの情報を入力します。Repository URLは、bitbucketに表示されるのを貼りつければ間違いないですが、ユーザー名が"hg"固定になります。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/w650/20110415121509" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/w/w650/20110415/20110415121509.png" alt="f:id:w650:20110415121509p:image" title="f:id:w650:20110415121509p:image" class="hatena-fotolife"></a></p>
			<p>sshではなくhttpsでアクセスする場合のRepository URLは以下のようになります。MercurialプラグインだとSubversionのように認証情報の入力画面は存在しないので、匿名アクセスできないリポジトリではパスワードをURLに含める必要があるようです。なので、SSHを使うほうがよいです。</p>
			<blockquote>
			<p>hg clone <a rel="nofollow" target="_blank" href="https://kenichiro22:password@bitbucket.org/kenichiro22/contacts">https://kenichiro22:password@bitbucket.org/kenichiro22/contacts</a></p>
			</blockquote>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Jenkins][Hudson][Maven]Maven2プロジェクトのビルドが失敗する</title>
         <link>http://d.hatena.ne.jp/w650/20110329/1301382215</link>
         <description>いつの間にかMaven2プロジェクトのビルドが、以下のエラーで失敗するようになっていました。Jenkins ver. 1.400にて。 ERROR: A Maven installation needs to be available for this project to be built. Either your server has no Maven installations defined, or the r</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 29 Mar 2011 07:03:35 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>いつの間にかMaven2プロジェクトのビルドが、以下のエラーで失敗するようになっていました。Jenkins ver. 1.400にて。</p>
			<blockquote>
			<p>ERROR: A Maven installation needs to be available for this project to be built.</p>
			<p>Either your server has no Maven installations defined, or the requested Maven version does not exist.</p>
			<p>Finished: FAILURE</p>
			</blockquote>
			<p>マスターでもスレーブでも発生していたのですが、システムの設定でインストール済みMavenの名前を変更したことが原因のようです。</p>
			<p>プロジェクトの設定にて、使用するMavenをいったん別のインストール済みMavenに変更して保存してから、再度戻したところ解消されました。</p>
			<h4> 参考</h4>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://issues.hudson-ci.org/browse/HUDSON-7205">[#HUDSON-7205] Renaming maven installation breaks build jobs which use it - Hudson JIRA</a></li>
			</ul>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[jtpa][hudson] オープンソースコミュニティの運営について</title>
         <link>http://d.hatena.ne.jp/kkawa/20110119/p1</link>
         <description>先週末、ベイエリアの日本人技術者の交流会(?)であるJTPAに行って、「オープンソースコミュニティの運営について」というタイトルでHudsonのプロジェクトの初期から大きくなるまでの間の運営上の工夫などを発表してきました...というより、好き勝手にしゃべってきました。  オープンソースソフトウェアを沢山の人に使ってもらって沢山の人に開発者として参加してもらうには、相手の立場に立ってできるだけ色々な事を簡単にしていくといいですよ。それには技術的な工夫もあるし、もっとsocial hackのような工夫もあ ...</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 19 Jan 2011 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[Java][Hudson][CI]第2回Hudson勉強会</title>
         <link>http://d.hatena.ne.jp/cactusman/20110104/p1</link>
         <description>2月25日に第2回Hudson勉強会があります。 テーマは「JavaプロジェクトにおけるHudsonの運用について」です。 現時点で、申し込みは残りわずかになっていますが、興味のある方は奮って参加してください。 また、発表者も募集しています。 特に、通常発表枠（20〜30分）が全然</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 04 Jan 2011 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>2月25日に第2回Hudson勉強会があります。</p>
			<p>テーマは「JavaプロジェクトにおけるHudsonの運用について」です。</p>
			<p>現時点で、申し込みは残りわずかになっていますが、興味のある方は奮って参加してください。</p>
			<p>また、発表者も募集しています。</p>
			<p>特に、通常発表枠（20〜30分）が全然埋まっていません。</p>
			<p>LTでもかまいませんので、是非発表したいという方は連絡ください。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>hudsonでrvmを使ってrails3アプリを継続的インテグレーション（CI） - I am Cruby!</title>
         <link>http://d.hatena.ne.jp/authorNari/20101221/1292939999</link>
         <description>[ruby]</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 25 Dec 2010 23:17:51 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote cite="http://d.hatena.ne.jp/authorNari/20101221/1292939999" title="hudson&#x003067;rvm&#x003092;&#x004f7f;&#x003063;&#x003066;rails3&#x0030a2;&#x0030d7;&#x0030ea;&#x003092;&#x007d99;&#x007d9a;&#x007684;&#x0030a4;&#x0030f3;&#x0030c6;&#x0030b0;&#x0030ec;&#x0030fc;&#x0030b7;&#x0030e7;&#x0030f3;&#x00ff08;CI&#x00ff09; - I am Cruby!"><cite><img src="http://cdn-ak.favicon.st-hatena.com/?url=http%3A%2F%2Fd.hatena.ne.jp%2FauthorNari%2F" alt=""/><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/authorNari/20101221/1292939999">hudsonでrvmを使ってrails3アプリを継続的インテグレーション（CI） - I am Cruby!</a></cite><p>hudson, rails前々から興味があったhudsonをrails3のアプリケーションで使ってみた。rvmを利用して綺麗な環境でビルドすることが目標。　hudsonの起動第1回　Hudsonの導入｜gihyo.jp … 技術評論社を参考にしました。すんなり動くかと思いきや、HTTPサーバが起動しない。しかもエラーも吐かないものだから困った。　原因を調べるとhudsonが悪いワケじゃなかった。w...</p><p><a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/authorNari/20101221/1292939999"><img src="http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/authorNari/20101221/1292939999" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - hudson&#x003067;rvm&#x003092;&#x004f7f;&#x003063;&#x003066;rails3&#x0030a2;&#x0030d7;&#x0030ea;&#x003092;&#x007d99;&#x007d9a;&#x007684;&#x0030a4;&#x0030f3;&#x0030c6;&#x0030b0;&#x0030ec;&#x0030fc;&#x0030b7;&#x0030e7;&#x0030f3;&#x00ff08;CI&#x00ff09; - I am Cruby!" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - hudson&#x003067;rvm&#x003092;&#x004f7f;&#x003063;&#x003066;rails3&#x0030a2;&#x0030d7;&#x0030ea;&#x003092;&#x007d99;&#x007d9a;&#x007684;&#x0030a4;&#x0030f3;&#x0030c6;&#x0030b0;&#x0030ec;&#x0030fc;&#x0030b7;&#x0030e7;&#x0030f3;&#x00ff08;CI&#x00ff09; - I am Cruby!" border="0" style="border:none;"/></a> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/append?http://d.hatena.ne.jp/authorNari/20101221/1292939999"><img src="http://b.hatena.ne.jp/images/append.gif" border="0" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;"/></a></p></blockquote><p><img src="http://cdn2.www.st-hatena.com/users/kk/kkawa/profile_s.gif" class="profile-image" alt="kkawa" title="kkawa" width="16" height="16"/> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/kkawa/20101226#bookmark-27543187">kkawa</a> <a rel="nofollow" class="user-tag" target="_blank" href="http://b.hatena.ne.jp/kkawa/hudson/">hudson</a>  [ruby]</p>]]></content:encoded>
      </item>
      <item>
         <title>Hudsonのセットアップ(Windowsサービスとして起動) - ふぞろいのGENGOたち</title>
         <link>http://d.hatena.ne.jp/tyuki39/20101222/1293027195</link>
         <guid isPermaLink="false" />
         <pubDate>Sat, 25 Dec 2010 23:16:06 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote cite="http://d.hatena.ne.jp/tyuki39/20101222/1293027195" title="Hudson&#x00306e;&#x0030bb;&#x0030c3;&#x0030c8;&#x0030a2;&#x0030c3;&#x0030d7;(Windows&#x0030b5;&#x0030fc;&#x0030d3;&#x0030b9;&#x003068;&#x003057;&#x003066;&#x008d77;&#x0052d5;) - &#x003075;&#x00305e;&#x00308d;&#x003044;&#x00306e;GENGO&#x00305f;&#x003061;"><cite><img src="http://cdn-ak.favicon.st-hatena.com/?url=http%3A%2F%2Fd.hatena.ne.jp%2Ftyuki39%2F" alt=""/><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/tyuki39/20101222/1293027195">Hudsonのセットアップ(Windowsサービスとして起動) - ふぞろいのGENGOたち</a></cite><p>HudsonCIHudsonのダウンロード 最新バージョンの入手: http://ftp.osuosl.org/pub/hudson/war/latest/ から hudson.war を取得します。 特定バージョンの入手: http://ftp.osuosl.org/pub/hudson/war/ から hudson.war を取得します。 Hudsonを起動する前にHudson環境は、デフォル...</p><p><a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/tyuki39/20101222/1293027195"><img src="http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/tyuki39/20101222/1293027195" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - Hudson&#x00306e;&#x0030bb;&#x0030c3;&#x0030c8;&#x0030a2;&#x0030c3;&#x0030d7;(Windows&#x0030b5;&#x0030fc;&#x0030d3;&#x0030b9;&#x003068;&#x003057;&#x003066;&#x008d77;&#x0052d5;) - &#x003075;&#x00305e;&#x00308d;&#x003044;&#x00306e;GENGO&#x00305f;&#x003061;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - Hudson&#x00306e;&#x0030bb;&#x0030c3;&#x0030c8;&#x0030a2;&#x0030c3;&#x0030d7;(Windows&#x0030b5;&#x0030fc;&#x0030d3;&#x0030b9;&#x003068;&#x003057;&#x003066;&#x008d77;&#x0052d5;) - &#x003075;&#x00305e;&#x00308d;&#x003044;&#x00306e;GENGO&#x00305f;&#x003061;" border="0" style="border:none;"/></a> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/append?http://d.hatena.ne.jp/tyuki39/20101222/1293027195"><img src="http://b.hatena.ne.jp/images/append.gif" border="0" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;"/></a></p></blockquote><p><img src="http://cdn2.www.st-hatena.com/users/kk/kkawa/profile_s.gif" class="profile-image" alt="kkawa" title="kkawa" width="16" height="16"/> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/kkawa/20101226#bookmark-27654638">kkawa</a> <a rel="nofollow" class="user-tag" target="_blank" href="http://b.hatena.ne.jp/kkawa/hudson/">hudson</a> </p>]]></content:encoded>
      </item>
      <item>
         <title>Hudson APIでジョブを一発コピー - @ikikko のはてなダイアリー</title>
         <link>http://d.hatena.ne.jp/ikikko/20101223/1293128832</link>
         <guid isPermaLink="false" />
         <pubDate>Sat, 25 Dec 2010 23:15:00 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote cite="http://d.hatena.ne.jp/ikikko/20101223/1293128832" title="Hudson API&#x003067;&#x0030b8;&#x0030e7;&#x0030d6;&#x003092;&#x004e00;&#x00767a;&#x0030b3;&#x0030d4;&#x0030fc; - @ikikko &#x00306e;&#x00306f;&#x003066;&#x00306a;&#x0030c0;&#x0030a4;&#x0030a2;&#x0030ea;&#x0030fc;"><cite><img src="http://cdn-ak.favicon.st-hatena.com/?url=http%3A%2F%2Fd.hatena.ne.jp%2Fikikko%2F" alt=""/><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/ikikko/20101223/1293128832">Hudson APIでジョブを一発コピー - @ikikko のはてなダイアリー</a></cite><p>メリー苦しみます！性なる夜のクリスマスイブでも特に予定がないikikkoです、こんばんは。みなさん、いかがお過ごしでしょうか。滑るような前置きはさておき、本題に入りましょう。今日は、HudsonのRemote Access APIとそれを使ったちょいプログラムを紹介したいと思います。APIの概要Hudsonの特徴といえば親切すぎるほどのGUIですが、実はCLI（コマンドラインインターフェース）やA...</p><p><a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/ikikko/20101223/1293128832"><img src="http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/ikikko/20101223/1293128832" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - Hudson API&#x003067;&#x0030b8;&#x0030e7;&#x0030d6;&#x003092;&#x004e00;&#x00767a;&#x0030b3;&#x0030d4;&#x0030fc; - @ikikko &#x00306e;&#x00306f;&#x003066;&#x00306a;&#x0030c0;&#x0030a4;&#x0030a2;&#x0030ea;&#x0030fc;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - Hudson API&#x003067;&#x0030b8;&#x0030e7;&#x0030d6;&#x003092;&#x004e00;&#x00767a;&#x0030b3;&#x0030d4;&#x0030fc; - @ikikko &#x00306e;&#x00306f;&#x003066;&#x00306a;&#x0030c0;&#x0030a4;&#x0030a2;&#x0030ea;&#x0030fc;" border="0" style="border:none;"/></a> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/append?http://d.hatena.ne.jp/ikikko/20101223/1293128832"><img src="http://b.hatena.ne.jp/images/append.gif" border="0" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;"/></a></p></blockquote><p><img src="http://cdn2.www.st-hatena.com/users/kk/kkawa/profile_s.gif" class="profile-image" alt="kkawa" title="kkawa" width="16" height="16"/> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/kkawa/20101226#bookmark-27606012">kkawa</a> <a rel="nofollow" class="user-tag" target="_blank" href="http://b.hatena.ne.jp/kkawa/hudson/">hudson</a> </p>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson][Trac] ビルドしたら関連チケットのコメントにビルドへのリンクを自動で貼ってみた</title>
         <link>http://d.hatena.ne.jp/akihirox/20101220#1292838572</link>
         <description>trac-post-commit-hookという便利な機能ありますよね。refs #1とかコミットログに書くとそのチケットのコメントにコミットログを書いてくれるやつ。 今コミットしたら自動でビルドするようにしてるので、ビルド-コミット-チケットてなかんじでチケットとも関連付けられると</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 20 Dec 2010 09:49:32 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>trac-post-commit-hookという便利な機能ありますよね。refs #1とかコミットログに書くとそのチケットのコメントにコミットログを書いてくれるやつ。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/akihirox/20101220184622" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/a/akihirox/20101220/20101220184622.png" alt="f:id:akihirox:20101220184622p:image" title="f:id:akihirox:20101220184622p:image" class="hatena-fotolife"></a></p>
			<p>今コミットしたら自動でビルドするようにしてるので、ビルド-コミット-チケットてなかんじでチケットとも関連付けられると嬉しいんじゃないかなと思った訳ですよ。HudsonのTrac Pluginで、ビルド→チケットなリンクはあるので、チケット→ビルドなリンクを作ってみようかと。</p>
			<p>でtracのpost-commit-hookを流用してみました。post-commit-hookはtrac-0.12からはtrac-adminを利用するようになったので、0.11の頃のやつから。tracの中って修正BSDだから公開しても大丈夫だよな。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="https://bitbucket.org/akihirox/trac-post-build/src">  akihirox / trac-post-build / source &#8212; Bitbucket</a></li>
			</ul>
			<p>2つのファイルをてけとうな所に置いて、Hudsonのビルドでcmdを呼べばOKです。ビルドするとこんな感じ。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/akihirox/20101220184623" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/a/akihirox/20101220/20101220184623.png" alt="f:id:akihirox:20101220184623p:image" title="f:id:akihirox:20101220184623p:image" class="hatena-fotolife"></a></p>
			<p>作ってからこれくらい誰かがもうやってんじゃないかという気がしてきたですよ……</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] Hudson: from build jobs to build pipelines</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20101121#1290353076</link>
         <description>http://weblogs.java.net/blog/johnsmart/archive/2010/11/21/hudson-build-jobs-build-pipelines-0 Continuous Integration with Hudson本の作者であるJohn Ferguson Smartさんのスライド（と言ってもHudson本はまだ出てないよ）。 いろいろプラグインが紹介されてて興味深</description>
         <guid isPermaLink="false" />
         <pubDate>Sun, 21 Nov 2010 15:24:36 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/johnsmart/archive/2010/11/21/hudson-build-jobs-build-pipelines-0">http://weblogs.java.net/blog/johnsmart/archive/2010/11/21/hudson-build-jobs-build-pipelines-0</a></p>
			<br>

			<p><a rel="nofollow" target="_blank" href="http://www.wakaleo.com/books/continuous-integration-with-hudson-the-book">Continuous Integration with Hudson</a>本の作者であるJohn Ferguson Smartさんのスライド（と言ってもHudson本はまだ出てないよ）。</p>
			<br>

			<p>いろいろプラグインが紹介されてて興味深い。以下、紹介されてたやつで知らなかったヤツを列挙。機会があれば試してみる。</p>
			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Nested+View+Plugin">Dashboard Nested View plugin</a></b></p>
			<p>この前のHudson勉強会で紹介されてたのは<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Dashboard+View">Dashboard View</a>。スクリーンショットないけど説明文読む限りではジョブをグループ化してフォルダにまとめてくれるようだ。</p>
			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/HTML+Publisher+Plugin">HTML Publisher plugin</a></b></p>
			<p>ジョブ中（ジョブのワークスペース上？）に生成したHTMLに対してリンクを張ってくれるか、インラインで表示してくるかしてくれるプラグインっぽい。試してみないとよくわかんないや。</p>
			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Performance+Plugin">Performance plugin</a></b></p>
			<p>JMeterのレポートを可視化してくれるプラグイン（<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/JMeter+Plugin">JMeter plugin</a>は古いらしい）。JUnit同様、JMeterの実行までやってくれるワケでは無い（それはビルドの役目）。</p>
			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Downstream+buildview+plugin">Downstream Buildview plugin</a></b></p>
			<p>いわゆる下流ジョブを可視化してくれるプラグイン。</p>
			<p>これと<b><a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Trigger+Plugin">Parameterized Trigger plugin</a></b>を組み合せてビルドパイプラインを組む。といってもParameterized Trigger pluginで組んだ下流ジョブがDownstream Buildviewに反映されるかは試してみないとわかんない。</p>
			<p>＃でも出来るから、この組み合せで紹介してるんだと思う。</p>
			<br>

			<p>ちなみにParameterized Trigger pluginは、自身のビルド結果によって下流ジョブやその実行環境を調整できるプラグインのようだ。</p>
			<p>ビルドパイプラインと言えば、思い出すのは<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/masanobuimai/20081025#1224942363">ThoughtWorksのCruise</a>なんだが、こいつほどパイプラインを全面に押し出したUIになるってわけでも無さそう（Cruiseもパイプラインの構築はXMLベタ書きしてた記憶がある...）。ちなみに、今はCruiseじゃなくて<a rel="nofollow" target="_blank" href="http://www.thoughtworks-studios.com/go-agile-release-management">Go</a>という、これまた印象に残らないツールに統合されたみたい。</p>
			<br>

			<p>ある程度ビルドの規模が大きくなるとビルドパイプライン的な発想は不可欠だと思うが、そうなったらそうなったで特定のCIツールに依存していいのか？という葛藤が生じるようだ（わりと他人事なのは、依存したっていいやん思ってるから）。そうゆうのって"<a rel="nofollow" target="_blank" href="http://www.manning.com/huettermann/">Agline ALM</a>"やら"Continuous Delivery"やらに書いてないのん？</p>
			<div class="hatena-asin-detail">
  <a rel="nofollow" target="_blank" href="http://www.amazon.co.jp/exec/obidos/ASIN/0321601912/hatediarmarsm-22/"><img src="http://ecx.images-amazon.com/images/I/51UYBHnvjFL._SL160_.jpg" class="hatena-asin-detail-image" alt="Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))" title="Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))"></a>
  <div class="hatena-asin-detail-info">
    <p class="hatena-asin-detail-title"><a rel="nofollow" target="_blank" href="http://www.amazon.co.jp/exec/obidos/ASIN/0321601912/hatediarmarsm-22/">Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))</a></p>
    <ul>
      
      <li><span class="hatena-asin-detail-label">作者:</span> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/keyword/Jez%20Farley%2C%20David%20Humble" class="keyword">Jez Farley, David Humble</a></li>
      
      <li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/keyword/Addison%2DWesley%20Professional" class="keyword">Addison-Wesley Professional</a></li>
      
      <li><span class="hatena-asin-detail-label">発売日:</span> 2010/07/27</li>
                                                      <li><span class="hatena-asin-detail-label">メディア:</span> ハードカバー</li>
      <li><span class="hatena-asin-detail-label">購入</span>: 1人 <span class="hatena-asin-detail-label">クリック</span>: 73回</li>
      <li><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/asin/0321601912/hatediarmarsm-22">この商品を含むブログ (16件) を見る</a></li>
    </ul>
  </div>
  <div class="hatena-asin-detail-foot"></div>
</div>

			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Deploy+Plugin">Deploy plugin</a></b></p>
			<p>スライドでは"Deploy <b>To Container</b> plugin"とあるけど、そのものズバリなプラグインは見当らず。たぶん、こいつの事なんだと思う。たしか<a rel="nofollow" target="_blank" href="http://cargo.codehaus.org/">Cargo</a>ベースのやつで、あまり良い思い出がない（つまりはうまくデプロイできなかったという話）。</p>
			<p>＃最近だと違うのかな？</p>
			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Description+Setter+Plugin">Description Setter plugin</a></b></p>
			<p>ビルドログから抽出した文字列をビルドのdescription欄に設定するプラグイン。</p>
			<p>なるほど、ものは使いようだ。</p>
			<br>

			<p><b>■<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Radiator+View+Plugin">Radiator View plugin</a></b></p>
			<p><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/masanobuimai/20091012#1255354811">前に紹介したeXtreme Feedback Panel plugin</a>はこいつの派生だったみたい。どっちを使うかは好みの問題かな。</p>
			<br>

			<p>---</p>
			<p>あいにくとパイプライン組むほど大げさなビルドシステムにはご縁がないので、実際やってみる事はしないと思う。仮にそうゆう事態になったらなったで、下記のような事まで気を回さないといけないと思うと、ちょっとウンザリしてしまうかも。</p>
			<p>→ <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/ryoasai/20101110/1289399056">ビルドシステム構築スキルの重要性 - 達人プログラマーを目指して</a></p>
			<br>

			<p>ビルド職人の先は長く険しい。いずれにしろ、あたしはその域には達してないので、この程度のノリで日々を過しております。:-P</p>
			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">
      <img src="http://a0.twimg.com/profile_images/1140771632/73e185a8-aaf4-4bd6-8a5f-36be2dc29114_normal.png" alt="masanobuimai" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      痛いほどよくわかるけど、そうゆう現場では敢て自動化を放棄してます（オーパーツ残しても仕方ないし。＞ ビルドシステム構築スキルの重要性 - 達人プログラマーを目指して <a rel="nofollow" class="twitter-tweet-url" target="_blank" href="http://t.co/yklTnWq"><span>URL</span></a>
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/status/5248849513816064" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-11-18</span> <span class="twitter-detail-info-time">22:19:57</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com/tweetbutton">Tweet Button</a></span>
    </p>
  </div>
</div>

			<p></div>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] Hudson勉強会</title>
         <link>http://d.hatena.ne.jp/akihirox/20101112#1289578507</link>
         <description>参加してきました。発表もしたんですけど、いやー人が多くてビビリまくりでもうしわけありませんでした… Hudson勉強会 : ATND とりいそぎ自分のLT資料をアップしておきます。 日本語化のススメ それにしてもいい勉強会でした。やっぱ勉強会は勉強になるわ…</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 12 Nov 2010 16:15:07 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>参加してきました。発表もしたんですけど、いやー人が多くてビビリまくりでもうしわけありませんでした…</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://atnd.org/events/8654">Hudson勉強会 : ATND</a></li>
			</ul>
			<p>とりいそぎ自分のLT資料をアップしておきます。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://www.slideshare.net/itouakihiro/build-engneermeetingja1st">日本語化のススメ</a></li>
			</ul>
			<p>それにしてもいい勉強会でした。やっぱ勉強会は勉強になるわ…</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] Hudson Persona Plugin使ってみた</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20101017#1287330463</link>
         <description>#hudsonci だれかが　Persona Plugin で萌えHudson作ってくれるはず　URL 2010-10-17 21:56:18 via tGadget Just released #HudsonCI persona plugin, which lets you create ChuckNorris family of plugins just from XML and images. 2010-10-17 21:58:40 via TweetDeck `</description>
         <guid isPermaLink="false" />
         <pubDate>Sun, 17 Oct 2010 15:47:43 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/ssogabe">
      <img src="http://a0.twimg.com/profile_images/591689416/icon_normal.png" alt="ssogabe" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      <a rel="nofollow" target="_blank" href="http://twitter.com/search?q=%23hudsonci">#hudsonci</a> だれかが　Persona Plugin で萌えHudson作ってくれるはず　<a rel="nofollow" class="twitter-tweet-url" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Persona+Plugin"><span>URL</span></a>
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/ssogabe/status/27634560544" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-17</span> <span class="twitter-detail-info-time">21:56:18</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.twittergadget.com">tGadget</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kohsukekawa">
      <img src="http://a1.twimg.com/profile_images/53316573/self2_normal.jpeg" alt="kohsukekawa" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      Just released <a rel="nofollow" target="_blank" href="http://twitter.com/search?q=%23HudsonCI">#HudsonCI</a> persona plugin, which lets you create ChuckNorris family of plugins just from XML and images.
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/kohsukekawa/status/27634715125" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-17</span> <span class="twitter-detail-info-time">21:58:40</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.tweetdeck.com">TweetDeck</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kohsukekawa">
      <img src="http://a1.twimg.com/profile_images/53316573/self2_normal.jpeg" alt="kohsukekawa" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      `誰か修造botからデータを取り出して<a rel="nofollow" target="_blank" href="http://twitter.com/search?q=%23HudsonCI">#HudsonCI</a>のペルソナ化してほしい
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/kohsukekawa/status/27634909653" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-17</span> <span class="twitter-detail-info-time">22:01:25</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.tweetdeck.com">TweetDeck</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">
      <img src="http://a0.twimg.com/profile_images/1140771632/73e185a8-aaf4-4bd6-8a5f-36be2dc29114_normal.png" alt="masanobuimai" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      おい、川口さんが本気出したぞ。 <a rel="nofollow" target="_blank" href="http://twitter.com/search?q=%23hudsonci">#hudsonci</a> ＞ Persona Plugin - hudson - Hudson Wiki <a rel="nofollow" class="twitter-tweet-url" target="_blank" href="http://t.co/ifCwHPf"><span>URL</span></a>
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/status/27634971855" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-17</span> <span class="twitter-detail-info-time">22:02:20</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com/tweetbutton">Tweet Button</a></span>
    </p>
  </div>
</div>

			<p></div>
			<br>

			<p>公式痛Hudson化プラグインがでたので、早速使ってみたよ。</p>
			<p>まだ公式プラグインマネージャには出てないと思うので、いそいで使ってみたいって人はこちらから *.hpi ファイルを直接ダウンロードしてちょ。</p>
			<p>→ <a rel="nofollow" target="_blank" href="https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=12457&expandFolder=12457&folderID=5818">Java.net &#8212; 404 - Not Found</a></p>
			<br>

			<p>公式の解説ページはこちら。→ <a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Persona+Plugin">Persona Plugin - hudson - Hudson Wiki</a></p>
			<br>

			<p>ペルソナをhpi形式でアーカイブできるみたいなんだけど、よく分んなかったんで、$HUDSON_HOMEに直接作ってみたよ。ネタは当然、emotional-hudson。公式ページにあるイメージリソースはひとつも省略せずに準備したほうがいいみたい（無いとエラーになった）。ちなみに、それぞれのリソースの用途はこんなん。</p>

			<ul>
				<li> success.jpg/.png/.gif  ... 普段のHudsonさん（青）</li>
				<li> failure.jpg/.png/.gif  ... 失敗したときのHudsonさん（赤）</li>
				<li> other.jpg/.png/.gif ... 不安定なときのHudsonさん（黄）</li>
				<li> icon.jpg/.png/.gif ... 引用文の脇につくアイコン（16x16）</li>
			</ul>
			<br>

			<p>それと、引用文を書いておく persona.xml も空要素ではいかんらしく、ダミーでもいいんでひとつは引用文を書いておく。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">&#60;persona </span><span class="synType">id</span>=<span class="synConstant">'eh'</span><span class="synIdentifier"> </span><span class="synType">displayName</span>=<span class="synConstant">'Emotional Hudson'</span><span class="synIdentifier">&#62;</span>
  <span class="synIdentifier">&#60;quote&#62;</span>hoge hoge<span class="synIdentifier">&#60;/quote&#62;</span>
<span class="synIdentifier">&#60;/persona&#62;</span>
</pre>

			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20101018003217" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20101018/20101018003217.png" alt="f:id:masanobuimai:20101018003217p:image" title="f:id:masanobuimai:20101018003217p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>プラグインのインストールとペルソナの仕込みの段取りはこんな感じ。</p>

			<ol>
				<li> Hudsonにpersona.hpiをインストール</li>
				<li> Hudsonをいったん終了</li>
				<li> $HUDSON_HOME にペルソナを仕込む</li>
				<li> Hudsonを再起動</li>
				<li> 任意のジョブでペルソナを設定する</li>
			</ol>
			<br>

			<p>ペルソナの設定はジョブ（プロジェクト）ごとに行うです。ジョブの設定画面を開いて「ビルド後の処理」の下のほうに「<b>Associate Persona</b>」ってのがあるんで、そこのプルダウンリストから使いたいペルソナを選ぶ。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20101018003218" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20101018/20101018003218.png" alt="f:id:masanobuimai:20101018003218p:image" title="f:id:masanobuimai:20101018003218p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>中途半端なペルソナ設定するとエラーになって、そのジョブを開けなくなるから、面倒臭がらずにちゃんとペルソナを準備してね。しんぼうたまらずエラーになってジョブ開けなくなったら、<code>$HUDSON_HOME/jobs/<i>ジョブ名</i>/<b>config.xml</b></code>を直接編集してペルソナの設定削っといて。</p>
			<p>＃<code>hudson.plugins.persona.QuotePublisher</code>ってのを削除すればいい。</p>
			<br>

			<p>うまく設定できると、こんな具合にHudsonさんの代わりにペルソナが登場する。右上んとこが、そのペルソナのつぶやき（引用文）。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20101018003219" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20101018/20101018003219.png" alt="f:id:masanobuimai:20101018003219p:image" title="f:id:masanobuimai:20101018003219p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>注意点がひとつ。ペルソナが有効になるのは、ペルソナを設定した後のビルドかららしい。以前のビルドには有効にならんようなので、慌てずさわがず新しいビルドを実行してみよう。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Hudson勉強会</title>
         <link>http://d.hatena.ne.jp/cactusman/20101009/p1</link>
         <description>2010/11/12 19:00、場所はまだ未定ですが、川口さん主催でHudson勉強会が開催されます。 http://atnd.org/events/8654 告知2日で、もうすでに100人超えてるという人気っぷり。 Hudsonについて興味のあるかたは、是非参加を検討してみては。</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 09 Oct 2010 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>2010/11/12 19:00、場所はまだ未定ですが、川口さん主催でHudson勉強会が開催されます。</p>
			<p><a rel="nofollow" target="_blank" href="http://atnd.org/events/8654">http://atnd.org/events/8654</a></p>
			<p>告知2日で、もうすでに100人超えてるという人気っぷり。</p>
			<p>Hudsonについて興味のあるかたは、是非参加を検討してみては。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] 11/12は自動化職人の日だ！</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20101008#1286550769</link>
         <description>って、オレが決めた。 告知後あっと言う間に100人を越したHudson勉強会ですが、遠方ゆえに参加できず。 思わずつぶやいたツィートについた返信に全オレが泣いた。 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 08 Oct 2010 15:12:49 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>って、オレが決めた。</p>
			<br>

			<p>告知後あっと言う間に100人を越したHudson勉強会ですが、遠方ゆえに参加できず。</p>
			<p>思わずつぶやいたツィートについた返信に全オレが泣いた。</p>
			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">
      <img src="http://a0.twimg.com/profile_images/591889592/IMG_0235_normal.jpg" alt="masanobuimai" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/status/26713828727" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:21:25</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.atok.com/">ATOK Pad</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">
      <img src="http://a3.twimg.com/profile_images/65305655/&#x0030d4;&#x0030af;&#x0030c1;&#x0030e3;_12_normal.png" alt="wyukawa" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/wyukawa/status/26715334385" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:42:45</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.echofon.com/">Echofon</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/changeworlds">
      <img src="http://a3.twimg.com/profile_images/847550447/bakeneko_normal.png" alt="changeworlds" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/changeworlds/status/26715402036" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:43:44</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://sourceforge.jp/projects/tween/wiki/FrontPage">Tween</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kaorun55">
      <img src="http://a2.twimg.com/profile_images/595941490/kaorun55_96x96_normal.jpg" alt="kaorun55" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/kaorun55/status/26715602929" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:46:41</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.echofon.com/">Echofon</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/hikaruworld">
      <img src="http://a0.twimg.com/profile_images/332815632/icon_128_normal.png" alt="hikaruworld" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kaorun55">kaorun55</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/hikaruworld/status/26715888115" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:50:55</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://cheebow.info/chemt/archives/2007/04/twitterwindowst.html">Twit for Windows</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/yusuke_kokubo">
      <img src="http://a3.twimg.com/profile_images/877809851/3391803389_5729ff726e_normal.jpg" alt="yusuke_kokubo" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      うちは後ろの席の人がやりました。 RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/hikaruworld">hikaruworld</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kaorun55">kaorun55</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/yusuke_kokubo/status/26716047252" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:53:19</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://sourceforge.jp/projects/tween/wiki/FrontPage">Tween</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/fumito_ito">
      <img src="http://a1.twimg.com/profile_images/960878621/anc137_viploader1143777m_normal.jpg" alt="fumito_ito" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a> me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/fumito_ito/status/26716252929" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:56:28</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.nibirutech.com">TwitBird</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/endout">
      <img src="http://a2.twimg.com/profile_images/19241562/RIMG0076_normal.jpg" alt="endout" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      僕も同じです。高橋名人？と言われます。 “@<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a>: me too RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a>: 本当の事をこっそりいうと、自分の周りじゃ、あたし以外でHudsonの設置する人を見たことが無いのよね。(´д｀)”
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/endout/status/26716574634" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">13:01:20</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com/">Twitter for iPhone</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-right">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">
      <img src="http://a3.twimg.com/profile_images/65305655/&#x0030d4;&#x0030af;&#x0030c1;&#x0030e3;_12_normal.png" alt="wyukawa" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      どこのHudsonエンジニアも孤独に雪かき仕事をしていることが良くわかった…
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/wyukawa/status/26717160423" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">13:10:17</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://www.echofon.com/">Echofon</a></span>
    </p>
  </div>
</div>

			<p></div>
			<br>

			<p>...おまいら。(´；ω；｀)ぶわっ</p>
			<br>

			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">
      <img src="http://a0.twimg.com/profile_images/591889592/IMG_0235_normal.jpg" alt="masanobuimai" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      11/12は自動化職人の日で決まりデスね。
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/status/26715495500" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-10-08</span> <span class="twitter-detail-info-time">12:45:06</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com/">Twitter for iPhone</a></span>
    </p>
  </div>
</div>

			<p></div>
			<br>

			<p>こんだけの自動化職人が一堂に会する機会もそうはあるまい。そんなHudson勉強会の申込はこちら。</p>
			<p>＃川口さんと握手したり、川口さんの写真をビルドマシンに貼っておくとビルド失敗しなくなるってよ（嘘。</p>
			<p>→ <a rel="nofollow" target="_blank" href="http://atnd.org/events/8654">Hudson勉強会 : ATND</a></p>
			<p>→ <a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/pages/viewpage.action?pageId=46336352">Hudson勉強会 - 日本語 - Hudson Wiki</a> - LTもあるよ。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>Hudson+phpcpdで継続的に重複コードをチェックする | Ryuzee.com</title>
         <link>http://www.ryuzee.com/contents/blog/3453</link>
         <guid isPermaLink="false" />
         <pubDate>Thu, 07 Oct 2010 06:19:33 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote cite="http://www.ryuzee.com/contents/blog/3453" title="Hudson+phpcpd&#x003067;&#x007d99;&#x007d9a;&#x007684;&#x00306b;&#x0091cd;&#x008907;&#x0030b3;&#x0030fc;&#x0030c9;&#x003092;&#x0030c1;&#x0030a7;&#x0030c3;&#x0030af;&#x003059;&#x00308b; | Ryuzee.com"><cite><img src="http://cdn-ak.favicon.st-hatena.com/?url=http%3A%2F%2Fwww.ryuzee.com%2F" alt=""/><a rel="nofollow" target="_blank" href="http://www.ryuzee.com/contents/blog/3453">Hudson+phpcpdで継続的に重複コードをチェックする | Ryuzee.com</a></cite><p>Categories Agile・生産性向上 (115) Ajax/Web2.0 (7) apache (14) CMS (3) Delphi (11) Linux (47) Perl (29) PHP (115) Ruby (4) Trac (83) Zope (11) オープンソース (104) Firefox (9) OpenVZ (3) phpBB (3) phpMyFaq (12) sc...</p><p><a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/entry/http://www.ryuzee.com/contents/blog/3453"><img src="http://b.hatena.ne.jp/entry/image/http://www.ryuzee.com/contents/blog/3453" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - Hudson+phpcpd&#x003067;&#x007d99;&#x007d9a;&#x007684;&#x00306b;&#x0091cd;&#x008907;&#x0030b3;&#x0030fc;&#x0030c9;&#x003092;&#x0030c1;&#x0030a7;&#x0030c3;&#x0030af;&#x003059;&#x00308b; | Ryuzee.com" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; - Hudson+phpcpd&#x003067;&#x007d99;&#x007d9a;&#x007684;&#x00306b;&#x0091cd;&#x008907;&#x0030b3;&#x0030fc;&#x0030c9;&#x003092;&#x0030c1;&#x0030a7;&#x0030c3;&#x0030af;&#x003059;&#x00308b; | Ryuzee.com" border="0" style="border:none;"/></a> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/append?http://www.ryuzee.com/contents/blog/3453"><img src="http://b.hatena.ne.jp/images/append.gif" border="0" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;"/></a></p></blockquote><p><img src="http://cdn2.www.st-hatena.com/users/kk/kkawa/profile_s.gif" class="profile-image" alt="kkawa" title="kkawa" width="16" height="16"/> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/kkawa/20101007#bookmark-25207211">kkawa</a> <a rel="nofollow" class="user-tag" target="_blank" href="http://b.hatena.ne.jp/kkawa/hudson/">hudson</a> </p>]]></content:encoded>
      </item>
      <item>
         <title>さくらVPS980でjetty/Hudsonを動かす - やさしいデスマーチ</title>
         <link>http://d.hatena.ne.jp/shuji_w6e/20101006/1286322220</link>
         <guid isPermaLink="false" />
         <pubDate>Thu, 07 Oct 2010 05:06:38 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote cite="http://d.hatena.ne.jp/shuji_w6e/20101006/1286322220" title=" &#x003055;&#x00304f;&#x003089;VPS980&#x003067;jetty/Hudson&#x003092;&#x0052d5;&#x00304b;&#x003059; - &#x003084;&#x003055;&#x003057;&#x003044;&#x0030c7;&#x0030b9;&#x0030de;&#x0030fc;&#x0030c1;"><cite><img src="http://cdn-ak.favicon.st-hatena.com/?url=http%3A%2F%2Fd.hatena.ne.jp%2Fshuji_w6e%2F" alt=""/><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/shuji_w6e/20101006/1286322220">さくらVPS980でjetty/Hudsonを動かす - やさしいデスマーチ</a></cite><p>Hudson, Linux | 08:43 | さくらインターネットのVPSサービスが正式稼働となって1ヶ月となりました。これまでは専用サーバのエントリープランを使っていたのですが、用途が変わってきたので乗り換えを行っています。これまでは、SVN, Trac, Hudson, Wiki(MoinMoin)などを稼働させるのが目的だったのですが、最近はSVN + TracをGoogle Codeに移...</p><p><a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/shuji_w6e/20101006/1286322220"><img src="http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shuji_w6e/20101006/1286322220" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; -  &#x003055;&#x00304f;&#x003089;VPS980&#x003067;jetty/Hudson&#x003092;&#x0052d5;&#x00304b;&#x003059; - &#x003084;&#x003055;&#x003057;&#x003044;&#x0030c7;&#x0030b9;&#x0030de;&#x0030fc;&#x0030c1;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af; -  &#x003055;&#x00304f;&#x003089;VPS980&#x003067;jetty/Hudson&#x003092;&#x0052d5;&#x00304b;&#x003059; - &#x003084;&#x003055;&#x003057;&#x003044;&#x0030c7;&#x0030b9;&#x0030de;&#x0030fc;&#x0030c1;" border="0" style="border:none;"/></a> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/append?http://d.hatena.ne.jp/shuji_w6e/20101006/1286322220"><img src="http://b.hatena.ne.jp/images/append.gif" border="0" alt="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;" title="&#x00306f;&#x003066;&#x00306a;&#x0030d6;&#x0030c3;&#x0030af;&#x0030de;&#x0030fc;&#x0030af;&#x00306b;&#x008ffd;&#x0052a0;"/></a></p></blockquote><p><img src="http://cdn2.www.st-hatena.com/users/kk/kkawa/profile_s.gif" class="profile-image" alt="kkawa" title="kkawa" width="16" height="16"/> <a rel="nofollow" target="_blank" href="http://b.hatena.ne.jp/kkawa/20101007#bookmark-25461639">kkawa</a> <a rel="nofollow" class="user-tag" target="_blank" href="http://b.hatena.ne.jp/kkawa/hudson/">hudson</a> </p>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Hudson Twitter PluginのOAuth対応</title>
         <link>http://d.hatena.ne.jp/cactusman/20100918/p1</link>
         <description>タイトル通りです。 これでTwitterに再度Jobの実行結果をポストすることができるようになりました。 ただし、事前にTokenとToken Secretを取得する必要があります。 取得方法は、以下のURLにあるauth.jarをダウンロードして、 java -jar auth.jar を実行して、あとは指示に</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 18 Sep 2010 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>タイトル通りです。</p>
			<p>これでTwitterに再度Jobの実行結果をポストすることができるようになりました。</p>
			<p>ただし、事前にTokenとToken Secretを取得する必要があります。</p>
			<p>取得方法は、以下のURLにあるauth.jarをダウンロードして、</p>
			<p>java -jar auth.jar</p>
			<p>を実行して、あとは指示に従ってください。</p>
			<p><a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/Twitter+Plugin">http://wiki.hudson-ci.org/display/HUDSON/Twitter+Plugin</a></p>
			<p><br></p>
			<p>不明な点がありましたら、コメントなりTwitterなり他の方法でもかまいませんので、気軽に聞いてください。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] 朝っぱらから破壊力のあるつぶやきをみた</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20100830#1283172770</link>
         <description>CloudBeesもスゴイが ”Hudson build engineer” で求人があるってのにおどろく。＞ Hudson on the Rise: CloudBees and Indeed Job Trends | Java.net URL 2010-08-29 21:38:06 via Tweet Button @masanobuimai 日本ではHudsonでは求人はないんですか？こっちではどこに行っ</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 30 Aug 2010 12:52:50 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">
      <img src="http://a0.twimg.com/profile_images/591889592/IMG_0235_normal.jpg" alt="masanobuimai" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      CloudBeesもスゴイが "Hudson build engineer" で求人があるってのにおどろく。＞ Hudson on the Rise: CloudBees and Indeed Job Trends | Java.net <a rel="nofollow" class="twitter-tweet-url" target="_blank" href="http://t.co/1QCJ0Hw"><span>URL</span></a>
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/status/22434312833" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-08-29</span> <span class="twitter-detail-info-time">21:38:06</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com/tweetbutton">Tweet Button</a></span>
    </p>
  </div>
</div>

			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kohsukekawa">
      <img src="http://a1.twimg.com/profile_images/53316573/self2_normal.jpeg" alt="kohsukekawa" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">masanobuimai</a> 日本ではHudsonでは求人はないんですか？こっちではどこに行ってもみんなHudson使っている印象ですよ。
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/kohsukekawa/status/22461443385" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-08-30</span> <span class="twitter-detail-info-time">04:24:26</span></a> <span class="twitter-detail-info-source">via web</span> to @<a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/" class="twitter-user-screen-name">masanobuimai</a>
    </p>
  </div>
</div>

			<p></div>
			<br>

			<p>ガボン。</p>
			<br>

			<p><del datetime="2010-09-25T23:16:09+09:00">ところで、その川口さんが<a rel="nofollow" target="_blank" href="http://www.cloudbees.com/">CloudBees</a>というHudsonのホスティングサービス始めたようです。</del></p>
			<p>HaaSといっても"Hardware as a Service"じゃないよ、"<b>Hudson</b> as a Service"や。詳しくはご本人か、どっかのニュースサイトで語られるに違いない。</p>
			<br>

			<p>「Hudsonはモテか」と目を輝かせたところ、 <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kiy0taka/">id:kiy0taka</a> さんにとどめの一言をもらいました。本当にありがとうございます。</p>
			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/masanobuimai">
      <img src="http://a0.twimg.com/profile_images/591889592/IMG_0235_normal.jpg" alt="masanobuimai" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      返す言葉が無い。RT “@<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kiy0taka">kiy0taka</a>: Hud美さんとかチャックノリスで喜んでる奴らがモテるはずがない RT @<a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/wyukawa">wyukawa</a>: Hudsonエンジニアはモテるらしい。”
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/masanobuimai/status/22480860465" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-08-30</span> <span class="twitter-detail-info-time">09:36:09</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com/">Twitter for iPhone</a></span>
    </p>
  </div>
</div>

			<p></div>
			<br>

			<p>（追記）絶妙なタイミングでこんな記事があったよ。Hudson、<a rel="nofollow" target="_blank" href="http://java.dzone.com/node/28241/results">圧倒的過ぎて</a>ワロタ（ある意味当然）。</p>
			<p>→ <a rel="nofollow" target="_blank" href="http://java.dzone.com/polls/which-continuous-integeration/">Which Continuous Integeration System is Most Popular? | Javalobby</a></p>
			<br>

			<p>意外だったのがBambooの人気。なんとなくJIRAのおかげじゃなかろうかと推測。それとCruise Control、まだ居たか！？もう世代交代していいだろと思わなくも無い（というかCruiseどこいったん？）。</p>
			<br>

			<p>ちなみに、あたしは主にHudsonですが、チャンスがあればこっそりTeamCityを忍ばせてます。:-P</p>
			<br>

			<p>（追記２）CloudBeesは川口さんと直接関係が無いんだそうです。ウソ語ってすいません。m(_ _)m</p>
			<p><div class="twitbox">
			<div class="twitter-detail twitter-detail-left">
  <div class="twitter-detail-user">
    <a rel="nofollow" class="twitter-user-screen-name" target="_blank" href="http://twitter.com/kazuchika">
      <img src="http://a2.twimg.com/profile_images/19019582/ksky_normal.jpg" alt="kazuchika" height="48" width="48">
    </a>
  </div>
  <div class="twitter-detail-tweet">
    <p class="twitter-detail-text">
      川口(kkawa)さんはcloudbeeとは直接関係ないんだそうです。何か俺が勝手に勘違いしてただけ？
    </p>
    <p class="twitter-detail-info">
      <a rel="nofollow" target="_blank" href="http://twitter.com/kazuchika/status/25484474148" class="twitter-detail-info-permalink"><span class="twitter-detail-info-date">2010-09-25</span> <span class="twitter-detail-info-time">18:16:57</span></a> <span class="twitter-detail-info-source">via <a rel="nofollow" target="_blank" href="http://twitter.com">Tweetie for Mac</a></span>
    </p>
  </div>
</div>

			<p></div>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] Community ratings</title>
         <link>http://d.hatena.ne.jp/akihirox/20100729#1280404216</link>
         <description>これは便利。 http://hudson-ci.org/changelog.html Hudsonはものすごい勢いでリリースされています。基本的にどんどん問題がfixされてってるので最新版を入れるのが一番良いのですが、ときどきハズレがあるのもまた事実です。人柱的に最新版使いまくるのもありですが、お仕</description>
         <guid isPermaLink="false" />
         <pubDate>Thu, 29 Jul 2010 11:50:16 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>これは便利。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://hudson-ci.org/changelog.html">http://hudson-ci.org/changelog.html</a></li>
			</ul>
			<p>Hudsonはものすごい勢いでリリースされています。基本的にどんどん問題がfixされてってるので最新版を入れるのが一番良いのですが、ときどきハズレがあるのもまた事実です。人柱的に最新版使いまくるのもありですが、お仕事とかだと安定してるのどれ？という話にもなるでしょう。そいやTracLightningに同梱するHudsonのバージョンはどれがいーの？とか聞かれたこともあったような。</p>
			<p>てことで、上記ページの「Community ratings」をクリックすると、実際に使ってみてどーよ？な投票結果が表示されます。</p>
			<p>各バージョン毎に、晴-使ってて問題無いぜー、曇-お薦めしない、雷-試してみたけど前のバージョンに戻したよ＞＜、というのの投票数が表示されます。関連のissueへのリンクもあったりして何気に便利です。</p>
			<p>てことで、使ってる人はがんがん投票しましょう。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] warnings-plugin で ant javacタスクの警告が収集できない</title>
         <link>http://d.hatena.ne.jp/akihirox/20100625#1277458364</link>
         <description>warnings-plugin の 3.6/3.7(最新)で、ant javacで出る警告が収集されなくなってました。またか。 以前の件→ http://d.hatena.ne.jp/akihirox/20090318#1237371345 とりあえずちょろっと直してコミットしといたので、次のバージョンからは大丈夫のはず。せっかくなのでテス</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 25 Jun 2010 09:32:44 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>warnings-plugin の 3.6/3.7(最新)で、ant javacで出る警告が収集されなくなってました。またか。</p>

			<ul>
				<li> 以前の件→ <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/akihirox/20090318#1237371345">http://d.hatena.ne.jp/akihirox/20090318#1237371345</a></li>
			</ul>
			<p>とりあえずちょろっと直してコミットしといたので、次のバージョンからは大丈夫のはず。せっかくなのでテストも突っこんでみたけどこんなんでいいんだろうか。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://fisheye.hudson-ci.org/changelog/Hudson/?cs=32265">http://fisheye.hudson-ci.org/changelog/Hudson/?cs=32265</a></li>
			</ul>
			<p>そういえば日本語環境だと通らないテストがあるんだよな今でも。Ulli(プラグインの作者)て確かドイツだかスイスだかの人だったと思うんだけど、英語環境しか使ってないのかなぁ。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] サービス化したHudsonのHUDSON_HOMEの変更</title>
         <link>http://d.hatena.ne.jp/akihirox/20100227#1267263775</link>
         <description>TracLightningは基本的に全部Cドライブにインストールするので、そのうちHDD容量が厳しくなってきます。とりあえず一番伸びが激しいHudsonさん関連を別の場所へ動かそうとしたのですが、HUDSON_HOME変更しても何故か反映されてない。サービス化してるからなのかなぁ。 まぁ</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 27 Feb 2010 09:42:55 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>TracLightningは基本的に全部Cドライブにインストールするので、そのうちHDD容量が厳しくなってきます。とりあえず一番伸びが激しいHudsonさん関連を別の場所へ動かそうとしたのですが、HUDSON_HOME変更しても何故か反映されてない。サービス化してるからなのかなぁ。</p>
			<p>まぁしゃーないので、一旦サービスをアンインストール(sc delete hudson)して、HUDSON_HOMEを変更し、手動でHudsonを起動→サービス化でHUDSON_HOMEを移せました。やれやれ。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] Hudson v1.343のダッシュボード</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20100130#1264856044</link>
         <description>こんなにも悲しいダッシュボードが他にあるかっ。Hudson v1.343は永久保存版なのでダウンロードはお早めに。:-) 第一発見者はid:ssogabeさん。人が見つけたネタ使ってエントリ書いたのがあたし。:-P → Togetter - さようならSunMicrosystems</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 30 Jan 2010 12:54:04 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>こんなにも悲しいダッシュボードが他にあるかっ。Hudson v1.343は永久保存版なのでダウンロードはお早めに。:-)</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20100130143244" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20100130/20100130143244.png" alt="f:id:masanobuimai:20100130143244p:image" title="f:id:masanobuimai:20100130143244p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>第一発見者は<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/ssogabe/">id:ssogabe</a>さん。人が見つけたネタ使ってエントリ書いたのがあたし。:-P</p>
			<p>→ <a rel="nofollow" target="_blank" href="http://togetter.com/li/4425">Togetter - さようならSunMicrosystems</a></p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] popup-emotional-hudson.user.js：真・情熱的なHudsonさん</title>
         <link>http://d.hatena.ne.jp/akihirox/20091204#1259931163</link>
         <description>id:ssogabeさんがtwitterで↓なことを言ってました。 チャックノリスが怒ってるが、画面の下のほうなのでスクロールしないとみれない。画面オ上に表示されればいいのに。 http://twitter.com/ssogabe/status/6289691656 そういやそうだよなー。せっかくのィモゥショナルなHu</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 04 Dec 2009 12:52:43 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/ssogabe/">id:ssogabe</a>さんがtwitterで↓なことを言ってました。</p>
			<blockquote title="http://twitter.com/ssogabe/status/6289691656" cite="http://twitter.com/ssogabe/status/6289691656">
			<p>チャックノリスが怒ってるが、画面の下のほうなのでスクロールしないとみれない。画面オ上に表示されればいいのに。</p>
			<cite><a rel="nofollow" target="_blank" href="http://twitter.com/ssogabe/status/6289691656">http://twitter.com/ssogabe/status/6289691656</a></cite></blockquote>
			<p>そういやそうだよなー。せっかくのィモゥショナルなHudsonさんも下の方に慎ましやかに出てるだけだもんなー。</p>
			<p>ということでやっつけで自己主張の激しい情熱的なHudsonさんなgreasemonkeyスクリプト書いてみました。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/akihirox/20091204214427" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/a/akihirox/20091204/20091204214427.png" alt="f:id:akihirox:20091204214427p:image" title="f:id:akihirox:20091204214427p:image" class="hatena-fotolife"></a></p>
			<p>ジョブのページで発火するようにincludeを設定して、ビルドが失敗したりするとどばーんとHudsonさんが出てきます。ソースはbitbucket↓。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://bitbucket.org/akihirox/popup-emotional-hudson/src/">  akihirox / popup-emotional-hudson / source &#8212; Bitbucket</a></li>
			</ul>
			<p>window.setTimeoutで5秒毎にビルドの結果を調べてステータスが変わったら自動的に絵を出します。出しっぱもあれなので、クリックすると消えます。ビルドに成功しても自動的に消えます。表示する画像はemotional-hudsonの画像を利用させてもらってます(なので既定ではemotional-hudsonプラグインも必須)。ただソース中の画像のURLを適当に指定すれば任意の画像が表示できるので、チャックノリスでもHud美さんでも好きな画像を表示するといいと思います。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] checkstyle/findbugs/warnings/...プラグインのアップデート</title>
         <link>http://d.hatena.ne.jp/akihirox/20091201#1259632018</link>
         <description>静的解析系のプラグインですが、今回のバージョンアップから「analysis-core」というプラグインが必須になってます。アップデートする際にはこのanalysis-coreもインストールする必要があります。これを入れないとプラグインが見えなくなります。 以下analysis-coreが必要な</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 01 Dec 2009 01:46:58 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>静的解析系のプラグインですが、今回のバージョンアップから「analysis-core」というプラグインが必須になってます。アップデートする際にはこのanalysis-coreもインストールする必要があります。これを入れないとプラグインが見えなくなります。</p>
			<p>以下analysis-coreが必要なプラグインとそのバージョンになります。</p>

			<ul>
				<li> Checkstyle-plugin 3.0</li>
				<li> Warnings-plUgin 3.0</li>
				<li> FindBugs-plugin 4.0</li>
				<li> DRY-plugin 2.0</li>
				<li> PMD-plugin 3.0</li>
				<li> TaskScanner-plugin 4.0</li>
			</ul>
			<p>それと多分Hudson本体のバージョンにも依存しているようで、手元の1.328では設定画面の「高度な設定...」ボタンを押しても追加の設定項目が表示されませんでした。Hudsonを1.336に上げたところ問題無く表示されるようになりました。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Hudson 萌化計画</title>
         <link>http://d.hatena.ne.jp/cactusman/20091026/p1</link>
         <description>まだまだですが、とりあえず。 この秘書の子はCecilia（セシリア）って名前に決めています。 lynxさんに描いていただきました。 http://eclucifer.net/ 感謝。 どういう形にしていくのかはまだ未定ですが、チャック・ノリスやBruce Schneierのようなむさいおっさんが幅をき</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 26 Oct 2009 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>まだまだですが、とりあえず。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/cactusman/20091027004134" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/c/cactusman/20091027/20091027004134.png" alt="f:id:cactusman:20091027004134p:image" title="f:id:cactusman:20091027004134p:image" class="hatena-fotolife"></a></p>
			<p>この秘書の子はCecilia（セシリア）って名前に決めています。</p>
			<p><br/></p>
			<p>lynxさんに描いていただきました。</p>
			<p><a rel="nofollow" target="_blank" href="http://eclucifer.net/">http://eclucifer.net/</a></p>
			<p>感謝。</p>
			<p><br/></p>
			<p>どういう形にしていくのかはまだ未定ですが、<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/ChuckNorris+Plugin">チャック・ノリス</a>や<a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/BruceSchneier+Plugin">Bruce Schneier</a>のようなむさいおっさんが幅をきかせているので、どうにかしないといけません。</p>
			<p>もちろん、<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/torazuka/20090731/1248970549">hud子</a>さんや<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/torazuka/20090802/hudmis">hud美</a>さんもいますので、その辺とどういう位置づけにするのかも考えないといけませんね。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson][griffon] Hudson Assembler</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20091025#1256474442</link>
         <description>http://code.google.com/p/hudson-assembler/ Twitterで @theaviary が拾っていたのに反応したところ，たちどころに作者から返信がありナニモノかが判明した。 プラグインインストール済みのhudson.warを作るアプリです。こっそり作って放置してました。RT なんだこれは？RT</description>
         <guid isPermaLink="false" />
         <pubDate>Sun, 25 Oct 2009 12:40:42 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="http://code.google.com/p/hudson-assembler/">http://code.google.com/p/hudson-assembler/</a></p>
			<br>

			<p>Twitterで @theaviary が拾っていたのに反応したところ，たちどころに作者から返信がありナニモノかが判明した。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20091025213755" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20091025/20091025213755.png" alt="f:id:masanobuimai:20091025213755p:image" title="f:id:masanobuimai:20091025213755p:image" class="hatena-fotolife"></a></p>
			<blockquote title="http://twitter.com/kiy0taka/status/5134793967" cite="http://twitter.com/kiy0taka/status/5134793967">
			<p>プラグインインストール済みのhudson.warを作るアプリです。こっそり作って放置してました。RT なんだこれは？RT @theaviary: Griffon apps in the wild: hudson-assembler <a rel="nofollow" target="_blank" href="http://bit.ly/c0sL0">http://bit.ly/c0sL0</a></p>
			<cite><a rel="nofollow" target="_blank" href="http://twitter.com/kiy0taka/status/5134793967">http://twitter.com/kiy0taka/status/5134793967</a></cite></blockquote>
			<br>

			<p>作者は <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kiy0taka/">id:kiy0taka</a> さん。「こっそり作って放置してました。」言うてるのに，勝手に使って晒し上げる，根性の悪さよ。:-)</p>
			<p>＃いや，こんな便利なの見つけて黙っとれというほうが無理な話かと。</p>
			<br>

			<p>本体はGriffon 0.1.1で作ってあるので，同じバージョンのGriffon持っている人は，HudsonAssemblerディレクトリで以下のコマンド叩くだけで動く。ちょうど，自分とこがそうだったんで，すげー簡単に動いた。</p>
<pre>
$ cd HudsonAssembler
$ griffon run-app
</pre>

			<br>

			<p>Griffonの最新バージョンは0.2なので，"griffon run-app"すると"griffon upgrade"しろ言ってくると思う（試してないから，upgradeして0.2でも動くかどうかは知らない）。</p>
			<br>

			<p>HudsonAssemblerの画面はこんな感じ。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20091025213754" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20091025/20091025213754.png" alt="f:id:masanobuimai:20091025213754p:image" title="f:id:masanobuimai:20091025213754p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>使い方は見ればわかる。プラグインリストからプリインストールしたいプラグインを選んだら，メニューバーから Assemble -&#62; Assemble Hudson を選び，hudson.warの保存先を指定するだけ。あとは，自動的にプラグイン入りの hudson.war を作ってくれる。すげぇ，これ超便利。:-)</p>
			<br>

			<p>コードもシンプルなのでGriffonのサンプルとしても勉強になりますよ（プラグイン情報の取得元が <a rel="nofollow" target="_blank" href="https://hudson.dev.java.net/update-center.json">https://hudson.dev.java.net/update-center.json</a> だったけど，今だったら <a rel="nofollow" target="_blank" href="http://hudson-ci.org/update-center.json">http://hudson-ci.org/update-center.json</a> にしといたほうがいいですね）。</p>
			<br>

			<p>ps.</p>
			<p>Java Web Startのセキュリティモデルを知らないで妄想言いますが，これWeb Start化して，Hudson-ci.orgに置いておいたら便利なんじゃなかろうか，などと思った。</p>
			<p>＃jnlpの配置方法は <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kiy0taka/">id:kiy0taka</a> さんがすでに書いてあった。</p>
			<p>→ <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kiy0taka/20090607/1244354011">GriffonアプリをGoogle Code上で配布する - blog4j 2.0</a></p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] hudson-ci.org</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20091014#1255473386</link>
         <description>Hudsonの公式サイトが http://hudson-ci.org に変わりましたよ。 今の所，最新版の hudson.war だけ置いてありますが，おいおいプラグインとかも hudson-ci.org に載っけるようです。</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 13 Oct 2009 22:36:26 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>Hudsonの公式サイトが <a rel="nofollow" target="_blank" href="http://hudson-ci.org">http://hudson-ci.org</a> に変わりましたよ。</p>
			<p>今の所，最新版の hudson.war だけ置いてありますが，おいおいプラグインとかも hudson-ci.org に載っけるようです。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] eXtreme Feedback Panel Plugin</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20091012#1255354811</link>
         <description>http://wiki.hudson-ci.org/display/HUDSON/eXtreme+Feedback+Panel+Plugin HudsonのカスタムビューをXFDにしてしまおうというプラグイン。こうゆう役に立つのかどうかわかんないプラグインは大好きだ！！ ちなみにこんなんで，PC一台専用にしてXFD代わりにする（できればデ</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 12 Oct 2009 13:40:11 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/HUDSON/eXtreme+Feedback+Panel+Plugin">http://wiki.hudson-ci.org/display/HUDSON/eXtreme+Feedback+Panel+Plugin</a></p>
			<br>

			<p>HudsonのカスタムビューをXFDにしてしまおうというプラグイン。こうゆう役に立つのかどうかわかんないプラグインは大好きだ！！</p>
			<p>ちなみにこんなんで，PC一台専用にしてXFD代わりにする（できればデカいモニタ推奨なんだろうな）。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20091012224305" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20091012/20091012224305.png" alt="f:id:masanobuimai:20091012224305p:image" title="f:id:masanobuimai:20091012224305p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>早速プラグインマネージャからインスコしてみようと思ったけれど，なんでかまだ「利用可能」プラグイン一覧で，このプラグインを見つける事はできなかった。しかたないので，java.netから直接 hpiファイルをダウンロードして手動インストール。</p>
			<p>＃Hudsonトップ -&#62; Hudsonの管理 -&#62; プラグインの管理 -&#62; 高度な設定 -&#62; プラグインのアップロード</p>
			<p>→ <a rel="nofollow" target="_blank" href="https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=11815&expandFolder=11815&folderID=5818">Java.net &#8212; 404 - Not Found</a></p>
			<br>

			<p>hpiファイルをHudsonにアップロードしたら，Hudsonを再起動してインスコ完了。設定のやり方は，以下の通り。</p>
			<br>

			<p>1. Viewの追加</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20091012223750" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20091012/20091012223750.png" alt="f:id:masanobuimai:20091012223750p:image" title="f:id:masanobuimai:20091012223750p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>2. eXtreme Feedback Panelを選択</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/masanobuimai/20091012223751" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/m/masanobuimai/20091012/20091012223751.png" alt="f:id:masanobuimai:20091012223751p:image" title="f:id:masanobuimai:20091012223751p:image" class="hatena-fotolife"></a></p>
			<br>

			<p>3. eXtreme Feedback Panelの設定</p>
			<p>やることは，xfpに表示するJobの指定と，表示するカラム数（1か2）と更新頻度くらい。</p>
			<br>

			<p>手元には，このために作ったサンプルのしょっぱいJobしかないので，まともな動作を確認することはできなかったんだけど，ビルドの進行状況や結果，テストの状況（成功数／総数）なんかが表示されるらしい。詳しくは，プラグインのWikiページにあるスクリーンショットを見た方が早い。</p>
			<br>

			<p>若干の注意事項といえば，サイドメニューが隠れてしまうので，普通のカスタムビューみたくビューの変更や削除を行おうと思ったら，自前でその画面に遷移しないとイケナイってのがある。例えば，"xfp"って名前でeXtreme Feedback Panelのカスタムビューを作ったとすると，下記のようなURLがそのビューのURLになるんで，</p>
<pre>
http://localhost:8080/view/xfp
                      ~~~~~~~~
</pre>

			<br>

			<p>設定を変更したいと思ったら，</p>
<pre>
http://localhost:8080/view/xfp/configure
                              ~~~~~~~~~~
</pre>

			<br>

			<p>削除したい場合は，</p>
<pre>
http://localhost:8080/view/xfp/delete
                              ~~~~~~~
</pre>

			<br>

			<p>ってやってね。</p>
			<p>プラグインのバージョンが上がったら，こんなことしなくても済むようになるも知んないけど。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[java.net][hudson] java.netのアクセス障害とHudsonの挙動不審</title>
         <link>http://d.hatena.ne.jp/kkawa/20091002/p1</link>
         <description>現在までのところ出回っている全てのバージョンのHudson（具体的には1.326まで）には、java.netがアクセス不能になっていると設定フォームをサブミットできないという問題があります。この問題の詳細は http://wiki.hudson-ci.org/display/HUDSON/Dealing+with+java.net+outages に書かれています。この問題は、次の1.327で修正される予定ですが、それまでの間、もしくはアップデートが困難な状況の場合は、上述のページに回避法が解説してあ ...</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 02 Oct 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[Java][Hudson][CI]yumでHudsonをCentOSにインストールする（実験用）</title>
         <link>http://d.hatena.ne.jp/cactusman/20090930/p1</link>
         <description>実験用としてHudson（1.326）のRPM化がなされたため、RedHat系のLinuxでパッケージ管理を行うことできるようになりました。 早速試したところ、CentOS5.2にて特に問題なく動作を確認できました。 以下、yumでインストールした手順を紹介します。 まず、公開鍵をインポートし</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 30 Sep 2009 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>実験用としてHudson（1.326）のRPM化がなされたため、RedHat系のLinuxでパッケージ管理を行うことできるようになりました。</p>
			<p>早速試したところ、CentOS5.2にて特に問題なく動作を確認できました。</p>
			<p>以下、yumでインストールした手順を紹介します。</p>
			<p>まず、公開鍵をインポートします。</p>
<pre>
rpm --import <a rel="nofollow" target="_blank" href="http://hudson-ci.org/redhat/hudson-ci.org.key">http://hudson-ci.org/redhat/hudson-ci.org.key</a>
</pre>
			<p>次に、/etc/yum.repos.d/CentOS-Base.repoをエディタで開き、以下のを文を追記します。</p>
<pre>
#Hudson
[hudson]
name= Hudson
baseurl=<a rel="nofollow" target="_blank" href="http://hudson-ci.org/redhat/">http://hudson-ci.org/redhat/</a>
enabled=0
gpgcheck=1
gpgkey=<a rel="nofollow" target="_blank" href="http://hudson-ci.org/redhat/hudson-ci.org.key">http://hudson-ci.org/redhat/hudson-ci.org.key</a>
</pre>
			<p>yumコマンドでインストールします。</p>
<pre>
yum --enablerepo=hudson install hudson
</pre>
			<p>とりあえず、これでインストール自体は終了です。</p>
			<p>あとJavaの実行パスを指定するために、/etc/sysconfig/hudsonで開き、HUDSON_JAVA_CMD変数にインストールしてあるJavaの実行ファイルを指定します。</p>
<pre>
ex：
HUDSON_JAVA_CMD="/usr/java/jdk1.5.0_16/bin/java"
</pre>
			<p>これで準備は終わりで、サービスを実行するとHudsonが起動します。</p>
<pre>
service hudson start
</pre>
			<p>Winstoneで起動するようになっています。</p>
			<p>また、実行ユーザはhudsonです。</p>
			<p><br/></p>
			<p>今のところ実験用ですが、Redhat5.3での動作報告もされているため、近いうちに正式版のRPMがリリースされると思います。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] Emotional Hudsonにやらしいバグが見つかったよ</title>
         <link>http://d.hatena.ne.jp/masanobuimai/20090911#1252684658</link>
         <description>https://hudson.dev.java.net/issues/show_bug.cgi?id=4417 「Emotional Hudsonをdisabledにしたら、今までビルドが見えなくなったYO」とバグレポをいただいたので、ちょいと調べてみました。 どうやら、Hudsonが生成するbuild.xmlの形式が変わったことが原因のようです。た</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 11 Sep 2009 15:57:38 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="https://hudson.dev.java.net/issues/show_bug.cgi?id=4417">https://hudson.dev.java.net/issues/show_bug.cgi?id=4417</a></p>
			<br>

			<p>「Emotional Hudsonをdisabledにしたら、今までビルドが見えなくなったYO」とバグレポをいただいたので、ちょいと調べてみました。</p>
			<br>

			<p>どうやら、Hudsonが生成するbuild.xmlの形式が変わったことが原因のようです。たとえば、Emotional Hudsonを作成した当時のHudson (1.200)で、Emotional Hudsonを有効にすると以下のようなbuild.xmlが生成されます。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">&#60;build&#62;</span>
       :
  <span class="synIdentifier">&#60;actions </span><span class="synType">class</span>=<span class="synConstant">&#34;java.util.concurrent.CopyOnWriteArrayList&#34;</span><span class="synIdentifier">&#62;</span>
    <span class="synIdentifier">&#60;hudson</span><span class="synComment">.</span><span class="synIdentifier">plugins</span><span class="synComment">.</span><span class="synIdentifier">emotional__hudson</span><span class="synComment">.</span><span class="synIdentifier">EmotionalHudsonAction&#62;</span>
      <span class="synIdentifier">&#60;result </span><span class="synType">reference</span>=<span class="synConstant">&#34;../../../result&#34;</span><span class="synIdentifier">/&#62;</span>
    <span class="synIdentifier">&#60;/hudson</span><span class="synComment">.</span><span class="synIdentifier">plugins</span><span class="synComment">.</span><span class="synIdentifier">emotional__hudson</span><span class="synComment">.</span><span class="synIdentifier">EmotionalHudsonAction&#62;</span>
  <span class="synIdentifier">&#60;/actions&#62;</span>
<span class="synIdentifier">&#60;/build&#62;</span>
</pre>

			<br>

			<p>それが最新のHudson(1.323)では、次のように変わっていました。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">&#60;build&#62;</span>
  <span class="synIdentifier">&#60;actions&#62;</span>
        :
    <span class="synIdentifier">&#60;hudson</span><span class="synComment">.</span><span class="synIdentifier">plugins</span><span class="synComment">.</span><span class="synIdentifier">emotional__hudson</span><span class="synComment">.</span><span class="synIdentifier">EmotionalHudsonAction&#62;</span>
      <span class="synIdentifier">&#60;result&#62;</span>FAILURE<span class="synIdentifier">&#60;/result&#62;</span>
    <span class="synIdentifier">&#60;/hudson</span><span class="synComment">.</span><span class="synIdentifier">plugins</span><span class="synComment">.</span><span class="synIdentifier">emotional__hudson</span><span class="synComment">.</span><span class="synIdentifier">EmotionalHudsonAction&#62;</span>
  <span class="synIdentifier">&#60;/actions&#62;</span>
  <span class="synIdentifier">&#60;number&#62;</span>3<span class="synIdentifier">&#60;/number&#62;</span>
  <span class="synIdentifier">&#60;result </span><span class="synType">reference</span>=<span class="synConstant">&#34;../actions/hudson.plugins.emotional__hudson.EmotionalHudsonAction/result&#34;</span><span class="synIdentifier">/&#62;</span>
</pre>

			<br>

			<p>みると、&#60;hudson.plugins.emotional__hudson.EmotionalHudsonAction&#62;タグの外に出ている&#60;result&#62;タグが悪さをしているようです。</p>
			<p>要するに、Emotional Hudsonをdisabledもしくは削除しても、各ビルドのbuild.xmlはそのままの内容で残り続けるため、各ビルドが存在しなくなったEmotional Hudsonを参照しようとして不具合を起こしているようです。</p>
			<br>

			<p>なお、 1.322 -&#62; 1.321 -&#62; 1.300 -&#62; 1.200 -&#62; 1.275 の順で追跡調査を行ってみましたが、1.200ではEmotional Hudson有効にして数回ビルドを実施、その後に無効化しても本件のような問題は起きませんでした（まあ、そんくらいはテストしてたし）。</p>
			<p>1.275の場合、Emotional Hudson有効時のビルドのランプや天気アイコンが参照できなくなりましたが、ビルドそのものは無効にしても参照することができました。ちなみに、1.275の時のbuild.xmlは次のようになります（1.300系とビミョーに構造が異なります）。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">&#60;build&#62;</span>
  <span class="synIdentifier">&#60;actions </span><span class="synType">class</span>=<span class="synConstant">&#34;java.util.concurrent.CopyOnWriteArrayList&#34;</span><span class="synIdentifier">&#62;</span>
    <span class="synIdentifier">&#60;hudson</span><span class="synComment">.</span><span class="synIdentifier">plugins</span><span class="synComment">.</span><span class="synIdentifier">emotional__hudson</span><span class="synComment">.</span><span class="synIdentifier">EmotionalHudsonAction&#62;</span>
      <span class="synIdentifier">&#60;result&#62;</span>FAILURE<span class="synIdentifier">&#60;/result&#62;</span>
    <span class="synIdentifier">&#60;/hudson</span><span class="synComment">.</span><span class="synIdentifier">plugins</span><span class="synComment">.</span><span class="synIdentifier">emotional__hudson</span><span class="synComment">.</span><span class="synIdentifier">EmotionalHudsonAction&#62;</span>
  <span class="synIdentifier">&#60;/actions&#62;</span>
  <span class="synIdentifier">&#60;number&#62;</span>2<span class="synIdentifier">&#60;/number&#62;</span>
  <span class="synIdentifier">&#60;result </span><span class="synType">reference</span>=<span class="synConstant">&#34;../actions/hudson.plugins.emotional__hudson.EmotionalHudsonAction/result&#34;</span><span class="synIdentifier">/&#62;</span>
</pre>

			<br>

			<p>1.300以降は、報告にあるようにEmotional Hudsonを無効にすると、有効時のビルドが参照できなくなります。おそらくHudsonが、エラーを吐いたビルドに対する扱いをより厳格にするようになったと推測します。できれば、どこが仕様変更点なのか特定したかったんですが、力尽きました（もう寝る）。</p>
			<br>

			<p>ps1.</p>
			<p>本件がEmotional Hudson固有の不具合ではなく、Publisher系のプラグインでEmotional Hudsonと似たようなことを行っていれば再現しそうな感じを受けます。試しに、ci-gameプラグインでも試してみましたが、こちらは&#60;result&#62;タグを展開しないようで、再現はしませんでした。ただ、チャックノリス・プラグインはEmotional Hudsonと同じ匂いがするんで、公開されたら試してみようと思います。再現しなかったら、きっとそこに解決の糸口があるに違いない。:-)</p>
			<p>→ <a rel="nofollow" target="_blank" href="http://blog.cliffano.com/2009/09/10/rfc-chucknorris-plugin/">RFC &#8211; ChuckNorris Plugin &#171;  Blog</a></p>
			<br>

			<p>ps2.</p>
			<p>現時点ではEmotional Hudsonを無効にするると、有効時に実行したビルドが参照できなくなります。可能ならばEmotional Hudsonを有効のままにしておくか、面倒ですが手作業で各build.xmlの該当行を削除するしかないでしょう。根本的な解決を行おうとしたら、プラグイン単独で解決できるかどうかも不確かなのでアイデア募集します。</p>
			<br>

			<p>そんなわけで、もれなくhud子さんとhud美さんにも同じ不具合がついてきてますんで、ご注意ください。</p>
			<p>＃すんません、すんません。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] FindBugs プラグインの日本語化</title>
         <link>http://d.hatena.ne.jp/akihirox/20090810#1249865579</link>
         <description>翻訳したメッセージファイルとヘルプファイルをコミットしました。次のリリースでもろもろ日本語になるはずです。 ただこれでもFindBugs警告の詳細な説明は英語のままです。 とりあえずこれを日本語化したい場合には、Hudsonのホームディレクトリ以下、/plugins/findbugs/WE</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 10 Aug 2009 00:52:59 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>翻訳したメッセージファイルとヘルプファイルをコミットしました。次のリリースでもろもろ日本語になるはずです。</p>
			<p>ただこれでもFindBugs警告の詳細な説明は英語のままです。</p>
			<p>とりあえずこれを日本語化したい場合には、Hudsonのホームディレクトリ以下、/plugins/findbugs/WEB-INF/classes/hudson/plugins/findbugs/にある、Messages.xmlをMessages_ja.xmlで差し替えれば、現行のものでも日本語しか出なくなるはずです。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson] Sun Continuous Integration Server</title>
         <link>http://d.hatena.ne.jp/kkawa/20090806/p1</link>
         <description>思ったよりずいぶん時間が掛かってしまいましたが、遂に、Sun Microsystemsから公式にHudsonの有償サポートが「発売」されました。商用などHudsonが開発チームの重要なインフラになっている場合に、便利かと思います。 この製品は「Sun Continuous Integration Server」(SCIS)という名前で、GlassFish Portfolioの一環として提供されます。従って、Portfolioを買っていただくとHudsonのサポートが入っている、という感じになります。こ ...</description>
         <guid isPermaLink="false" />
         <pubDate>Thu, 06 Aug 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[Hudson] Sun Continuous Integration Server</title>
         <link>http://d.hatena.ne.jp/akihirox/20090805#1249477711</link>
         <description>英語の記事しかなくて読み間違えてるかもしれませんが。 Announcing Sun Continuous Integration Server | Java.net GlassFish Portfolioっていう製品のなかにHudsonベースのSun Continuous Integration Server(SCIS)が含まれることになったとのこと。これにより、Sunの有償</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 05 Aug 2009 13:08:31 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>英語の記事しかなくて読み間違えてるかもしれませんが。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/kohsuke/archive/2009/08/announcing_sun.html">Announcing Sun Continuous Integration Server | Java.net</a></li>
			</ul>
			<p>GlassFish Portfolioっていう製品のなかにHudsonベースのSun Continuous Integration Server(SCIS)が含まれることになったとのこと。これにより、Sunの有償サポートが受けられる、という認識でいいのかな？ちうか日本のSunのサイトに全然情報が無くてよくわからない。。。</p>
			<p>Base（1マスター＆1スレーブまで）で年999ドルというのは個人で出すにはしんどいですが、法人なら全然アリな値段、、、なのかなぁ？</p>
			<p>（追記）おぉ、日本語の記事きたー。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kkawa/20090806/p1"> Sun Continuous Integration Server - 川口耕介の日記</a></li>
			</ul>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson] 翻訳作業用対訳コーパスの作成</title>
         <link>http://d.hatena.ne.jp/akihirox/20090723#1248335563</link>
         <description>プラグインの翻訳作業をしてると、頻繁に使われてる用語の訳語は先例にあわせないとチグハグな印象になってしまいます。なので、既に使われてそうな単語はどんな訳語を当ててるのかなーと探したりとかした方が良いはずです。めんどくさいですが。 てことで、プロパティファ</description>
         <guid isPermaLink="false" />
         <pubDate>Thu, 23 Jul 2009 07:52:43 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>プラグインの翻訳作業をしてると、頻繁に使われてる用語の訳語は先例にあわせないとチグハグな印象になってしまいます。なので、既に使われてそうな単語はどんな訳語を当ててるのかなーと探したりとかした方が良いはずです。めんどくさいですが。</p>
			<p>てことで、プロパティファイルをざっくりさらって対訳コーパスを作成するスクリプトを書いてみました。出力はこんな感じ。</p>
			<blockquote>
			<p>-----------------------------------------------------------------</p>
			<p>property-filname    :.&#92;plugins&#92;warnings&#92;src&#92;main&#92;resources&#92;hudson&#92;plugins&#92;warnings&#92;Messages.properties</p>
			<p>property-ja-filename:.&#92;plugins&#92;warnings&#92;src&#92;main&#92;resources&#92;hudson&#92;plugins&#92;warnings&#92;Messages_ja.properties</p>
			<p>---</p>
			<p>Warnings.ProjectAction.Name:(en):Compiler Warnings</p>
			<p>Warnings.ProjectAction.Name:(ja):コンパイラの警告</p>
			<p>　</p>
			<p>Warnings.ResultAction.MultipleNewWarnings:(en):{0} new warnings</p>
			<p>Warnings.ResultAction.MultipleNewWarnings:(ja):{0} 個の新しい警告</p>
			<p>...</p>
			</blockquote>
			<p>これをテキストファイルにでも落としておいて、翻訳作業で出てきた単語をテキスト検索で探します。先例があれば例文付きで見つかりますし、無ければ心置きなく訳語を当てることができます。Hudsonは先達のおかげで日本語化がとても進んでるので、これを利用しない手は無いと思うのですよ。</p>
			<p>以下作成したPythonのスクリプトです。</p>
<pre class="syntax-highlight">
<span class="synPreProc">import</span> os

<span class="synStatement">def</span> <span class="synIdentifier">get_prop_dict</span>(fname):
  f = open(fname)
  lines = f.readlines()
  f.close()

  d = {}
  nextline = False
  <span class="synStatement">for</span> line <span class="synStatement">in</span> lines:
    <span class="synStatement">if</span> nextline:
      val = val + '<span class="synConstant"> </span>' + line.strip().rstrip('<span class="synSpecial">&#92;n</span>')
      <span class="synStatement">if</span> val.endswith('<span class="synSpecial">&#92;&#92;</span>'):
        val = val.rstrip('<span class="synSpecial">&#92;&#92;</span>')
      <span class="synStatement">else</span>:
        d[key] = val
        nextline = False
        
    pos = line.find('<span class="synConstant">=</span>')
    <span class="synStatement">if</span> pos != -1:
      key = line[:pos]
      val = line[pos+1:].rstrip('<span class="synSpecial">&#92;n</span>')

      <span class="synStatement">if</span> val.endswith('<span class="synSpecial">&#92;&#92;</span>'):
        val = val.rstrip('<span class="synSpecial">&#92;&#92;</span>')
        nextline = True
      <span class="synStatement">else</span>:
        d[key] = val
        nextline = False

  <span class="synStatement">return</span> d

<span class="synStatement">def</span> <span class="synIdentifier">property_out</span>(property, ja_property):
  <span class="synStatement">print</span> '<span class="synConstant">-----------------------------------------------------------------</span>'
  <span class="synStatement">print</span> '<span class="synConstant">property-filname    :</span>' + property
  <span class="synStatement">print</span> '<span class="synConstant">property-ja-filename:</span>' + ja_property
  <span class="synStatement">print</span> '<span class="synConstant">---</span>'

  prop_dict = get_prop_dict(property)
  prop_dict_ja = get_prop_dict(ja_property)

  <span class="synStatement">for</span> key <span class="synStatement">in</span> prop_dict_ja.keys():
    <span class="synStatement">if</span> prop_dict.has_key(key):
      <span class="synStatement">print</span> key + '<span class="synConstant">:(en):</span>' + prop_dict[key]
      <span class="synStatement">print</span> key + '<span class="synConstant">:(ja):</span>' + prop_dict_ja[key].decode('<span class="synConstant">unicode_escape</span>').encode('<span class="synConstant">shift_jis</span>')
      <span class="synStatement">print</span>

<span class="synStatement">for</span> root, dirs, files <span class="synStatement">in</span> os.walk('<span class="synConstant">.</span>'):
  <span class="synStatement">for</span> f <span class="synStatement">in</span> files:
    <span class="synStatement">if</span> f.endswith('<span class="synConstant">.properties</span>'):
      property = os.path.join(root, f)
      ja_property = property.replace('<span class="synConstant">.properties</span>', '<span class="synConstant">_ja.properties</span>')
      <span class="synStatement">if</span> os.path.exists(ja_property):
        property_out(property, ja_property)
</pre>

			<p>ここらへんみんなどうしてるのかなー。きちんと訳語辞書とか作ってるのかなやっぱり。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[hudson][JavaOne] Hudson関連のJavaOneイベント</title>
         <link>http://d.hatena.ne.jp/kkawa/20090528/p1</link>
         <description>JavaOneも数日後に迫り、準備にてんやわんやです。Hudson関係では次のようなイベントを予定しています。  日曜日には、アンカンファレンス(要登録)があります。また、その後近所の有名な飲み屋「Thirsty Bear」でパーティーがあります(要予約：RSVP-ThirstyBear2009 at sun dot com)。アンカンファレンスは、比較的長い時間みんなが一堂に会することの出来る貴重な機会なので、Hudsonのユーザーの方も、プラグイン開発の質問がある方も、あるいは単に他のユーザーがど ...</description>
         <guid isPermaLink="false" />
         <pubDate>Thu, 28 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[hudson] Hudson swarmプラグイン</title>
         <link>http://d.hatena.ne.jp/kkawa/20090523/p1</link>
         <description>職場のHudsonクラスタには予算がついていないので、性能の良い計算機を集めるのがなかなか大変です。これは、Hudsonクラスタを作る人たちには共通の悩みではないかと思います。いきおい、同僚の古いコンピューターをリサイクルすることになるのですが、ここに罠があります。  というのも、新しいコンピュータを買った人のところに行って「古くなったコンピュータ、使ってないみたいだからちょうだい」といっても、中々首を縦にふってもらえないのですね。皆さんも経験あると思うのですが、古くなったコンピュータでも、ひょっとし ...</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 23 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[hudson][ec2] Hudson EC2 プラグイン</title>
         <link>http://d.hatena.ne.jp/kkawa/20090516/p1</link>
         <description>CIのビルドやテストには、往々にして様々な環境を用意する必要があります。例えば、職場では、GlassFishのテストには必ずLinux,Windows,Solarisの３種の環境が必要ですし、JDKに至っては、バージョンの異なる10以上の異なる環境でテストが行われます。こうした環境を実物のコンピュータに用意してもよいのですが、テストの負荷は一定ではないので、（土日夜間など）計算機資源が過小に利用されているか、（リリース直前など）計算機資源が埋まってしまって待ちが発生するか、どちらかになりがちです。   ...</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 16 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[hudson][pxe] Hudson PXE plugin</title>
         <link>http://d.hatena.ne.jp/kkawa/20090512/p1</link>
         <description>Hudsonのクラスタを作る上での障害の一つは、PCのインストール作業です。自分自身、仕事で使っているHudsonクラスタが大きくなるにつれて、このOSのインストール作業がどんどん煩雑になってきました。インストールには通常メディアの入ったCD-ROMが必要ですし、PC側にはドライブも必要です（そして、なぜか使い古しのPCはCD-ROMドライブが不安定なものが多いのです。）そして、往々にして、CDはどこかのドライブに入れ忘れたまま、ということになります。  更に、インストールそのものも非常に退屈な作業で ...</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 12 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[hudson] Hudson CLIの内部構造</title>
         <link>http://d.hatena.ne.jp/kkawa/20090511/p1</link>
         <description>id:masanobuimaiさんがHudson CLIの仕組みを調べてくださったので、ここで仕組みをちょっと解説しようかな、と。  CLIは、まずHudsonに２つのHTTPリクエストをします。片方はサーバからCLIにバイト列を送るために使い、もう片方はCLIからサーバにバイト列を送るために使います。（なのでCLIはサーバ上では２つもスレッドを消費するのですが、それはそれ。）  この双方向バイトストリームの上にリモーティングインフラ(hudson.remoting.*)を載せて、これで分散処理環境が ...</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 11 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[hudson] Hudson Selenium PluginでHudsonクラスタをSelenium Gridに</title>
         <link>http://d.hatena.ne.jp/kkawa/20090510/p2</link>
         <description>Hudsonのクラスタを一瞬でSelenium Gridに変身させる「Hudson Selenium Plugin」を公開しました。このプラグインを使うと、クラスタ上のマシンに逐一Selenium Gridをインストールして回ることなく、Selenium Gridを利用することができます。先日リリースしたHudson Hadoop Pluginのように、既存のHudsonインフラを多用途に利用するためのプラグインです。  このプラグインをHudsonにインストールすると、HudsonマスターにSele ...</description>
         <guid isPermaLink="false" />
         <pubDate>Sun, 10 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[hudson][groovy] Hudson CLIとGroovy shell</title>
         <link>http://d.hatena.ne.jp/kkawa/20090503/p1</link>
         <description>「GUIから何でも出来る」というのはHudsonの大事なウリの一つなのですが、その一方、自動化やスクリプトを書くために、コマンドラインインターフェース(CLI)が便利な局面と言うのは結構あります。HudsonにはREST APIがついてはいますが、これはプログラムを書く人向けで、管理者の自動化などには、汎用RESTクライアントの不足もあって、あまり便利ではありません。そこで、Hudson 1.302から、HudsonにはCLIが追加されました。CLIのjarは、お使いのHudsonのhttp://se ...</description>
         <guid isPermaLink="false" />
         <pubDate>Sun, 03 May 2009 00:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[Java][プログラミング][Hudson]Pluginの仕様変更</title>
         <link>http://d.hatena.ne.jp/cactusman/20090328/p1</link>
         <description>1.286からHudson Pluginの仕様が少し変わりました。 PluginImplクラスを使わなくなり、代わりにExtensionアノーテーションを使うようになりました。 各ExtensionPointによってやり方は少し違ってくるかもしれませんが、大枠として、 DescriptorImplをnewしているpublic stat</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 28 Mar 2009 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>1.286からHudson Pluginの仕様が少し変わりました。</p>
			<p>PluginImplクラスを使わなくなり、代わりにExtensionアノーテーションを使うようになりました。</p>
			<p>各ExtensionPointによってやり方は少し違ってくるかもしれませんが、大枠として、</p>
			<p>DescriptorImplをnewしているpublic static finalな変数に@Extensionを付けるといいみたいです。</p>
			<p>Twitter Pluginの場合はこれだけでいけました。</p>
			<p>他にもJavaDocを見ているとExtensionFinderというクラスがあって、DIを使用することも可能のようです。</p>
			<p>細かいですが、Pluginがより簡単に作れるようになっていますね。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Java][Hudson][プログラミング]Seasar Conference 2009 Whiteに参加して</title>
         <link>http://d.hatena.ne.jp/cactusman/20090325/p1</link>
         <description>全然タイムリーではないですが、3/14 Seasar Conference 2009 Whiteにて、「HudsonによるOSS開発」というタイトルで発表してきました。 HudsonによるOss開発View more presentations from cactusman. 内容はデブサミのときに発表したものを焼きなおして、少し深く行っており</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 25 Mar 2009 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>全然タイムリーではないですが、3/14 Seasar Conference 2009 Whiteにて、「HudsonによるOSS開発」というタイトルで発表してきました。</p>
			<p><div style="width:425px;text-align:left;" id="__ss_1195014"><a rel="nofollow" target="_blank" href="http://www.slideshare.net/cactusman/hudsonoss?type=presentation" style="font:14px Helvetica, Arial, Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Hudson&#x00306b;&#x003088;&#x00308b;Oss&#x00958b;&#x00767a;">HudsonによるOss開発</a><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=hudsonoss-090325061742-phpapp01&stripped_title=hudsonoss" type="application/x-shockwave-flash" width="425" height="355"></iframe><div style="font-size:11px;font-family:tahoma, arial;height:26px;padding-top:2px;">View more <a rel="nofollow" target="_blank" href="http://www.slideshare.net/" style="text-decoration:underline;">presentations</a> from <a rel="nofollow" target="_blank" href="http://www.slideshare.net/cactusman" style="text-decoration:underline;">cactusman</a>.</div></div>
			<p>内容はデブサミのときに発表したものを焼きなおして、少し深く行っております。</p>
			<p>なので、デブサミのときにも来られた方がいらしたら、申し訳ない感じです。</p>
			<p>また、もっと基本的なことや反対にもっとマニアックなことが知りたかった方々にとって、物足りなかったのかなと思います。</p>
			<p>この辺、どこにターゲットを置くか、どのあたりまで広げるかは、来ていただく方々の層が読めないとうまくいかない感じです。</p>
			<p>あと、Jiemamyの宣伝ととられていたかもしれませんが、この辺はどういう風に開発を行っているのか、というところが大切になると考えていたので、詳細に説明しました。</p>
			<p>この中でHudsonのバックアップは取っていないという話をしましたが、バックアップはしなくてよい、という話ではないです。</p>
			<p>まずはバックアップする必要があるかどうか、ということをまずは考えるべきじゃないかと考えています。</p>
			<p>例えば、開発者にとっては直近のビルド結果が大切なので、バックアップを頻繁にしなくてもいいと思いまし、まったくなくても特に問題になることは少ないと考えています。</p>
			<p>なんならもう一回環境を作って、ビルドしなおせばいいだけですから。</p>
			<p>しかし、マネージャにとっては今までのビルド結果は今後のために必要だと思います。</p>
			<p>また、Hudson自体のバックアップはともかく、CIサーバの環境構築に手間がかかる場合は、CIサーバを丸ごと仮想化にして定期的にスナップショットを取るのは有効になります。</p>
			<p>この辺は、いろんな要素がからんでくるところだと思いますので、何が最適解かというのは環境や目的によって大きく変わるところでしょうね。</p>
			<p>ちなみに、Hudson Backup Pluginは最近<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kiy0taka/">id:kiy0taka</a>さんが作っています。</p>
			<p><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kiy0taka/20090316/1237215917">http://d.hatena.ne.jp/kiy0taka/20090316/1237215917</a></p>
			<p><br></p>
			<p>と、自分が発表した話はこれぐらいで、自分の発表時間以外は以下の発表を聞いていました。</p>

			<ul>
				<li>Wicketとシステム開発の現場（<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/t_yano/">id:t_yano</a>）</li>
				<li>テスト駆動開発のこころ (TDD はじめの一歩)(<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/t-wada/">id:t-wada</a>)</li>
				<li>モダンSwing - S2SwingでGUI開発はどう変わるか(<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kaiseh/">id:kaiseh</a>)</li>
				<li>ライトニングトークス</li>
			</ul>
			<p><br></p>
			<h4>Wicketとシステム開発の現場</h4>
			<p>新しいフレームワークであるWicketがなぜ必要であるのか、開発をどういう風に進めていくのか、を丁寧に説明していました。</p>
			<p>自分はStrutsをまったく知らないためあえてStrutsから始める必要がないため、おろそかにしてしまいがちな部分であることを再認識しました。</p>
			<p>また、Wicketで何かしらWebアプリケーションを作りたくなる気にさせてくれました。</p>
			<p>ちょうど本もでましたしねｗ</p>
			<p>あと、偉い人という無茶振りされて困惑しましたよ。</p>
			<p><br></p>
			<h4>テスト駆動開発のこころ (TDD はじめの一歩)</h4>
			<p>TDDの実践について分かりやすいセッションでした。</p>
			<p>特に、短時間（3〜5分程度）で終わらないテストはUnitTestではない、といったことやレガシーコードとはテストのないコードである、という言葉は印象的でした。</p>
			<p>今だと昔と違って日本語の書籍もそれなりにあるし、動画でやり方をまねることもできるので、今後参考にしていこうと思いまし。</p>
			<p><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/t-wada/">id:t-wada</a>さんにも無茶振りされて、困惑しました。</p>
			<p><br></p>
			<h4>モダンSwing - S2SwingでGUI開発はどう変わるか</h4>
			<p>Tophatenarで有名な<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kaiseh/">id:kaiseh</a>さんのセッションでした。</p>
			<p>Swing Application Framework（JSR 296）だけだと使いにくいので、使いやすくしたのがS2Swingという位置づけのようです。</p>
			<p>いろいろと冗長になりがちなコードを、すっきりと書けるようにすることを心がけているようです。</p>
			<p>発表を見ていて思ったのですが、練習されたとはいえデモ作成のタイピングが早く、感嘆したところです。</p>
			<p>あと、ついにGUIアプリにもDIが使われ、DIからは逃れることができない状況になりつつあります。</p>
			<h4>ライトニングトークス</h4>
			<p>前回のLTも楽しかったのですが、今回もやってくれました。</p>
			<p>かなり面白かったです。</p>
			<p>特に「ソースコードリーディングのすすめ（仮）」でソースコードのタイポや一貫性のなさといったところはLTで話す分には面白かったですが、実際目にしたりするとひどくがっかりするところなので、気をつけようと思います。</p>
			<p>また、LT後の木村さんのEclipse Plugin「ギブス」のデモがありまして、そこでヨシオリさんが公開処刑の刑にあってました</p>
			<p><br></p>
			<p>このあと打ち上げに行ってといつものパターンのようでしたが、残念ながら裏番組にいろいろと楽しそうなものが結構あって、見ることができなくて残念でした。</p>
			<p>そういうこともあるので、同じ内容でも繰り返し行う必要はあるのかなと思います。</p>
			<p>あと、無茶振りは止めてください。</p>
			<p>自分は竹迫メソッドなんてできないので、勘弁してください。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Seasar Conference 2009 White</title>
         <link>http://d.hatena.ne.jp/cactusman/20090312/p1</link>
         <description>3/14のSeasar Conference 2009 Whiteにて「HudsonによるOSS開発」というタイトルで話してきます。 今回はデブサミと打って変わって、ディープな内容にシフトした発表になると思います。 Jiemamyでの運用の話がメインになりますが、Hudsonの運用の話が聞きたいと言う方はどう</description>
         <guid isPermaLink="false" />
         <pubDate>Thu, 12 Mar 2009 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>3/14の<a rel="nofollow" target="_blank" href="http://event.seasarfoundation.org/sc2009white/">Seasar Conference 2009 White</a>にて「HudsonによるOSS開発」というタイトルで話してきます。</p>
			<p>今回はデブサミと打って変わって、ディープな内容にシフトした発表になると思います。</p>
			<p>Jiemamyでの運用の話がメインになりますが、Hudsonの運用の話が聞きたいと言う方はどうでしょうか？</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Hudsonのバックアップ</title>
         <link>http://d.hatena.ne.jp/w650/20090304/1236145491</link>
         <description>Administering Hudsonによると、HUDSON_HOMEフォルダを丸ごとコピーすればよいみたいです（Hudsonの動作中でも可能）。ただ、ジョブの数が多いとHUDSON_HOMEのサイズがかなり大きくなってしまうため、各ジョブのworkspaceフォルダ以下は除いて、zipで固めるようにしました。</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 04 Mar 2009 05:44:51 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="http://wiki.hudson-ci.org/display/JA/Administering+Hudson">Administering Hudson</a>によると、HUDSON_HOMEフォルダを丸ごとコピーすればよいみたいです（Hudsonの動作中でも可能）。ただ、ジョブの数が多いとHUDSON_HOMEのサイズがかなり大きくなってしまうため、各ジョブのworkspaceフォルダ以下は除いて、zipで固めるようにしました。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">&#60;project </span><span class="synType">default</span>=<span class="synConstant">&#34;backup&#34;</span><span class="synIdentifier"> </span><span class="synType">basedir</span>=<span class="synConstant">&#34;.&#34;</span><span class="synIdentifier">&#62;</span>
	<span class="synIdentifier">&#60;property </span><span class="synType">environment</span>=<span class="synConstant">&#34;env&#34;</span><span class="synIdentifier"> /&#62;</span>
	<span class="synIdentifier">&#60;target </span><span class="synType">name</span>=<span class="synConstant">&#34;backup&#34;</span><span class="synIdentifier"> &#62;</span>
		<span class="synIdentifier">&#60;zip </span><span class="synType">basedir</span>=<span class="synConstant">&#34;${env.HUDSON_HOME}&#34;</span>
<span class="synIdentifier">			</span><span class="synType">destfile</span>=<span class="synConstant">&#34;hudson.zip&#34;</span>
<span class="synIdentifier">			</span><span class="synType">excludes</span>=<span class="synConstant">&#34;war/**, jobs/*/workspace/**, *.log&#34;</span><span class="synIdentifier">&#62;</span>
		<span class="synIdentifier">&#60;/zip&#62;</span>
	<span class="synIdentifier">&#60;/target&#62;</span>
<span class="synIdentifier">&#60;/project&#62;</span>
</pre>

			<p>workspaceの他にも、warフォルダとlogファイルはいらなそうだったので除きました。</p>
			<p>タスクから実行しても良いのですが、せっかくなのでバックアップ対象のHudsonで実行するようにしました。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Selenium][Hudson]Windowsサービスとして動作するHudsonからSeleniumのテストを実行する</title>
         <link>http://d.hatena.ne.jp/w650/20090303/1236048412</link>
         <description>以前試したときには、IEの起動に失敗するため、サービスとして起動したHudsonからSeleniumのテストを実行できないという結論になってました。しかし、Hudsonのサービスを実行するアカウントをローカルシステムアカウントにして「デスクトップとの対話をサービスに許可」にチ</description>
         <guid isPermaLink="false" />
         <pubDate>Tue, 03 Mar 2009 02:46:52 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/w650/20071113/p3">以前試したとき</a>には、IEの起動に失敗するため、サービスとして起動したHudsonからSeleniumのテストを実行できないという結論になってました。しかし、Hudsonのサービスを実行するアカウントをローカルシステムアカウントにして「デスクトップとの対話をサービスに許可」にチェックを入れておけば、IEも起動できてテストを実行することができました。サービスとして実行しているSlaveもOKでした。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/w650/20090302141126" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/w/w650/20090302/20090302141126.jpg" alt="f:id:w650:20090302141126j:image" title="f:id:w650:20090302141126j:image" class="hatena-fotolife"></a></p>
			<p>ログインしているコンソールに下のようなダイアログが表示されます(Windows Server 2008)。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/w650/20090302141125" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/w/w650/20090302/20090302141125.jpg" alt="f:id:w650:20090302141125j:image" title="f:id:w650:20090302141125j:image" class="hatena-fotolife"></a></p>
			<p><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/w650/20090227/1235710078">SeleniumからInternetExplorerが起動できない場合</a>というエントリでも書いたのですが、IEのポップアップブロックを無効にする必要があります。ローカルシステムアカウントでIEが起動されるので、レジストリを直接変更して、ポップアップブロックを無効にしておきます。</p>
			<p>regeditにて、</p>
<pre>
HKEY_USERS&#92;S-1-5-18&#92;Software&#92;Microsoft&#92;Internet Explorer&#92;New Windows
</pre>
			<p><del datetime="2009-03-03T15:26:47+09:00">PopupMgrの値を0にします。</del></p>
			<p>↑違いました。PopupMgrは2003だと文字列型で値が"no"にします。</p>
			<p><a rel="nofollow" target="_blank" href="http://www.microsoft.com/japan/technet/community/columns/scripts/sg0605.mspx">参考）Tales from the Script: 2005 年 6 月 - Internet Explorer のポップアップ ブロックのスクリプトを作成する</a></p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Developers Summit 2009にて初参加で発表</title>
         <link>http://d.hatena.ne.jp/cactusman/20090214/p1</link>
         <description>Developers Summit（デブサミ）に行ってきました。 前々から行ってみたかったのですが、まさか初参加にして初スピーカになるとは思いもよらなかったです。 急きょスピーカーになることになったので、あまり準備がはかどらなかったので、準備に時間が割けなかったのが痛かっ</description>
         <guid isPermaLink="false" />
         <pubDate>Sat, 14 Feb 2009 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>Developers Summit（デブサミ）に行ってきました。</p>
			<p>前々から行ってみたかったのですが、まさか初参加にして初スピーカになるとは思いもよらなかったです。</p>
			<p>急きょスピーカーになることになったので、あまり準備がはかどらなかったので、準備に時間が割けなかったのが痛かったです。</p>
			<p>当日、10時過ぎに会場入りし、会場は目黒雅叙園でここに来るのも初めてでしたが、結婚式場ということもあって、おしゃれな場所でした。</p>
			<p>発表者控え室にて資料の最終調整をしていると、和田（<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/t-wada/">id:t-wada</a>）さんが様子を見に来られ、もうひとつの控え室にいるとのこと。</p>
			<p>岩切（<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/IWAKIRI/">id:IWAKIRI</a>）さんも来られ、スーツコスプレでしょ、と見透かされました。</p>
			<p>女性の勘はすごいですね。</p>
			<p>で、今いるところは知ってる人がいないので、横の控室に移ることにしました。</p>
			<p>角谷さんやせとさんたちも多々見受けられる中、<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/hasegawayosuke/">id:hasegawayosuke</a>さんの隣で作業していると竹迫さんが来られ、ここで初めて会えることに。</p>
			<p>Twitterでからむことがあったので、実際に会って話ができたのが良かったです。</p>			<p>そのあとは<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/HolyGrail/">id:HolyGrail</a><span class="footnote"><a rel="nofollow" name="fn1" title="&#x004f1a;&#x003046;&#x00306e;&#x00306f;&#x003053;&#x003053;&#x00304c;&#x00521d;&#x003081;&#x003066;">*1</a></span>とイチイさんが来て、ヨシオリさん来ないっすねーみたいな話をしつつ、お昼ごはんを食べつつ最終調整へ。</p>
			<p><br></p>
			<p>13:10から発表で、持ち時間は50分で実際は45分でした。</p>
			<p><div style="width:425px;text-align:left;" id="__ss_1027783"><a rel="nofollow" target="_blank" href="http://www.slideshare.net/cactusman/hudson-1027783?type=powerpoint" style="font:14px Helvetica, Arial, Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Hudson&#x00306b;&#x003088;&#x00308b;&#x0030a4;&#x0030f3;&#x0030af;&#x0030ea;&#x0030e1;&#x0030f3;&#x0030bf;&#x0030eb;&#x00306a;&#x00958b;&#x00767a;">Hudsonによるインクリメンタルな開発</a><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=devsumi2009hudson-1234631993062779-1&stripped_title=hudson-1027783" type="application/x-shockwave-flash" width="425" height="355"></iframe><div style="font-size:11px;font-family:tahoma, arial;height:26px;padding-top:2px;">View more <a rel="nofollow" target="_blank" href="http://www.slideshare.net/" style="text-decoration:underline;">presentations</a> from <a rel="nofollow" target="_blank" href="http://www.slideshare.net/cactusman" style="text-decoration:underline;">cactusman</a>. (tags: <a rel="nofollow" target="_blank" href="http://slideshare.net/tag/ci" style="text-decoration:underline;">ci</a> <a rel="nofollow" target="_blank" href="http://slideshare.net/tag/devsumi2009" style="text-decoration:underline;">devsumi2009</a>)</div></div>
			<p>スライド数は多くオーバーするのはまずいと思っていましたので、ちょと短いぐらいでおさまって良かったです。</p>
			<p>お客さんがどういう感じか読みづらかったので、発表後もも少し操作の説明を多くするのほうがいいのでは、いやCIの概念の説明をおおくするほうがいいのでは、いまいちつかみきれない感触でした。</p>
			<p>それでも、<a rel="nofollow" class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/Hudson">Hudson</a>について、CIについて理解してもらう一歩になったんじゃないかな、と思います。</p>
			<p><br></p>
			<p>発表後は質問コーナーへ移動するときに、高井さんと偶然会うことになりまして、おもしろいものない？という無茶ぶりされました。</p>
			<p>話を終えて、質問コーナーで待機していたのですが、人がほとんど来なかったですね。</p>
			<p>まぁ、そりゃそうか、と思ったのですが、ヨシオリさんたちのセッションも一人も来なかったようなので、そういうものかと思いました。</p>
			<p>その質問コーナーも時間が来たので控室に戻ると、ヨシオリさんが来ていて資料作りをしていて、にぽたんさんも到着。</p>
			<p><br></p>
			<p>自分は展示ブースを見ることにしました。</p>
			<p>オブラブブースに行くとドラ娘（<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/ngtyk/">id:ngtyk</a>）に「オブラブ合宿に来ないのに、java-ja温泉に行くのね。ヒドイ。」と。</p>
			<p>返す言葉がございません。</p>
			<p>一通り見終わると、残りのセッションを見ることにしました。</p>
			<p>さすがに最後のセッションになると疲労困憊で眠気との戦いでした。</p>
			<p>そのセッションも終わると撤収作業をして、6人ほどで打ち上げに行きました。</p>
			<p>そこではじめて目の前の人が「はまちちゃん」その人だと知り、びっくりしましたが、なかなか気さくな方でおもしろい飲み会になりました。</p>
			<p>なんだかんだで気づいたら4時間ぐらい飲んでいまして、ものすごく楽しい飲み会でした。</p>
			<p><br></p>
			<p>最後になりますが、</p>
			<p>角谷さん、デブサミで発表枠を持ちかけてくださって、ありがとうございました。</p>
			<p>和田さん、テスト枠での発表になり、いろいろとアドバイスを頂き、ありがとうございました。</p>
			<p>岩切さん、デブサミに発表者として参加させていただき、ありがとうございました。</p>
			<p>そして、皆さん、お疲れ様でした。</p>
		</div>
		<div class="footnote">
			<p class="footnote"><a rel="nofollow" name="f1">*1</a>：会うのはここが初めて</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Slaveのサービスが起動しなくなっていた</title>
         <link>http://d.hatena.ne.jp/w650/20090130/1233297298</link>
         <description>Hudsonで分散ビルド環境を構築しているのですが、いつの間にかSlaveとして動作しているWindowsマシンのサービスが停止していました。いつの間にか、、ってことはないので、よく覚えていないのですが多分アップデートしたんだと思います。 2009/01/28 15:27:36 hudson.remoti</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 30 Jan 2009 06:34:58 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>Hudsonで分散ビルド環境を構築しているのですが、いつの間にかSlaveとして動作しているWindowsマシンのサービスが停止していました。いつの間にか、、ってことはないので、よく覚えていないのですが多分アップデートしたんだと思います。</p>
<pre>
2009/01/28 15:27:36 hudson.remoting.Channel$ReaderThread run
致命的: I/O error in channel channel
java.net.SocketException: Software caused connection abort: recv failed
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.fill(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source)
	at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source)
	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at hudson.remoting.Channel$ReaderThread.run(Channel.java:637)
...
2009/01/28 15:27:48 hudson.remoting.jnlp.Main$CuiListener error
致命的: unexpected stream termination
java.io.EOFException: unexpected stream termination
	at hudson.remoting.Channel.&#38;lt;init&#38;gt;(Channel.java:261)
	at hudson.remoting.Channel.&#38;lt;init&#38;gt;(Channel.java:205)
	at hudson.remoting.Engine.run(Engine.java:89)
&#34;-url&#34; is not a valid option
java -jar jnlp-agent.jar &#91;options...] &#38;lt;host&#38;gt; &#38;lt;hudson URL&#38;gt; &#38;lt;secret key&#38;gt; &#38;lt;slave name&#38;gt;
 -headless         : Run in headless mode, without GUI
 -tunnel HOST:PORT : Connect to the specified host and port, instead of connecti
                     ng directly to Hudson. Useful when connection to Hudson nee
                     ds to be tunneled. Can be also HOST: or :PORT, in which cas
                     e the missing portion will be auto-configured like the defa
                     ult behavior
Failing to obtain http://hudson-server/../computer/Update/slave-agent.jnlp
java.io.IOException: http://hudson-server/../computer/Update/slave-agent.jnlp doesn&#39;t look like a JNLP file
	at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:106)
	at hudson.remoting.Launcher.main(Launcher.java:86)
Waiting 10 seconds before retry
...
</pre>

			<p><a rel="nofollow" target="_blank" href="https://hudson.dev.java.net/issues/show_bug.cgi?id=2824">課題 2824</a>によるとslave.jarをアップデートする必要があるとのことなので、warに含まれるslave.jarに差し替えたところ正常に起動するようになりました。途中でhudson-slave.xmlに含まれるjnlpUrlがおかしいのかと思いいじったのですが、元に戻した気もするので関係なかったかもしれません。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]フリースタイルプロジェクト</title>
         <link>http://d.hatena.ne.jp/w650/20090109/1231473667</link>
         <description>引き続き、Hudsonをいじってます。 Hudsonを使い始めるときに「Maven2プロジェクトのビルド」ジョブを作成していままで使っていました。これだとリポジトリのURLと実行するpomとgoalの設定くらいで動かすことができて非常に楽チンでした。ただ、もう少し細かく設定したいと</description>
         <guid isPermaLink="false" />
         <pubDate>Fri, 09 Jan 2009 04:01:07 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>引き続き、Hudsonをいじってます。</p>
			<p>Hudsonを使い始めるときに「Maven2プロジェクトのビルド」ジョブを作成していままで使っていました。これだとリポジトリのURLと実行するpomとgoalの設定くらいで動かすことができて非常に楽チンでした。ただ、もう少し細かく設定したいと思ってフリースタイルプロジェクトに変更しました。</p>
			<p>Maven2プロジェクトに比べてテスト結果の集計など設定すべき項目が多少増えましたが、モジュール間のビルドの依存性などを細かく設定できかなりよいです。もっと早くこっちにしておけばよかったと思います。</p>
			<p>Maven2プロジェクトからフリースタイルプロジェクトに変更したところ、結果的に最近悩まされていた↓も解消されました。</p>

			<ul>
				<li> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/w650/20090107/1231319296">ビルドでSocketTimeoutExceptionが発生する</a></li>
				<li> ビルド後の処理でwarファイルをTomcatにディプロイする際にもSocketTimeoutExceptionが発生する</li>
			</ul>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]JNLP経由でスレーブを起動する場合のURL</title>
         <link>http://d.hatena.ne.jp/w650/20090107/1231323990</link>
         <description>hudson.warから直接Hudsonを起動するようにしたところ、別マシンから、Hudson内のJNLP経由でスレーブエージェントを起動するためのリンクをクリックした際に、エラーが発生するようになりました。404 Not Foundですよ、というメッセージで、確かにURLがTomcatにディプロイし</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 07 Jan 2009 10:26:30 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>hudson.warから直接Hudsonを起動するようにしたところ、別マシンから、Hudson内のJNLP経由でスレーブエージェントを起動するためのリンクをクリックした際に、エラーが発生するようになりました。404 Not Foundですよ、というメッセージで、確かにURLがTomcatにディプロイしていた時のまま(http://サーバ/<span style="font-weight:bold;">hudson</span>/)になっているのが原因のようなのですが、スレーブの設定をやりなおしたりしたのですが直りません。。</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/w650/20090107193504" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/w/w650/20090107/20090107193504.jpg" alt="f:id:w650:20090107193504j:image" title="f:id:w650:20090107193504j:image" class="hatena-fotolife"></a></p>
			<p>MLの過去ログを調べたところまったく同じ件がありました。</p>
			<p><a rel="nofollow" target="_blank" href="http://www.nabble.com/Moved-master-to-new-machine%2C-now-when-creating-new-slave%2C-jnlp-tries-to-connect-to-old-machine-td20465637.html#a20471735">Nabble - Hudson users - Moved master to new machine, now when creating new slave, jnlp tries to connect to old machine</a></p>
			<p>JNLPのURLは、[Hudsonの管理]-&#62;[システムの設定]-&#62;[Email通知]-&#62;[Hudson URL]の値が使用されるようで、こちらを変更したところ正常にスレーブを起動できるようになりました。</p>
			<p>ただし、<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/w650/20090107/1231319296">SocketTimeoutExceptionが発生する件</a>はスレーブの方でも発生していますorz.</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]SocketTimeoutException</title>
         <link>http://d.hatena.ne.jp/w650/20090107/1231319296</link>
         <description>いつの前にかHudsonの特定のジョブの実行で、SocketTimeoutExceptionが発生するようになってしまいました。 Parsing POMs [parent] $ C:￥Java￥jdk1.6.0_05/bin/java -cp ”C:￥Program Files￥Apache Software Foundation￥Tomcat 5.5￥webapps￥hudson￥WEB-INF￥lib￥maven-agent-1</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 07 Jan 2009 09:08:16 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>いつの前にかHudsonの特定のジョブの実行で、SocketTimeoutExceptionが発生するようになってしまいました。</p>
<pre>
Parsing POMs
[parent] $ C:&#92;Java&#92;jdk1.6.0_05/bin/java -cp "C:&#92;Program Files&#92;Apache Software Foundation&#92;Tomcat 5.5&#92;webapps&#92;hudson&#92;WEB-INF&#92;lib&#92;maven-agent-1.270.jar;C:&#92;Program Files&#92;Apache Software Foundation&#92;apache-maven-2.0.9&#92;boot&#92;classworlds-1.1.jar" hudson.maven.agent.Main "C:&#92;Program Files&#92;Apache Software Foundation&#92;apache-maven-2.0.9" "C:&#92;Program Files&#92;Apache Software Foundation&#92;Tomcat 5.5&#92;webapps&#92;hudson&#92;WEB-INF&#92;lib&#92;remoting-1.270.jar" "C:&#92;Program Files&#92;Apache Software Foundation&#92;Tomcat 5.5&#92;webapps&#92;hudson&#92;WEB-INF&#92;lib&#92;maven-interceptor-1.270.jar" 3976
ERROR: POMの解析に失敗
java.net.SocketTimeoutException: Accept timed out
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(Unknown Source)
	at java.net.ServerSocket.implAccept(Unknown Source)
	at java.net.ServerSocket.accept(Unknown Source)
	at hudson.maven.MavenProcessFactory$SocketHandler$AcceptorImpl.accept(MavenProcessFactory.java:143)
	at hudson.maven.MavenProcessFactory.newProcess(MavenProcessFactory.java:176)
	at hudson.maven.ProcessCache.get(ProcessCache.java:169)
	at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:328)
	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:244)
	at hudson.model.Run.run(Run.java:832)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:204)
	at hudson.model.ResourceController.execute(ResourceController.java:70)
	at hudson.model.Executor.run(Executor.java:90)
finished: FAILURE
</pre>
			<p>何回かに一回は正常に実行できる場合もあり原因が特定できていないのですが、状況からすると↓の件かもしれないです。</p>
			<p><a rel="nofollow" target="_blank" href="https://hudson.dev.java.net/issues/show_bug.cgi?id=2394">hudson: 課題 2394</a></p>
			<p>「OS: Windows XP」とあり確かに私のところもXPです。Windows2003 Serverに移そうかとも思っていたのですが、試しにhudson.warをTomcatにディプロイするのをやめて直接起動するようにしたところ、なぜか解消されました。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson][misc]『オブラブ忘年会 〜ふりかえり2008〜』に参加してみて</title>
         <link>http://d.hatena.ne.jp/cactusman/20081210/p1</link>
         <description>「HudsonでCIしようぜ！」というタイトルでLTしてきました。 JJUGの2次会のときに角谷さんと話をした縁で、オブジェクト倶楽部にて発表することができました。 ありがとうございます。 見てみた感じ、スーツっぽいというかマネージャっぽい感じの人が多い、という印象でした</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 10 Dec 2008 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>「HudsonでCIしようぜ！」というタイトルでLTしてきました。</p>
			<p>JJUGの2次会のときに角谷さんと話をした縁で、オブジェクト倶楽部にて発表することができました。</p>
			<p>ありがとうございます。</p>
			<p>見てみた感じ、スーツっぽいというかマネージャっぽい感じの人が多い、という印象でした。</p>
			<p>まぁ、それはそうでしょうね。</p>
			<p>それで、LTのほうは1分半ほどディスプレイとPCをつなぐところでロスをしてしまいましたが、なんとかうまくまとめることができました。</p>
			<p>言いたかったことは、CIを行いましょう、CIツール使いましょう、CIツールはHudsonいいですよ、という点です。</p>
			<p>うまく伝わったかどうかわかりませんが＾＾；</p>
			<p>あと、CIツールは犯人探しに使われるといいましたが、それは誰がビルドを壊したコミットをしたのかがわかるので、そういう人を見つけ責めることにも使える、ということです。</p>
			<p>それと、トラックナンバー１というのは、トラックナンバー（抜けると困る人数）が１ということです。</p>
			<p>ビルドするのに、この人いないとできません、というのはさすがにまずいと思うので。</p>
			<p><br></p>
			<p>それで、自分以外のLTはなかなか面白かったですね。</p>
			<p>特に、メールのシグネチャの話は意表を突かれて良かったです。</p>
			<p><br></p>
			<p>LT後のセッションではタイムラインというのを行いました。</p>
			<p>今年を振り返って、良かったことと悪かったことを列挙して、時系列に並べるというものです。</p>
			<p>やってみると、なかなか人それぞれで人生模様という感じになっていました。</p>
			<p>こうやって出し切る、というのは次のステップに必要なんだと実感しましたね。</p>
			<p><br></p>
			<p>セッションが終わると、LT発表者にはそれぞれ本を頂くことができました。</p>
			<p>私が選んだのは、「Xen 仮想化技術」という本です。</p>
			<div class="hatena-asin-detail">
  <a rel="nofollow" target="_blank" href="http://www.amazon.co.jp/dp/4839927588/?tag=hatena_st1-22&ascsubtag=d-fjj0"><img src="http://ecx.images-amazon.com/images/I/51IYk4lZJUL._SL160_.jpg" class="hatena-asin-detail-image" alt="&#x004eee;&#x0060f3;&#x005316;&#x006280;&#x008853;Xen-&#x006982;&#x005ff5;&#x003068;&#x005185;&#x0090e8;&#x0069cb;&#x009020;" title="&#x004eee;&#x0060f3;&#x005316;&#x006280;&#x008853;Xen-&#x006982;&#x005ff5;&#x003068;&#x005185;&#x0090e8;&#x0069cb;&#x009020;"></a>
  <div class="hatena-asin-detail-info">
    <p class="hatena-asin-detail-title"><a rel="nofollow" target="_blank" href="http://www.amazon.co.jp/dp/4839927588/?tag=hatena_st1-22&ascsubtag=d-fjj0">仮想化技術Xen-概念と内部構造</a></p>
    <ul>
      
      <li><span class="hatena-asin-detail-label">作者:</span> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/keyword/David%20Chisnall" class="keyword">David Chisnall</a>,<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/keyword/%C6%FC%CB%DC%B2%BE%C1%DB%B2%BD%B5%BB%BD%D1%28%B3%F4%29" class="keyword">日本仮想化技術(株)</a>,<a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/keyword/%C5%CF%EE%B5%CE%BB%B2%F0" class="keyword">渡邉了介</a></li>
      
      <li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/keyword/%CB%E8%C6%FC%A5%B3%A5%DF%A5%E5%A5%CB%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A5%BA" class="keyword">毎日コミュニケーションズ</a></li>
      
      <li><span class="hatena-asin-detail-label">発売日:</span> 2008/08/20</li>
                                                      <li><span class="hatena-asin-detail-label">メディア:</span> 単行本（ソフトカバー）</li>
      <li><span class="hatena-asin-detail-label">購入</span>: 3人 <span class="hatena-asin-detail-label">クリック</span>: 55回</li>
      <li><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/asin/4839927588">この商品を含むブログ (25件) を見る</a></li>
    </ul>
  </div>
  <div class="hatena-asin-detail-foot"></div>
</div>

			<p>なんでこの本になったかというと、他の方が選んだ後で選択の余地があまりなかったのと、やっぱり仮想化には興味があったから、ということです。</p>
			<p>お高い本で自分ではなかなか買えず、頂けて本当、助かります。</p>
			<p><br></p>			<p>２次会ではJava関連の人など絡みつつ、RT<span class="footnote"><a rel="nofollow" name="fn1" title="&#x0030ea;&#x0030b8;&#x0030a7;&#x0030af;&#x0030c8;&#x0030c8;&#x0030fc;&#x0030af;">*1</a></span>を聞いていました。</p>
			<p>１次会のLTであまりドラを鳴らせなかった欲求不満のドラ娘が、ここぞとばかりに鳴らしていましたね。</p>
			<p>結構、お酒がまわりぐだぐだな感じで飲み食いしていると、いつの間にやら閉会時間。</p>
			<p>そして、そのまま帰るのは気がひけたので、３次会へと突入して、・・・。</p>
			<p><br></p>
			<p>とりあえず、オブジェクト倶楽部でHudsonの話ができてよかったです。</p>
		</div>
		<div class="footnote">
			<p class="footnote"><a rel="nofollow" name="f1">*1</a>：リジェクトトーク</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]Deploy Pluginを使ってみました。</title>
         <link>http://d.hatena.ne.jp/w650/20081022/1224648920</link>
         <description>開発中のアプリケーションのスナップショット版を関係者に公開しているサーバにディプロイするためにHudsonのDeploy Pluginを使ってみました。このプラグインは、ビルド後にアプリケーションサーバへのディプロイしてくます。 このプラグインをインストールすると、各プロジ</description>
         <guid isPermaLink="false" />
         <pubDate>Wed, 22 Oct 2008 04:15:20 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>開発中のアプリケーションのスナップショット版を関係者に公開しているサーバにディプロイするためにHudsonの<a rel="nofollow" target="_blank" href="http://hudson.gotdns.com/wiki//display/HUDSON/Deploy+Plugin">Deploy Plugin</a>を使ってみました。このプラグインは、ビルド後にアプリケーションサーバへのディプロイしてくます。</p>
			<p>このプラグインをインストールすると、各プロジェクトの設定の"ビルド後の処理"に以下の設定項目が追加されるので、</p>
			<p><a rel="nofollow" target="_blank" href="http://f.hatena.ne.jp/w650/20081022104138" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/w/w650/20081022/20081022104138.jpg" alt="f:id:w650:20081022104138j:image" title="f:id:w650:20081022104138j:image" class="hatena-fotolife"></a></p>
			<p>ここを設定しておくとディプロイしてくれます。</p>
			<p>Tomcat URLにはディプロイしたいTomcatのマネージャアプリのURLを指定します。</p>
			<p>使ってみて一つ問題がありました。</p>
			<p>Hudsonやプラグインのの問題ではないのですが、再ディプロイしようとすると古いアプリケーションが削除できないできない現象が発生しました。Tomcatのwebappsフォルダを見てみるとwarファイルを展開したフォルダの"WEB-INF/lib"フォルダに、ロックされているみたいで、jarファイルが削除されずに残ったままになっていました。ちなみに削除されなかったのは、struts,commons-digester, commons-validatorあたりでした。</p>
			<p>これについては、<a rel="nofollow" target="_blank" href="http://www.kawaz.jp/diary/?200510a&to=200510050#200510050">こちら</a>を参考にさせていただき、warファイルに、以下の内容のMETA-INF/context.xmlを含めることで、ファイルをロックしないようにすることができました。根本的な対応ではなく、パフォーマンスにも多少影響があるようですが、本番環境ではないのでとりあえず、目をつむります。</p>
<pre class="syntax-highlight">
<span class="synIdentifier">&#60;Context </span><span class="synType">antiJARLocking</span>=<span class="synConstant">&#34;true&#34;</span><span class="synIdentifier"> </span><span class="synType">antiResourceLocking</span>=<span class="synConstant">&#34;true&#34;</span><span class="synIdentifier">/&#62;</span>
</pre>

			<p>これまでもSeleniumを使ったテスト用に<a rel="nofollow" target="_blank" href="http://cargo.codehaus.org/">Cargo</a>のMavenプラグインを使ってディプロイをしていたのですが、どちらを使うべきか迷います。Deploy Pluginに限ったことではないのですが、個人的にはMavenを使ったプロジェクトではmavenでできることはpom.xmlに記述しておいた方が、コマンドラインからも実行することができるのでよいような気がしています。</p>
			<br>

			<p>Hudsonは年に数回くらい気が付いたときに新しいバージョンに入れ替えているのですが、どんどん使いやすくなってますね。</p>
			<p>いつの間にかプラグインの管理もできるようになっていて便利です。私のようなWebアプリケーションを開発する人間にとっては、便利なだけでなく、ユーザビリティやプラグインの機構など、すごくお手本になるプロダクトだと思います。</p>
		</div>]]></content:encoded>
      </item>
      <item>
         <title>[Hudson]分散ビルドを使ってみる</title>
         <link>http://d.hatena.ne.jp/w650/20080512/p1</link>
         <description>Seleniumのテストにかなり時間がかかるようになってきてしまったのと、VistaのIE7を使ってSeleniumのテストをしたいので、Hudsonの分散ビルドの機能をためしてみました。 Step by step guide to set up master and slave machines - hudson - Hudson Wiki Distributed build</description>
         <guid isPermaLink="false" />
         <pubDate>Mon, 12 May 2008 00:00:00 +0000</pubDate>
         <content:encoded><![CDATA[<div class="section">
			<p>Seleniumのテストにかなり時間がかかるようになってきてしまったのと、VistaのIE7を使ってSeleniumのテストをしたいので、Hudsonの分散ビルドの機能をためしてみました。</p>

			<ul>
				<li><a rel="nofollow" target="_blank" href="http://hudson.gotdns.com/wiki/display/HUDSON/Step+by+step+guide+to+set+up+master+and+slave+machines" title="Step by step guide to set up master and slave machines - hudson - Hudson Wiki">Step by step guide to set up master and slave machines - hudson - Hudson Wiki</a></li>
				<li><a rel="nofollow" target="_blank" href="http://hudson.gotdns.com/wiki/display/HUDSON/Distributed+builds" title="Distributed builds - hudson - Hudson Wiki">Distributed builds - hudson - Hudson Wiki</a></li>
			</ul>
			<p>Java Web Start(JNLP)を使う方法をためしてみましたが、Step by step guideのとおりやるだけで簡単にできました。ほんとHudsonはいたれりつくせりです。</p>

			<ol>
				<li>マスター側

				<ol>
					<li>Hudsonの管理-&#62;システムを開く</li>
					<li>マスタ・スレーブセクションにてスレーブ設定を追加する</li>
					<li>ジョブの設定にて、"このビルドは指定のノード上でのみ実行"にチェックを入れて、ジョブを実行するノードを指定する</li>
				</ol>
				</li>
				<li>スレーブ側

				<ol>
					<li>ブラウザでHudsonを開き、ビルド実行状態一覧からスレーブを選択</li>
					<li>"Launch slave agent"をクリックし、WebStartでslave agentを実行</li>
					<li>Hudson slave agentにて"connected"と表示されたらOK（ビルド実行状態一覧でスレーブが"待機中"になる）</li>
				</ol>
				</li>
			</ol>
			<p>こんな感じ。こういう分散処理って動くとなんだかワクワクします(私は設定しただけですが)。</p>
			<p>ただし、Javaは当然としてMaven2など必要なものはスレーブにも入れておく必要があり、またパス等の設定はマスター・スレーブ共通になるようです。この辺は以下のcactusmanさんと川口さんのエントリにあるとおりで、将来的には設定できるようになるようです。</p>

			<ul>
				<li><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/cactusman/20080320/p2" title="Hudson&#x003067;&#x00306e;&#x005206;&#x006563;&#x0030d3;&#x0030eb;&#x0030c9;&#x00ff1f; - cactusman&#x0065e5;&#x008a8c;">Hudsonでの分散ビルド？ - cactusman日誌</a></li>
				<li><a rel="nofollow" target="_blank" href="http://d.hatena.ne.jp/kkawa/20080320/p1" title="Hudson&#x003067;&#x00306e;&#x005206;&#x006563;&#x0030d3;&#x0030eb;&#x0030c9;&#x00306b;&#x003064;&#x003044;&#x003066; - &#x005ddd;&#x0053e3;&#x008015;&#x004ecb;&#x00306e;&#x0065e5;&#x008a18;">Hudsonでの分散ビルドについて - 川口耕介の日記</a></li>
			</ul>
		</div>]]></content:encoded>
      </item>
   </channel>
</rss><!-- fe3.yql.bf1.yahoo.com compressed/chunked Fri Feb 10 06:27:42 UTC 2012 -->

