2009-01-01から1年間の記事一覧

非対話的デバッガ YouDebug

バグ修正はプログラマの仕事の一つですが、このうちのかなりの時間は問題を再現することに費やされます。 症状からバグの全容が推察できる時もあるのですが、多くの場合には、手元で問題を再現し、更なるデータを集めることによって始めてバグが理解されるか…

java.netのアクセス障害とHudsonの挙動不審

現在までのところ出回っている全てのバージョンのHudson(具体的には1.326まで)には、java.netがアクセス不能になっていると設定フォームをサブミットできないという問題があります。この問題の詳細は http://wiki.hudson-ci.org/display/HUDSON/Dealing+wi…

損得計算のできない人たち

JDK6では、一部の非ポータブルなcom.sun.* APIを使っていると次のような警告が出る。 /home/kohsuke/ws/hudson/hudson/main/core/src/main/java/hudson/security/LDAPSecurityRealm.java:26: warning: com.sun.jndi.ldap.LdapCtxFactory is Sun proprietary …

Sun Continuous Integration Server

思ったよりずいぶん時間が掛かってしまいましたが、遂に、Sun Microsystemsから公式にHudsonの有償サポートが「発売」されました。商用などHudsonが開発チームの重要なインフラになっている場合に、便利かと思います。 この製品は「Sun Continuous Integrati…

ヒンディー映画

同僚のほとんどはインド人なので、インド文化に触れる機会が多い。インド映画を最初にみたのがラジニーカントの「ムトゥ 踊るマハラジャ」だったせいで、最初はタミル映画しか見ていなかったのだけど、タミル人じゃないインド人のお勧めによりここ何本かヒン…

JavaOne打ち上げプロジェクト

JavaOneは毎年非常に力の入るイベントなので、JavaOneが終わると、通常の仕事に戻る前に何らかの気分転換が必要です。今年は、気分転換にちょっとしたプロジェクトをレゴでやってみました。 うちの娘もいよいよ4歳になり、休みの日はよくレゴで遊びます。意…

JavaOneにおけるOSのシェア

ブースもトークも両方終わったのでとりあえず一安心。他の人が使っているラップトップを見てみると、Ubuntuの多いこと、多いこと。会場設置のシンクライアント端末SunRayも、今年はSolaris,Ubuntu,Windowsが選べるようになっているのですが、30%位はUbuntuを…

hudsonタグ意味なし

ふと見てみたら、ここ最近の投稿は全てHudsonタグがついている事に気づきました。タグの意味ほとんどなし。 たまには違う事も書かないとな...。

Hudson関連のJavaOneイベント

JavaOneも数日後に迫り、準備にてんやわんやです。Hudson関係では次のようなイベントを予定しています。 日曜日には、アンカンファレンス(要登録)があります。また、その後近所の有名な飲み屋「Thirsty Bear」でパーティーがあります(要予約:RSVP-ThirstyBe…

Hudson swarmプラグイン

職場のHudsonクラスタには予算がついていないので、性能の良い計算機を集めるのがなかなか大変です。これは、Hudsonクラスタを作る人たちには共通の悩みではないかと思います。いきおい、同僚の古いコンピューターをリサイクルすることになるのですが、ここ…

Hudson EC2 プラグイン

CIのビルドやテストには、往々にして様々な環境を用意する必要があります。例えば、職場では、GlassFishのテストには必ずLinux,Windows,Solarisの3種の環境が必要ですし、JDKに至っては、バージョンの異なる10以上の異なる環境でテストが行われます。こうし…

Hudson PXE plugin

Hudsonのクラスタを作る上での障害の一つは、PCのインストール作業です。自分自身、仕事で使っているHudsonクラスタが大きくなるにつれて、このOSのインストール作業がどんどん煩雑になってきました。インストールには通常メディアの入ったCD-ROMが必要です…

Hudson CLIの内部構造

id:masanobuimaiさんがHudson CLIの仕組みを調べてくださったので、ここで仕組みをちょっと解説しようかな、と。 CLIは、まずHudsonに2つのHTTPリクエストをします。片方はサーバからCLIにバイト列を送るために使い、もう片方はCLIからサーバにバイト列を送…

Hudson Selenium PluginでHudsonクラスタをSelenium Gridに

Hudsonのクラスタを一瞬でSelenium Gridに変身させる「Hudson Selenium Plugin」を公開しました。このプラグインを使うと、クラスタ上のマシンに逐一Selenium Gridをインストールして回ることなく、Selenium Gridを利用することができます。先日リリースした…

WEB+DB PRESSで連載を始めました

4月24日発売になったWEB+DB PRESS Vol.50から、連載を始めました。Javaに関する色々な技術を紹介できたらいいなと思っています。 第一回は、アノーテーションを処理する仕組みについてです。実行時に、コンパイル時に、色々な手法があるのでそれを紹介してい…

Hudson CLIとGroovy shell

「GUIから何でも出来る」というのはHudsonの大事なウリの一つなのですが、その一方、自動化やスクリプトを書くために、コマンドラインインターフェース(CLI)が便利な局面と言うのは結構あります。HudsonにはREST APIがついてはいますが、これはプログラムを…

1.300に到達

新しいリリースプロセスの導入後は週に1リリースとペースダウンしたものの、粛々とリリースを続けた結果、今日、ついに1.300をリリースしました。まぁ、きりのいい番号だという事以外には特別な事は何もないのですが、大きな変更も入っていないので、安定性…

愚痴

outdatedなドキュメントが一杯あるので修正しないといけないし、GlassFishが使っているHudsonで見つかったMaven関係のバグも急いで直さないといけない。今週末リリース予定のバージョンにも大した修正を加えられていないし、新しいリリースモデルに対応する…

HudsonクラスタをHadoopクラスタに

仕事では30-40ノード位のHudsonクラスタを運用しているのですが、常々、このクラスタをもっと多用途に使えたら便利だと思っていました。 HadoopをHadoop推奨の方法でインストールしてもよいのですが、ネットワークの情報等をHudsonとHadoopに別々に教えない…

分散Groovy環境

Hudsonの分散ビルドの実装の肝になっているのは、クロージャをリモートJVMで実行するという仕組み。クラスファイルとかリソースとかも必要に応じてリモートJVMにコピーするので、リモート側にあらかじめプログラムを配備しておく必要がないのがよい点です。 …

Vistaのインストール

家で使っているコンピュータはUbuntuがメインなのだが、Windows Vistaもインストールしてみた。一台のディスク内で複数のパーティションを作ってデュアルブートする方法は詳しく解説されているが、複数のディスクにそれぞれLinux,Windowsと入れる方法はない…

1upキノコを作ってみた

思いつきで作り始めたら思ったより自分としてはうまくできたという作品。あんまり満足したので、ハテナブロックまで作ってみました。 ハテナブロックは黄色が大量に必要で、終盤はブロックが足りずに大変な事に。余っていた1x2ブロックを大量に使ってなんと…

リモートAPIを拡張しました

今井さんからフィードバックをもらったので1.272に向けてリモートAPIを直しておきました。 ジョブの一覧は hudson.primaryView.job.url ではなくて hudson.job.url であるべきなので、そのようにしました。 ビルドの一覧をジョブから取得する際には、 $JOB_U…

JellyからXMLスキーマとHTMLドキュメントを生成するツールを公開しました

今時Jellyなんて使っている人は少ないかと思いますが、僕はXML人なのでJellyは愛用しているツールの一つです。 HTMLを書くときのマクロ言語として使ったり、ウェブアプリケーションのViewティアとして使ったり、時にMaven1を動かす時にもJellyのお世話になっ…