HSQLDB

久しぶりにHSQLDBを使いました。http://hsqldb.org/をみたら、hsqldb_1_8_0_9.zip が最新版でした。DerbyがJDKに同梱されるようになったので、わざわざ使うということもなくなったのですが、たまにはこうやって使う機会があります。Windowsではhsqldbをおくディレクトリを作って使っています。


mkdir c:\application
mkdir c:\application\hsqldb

実行用のrun.batも作ってみたり。sampledbと名前固定にしてありますが、こんな感じです。


@echo off
set CP="C:/application/hsqldb/lib/hsqldb.jar"
set DB="file:C:/application/hsqldb/data/sampledb"
set C="org.hsqldb.Server"
java -cp %CP% %C% -database.0 %DB% -dbname.0 sampledb

管理用には、DatabaseMangerSwingを使います。これもmanager.batとか用意しておくといいでしょう。

@echo off
set CP=C:/application/hsqldb/lib/hsqldb.jar
java -cp %CP% org.hsqldb.util.DatabaseManagerSwing

JDBCのURLは、jdbc:hsqldb:hsql://localhost/sampledb とかになります。

カテゴリー: Java

PHP

PHPで書かれたブログシステムであるWordPressの英語版をダウンロードしてインストールしてみた。ちょっと普通とはちがったことをしながらだったので、結構時間がかかってしまったのですが、久しぶりに面白くできました。

PHP、Rubyとスクリプト言語が注目をあびていますが、まだまだJavaも面白いので、バランスよくいきたいところです。最近、Javaはプラットフォームとしての存在感が大きくなってきていますから、そのあたりにも注目したいところです。

Java and Ruby

さっと読んでみました。オブジェクト指向言語ということで、どちらもプログラミングしやすいのですが、PHP5とかも最近はいい感じだと聞いています。これからの主流はどの言語になるのか、予想しにくいですね。Pythonとかもありますし、Scalaとかもあるし。

JavaとRuby:主要機能の比較 (japan.internet.com コラム/developer.com)
http://japan.internet.com/column/developer/20080408/26.html

Software Test

「現場で使えるソフトウェアテスト Java編」という本が売っていたので購入してみた。下記のツールについて説明がされているようですが、それだけではなく体系的に、ソフトウェアテストについて解説がされているようです。まだ詳細は読んでいないのですが、参考にしようと思います。

・Checkstyle → コーディング規約チェック
・FindBugs → バグパターン検出
・JUnit → 単体テストの作成/実行
・TPTP → プロファイリング(非機能テスト)
・djUnit → カバレッジ計測
・StepCounter → ソースコード行数測定

KisoJava 6

改訂版 基礎 Java を執筆するにあたって意識した事 その6

KisoJavaをキーワードとして、Google検索をすると本サイトがトップになることに気がつきました。稀少なキーワードとはいえ、トップというのは、なかなか凄い事ではないか、と勝手に思う事にしたいと思います。

KisoJava 5」では文字や数値の表現について取り上げた理由を述べました。今回は、ファイルの入出力について、取り上げた理由についてです。

プログラミングの基礎という観点からすると、実はファイル入出力というのはできてもできなくても、それほど重要ではありません。メモリにあるデータを扱うプログラムの方が、データをプログラム中で用意できるので、実装するべきプログラムの処理をどうすればいいのかを考えることに集中できます。最近はやっているJUnitでも、テストデータはテストクラスに持たせて、そのクラス内でテスト用のデータを初期化したりするのが普通でしょう。これは、ちょっとしたプログラムを作成するなら、そのままプログラム内でデータを用意する方が手っ取り早いからです。そう考えてみると、ファイル入出力については説明しなくてもプログラミングの基礎を学ぶ事は十分可能なのです。

では、なぜわざわざファイル入出力のサンプルプログラムを採用したのかというと、まずは、プログラムの処理結果を補助記憶装置へ保存するためには必要な機能だということが挙げられます。こういった実用的な機能は是非一度は見ておくべきですし、電気を切ったら計算結果が消えてしまうプログラムしか作成できないというのは、ちょっと寂しいと思いました。

また、コンソール画面を使った対話的な処理を実装するためには、標準入出力を利用するプログラムが必要です。GUIアプリケーションの作成についてはあきらめましたが、CUIアプリケーションの作成についてはきちんとできるようなJavaプログラマに読者にはなってもらいたいと考えたので、採用したのです。

標準入出力などというのは、UNIXやWindowsなどのOSを勉強したことがないと、わかりにくいものかもしれませんが、CUIアプリケーションを作成するためには避けて通ることはできません。クラスやメソッドなどについて、Part 1ではまともに説明していないため、難易度的にはかなり高いような気がしますが、できるだけ、プログラミングが初めての人でも理解できるような説明を心がけたつもりです。

ところで、ファイル入出力用のプログラムを解説するにあたって、ここでもBeanShellを使っていて良かったことがあります。それは、BeanShellを使っていると、例外については基本的に考える必要がないという点でした。Javaプログラムでファイル入出力について話をしようとすると、かならず例外がつきまとうので、それについて簡単に説明するとか、throws Exceptionをメソッドへつけてtry文がでてこないようにして文法の説明を後回しにしたりする対応が必要でした。ところが、BeanShellではそういった説明は必要なく、とにかくファイル入出力用プログラムを作成するために重要だと考えられる点だけ説明をすれば済むので、初心者にはわかりやすいと思っています。もちろん、内容の難易度としては難しいので、簡単だとは言えませんが、例外などについて考える必要がない分、Part 1の内容を勉強する人にとっては負荷が低いはずです。