« January 2008 | Main | March 2008 »

February 2008

2008.02.29

複数チケットに対するコメント(bugtraq:logregex)

 複数チケットに対するコメントにて、discypusさんから「bugtraq:logregex を使えばOK」とコメントをいただきましたので、試してみました。

 TortoiseSVNやSubclipseとチケットを連動のページのbugtraq:logregex を使う場合を参考に、

ticket:(\d+)|#(\d+)
(\d+)

bugtraq:logregexプロパティとして登録し、
refs #12, #23, #34

のような感じのメッセージでコミット。

 使用したクライアントはSubversive1.1.9(Eclipse3.2系列)なのですが、期待通りの動きをしてくれました(^^)。上記のようなメッセージだと、TicketID 12, 23, 34の3つのTicketに対してコメントの追記が行われました。ただ、正規表現で数値あるいは#数値を指定しているのはわかるのですが、その先どういう原理で動いているのか(どのようにメッセージを切り出して処理しているのか)よく理解できていなかったりします(^^;;

| | Comments (0) | TrackBack (0)

2008.02.28

trac-post-commit-hookでステータスも変更

 trac-post-commit-hookでチケットにコメントを追記した場合、fixed などを指定するとチケットのステータスが closed となりますが、refs などの場合はステータスの変更は行われません。なので、newな状態のTicketに関連してソースを修正し、コミット時に自動的にメッセージを追記してもステータスはnewのまま。

 「誰が」「どのタイミングで」「どのように」Ticketのステータスを更新するのかは、運用ルールによるところも大きいとは思いますが、場合によってはステータスの変更も行って欲しいこともあるかと。

 ってことで、試してみました。手始めに、コミット時に、関連するTicketのステータスがnewの場合にassignedに変更してみます。

Continue reading "trac-post-commit-hookでステータスも変更"

| | Comments (0) | TrackBack (0)

2008.02.27

複数チケットに対するコメント

 Trac&Subversion連携で、Subversionでのコミット時に、Tracの対応するTicketにコメントを登録することができるようになりました。

 ただ、常にコミットとチケットが1:1になるというわけではなく、1:nだったりn:1だったり。コミット:チケット=n:1の場合は、複数ファイルを選択してまとめてコミットすればオッケーなのですが、さてさて、その逆は?

 いろいろ試してみたところ、 refs #1234, refs #2345, refs #3456 のような感じで、列挙していけばオッケーなようです。ただ、bugtraq:label&bugtraq:messageで組み合わせた場合、そのようなコメントの自動生成ができないようなので、別途手で書く必要がありますが(もしかしたら、TicketIDをカンマ区切りで入力するだけで自動的に上記のような内容に変換する方法もあるのかもしれませんが・・・)。

| | Comments (2) | TrackBack (0)

2008.02.26

iTextでPDFフォームにへの値のセット(3)

 iTextネタをもう1つ。

 フォームに値をセットする際に、フォントの種類やサイズ、色を変更することも可能なようです。

PdfReader pdf = new PdfReader("hoge.pdf");
PdfStamper stamper = new PdfStamper(pdf, new FileOutputStream("hoge2.pdf"));
AcroFields fields = stamper.getAcroFields();
fields.setFieldProperty("Text1", "textcolor", Color.RED, null);
fields.setFieldProperty("Text1", "textsize", Float.valueOf(12), null);
fields.setField("Text1", "Hogeほげ");
stamper.close();

なお、指定可能なプロパティに関しては、setFieldPropertyのJavaDocに記載されています。

| | Comments (0) | TrackBack (0)

2008.02.25

iTextでPDFフォームにへの値のセット(2)

 フォーム付きのPDFに値をセットしながらマージしてみる。参考にしたのはiTextに同梱されているcom.lowagie.tools.concat_pdfクラス。

■複数のファイルをマージ
 ⇒複数のInputStreamの内容をマージ
 ⇒複数のByteArrayInputStreamの内容をマージ
 ⇒PdfStamperの出力先をByteArrayOutputStream
って方向性で。

 単純にPDFをマージするだけなら、PdfCopyを使うことでOKですが、それっぽいメソッド PdfCopy#copyAcroForm(PdfReader) を使った場合、フォーム情報をどんどん上書きしていくため、最初の方の内容が飛んでしまうようです。

Continue reading "iTextでPDFフォームにへの値のセット(2)"

| | Comments (0) | TrackBack (0)

2008.02.24

iTextでPDFフォームにへの値のセット

 iTextを用いて、PDF内に定義されているフォームに値をセットし、別のPDFとして生成してみるテスト。こうすることで、「値がセットされた状態の」(一体化した)PDFファイルを作ることができます。

 ざっくりと書くと、以下のような感じ。

PdfReader pdf = new PdfReader("hoge.pdf", DocWriter.getISOBytes("hogehoge"));
PdfStamper stamper = new PdfStamper(pdf, new FileOutputStream("hoge2.pdf"));
AcroFields fields = stamper.getAcroFields();
fields.setField("Text1", "Hogeほげ");
stamper.close();

 カレントフォルダの hoge.pdf ファイルを読み込み、Text1という名前のテキストフィールドにHogeほげという値を埋め込んだ状態の hoge2.pdf ファイルを保存します。

 なお、パスワードで保護されているPDFに対して処理を行うことも可能です(当然ながら、パスワードを知っている必要がありますが)。上記の例だと、"hogehoge"というパスワードをセットしています。ただし、iText2.0.0以降の場合は、iText, a JAVA-PDF libraryから、bcmail-jdk14-137.jar および bcprov-jdk14-137.jar をダウンロードし、クラスパスに通しておく必要があります(java.lang.NoClassDefFoundErrorが発生してしまいます)。

| | Comments (0) | TrackBack (0)

2008.02.22

Teeda&Tomahawkでファイルアップロード

 Teeda&Tomahawkでファイルアップロード(次のバージョンではTomahawkなしでアップロードできるようになるようですが、今使っているTeedaはちょっと前のバージョンなので)。

 サクッと選んだファイルをアップロードできるページを作ることはできたのですが、ファイルによってアップロードできたりできなかったり。

 う~ん・・・と思っていると、単にファイルを一時的に保管しておくフォルダ(一定のサイズまではメモリ上で処理を行い、それを超えていたらテンポラリファイルに保存するようになっている)が存在しなかっただけでした(^^;

| | Comments (0) | TrackBack (0)

2008.02.18

HD-DVD撤退?

 東芝がHD-DVDから撤退するという噂(確定?)。

 今使っているHDD/DVDレコーダは東芝のRD-XS46で、HD-DVDはおろか、地上波デジタルにも対応していない機種でありますが、まぁ、買い換えるときに規格が1つに統一されれば、「どちらの規格の製品を買おうか?」って悩む必要はなくなりますね(^^;

 将来的に、東芝もBD対応のレコーダを出してくるんでしょうか、それとも、一気にBDの次の世代に行ってしまうんでしょうか。もっとも、テレビがVIERA(Panasonic)なので、DIGAにした方が便利な気もしますが(^^;

#とはいうものの、買い換えるのは数年後になるでしょうけど。

| | Comments (0) | TrackBack (0)

2008.02.17

Trac&Subversion連携

 TracとSubversionを組み合わせて使用している場合(Plugin等で環境を構築すれば、他のバージョン管理システムでも使えると思いますが)、Subversionのコミットメッセージに#1234って感じのテキストを埋め込むことでChangeset(あるいはBrowser)から該当するチケットへのリンクが、また、チケットのコメントにr2345って感じのテキストを埋め込むことで、対応するChangesetへのリンクが自動的に生成されます。

 これを組み合わせることで、「あるチケットの修正の際にどの部分を修正したか」「この修正はどのチケットに基づくものか」といった追跡を容易に行うことができるようになります。
 もしかしたら、後日似たような不具合が発生した場合、「前回はどの部分を直したかなぁ・・・」って感じで、参考になったりするかもしれません(似たような不具合を発生させるな、というツッコミは不採用)。また、チケットの修正確認を行う際のコードレビューにも使えたりするかもしれません。

Continue reading "Trac&Subversion連携"

| | Comments (0) | TrackBack (0)

2008.02.16

Trac0.11b1&XmlRpcPlugin

 手元のTrac0.11b1(on CentOS5)は、0.10.4からアップデートしたものなので、一部プラグインの非互換があったりします。

 XmlRpcPluginもその1つ。Note about 0.11 compatibility からすると、0.11対応させるには手でパッチを適用しなければならないのかなぁ・・・と思っていたのですが、どうも、trunkのソースはかなり以前( r2624 )に既にそのパッチを取り込み済みだったんですね。

 XmlRpcPluginのソース一式をチェックアウトして、trunk内のソースを用いてサクッとインストール。ただ、このままの状態だと、 /usr/local/share/python2.5.1/lib/python2.5/site-packages フォルダ内に、TracXMLRPC-0.1-py2.5.egg(0.10の時に使用していたバージョン)と、TracXMLRPC-1.0.0-py2.5.egg(今回インストールしたバージョン)が共存しており、上手く動いてくれなかった(Adminのページからだと、0.1が認識されていた)ので、0.1のeggファイルを削除し、Apacheを再起動。

 無事に1.0.0が認識され、プラグインを有効にすると動くようになりました。といっても、http://localhost/tracproj/test/xmlrpc でアクセスしたときにAPI一覧が表示されるところまでしか確認していませんが(^^;
 まぁ、0.1の時は、XmlRpcPluginを有効にしてしまうと、至る所でエラーが発生(Wikiページなどを表示しようとしただけでエラーが発生)していたので、多分大丈夫なんでしょう。

| | Comments (0) | TrackBack (0)

2008.02.14

Struts&SAStruts

 ひがやすを blog - Strutsをなめんな

 Strutsは過去に何度かアプリケーション構築に使用したことがあります。もっとも、個人的にjspがあまり好きではないので(^^;、Velocityとの組み合わせがほとんどですが(というか、Struts単体で使ったことってなかったかも)。

 画面数が増えてくるにつれ設定ファイルがどんどんと肥大化し、わけがわからなくなってくるのが難点ではありますが、それ以外の点では大きな不満はありませんでした(最初Actionのインスタンスが1つしか生成されないというのを知らずにハマりかけましたが)。

Continue reading "Struts&SAStruts"

| | Comments (2) | TrackBack (0)

2008.02.11

ATOKの対応OS

 ATOKネタが少し続いてしまいますが・・・
 ATOKの簡単な年表(2003年までしか載っていませんが)。

 Mac版やLinux版、携帯電話版等は知っていたのですが、94年の時点でSolaris版やHP-UX版なんてのも存在したんですね。HP-UX版は、現在はバンドル版としてリリースされているようですが(左記URLの最終更新日は2001年となっているので、バージョンとしてもその頃のものだと思われますが・・・その後も、定期的にバージョンアップしているのかもしれません)。Solaris版も同様にバンドル版となったということなんでしょうか。Solaris10でATOK17相当のバージョンが入っているようです。

 どうでもいいことですが、ATOK8 for DOS/Vが抜けているような気も(モバイルギアで使用するというのが流行っていました)。
 あと、確かATOK9は一太郎との特別バンドル版としてPC-98x1版があったような(PC-98x1で動作する最後のATOKとなったはず)。もっとも、体感的にATOK8と比べてあまり変わらなかったような気もしますが(ATOK8はATOK7と比べて劇的に変化したと感じましたが。メモリの消費量や辞書のサイズも含めて(笑))。

#ちなみに、PC-98x1版で触ったことがあるのはATOK5/6/7/8/9。ねかい(NECAI)やVJEも触れたことはありますが(^^;

| | Comments (0) | TrackBack (0)

2008.02.10

ATOK2008届きました

 注文していたATOKが無事に届きました(昨日の晩)。

 大阪付近では11年ぶりの大雪になったそうで、配達大丈夫かなぁ・・・と思っていたのですが、問題なく届きました。メディアがすごく冷たくなっていましたが(笑)。部屋の中で普通に曇ってしまっているし(^^;

 んで、インストールしてみたわけですが・・・検索精度がどの程度向上しているかに関してはそうそうすぐにわかるものでもなく(^^;

 今回のバージョンアップで特にありがたい機能が、今のところ以下の2点でしょうか。

ctrl+BackSpaceによる確定Undoが2段階以上効くようになった。
 何故か、個人的に句読点を除いて変換し、句読点を入力して内容を確定するという入力方法が身についてしまっているので・・・。今までのバージョンだと、句読点を入力(確定)したところで変換ミスに気付いてctrl+BackSpaceを押しても、「句読点の部分」までしかUndoされなかったので。
 もっとも、入力の癖を直せばいいのかもしれませんが、なかなかそういうわけにもいかず。
 ってことで、この部分の機能追加(?)により、変換ミスを見つけた場合の入力し直しの量が減りそうな感じです。ただし、ctrl+BackSpaceを複数回押すことで2段階以上のUndoが効くということをおぼえていれば、ですが(苦笑)。

Endキーを押すことで電子辞書を切り替えることができるようになった。
 広辞苑とか、英和辞典とか複数の電子辞書をインストールしている場合でも、表示させることができるのは1種類のみで、別の電子辞典の内容を表示させようとした場合にはプロパティから辞典そのものを切り替える必要がありました。
 今回のバージョンからは、電子辞典を表示しているタイミングでさらにEndキーを押すと、表示対象とする辞典をその場で切り替えることができるようになりました。元々辞書を使用しない場合(インストールされていない場合)や、1種類しかインストールされていないような場合には意味がありませんが、複数の辞典を同時にインストールしているような環境においては非常に便利になるかも。

| | Comments (0) | TrackBack (0)

2008.02.09

万博公園 雪まつり

 万博公園にて雪まつり開催(2/9~2/11)、ってことで、行ってきました。

 が・・・何故か、今日は見事な雪模様(^^; 雪まつりの会場(イベント広場)以外でも、雪だるまがたくさん作られてました。

 それにしても、大きな雪だるまを作れる程の雪が降った(積もった)のって、すごく久しぶりのような気が。

#JR高槻駅と松坂屋2Fをつないでいる通路が通行止めになってました。こんなこともあるんですね(^^;

| | Comments (0) | TrackBack (0)

2008.02.07

Notesメールの検索(2)

 ノーツメールの検索は、Google企業向けデスクトップ以外に、IBM OmniFind Personal E-mail Searchなんてアプリケーションもあります(これも、無償で利用可能です)。

 Google企業向けデスクトップと同様、内部的にhttpサーバを起動し、そこを経由して検索&結果表示を行います(Firefox用のプラグインをインストールすると、検索ページを表示せずに検索を行うこともできます)。また、検索結果のリンクをクリックするとノーツが起動されるのも同様です。ローカル内のファイル(アーカイブあるいはレプリカ)のみが検索対象となる(と思われる)のも同様。

 違いは、メール関連以外のnsfファイルは指定できないっぽいところでしょうか(もしかしたら、指定する方法があるのかもしれませんが・・・)。
 あと、単純な単語による検索ではなく、もっと「曖昧な」検索も行うことができるようです(@IT 不完全なクエリを解釈 米IBM、電子メール向けセマンティック検索ツールを発表より)。

 一応、日本語に対しても検索できるようですが、形態素解析なのか、Ngramなのか不明。また、日本語の場合に「曖昧な」検索がどこまで対応できているのかも不明。

#ちなみに、ITpro IBM,電子メールの意味を解釈できる検索ソフト「IOPES」を無償提供によると、IBM OmniFind Yahoo! Editionでも同様の検索を行うことが可能なようです。

| | Comments (0) | TrackBack (0)

2008.02.06

Notesメールの検索

 IBM Lotus Notes・・・個人が家で使用するようなアプリケーションではありませんが、企業ではそれなりに使用されているのではないかと。

 で、ノーツのメールに関してもGoogle Desktopでザクッと(ローカルファイルも含めて)検索できればいいのになぁ・・・と思っていたら、実はできるようで。
 通常のGoogle デスクトップでは、ノーツのファイルは検索対象にできませんが、企業向けデスクトップには、ノーツのメールも検索対象とできるようです。

 ローカル内のファイルに対して処理できればOKというのであれば、Google検索アプライアンスなどと違い、無償で利用可能です。「ローカル内のファイル限定」であるため、検索対象とできるのは「アーカイブ」あるいは「レプリカ」に限定されるような気はしますが、それでも結構便利かも。

 ノーツクライアントがインストールされている端末なら、検索結果のリンクをクリックすると、ノーツの自動起動(&元文書表示)も可能なようです。

#なお、メール以外でも、.nsfデータベースなら検索対象とできるようです。

| | Comments (0) | TrackBack (0)

2008.02.05

enfantのプチいちごシュークリーム

帰り道で見かけて、おいしそうだったのでつい買ってしまいました(笑

1個95円。

一口でパクッと。おいしかったです(^^

#持って帰る途中に潰れてしまわないか不安でした。

| | Comments (0) | TrackBack (0)

2008.02.04

PDF&FDF

 Adobeの資料によると、

http://hostname/hoge.pdf#fdf=http://hostname/hoge.fdf

のような感じでPDFに対してfdfの内容をマージできるような感じなのですが、全然反応しない・・・(AdobeReader8)。

 どうも、

http://hostname/hoge.pdf#FDF=http://hostname/hoge.fdf

のような感じでFDFの部分を大文字で書けばオッケーらしい。

 う~ん・・・(^^;

| | Comments (0) | TrackBack (0)

2008.02.03

TracのTicket WorkflowをPDFに変換

 contrib/workflow フォルダ内の、showworkflow スクリプトを用いることで、Ticket Workflowをグラフ化し、PDFとして作成することができます。
 このスクリプトは、Trac-0.11b1のアーカイブ(tar.gz)に含まれているので、別途新たにダウンロードする必要はありません。が、PDFを出力する際に、Graphvizが必要となります。使用環境(CentOS5)にはGraphvizはインストールされていなかったので、まずはこのインストールを。

# wget http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.16.1.tar.gz
# tar zxvf graphviz-2.16.1.tar.gz
# cd graphviz-2.16.1
# ./configure
# make
# make install

でサクッとインストール。makeおよびmake installの際に「エラー」という文字が見えたのが若干気になるところではありますが(^^;、
# ./showworkflow /var/tracdata/trac/test/conf/trac.ini

のような感じで実行すると、PDFを生成することができました。

 なお、trac.iniに2バイト文字が含まれている場合、.dotファイルを作成する際に文字コードの処理のエラーが出てしまいます・・・。

| | Comments (0) | TrackBack (1)

2008.02.02

TracでTicket Workflowを試してみる

 The Trac Ticket Workflow System

 よく見たら、TracのTicket Workflowって、0.10の場合と0.11のデフォルトは若干異なっているんですね(acceptedの状態が増えている)。まぁ、それはそれとして、Tracのワークフローのカスタマイズを試してみました。

 設定方法に関しては、上記URLに詳細が記載されていますが、今後のためにも簡単にまとめてみました。0.11b1での内容となりますが、おそらく0.11正式版でも同様ではないかと(ただし、将来的にはさらに機能が追加されるかもしれません)。

Continue reading "TracでTicket Workflowを試してみる"

| | Comments (0) | TrackBack (0)

« January 2008 | Main | March 2008 »