« August 2005 | Main | October 2005 »

September 2005

2005.09.26

ETC前払割引サービス終了

 ETC前払割引サービスの積み増しが12月で終了してしまうようで。今後はETCマイレージサービスを利用してください・・・とのことですが、個人的には若干使い勝手(&割引率)が悪くなってしまいそうです。
 というのも、日本道路公団と本四連絡橋公団、阪神高速道路公団において、それぞれ別々にポイントがたまり、しかも各公団のポイントを合算できないようなので。
 実家に帰省するときは、確かに1往復+αで1万円以上使いますが、その半分以上は本四連絡橋公団(ルートによっては、JH+阪神+本四の3公団の道路を通ることに(笑))。しかも、ポイントの有効期限は2年間。全公団分合わせて2年間で5万円くらいは確かに使うかもしれませんが、各公団5万円ずつってのは無理っぽい。
 う〜む・・・とりあえず、今のうちにある程度積み増ししておくかな(笑)。

| | Comments (0) | TrackBack (0)

2005.09.25

JStyle

 Eclipseを使っていてたまに困ること・・・全角スペースやタブや改行がどこにあるのかわからなくなること。で、それを表示してくれるプラグインを見つけました(って僕が知らなかっただけでしょうけど(^^;))。
 https://sourceforge.jp/projects/mergedoc/にて公開されているJStyleです。
 全角スペース・タブ・改行文字・半角スペースを記号で表示してくれるほか、boldとなっている文字とそれ以外との幅を合わせるという機能もあります(全てオン・オフの切り替え可能)。

| | Comments (0) | TrackBack (0)

2005.09.23

高速道路&燃費

 先週末敬老の日ってことで実家に帰ってきました。
 ほとんど車が走っていないし〜などなどというわけで、高速道路を走る際の巡航速度をこれまでより10〜20km/hほど下げてみました。すると、これまでは17km/L弱だった燃費が一気に20km/Lに(!)。
 高速走行になると、エネルギーのかなりの部分が風の抵抗で失われてしまうってことですが、ここまで差があるとはびっくりです。久しぶりに、無給油で余裕を持って400km以上走行しました(ちなみに、今住んでいるところと実家とを単純に往復した場合、350km程度です)。

#まぁ、タンク容量が30Lだったと思うので、17km/Lでも1回の給油で400kmは問題なく走れるんですけどね(^^; 大体1回の給油が20L前後のタイミングなので。

| | Comments (0) | TrackBack (0)

2005.09.22

FreeMind 0.8.0

 FreeMind0.8.0がリリースされましたね。RC5でも特に不都合な区使えていたのですが、やはりRCが外れたリリース版となると、他の人にも勧めやすくなります(^^)。

#ってRC3の頃から人に勧めていましたが(笑)。

| | Comments (0) | TrackBack (1)

2005.09.21

SQLiteフロントエンド

 Tracがデータベースとして使用しているSQLite(0.9でPostgreSQLも対応しましたが)。TracではUTF-8でデータを保存しているのですが、WindowsのコマンドプロンプトからSQLiteでアクセスした場合日本語を正しく表示できません(当たり前といえば当たり前ですが)。Javaでアクセスするツールを作るかな・・・と思ってSQLite用のJDBCドライバを調べていると、SQLiteのフロントエンドを発見。

 SQLite Database Browser
 SQLite ControlCenter日本語版SQLite ControlCenterの日本語版)

アーカイブを展開してEXEを実行するだけで使えますし、これは便利(^^)。

| | Comments (0) | TrackBack (0)

2005.09.19

中秋の名月(2)


 先日撮影した月の写真。やはり、かなりピンボケしています(苦笑)。 縮小して見ればまだ見れないこともない・・・?

#タイトルを変更しました。

| | Comments (0) | TrackBack (1)

2005.09.18

中秋の名月

 綺麗なお月さんですね〜。

 光学ズーム3倍だとやっぱりいまいち楽しくないので、双眼鏡(8倍)の片方のレンズに密着させて撮影してみました(笑)。

 ・とりあえず、被写体を探すのに苦労する。
 ・非常に手ブレが起こる。
 ・ピントがあわせにくい(双眼鏡のピントも重要になってくるようなので)
 ・FinePixF401と今回使用した双眼鏡の組み合わせの場合、F401の方をテレ端にあわせておかなければ、周囲が真っ黒になる(なので、F401の3倍×双眼鏡の8倍で24倍?)。
 ・双眼鏡とデジカメとの連結がすぐに外れる(笑)。

 手ブレは三脚を使うと改善されるとしても・・・双眼鏡とデジカメの連結を固定するのは難しそう。光学10倍ズーム+手ブレ防止機能付きのデジカメなんかだと、結構楽に綺麗に撮影できたりするんでしょうね。

| | Comments (4) | TrackBack (0)

2005.09.17

Trac0.9beta1

 Trac 0.9 beta1がリリースされたようですね。変更点はChangeLogに記載されていますが、大きな変更点は、

・ライセンスの変更(GPL→修正BSD)
・プラグイン等の拡張性の改善
・pysqlite1.xと2.xの両対応
・PostgreSQLへの対応
・単一リポジトリで複数のTrac環境に対応(?)
・Subversion以外のバージョン管理システムへの対応に向けた実装
・FastCGIフロントエンドのサポート
・Python2.3以降が必須

などだそうです。

 0.8系からの移行の場合は、若干設定の変更等が必要になるようです(TracUpgrade)。データベースのアップグレードの仕方はTracOnWindowsページの下の方にも書かれていますが・・・これはWindows限定なのかな?

 とりあえず、近日中にWindows環境のアップグレードを行ってみる予定です。Windows用のインストーラを使うか、Zipファイルから行うかは未定ですが。

#もしかしたら、0.9(stable)になるまで待つかもしれませんが(^^;;

| | Comments (0) | TrackBack (0)

2005.09.13

すき焼き弁当

 晩御飯に買ってきたすき焼き弁当。
 パッケージには「牛肉・焼き豆腐・たまねぎ・しらたき入り」と書かれていたのですが・・・焼き豆腐が入っていなかった(涙)。

 ま、たまにはこーゆーこともありますか。

| | Comments (0) | TrackBack (0)

2005.09.11

選挙

 いつも不思議に思うこと・・・開票率が数%、場合によっては0%の時点で、「当選確実」が出るってこと。出口調査などで大体の方向性がわかっている、ってことなんでしょうかね? 報道機関によって、議席数の増え方(?)が若干違っているんで、それぞれ独自に調査しているってことなんでしょうか(まぁ、大体の傾向は同じですが)。
 あ、でも、選挙陣営にも「当選です!」って通知がいっているよなぁ・・・。どこが把握しているんでしょ。

 ちなみに、今回は仕事の都合で、期日前投票に行ってきました。昔の不在者投票だったときに比べて投票しやすくなったとのことですが、昔を知らないので比較できません(^^;; ただ、これなら確かに気軽に(?)期日前投票できるかな、って仕組みですね。土曜日に行ったので結構込んでましたが。

#昔、「当選確実」が出ていながら、土壇場で逆転されたってこともあったようななかったような。

| | Comments (0) | TrackBack (0)

2005.09.10

EMMA(4):リモート操作

 EMMA Release2.1.*では、リモートからデータの取得操作(ダウンロード)を行うことができるため、特にサーバーアプリケーションなどで役立つ、とのことです(カバレッジの情報を取得するためにサーバーを停止する必要がないため)。
 ってことで、とりあえずはSwingSet2.jarでテスト。2.1.5320をダウンロードし、SwingSet2.jarに対してinstr処理。同一のコマンドプロンプトで操作できるようにするため、java.exeではなく、javaw.exeを用いてSwingSet2を起動(もちろん、別のコマンドプロンプトからも操作できると思いますが)。

java.exe -cp emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec

で処理時点でのカバレッジ情報をダウンロード。続いて、
java.exe -cp emma.jar emma report -r html -sp ./src -in coverage.em,coverage.ec

でレポート作成。あれこれ操作して、coverage.getを行ってレポートを作成しなおすと、カバレッジ%が変化します。
 カバレッジ情報をクリアする場合は、
java.exe -cp emma.jar emma ctl -connect localhost:47653 -command coverage.reset

で処理(ただし、クラスのロード情報に関してはクリアされません)。coverage.getはデフォルトだとカバレッジ情報をmergeして保存するため、完全にクリアする場合はダウンロードしたカバレッジ情報ファイルを削除する必要があります。

#次はフィルタリング機能かなぁ。ソースコードを書き換えた状態での処理時間の変化や、カバレッジ情報が蓄積した状態でのメモリ使用量の増加度合いも調べておきたいところですが。

| | Comments (0) | TrackBack (0)

EMMA(3)

 EMMAに関する日本語の資料ってなかなか見つからないですね・・・。
 それはさておき、以下のようなデフォルトパッケージ以外のクラスを作成してみて、テストしてみました。

package test.coverage;
import java.util.Random;
public class TestClass {
private Random random;

public static void main(String[] args) {
TestClass test = new TestClass();
test.testStart();
}

private void testStart() {
System.out.println("Start");
random = new Random();
if (random.nextBoolean()) method1();
if (random.nextBoolean()) method2();
if (random.nextBoolean()) method3();
}

private void method1() {
System.out.println("Method1 called");
if (random.nextBoolean()) method1_1();
if (random.nextBoolean()) method1_2();
if (random.nextBoolean()) method1_3();
}
private void method1_1() {
System.out.println("Method1_1 called");
}
private void method1_2() {
System.out.println("Method1_2 called");
}
private void method1_3() {
System.out.println("Method1_3 called");
}

private void method2() {
System.out.println("Method2 called");
if (random.nextBoolean()) method2_1();
if (random.nextBoolean()) method2_2();
if (random.nextBoolean()) method2_3();
}
private void method2_1() {
System.out.println("Method2_1 called");
}
private void method2_2() {
System.out.println("Method2_2 called");
}
private void method2_3() {
System.out.println("Method2_3 called");
}

private void method3() {
System.out.println("Method3 called");
if (random.nextBoolean()) method3_1();
if (random.nextBoolean()) method3_2();
if (random.nextBoolean()) method3_3();
}
private void method3_1() {
System.out.println("Method3_1 called");
}
private void method3_2() {
System.out.println("Method3_2 called");
}
private void method3_3() {
System.out.println("Method3_3 called");
}
}

 このjavaファイルを、カレントフォルダを基準にsrc/test/coverageフォルダ内に格納。
 on the flyで処理する場合。
java.exe -cp emma.jar emmarun -r html -sp ./src -cp TestClass.jar test.coverage.TestClass
 offlineで処理する場合。
java.exe -cp emma.jar emma instr -m fullcopy -d dist -cp TestClass.jar
java.exe -cp ./dist/lib/TestClass.jar;emma.jar test.coverage.TestClass
java.exe -cp emma.jar emma report -r html -sp ./src -in coverage.em,coverage.ec
ってな感じで、以下のことがわかります(まぁ、Documentにも記載されていますが)。
  1. offlineでコードを処理する場合、overwriteではなくfullcopyを用いることで、jarファイルは上書きされなくなる。しかし、この場合-dオプションで処理後のjarファイルの出力先を指定する必要がある。上記の場合、カレントフォルダからの相対パスでdist/libフォルダ内にTestClass.jarが作成されます。
  2. ソースファイルを参照させる場合は、パッケージ構造に対応したフォルダ構造のルートを指定する(まぁ、当然といえば当然でしょうが)。
  3. ソースファイルに.jarファイルは指定できない(これができれば楽なのですが・・・Documentにも.javaファイルとしか書かれていないようです)。
 ハイライトの色の説明がDocumentに見つからないのですが、


その行は全て処理した
その行の一部を処理した(if文で条件がfalseとなったために処理がスキップされた場合など?)
その行は全く処理されていない

って感じでしょうか。分岐に関するカバレッジは行われていないような感じです(if文の条件が全てtrueとなったときに100%になっているようなので)。

| | Comments (0) | TrackBack (0)

EMMA(2)

 オフラインでのカバレージ処理埋め込みのテスト。例によってQuickStartと同様にSwingSet2.jarでテスト。コマンドプロンプトで、カレントフォルダをSwingSet2.jarが存在する場所にして、

java.exe -cp emma.jar emma instr -m overwrite -cp SwingSet2.jar

ってやると、カバレッジ情報を取得する用のコードが埋め込まれたSwingSet2.jar(上書きされるので注意!)と、メタデータ情報が保存されたcoverage.emとが出来上がり。で、
java.exe -cp SwingSet2.jar;emma.jar SwingSet2

で実行すればカバレッジ情報測定開始。なお、この際にemma.jarをクラスパスに含める必要がありますが(EMMAで処理を行ったプログラムを、emma.jarなしで動かそうとした場合はNoClassDefFoundErrorが発生します)、coverage.emファイルはなくても動くようです(レポート作成の際には必要となりますが)。
 プログラムを終了すると、coverage.ecファイルが出力されているので、先ほどのcoverage.emと組み合わせて、
java.exe -cp emma.jar emma report -r html -sp ./src -in coverage.em,coverage.ec

ってやると、ソース付きのカバレッジレポートの出来上がり。

(今後の予定)デフォルトパッケージ以外のクラスを用いたカバレッジ&jarファイルを上書きさせずに処理する方法。

| | Comments (0) | TrackBack (0)

2005.09.08

EMMA

 英國戀物語・・・ではなくて、カバレッジツールとしてのEMMA
 テストケース実行時のカバレッジなら、djUnitHanselなどが使えるのですが、GUIを通して実際に操作を行った場合などのカバレッジテストを行えるのが特徴ではないかと思います(他にも同様のツールがあるとは思いますが)。
 とりあえずQuickStartと同じようにSwingSet2.jarで試してみる、ということで、emma.jarをSwingSet2.jar(JDK付属のデモ)と同じフォルダにコピーして、
 

java.exe -cp emma.jar emmarun -r html -jar SwingSet2.jar

 でSwingSet2を実行し、あれこれ操作してSwingSet2を終了。coverageフォルダが自動的に作成され、その中にあるindex.htmlを開くと・・・カバレッジレポートを確認することができました。
 
java.exe -cp emma.jar emmarun -r html -sp ./src -jar SwingSet2.jar

 というように、-spオプションでソースの場所を指定すると、どの行が実行されていないかを把握することも可能。
 Webアプリケーションなどのように、直接起動できないようなプログラムでも、事前に埋め込んでおくことによりデータの収集を行うことができます・・・が、それに関してはまたいずれ。

| | Comments (0) | TrackBack (0)

2005.09.05

WEB+DB Press Vol.28

 オンライン書店ビーケーワン:Web+DB press Vol.28WEB+DB Press Vol.28で、Tracの記事が掲載されていました。
 普段読んでいる雑誌(といっても数種類しかないのですが)でTracが紹介されているのを見たのはこれが初めてかな。
 しかし、文字数が少ないため、単純に"Trac"で検索をした場合、関係ないものもかなり引っかかってしまいますね(^^;;

| | Comments (0) | TrackBack (0)

2005.09.03

Subversion実践入門

 Subversion実践入門ってのが出たんですね。Webとかで調べていても、僕がSubversionを使い始めた頃よりもいろいろと情報が増えてきたような感じでしょうか。
 コミットのタイミングでReadonly属性をかけて、ロックを取得の際に「更新」&Readonly解除を行うようなクライアントを作れば、バイナリファイルでもより安全に(?)管理できると思うんですが・・・TortoiseSVNが対応してくれないかなぁ(をぃ JavaHLを使えば自作できなくもないんでしょうが・・・。

bk1ではCVSのカテゴリに入っているのがあれですが(^^;;

| | Comments (0) | TrackBack (0)

« August 2005 | Main | October 2005 »