« April 2008 | Main | June 2008 »

May 2008

2008.05.30

JFreeChartで凡例を分割する

JFreeChartのサンプル内のDualAxisDemo2.javaのようなグラフの作り方。

2軸のグラフは例えば1つ目のグラフ(Renderer&DataSet)を含むXYPlotを初期化した後、

XYPlot#setRenderer(1, Renderer);
XYPlot#setDataset(1, DataSet);

といった感じで2つ目のグラフ(Renderer&DataSet)を追加すればオッケーなのですが、この状態だと凡例は1つにまとまって表示されてしまいます。

で、それぞれのグラフ毎に凡例を分けて表示したいような場合(JFreeChartのサイトでは、サンプルのソースコードは公開されていないので・・・)。

Continue reading "JFreeChartで凡例を分割する"

| | Comments (0) | TrackBack (0)

2008.05.29

Trac一括チケット登録

Tracでまとめてチケットを登録する方法(案) - Ryuzee.com -りゅーじーどっとこむ-

私も大量のチケットを登録する必要が生じたことがありました。

最初は(案2)と同じように、直接SQLを発行してチケットの登録を行おうかと思ったのですが、データベースの整合性等を担保できるかどうかが不安だったため(^^;、Excelファイルの内容を読み込んでXML-RPCでTicketの追加を行うツール(Java)を作成しました(なお、私の場合は案1/2の2つしか思い浮かびませんでした)。

#なお、カスタムフィールドに関しても、項目名(フィールド名)さえ間違えなければ問題なく処理することができます。

| | Comments (0) | TrackBack (0)

2008.05.28

MERGEリクエストが失敗しました

Subversionでコミットする際に、毎回「MERGEリクエストが失敗しました」のメッセージがでてエラーが出るという現象に遭遇。ただ、ログを見てみるとコミット自体は完了している模様。調べてみると、「post-commit」スクリプトでエラーが出た場合にそういう状況になる場合があるとのこと。

シェルからpost-commitスクリプトを手動で実行してみると

/usr/local/share/python2.5.1/lib/python2.5/site-packages/matplotlib/__init__.py:753: UserWarning: This call to matplotlib.use() has no effect
because the the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.

warnings.warn(_use_error_msg)


といったメッセージが。

どうも、MetrixPlugin関連のファイルをインストールしたときからの現象っぽい。

トレースに表示されている__init__.pyファイルの

from __future__ import generators

の次の行に
from pylab import *

を記述して解決。

| | Comments (1) | TrackBack (1)

2008.05.27

TestLink:LDAPで認証

TestLinkの認証をLDAPのパスワードにて行うようにする場合。

例えばApacheのBasic認証にて以下のような設定を行っているとした場合。

AuthBasicProvider ldap
AuthLDAPUrl ldap://localhost:389/dc=testsvr?uid
AuthLDAPBindDN "cn=Manager,dc=testsvr"
AuthLDAPBindPassword ldappassword

config.inc.phpファイルの内容を以下のように設定します。

$g_login_method = 'LDAP';

$g_ldap_server = 'localhost';
$g_ldap_port = '389';
$g_ldap_root_dn = 'dc=testsvr';
$g_ldap_organization = '';
$g_ldap_uid_field = 'uid';
$g_ldap_bind_dn = 'cn=Manager,dc=testsvr';
$g_ldap_bind_passwd = 'ldappassword';

こうすれば、パスワードの情報を他のアプリケーション(LDAPに対応している必要はありますが)と共通化することができます。なお、LDAPの認証を行うようにした場合、当然ながらTestLinkからはパスワードの変更を行うことはできなくなります。

| | Comments (0) | TrackBack (0)

2008.05.26

TestLink:ログインページ等の日本語化

TestLinkにおいて、ログインページ等も含めて日本語で表示する場合。

config.inc.phpファイル内の$g_default_languageの値(初期値は'en_GB')を 'jp_JP' に変更すればOK。

| | Comments (2) | TrackBack (1)

2008.05.25

Milestoneの並び順を逆順に

 Tracではmilestoneは通常は終了期日の古いものから順に並びます。これを逆順にする場合は、ticket/model.py

return sorted(milestones, key=milestone_order)

の部分を、
return sorted(milestones, key=milestone_order, reverse=True)

とすればOK。ロードマップの画面に加えて、Ticketのマイルストーンのコンボボックスの並び順も逆順になります。

 どっちの並び順が見やすいかは人それぞれ、といったところでしょうか。ただ、上の方から順に見ていった場合(かつ、終了済みのものも表示するようにしていた場合)、「未完了」のものが先に表示されていた方が都合がいい場合もあるかと。

 まぁ、実際に表示する際に任意に切り替えることができるようにすればいいのかも知れませんが。

| | Comments (0) | TrackBack (0)

2008.05.24

milestone-groupsのcss_classを増やす

 Trac0.11において、trac.iniの[milestone-groups]でマイルストーン表示の表示内容を設定することができるようになりました。が、デフォルトでは棒グラフの色は3色しか定義されていません(new/open/closed)。

 多くの場合はこれで事足りるかとは思いますが、Ticketのworkflowをカスタマイズしてステータスを追加しているような場合、もう少し色が欲しくなる場合もあるかと。そういう場合は、htdocs/css/roadmap.cssを編集すればOK。例えば、以下のような内容を追加します。

table.progress td.somestatus { background: #ffff88 }

んでもって、trac.iniの[milestone-groups]で以下のような感じで記述すれば、追加した色を使用することができます。
somestatus = somestatus
somestatus.label = あるステータス
somestatus.css_class = somestatus

| | Comments (0) | TrackBack (0)

2008.05.13

入門Trac with Subversion

 マイリストの方にも追加していますが、改めて。

 タイトルに「入門」とはありますが、なかなか細かいところまで記載されており、Trac初心者のみならず、ある程度Tracを活用している中級者も読んで損はないのではないかと。おそらくほぼ一通りの機能に関して説明されているので、結構昔のバージョンの頃から使っているような人でも、「いつの間にかこんな機能も追加されていたんだ」というのもあるかもしれません(僕だけ? ちなみに、0.8.xの頃から使っています)。もっとも、0.10->0.11の段階でも、かなりいろいろな機能が追加されていますが(^^;

 可能であれば、チームでTracを利用する各メンバーに1冊ってところですが、さすがにそれは難しいでしょうから、現実的なところでチームに1冊はあった方がいいかもしれません。特に、Tracを使ったことがないメンバーが加わった時に、「これを読んで勉強しておいて」とできるかも(笑)。

※ただし、(書籍の)コピーは禁止です!(^^;

| | Comments (0) | TrackBack (0)

2008.05.12

RAMの有効活用

32bit Windowsの管理外領域をRAM Diskに使う

 昔(15年ほど前)は、アプリメーションが消費するメモリも知れていたので、開いた領域をRAMDISKとかDISK CACHEとして割り当てて使っていたものですが、今やこういうことも可能なんですね。

 昔・・・例えば8MBのメモリのうち、RAMDISK(テンポラリ)とDISK CACHEに2MBずつ割り当てるとか、そんな感じ。PC-98x1の時代です。まぁ、あの頃は基本的に「シングルタスク」で、常駐アプリケーションを使用してそのメモリ領域を拡張メモリ側に割り当ててもせいぜい数MB程度? 僕が使っていたアプリでは、ATOK8がメモリをもっとも消費していたかも(笑)。一太郎は使わず、MIFES&PRT++な環境でしたし(^^;

 まぁ、そんなことはさておき、「見かけ上のメインメモリ容量を物理容量の2倍」ってところで、RAM DOUBLERってのを思い出してしまいました(^^; 使ったことないですが。

#RAMの圧縮ではなくHDDの圧縮ってことでDiskX IIっていうものもありました。これは今でも「圧縮ドライブ」などとして、その考え方は残ってますね。ちなみに、僕はDIET.EXEを結構愛用していました。

| | Comments (0) | TrackBack (0)

2008.05.08

InfoCrawler

 InfoCrawler・・・Java製の検索エンジンソリューションといったところでしょうか。同類のツールとしては、IBM OmniFind Yahoo! Editionあたりでしょうか。

 試しにLinux版をCentOSにインストールしてみたのですが・・・上手く動いてくれませんでした(汗)。内部的に、Tomcat/MySQLを使用しているようなのですが、それらの起動に失敗してしまうようです(MySQL用のユーザ/グループを追加してみたのですが、それでもMySQLの起動に失敗してしまう・・・)。まぁ、インストール時にも例外が発生していたので、そのあたりが影響しているのかもしれませんが・・・。

# wget http://jaist.dl.sourceforge.net/sourceforge/infocrawler/InfoCrawler_CE_1.1_Linux.bin
# chmod u+x InfoCrawler_CE_1.1_Linux.bin
# ./InfoCrawler_CE_1.1_Linux.bin -console

 ちなみに、Windows版もインストールしてみました。こちらは問題なくサービスが起動しました・・・が、日本語ファイルに対するインデックスの作成がいまいち上手くいっていないようで(おそらく設定の問題だとは思うのですが)。

 インデックスに関して結構細かく設定できるようなので、上手く使うことができればIBM OmniFind Yahoo! Editionより使い勝手がいいものとなるような気はします(日本で使う場合は日本語への対応も必須ですが)。

#インデックスの作成にLuceneを使用しているという点では共通してますね。

| | Comments (0) | TrackBack (0)

2008.05.07

Velocityでpublicフィールド

 Teedaで開発していると、ついVelocityでもpublicフィールドを前提とした記述をしてしまうことが。で、「値が反映されないなぁ」ってことで気付いてgetterを追加(^^;

 でも、Velocityでpublicフィールドを使えるようにすることも可能なんですね。⇒Velocityでpublicフィールドを使う

#どのバージョンのVelocityから利用可能なのかまでは調べていませんが。

| | Comments (0) | TrackBack (0)

2008.05.06

Trac0.11 ワークフローへの権限追加

 TICKET_* という権限がいくつかありますが、ワークフローをカスタマイズするにあたり「この権限がある場合のみ」というルートを構築したくなる場合も。

 ってことで、試しに「チケットをクローズできる」権限ってのを追加してみました。なお、チケットをクローズできる権限がない人でも「invalid」「duplicate」の2つだけは選択可能というようにもしています。

Continue reading "Trac0.11 ワークフローへの権限追加"

| | Comments (0) | TrackBack (1)

2008.05.05

SUSE YaST2の設定ツール

 SUSE Linuxの特徴としてYaST2による設定機能があります(SUSE Linux Enterprise Server/openSUSE共通)。YaST2を使用することで、各種設定ファイルを直接編集することなく、Apache等の設定を行うことができます(もっとも、直接テキストファイルを編集した方がより細かい設定を行うことができますが)。

 で、微妙な落とし穴が、インストール時にApacheをインストールせず、後でYaST2からApacheをインストールした場合は、HTTPサーバ設定ツールはインストールされていないということ。もちろん、これもYaST2からyast2-http-serverをインストールすればオッケーですが。
 んでもって、さらなる落とし穴(?)が、一部のバージョンにおいては、yast2-http-serverの依存モジュールの関連づけが上手くいかないらしく、このままだと起動できない場合があることも(openSUSE10.3では問題ありませんでしたが)。そういう場合は、あわせてyast2-dns-serverのモジュールもインストルすればオッケー。

| | Comments (0) | TrackBack (0)

2008.05.04

Trac0.11rc1

 Trac0.11rc1がリリースされていたのでインストールしてみました。

 0.11beta2の時にeasy_installが上手く動かない・・・と思っていたのですが、どうもコマンドの使い方を間違っていたのかもしれません。
 今回も同じ現象に出くわしてしまったのですが、『このサイトのTracを0.11rc1に』を参考に、インストール対象となるバージョンを明示的に指定すれば、きちんとrc1がインストールされました。

Continue reading "Trac0.11rc1"

| | Comments (0) | TrackBack (0)

« April 2008 | Main | June 2008 »