DATE : 2006/08/16 (Wed)
「JAI の簡単な使い方」では、javax.media.jai.JAI#create(String, java.awt.image.renderable.ParameterBlock) を使いました。この create メソッドは、操作内容の文字列とパラメータとを引数にとりますが、他にも、RenderingHints を引数に取る create メソッドがあります。(javax.media.jai.JAI#create(String, java.awt.image.renderable.ParameterBlock, java.awt.RenderingHints))
RenderingHints とは、java.awt.RenderingHints で定義されているクラスで、描画方法を指定できます。例えば、線を描画する際にはアンチエイリアスをかける、かけないといった指定などです。
JAI で用意されたレンダリングヒントを設定すると、分割画像を作ることができます。
具体的には、javax.media.jai.JAI#KEY_IMAGE_LAYOUT を使用します。このレンダリングヒントを指定して、内容として javax.media.jai.ImageLayout オブジェクトを指定します。
以下に、1つの分割画像が100×100の画像を生成するコードを示します。なお、分割対象の画像オブジェクトは source 変数に格納されているものとします。(import 文などは省略しています)
ImageLayout layout = new ImageLayout();
layout.setTileWidth(100);
layout.setTileHeight(100);
ParameterBlock parameter = new ParameterBlock();
parameter.addSource(source);
RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);
RenderedImage result = JAI.create("Null", parameter, hints);
この記事では特に行う操作はないので、 create メソッドに Null 操作を指定しました。
ImageLayout オブジェクトの tileWidth, tileHeight プロパティを設定し、RenderingHints に格納、create メソッドに渡すことで、分割画像を作ることができます。
参考文献
DATE : 2006/08/15 (Tue)
GIS 分野に手を出すことになりそうなので、PostgreSQL で地理情報を扱うためのモジュール、PostGIS をインストールしてみました。
ここでは、Windows XP 版でのインストール方法、PostGIS そのもののインストールから、データベース上で PostGIS を扱えるようになるまでをメモします。
インストール方法
PostGIS をインストールするには、以下の方法があります。
- PostgreSQL インストーラから
PostgreSQL のインストーラから、PostGIS モジュールの追加を選択できます。Windows 版では MSI 形式のインストーラが提供されているので、PostgreSQL のインストール後でも追加できます。
ただし、PostgreSQL インストーラには古いバージョンの PostGIS が付属しています(例えば、現在の PostGIS の最新バージョンは1.1.3ですが、PostgreSQL 8.4 に付属する PostGIS は1.0.5です)。
- PostGIS インストーラから
- PostGIS の公式サイトには、最新版の PostGIS インストーラが配布されています。このインストーラからインストールする場合、PostgreSQL 付属の PostGIS は未インストール状態か、もしくはアンインストールしておかなければなりません。
ただ、参考文献によると、Windows XP SP2 上の PostgreSQL 8.1.4 と PostGIS 1.1.3 はインストール中にエラーが発生するなど、相性が良くないそうです。
データベースで地理情報を扱えるようにする
まず、PL/pgSQL 言語をデータベースで扱えるようにします。(「>」はプロンプトです)
> createlang plpgsql <データベース名>
なお、すでにインストールされている場合もあります。
次に、PostGIS オブジェクトや関数をデータベースにインストールします。具体的には、インストールしたいデータベースに対して lwpostgis.sql を実行します。
> psql -f lwpostgis.sql -d <データベース名>
lwpostgis.sql などのファイルは、「<PostgreSQL のホームディレクトリ>\share\contrib」にあります。
実行後、最後にコミットされればインストール成功です。ロールバックされた場合は、インストールが失敗しています。
ちなみに、文字エンコーディングの問題でインストールが失敗した場合は、データベースにログインした後、psql で扱う文字エンコーディングを変更して実行します(psql のコマンドラインオプションで設定する方法もあります)。(「#」は、psql のプロンプトです)
# \encoding SQL_ASCII
# \i lwpostgis.sql
最後に、座標系が定義されたデータを登録します。
> psql -f spatial_ref_sys.sql -d <データベース名>
これも実行後、最後にコミットされればインストール成功です。
これまでの作業が終われば、データベース上で地理情報を扱う準備は終わりです。
参考文献
DATE : 2006/08/14 (Mon)
以前テレビで見て( ´;ω;)ウッ…ときてしまったので、とうとう DVD を買ってしまいました。
そしてやっぱり( ´;ω;)ブワッときてしまいました。
元々、大人も楽しめるアニメとして劇場版クレヨンしんちゃんは制作されてきたようですが、これはもう、大人になればより楽しめる作品と言えます。
サブタイトルにもあるとおり、この作品では、しんのすけが戦国時代にタイムスリップします。そこで現代っ子であるしんのすけが戦国時代の人々と触れ合うことで、現代と昔の価値観の違いがはっきりと浮き出る作り、ひいては、安易な平和主義を問う形になっています。
また同時にクレヨンしんちゃんなので、ギャグシーンは一級品です。ギャグシーンから感動へ落とすわけですから、(´・ω・)監督は観客にひどいことしたよね
私は時代劇のことはよく分からないのですが、時代考証がとても優れているそうです。時代劇にはうとい私でも、戦国時代の春日部を俯瞰した場面は圧巻の一言でした。他にも、細かいところで当時の様子をうかがわせる描写があります。
ちなみに、原恵一監督は、「ドラミちゃん アララ少年山賊団!」の監督でもあります。( ´∀`)この作品も昔の雰囲気がうまく出ていたように思います。
ところで、Amazon の評価は今のところ、67件のレビューが付いて星5つ(最高評価)です。(;´∀`)まあ、この評価に背中を押されて買ったという部分もあるのですが。中には、ジブリ作品よりも優れているという評価さえあります。
元々青年誌連載で「子供に見せたくない番組」常連のクレヨンしんちゃんでこんなしっかりした作品を作るなんて、(´・ω・)監督はおそろしいことしたよね
( ´∀`)ま、このギャップがまたいいんですけどね
参考文献
DATE : 2006/08/13 (Sun)
ある日データディレクトリのある C ドライブの空き領域を確かめてみました。すると、残り600MB程度しかありません。そこで、空いている別のドライブへとデータディレクトリを移動しようと思い立ちました。
実際はもっとスマートな方法があるのかもしれませんが、とりあえずこの方法でできたので、忘れないうちにメモしておこうと思います。
なお、PostgreSQL のバージョンは 8.1.4、OS は Windows XP Home Edition SP2 を対象としています。
大まかには、次のような手順になります。
- データベースをファイルに書き出す
- データベースクラスタを新たに作成する
- PostgreSQL データベースサーバのサービスを修正する
- データベースクラスタにデータベースを復元する
- 古いデータベースディレクトリを削除する
データベースをファイルに書き出す
PostgreSQL の全データベースを書き出すために、pg_dumpall コマンドを使います。例えば、db.out ファイルにデータベースを書き出すには、次のようにコマンドを実行します。(ここで、行頭の「>」はプロンプトを表します)
> pg_dumpall > db.out
データベースクラスタを新たに作成する
データベースクラスタとは、1つのサーバで管理されるデータベースの集まりのことを言います。ここでは、別のドライブに新しいデータベースクラスタを作成します。
具体的には、initdb コマンドを使用してデータベースクラスタを作ります。
ただし、initdb は管理者権限のあるユーザでは起動できません。PostgreSQL では、セキュリティ上の理由から、管理者権限ではデータベースサーバに関わる処理を実行できません。
しかし、Windows 版の PostgreSQL の場合、インストール時に PostgreSQL 用のアカウントが作られています。初期設定では postgres なので、ここでは postgres アカウントとします。そのため、initdb を postgres アカウントで実行します。
具体的には、postgres アカウントで起動したコマンドプロンプトで initdb を実行することになります。スタートメニューからの場合は、コマンドプロンプトのところで右クリックメニューを開き、「別ユーザとして実行(A)...」で起動します(もしくは、runas コマンドで別ユーザとしてのコマンドプロンプトを開きます)。
D ドライブ直下の data フォルダをデータディレクトリにする場合は、次のようにコマンドを実行します。(ただし、data フォルダは未作成か、空でなければなりません)
> initdb -D d:/data -E UTF8 --locale=C -U postgres
-d オプションはデータディレクトリ、-E オプションはデータベースクラスタの文字エンコーディングを表します。
PostgreSQL データベースサーバのサービスを修正する
ここで、PostgreSQL データベースサーバが起動している場合は、停止させておきます。
コントロールパネルからサービスの一覧を開き、「PostgreSQL Database Server 8.1」のプロパティ内にある「実行ファイルのパス」欄を見ると、-D オプションに移動前のデータベースディレクトリのパスが設定されています。そのため、-D オプションの設定を、新たに作成したデータベースディレクトリに設定し直します。
しかし、「実行ファイルのパス」欄は編集不可になっています。そこで、レジストリから「実行ファイルのパス」を編集します。
スタートメニューの「ファイル名を指定して実行(R)...」で、「regedit」と入力してレジストリエディタを起動します。
レジストリの「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.1」の「ImagePath」を変更します。
変更後、「PostgreSQL Database Server 8.1」を起動できれば、変更は完了です。
データベースクラスタにデータベースを復元する
次のコマンドを実行して、新しいデータベースクラスタにデータベースを復元します。
> psql -U postgres -f db.out
db.out には postgres ユーザの情報も格納されています。そのため、postgres ユーザが重複しているといったエラーが出るかもしれませんが、無視しても構いません。
移動前のデータベースディレクトリを削除する
移動前のデータベースディレクトリを、そのまま単純に削除します。これで、作業は完了です。
参考文献
DATE : 2006/08/12 (Sat)
pg_hba.conf ファイルを編集すると、クライアントがデータベースサーバにアクセスする際の認証方式を設定することができます。(通常、pg_hba.conf は、データディレクトリ直下にあります)
何も設定していない場合の pg_hba.conf は次のようになっています。(Windows XP SP2 上の PostgreSQL 8.14 の場合)
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
ここで、それぞれの列は次のような内容となっています。
- TYPE
- 接続方法を表します。host は、TCP/IP 接続を表しています(ただし、通常は localhost からの TCP/IP 接続のみ行えます)。
- DATABASE
- 認証の対象とするデータベースの名前を表します。all は、全てのデータベースを表します。
- USER
- 認証の対象とするユーザ(ロール)の名前を表します。all は、全てのユーザ(ロール)を表します。
- CIDR-ADDRESS
- 認証の対象とする IP アドレスの範囲です。上の例では、PostgreSQL サーバを実行しているマシン自身の IP アドレスを表しています。
- METHOD
- 認証方式を表します。trust は、認証を行わない、つまり、パスワードなしでデータベースサーバにアクセスできることを表します。
ここで、ローカルからのアクセスでも認証を行うには、上の設定を次のように変更します。
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
各設定の METHOD を、trust から md5 に変えました。こうすることで、パスワード認証を行うことができます。なお、md5 とは、クライアントとサーバの間でパスワードを暗号化してやりとりする方式です。ちなみに、password と設定すると、パスワードを平文でやりとりします。(他の方法は、参考文献を参照してください)
1人でデータベースを扱う場合は Trust 認証でもよいのですが、複数人で扱う可能性のある場合は、パスワード認証にした方がよさそうです。