Antメモ

Antの勉強をした。

Java向けmake。
Taskがいろいろあるので、javac使うなら便利そう。

Antのインストールの際、
「〜の使い方が誤っています」というエラーが出るときがある。
環境変数ClassPathをチェックすること。
 Quicktime環境変数書き換えが原因で起動しなくなった、という報告もある。

build.xmlのサンプル:






















参考サイト

Antメモ
Apache Ant User Manual

WindowsのGrowlっぽいもの

Javaアプリケーションで通知したいなーと思った。
1.6なら java.awt.SystemTray, java.awt.TrayIconがあるわけだけれど、
http://sattontanabe.blog86.fc2.com/blog-entry-24.html
業務で使っているのは1.4系。
あとできればPythonからも使いたい。

以前から気になっていたGrowl for Windowsをあさる。
本家GrowlアーカイブdmgのためSDKが解凍できない…

先発クローンのSnarlをあさるも、
MelonとかいうVBフレームワークをインストールさせられそうになったので保留にした。
日本語も通らないらしい。

日本発Growlクローンのwhineを試したところ、
コンパクト&シンプルで気に入った。日本語ばっちりだし。
同梱のwhinesend.exeを実行するだけで通知できる。
Perlなんかはソケット経由でいけるみたい)

Haiku OSをVMWareで動かしてみる

■用意するもの
VMWare Player
http://www.vmware.com/download/player/
これは普通にインストール。

あとは
http://www.haiku-os.org/downloads
約34MBのVMWare向けNightly Buildを落とす。
解凍して実行。


■起動したら
フォントの設定を開いて日本語フォントを設定すること。
固定幅フォントはUIの問題か選べなかった。

とりあえずFirefox入れればどんなOSでも使える時代。

現時点でインストールしたいのは
Firefox version 2.0.0.18
http://www.bebits.com/app/3143

まずはダウンロード。
コンソールを立ち上げて
> wget http://www.bebits.com/bob/21982/firefox-2.0.0.18.en-US.BeOS-bone.zip
などする。

あとはエクスプローラ?からファイルを解凍する。
このままだと立ち上がらないらしく、
firefoxフォルダ下に
add-ons
lib
の二つのフォルダを作る必要がある。

libfreebl3.so
libnssckbi.so
libxpistub.so

この3つのファイルはadd-onsに入れ、
ほかの.soファイルは全てlibに入れる。

あとはfirefox-binをダブルクリックすれば動く。

日本語の入力をしたければ、Anthy for haikuを入れる。

hgignoreの初期設定

eclipsemercurialを使うときに、どこにレポジトリをおくか(=どこでinitするか)という話。
eclipseにレポジトリがリソースとして認識されてしまうので、うかつにsrc以下に作ったりできない。

1.プロジェクトフォルダ直下に置く
build等をレポジトリに含めないため、.hgignoreを以下のように設定する。

syntax: regexp
^build/
\.classpath
\.project
\.hgignore

2.srcに含める
ソース管理しか必要ない場合、
eclipseのビルドパス除外に.hgフォルダを含めておく。
(試してないです)

そんな感じで。

PythonでCGI開発

PythonにはCGI実行可能な簡易httpサーバが付いてくる。便利。

公開したいフォルダを作り(例:c:\web)
そこにcgi-binフォルダを作って
pythonスクリプトを置く。
c:\webに移動し、
> python -m CGIHTTPServer
を実行(python2.4以降)。

ブラウザからlocalhost:8000にアクセスすると
c:\webのディレクトリが見える。
cgi-binにアクセスするとエラーが出るので、
pythonスクリプトのパスを直接入れて実行。

終了はCtrl+Break

ajax+cgiでも作ってみるかな。

jEditを使う

素の状態で起動が重い。
起動時間だけならNetbeansとそこまで違わない。
Javaのコード書くんなら補完がしがし利くNBのほうが便利。
今のところXML/HTMLエディタとして使ってる。
プラグインは、XMLサポート、Sidekick、文書タブあたりがあればいいかな。


文字コード関連。UTF-8Nとかだと正常に開けないので注意。


組み込みのBeanShellが微妙に便利。UTFのリテラルとか突っ込むとそのまま表示してくれる。
ただちょっと間違っただけで大量のスタックトレースが出力されて、ああjavaだなあと思ったり。


BeanShellはJavaインタプリタで、
組み込みコンソールからエディタ自体を操作できたりして、よく出来てる。
マクロもBeanShellで実現されていて、Javaが使える人にはうれしい。
秀丸マクロはまったく覚える気にならないけど、これならいいかな。


あと、メモリ使用率が高くなると(Javaなら動的に拡張するはずだが)と、
やたら重くなるので、明示的にガベージコレクションを行うことが多い。
メモリ使用率メーターダブルクリックでガベージコレクタを動かせる。


置換にもBeanShellが使える。
_0がマッチした文字列が入っているので、

このようなコードを入れると、勝手に選択範囲の数字をインクリメントしたりする。


矩形編集(Ctrl+マウス範囲選択)もしっかりしていたので、
そのあたりの弱い秀丸の補助に使ってる。

Jakarta POIでExcelのシートを読む

    public static void main(String[] args) {
        FileInputStream fis = null;
        HSSFWorkbook workbook = null;
        try {
            fis = new FileInputStream("okaimono.xls");
            POIFSFileSystem fs = new POIFSFileSystem(fis);
            workbook = new HSSFWorkbook(fs);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        FileOutputStream fos = null;

        HSSFSheet sheet = workbook.getSheetAt(0);

        int i = 1;
        Iterator iter = sheet.rowIterator();
        
        //最初の行は読み飛ばす
        iter.next();
        while (iter.hasNext()) {
            HSSFRow r = (HSSFRow)iter.next();
            if (r == null) {
                System.out.println("終了");
                break;
            } else {
                HSSFCell cell = r.getCell(0);
                HSSFRichTextString rich = cell.getRichStringCellValue();
                String str = rich.getString();
                System.out.println("" + str);

                HSSFCell numCell = r.getCell(1);
                double doubleCell = numCell.getNumericCellValue();
                System.out.println("値段:" + (int)doubleCell + "円");
            }
            i++;
        }
    }

jakarta POI
用があるのはHSSFパッケージ(Excelシートの読み書きができる)

RPGなんかのデータの管理はCSVでもいいわけだけど、
xlsだと色付けたり強調したり出来るのでまあ楽しく管理出来るんじゃないかと思った。

文字列を期待しているところに数字が入ってくると例外吐くとこに注意。
例には書いてないけど、cellの型をまず取ってから
内容を文字列に全部変換しちゃった方がいい。