2004年02月11日 水曜日

今日は某イベント

年に数度もいけなくなってしまった某イベントですが、今日はTLUCつながりの山下君が「行ってみたい」と言う話をずいぶん前に聞いていたので、一緒に出かけてみました。今回は珍しく写真を撮ったのですが、着いて写真を撮ろうという段階で、Microdriveを忘れてきたことに気が付きいきなり意気消沈。IXYに入っていた80MBのCFを使って撮影することに。データは山家さんに保護してもらって、撮影に乗り出しました。山家さん、ほんとに助かりました。
今日チョコレートをくれたみなさんほんとにありがとでした。チョコレート好きなのでかなり嬉しいです…

結城 浩 / 「Java言語で学ぶデザインパターン入門

最近、○○パターンと言ったデザインパターン用語を聞くことが多いのと、「再利用」を前提にしたプログラムを組んだ方が良いんでないのと言うことと、もうちょっと抽象性のある議論についていけるようになった方がいいのではということで、Javaに対する枷もあまり無くなってきたので、入門書を購入してみた。いきなりGoF本はやっぱり厳しそうなので、説明が非常に巧いと感じている結城さんの本でお勉強と言うことで。Javaの口慣らしも兼ねてと言うことで。

電車でD

今日以前より噂だけ聞いていた電車でDを山下君より借りる。これは凄い「複線ドリフト」とか言ってますよ。そのありえなさに_鉄ちゃんじゃなくても、笑いがとまらん。_

SPAM! SPAM! SPAM!

仙台の某所に売っている話を聞いたのでプレーンな奴を1個購入してみた。一つじゃ腹一杯にならないかもしれないが、毎日腹一杯になりそうなくらいspamが… 勘弁してください。spamやダイレクトメールや折り込みチラシの受け取り拒否できると良いんだがなぁ。
SPAM! SPAM! SPAM!

もっと読む

2004年02月10日 火曜日

Java 2 Platform, Standard Edition (J2SE) 1.5.0 Beta1

2月4日にSun MicrosystemsからJ2SE(Java 2 Platform, Standard Edition)の次期バージョンであるJ2SE 1.5.0 Beta1が公開された。JavaはまだJDK1.0のα版とかβ版とか言っていた頃の熱い時代に熱狂的に遊んでいたが、いろいろ熱が冷めるような事件があって、さらに諸般の理由があって_使わない/使えない言語_であった。いままでわりと保守的な更新を続けてきたJavaであるが、J2SE 1.5.0(コード名「Tiger」)では、Java2になったときと同じ程度、もしくはかつて例のない大きな改良が加えられることとなった。言語仕様に関わりそうなものは、ざっくり…

  • JSR-014: Add Generic Types To The Java Programming Language
    Generic Types
    C++のtemplateに相当する機能。Collectionを使う時に値を取り出すのに_キャストの嵐_だったが、これのおかげでソースが保守しやすくなって嬉しい機能だ。無用な機能が多いC++の中で個人的には非常に重要で便利な機能だと思うのだが、Javaに無くて困っていたんだねぇ。
  • JSR-201: Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for loops and Static Import
    Enumerations
    C/C++で言うところのenum型の追加。具体的な内容はEffective Javaの中に書かれているTypesafe-Enumと同じもので、定数を表すためのクラスを使って、各定数はそのオブジェクトにしてしまうというもの。自分で完璧なクラスを書くのは大変(できないか…)なので、言語仕様で提供してくれるのは嬉しいかも。
    Autoboxing/Unboxing
    PrimitiveとPrimitiveのwrapper class間の代入を=でできるようになる。(要は自動変換できるようになった。)
    Enhanced for loops
    for-eachのようなfor文が書けるようになる。Collectionを使う時にいちいちIteratorを使うのはめんどくさい。
    Static Import
    static な定数を import 文でインポートできるようになった。
    Variable length argument
    これでようやくprintfのような関数が書ける。(僕は書かないが…)
  • JSR-175: A Metadata Facility for the Java Programming Language
    と言うところ。これらの変更に伴ってざっくりライブラリが変わっているようだ。(まぁGenericなCollectionになっているはずだし…) まぁ待望の機能は付け加わったので、Javaで遊んで良いお年頃になりました。

Java Generics

と言うことで、早速Genericを試してみよう。J2SE 1.4ではCollection使う時にはこんな感じにしていた記憶がある。

// OldNumberList.java for JDK1.4
import java.util.Vector;
public class OldNumberList{
  public static void main(String args[]){
    int num=Integer.parseInt(args[0]);
    Vector vector=new Vector();
    for(int i=0;i<num;i++){
      vector.add(new Integer(i).toString());
    }
    for(int i=0;i<vector.size();i++){
      // Vectorの要素はObject型なので、キャストが必要!!!
      String text=(String)vector.get(i);
      System.out.println(text);
    }
  }
}

実行するにはバイトコンパイルしてVMで実行だから、
javac OldNumberList.java
java OldNumberList 12
でOK。画面に0から11まで表示される。(そういうプログラムなのね。) これをGenericsを使って書き換えみよう。

// NewNumberList.java for JDK1.5
import java.util.Vector;
public class NewNumberList{
  public static void main(String args[]){
    int num=Integer.parseInt(args[0]);
    // Collection生成時に<>で型を指定
    Vector<Integer> vector=new Vector<Integer>();
    for(int i=0;i<num;i++){
      // autoboxingのおかげでwrapper classを意識しなくて良い。
      vector.add(i);
    }
    for(int i=0;i<vector.size();i++){
      // ここでキャストは不要
      Integer number = vector.get(i);
      System.out.println(number);
    }
  }
}

こっちはJDK1.5での言語仕様拡張を有効にしてコンパイルなので
javac -source 1.5 NewNumberList.java
java NewNumberList 12
でOK。バイトコンパイルされた物の実行はJRE1.4とかでもできそう。(もう環境無いので試せません。) と言うことで、今までObject → Integer というキャストが必要だったようなところはすべて不要となった。ダウンキャストできるかどうかは実行時にしか分からないのでコンパイルでエラーが拾えるのはだいぶん嬉しい。試しに、

// OldNumberList.java for JDK1.4
import java.util.Vector;
public class OldNumberList{
  public static void main(String args[]){
    int num=Integer.parseInt(args[0]);
    Vector vector=new Vector();
    for(int i=0;i<num;i++){
      vector.add(new Integer(i)); // 整数の要素を追加
    }
    for(int i=0;i<vector.size();i++){
      // Vectorの要素はObject型なので、キャストが必要!!!
      String text=(String)vector.get(i); // 実行時にClassCastExceptionが発生する
      System.out.println(text);
    }
  }
}
のようなソースをコンパイル実行してみれば分かるような気がする(No Errorでコンパイルが通ってClass Cast Exceptionが発生するでしょ)
## 今日もダウン...
全く持ってだめだめな状態今日家に帰ってソファーに座った時点で気を失っていました風邪とかではないので完全に気力がないだけなのかも
もっと読む

2004年02月09日 月曜日

栗本 薫 / グイン・サーガ93「熱砂の放浪者」

週末に発売されていたのではないかと思うが、今日購入。早速読了。しばらく中原を離れて魔道めいた辺境の旅と言うことで、ようやく引っ張るだけ引っ張ったグインの自分を捜す旅がスタートと言うことでしょうか。92巻の感想に書いたような展開でなかなか嬉しい。
今回はやたら感慨めいた回想シーンが多く退屈なところもあったが、グインがたびたび窮地で信じられないような瞬間移動をしていることに関して、グラチウスが「体中に古代機械のようなものを内蔵しているのではないか?」と言うと、「実際に瞬間移動できるかどうか試したができなかった」なんて言うやりとりがあって、グインの妙な悩みが垣間見えて面白い。あとカナン帝国の滅亡に関しては外伝の「蜃気楼の娘」に描かれているが、この世界の黄金律を影ながら支配(?)しているであろう存在である『調整者』の存在に対して、グラチウスが、

「わしは人間存在を越えるほどの偉大な魔道師になりはてた『闇の司祭』ではあるが、それでも人間のはしくれじゃからな」グラチウスはいつになくまじめに言うのであった。「わしはそのような可能性について考え始めたとき、なにやら非常に面白くない気持ちがしたのだよ。それから、わしは気づいた。なぜ面白くないのか、なぜ、これはゆゆしき自体だ、どうあれこれをこのままに捨てておくわけにはゆかん、と言う気持ちがするのか。それはこの世界は人間の世界であり、わしは人間であり人間の中では一番偉いにしたところで人間であり、そしてこの世界を作ってきたものも人間に他ならないからだよ。たとえどれほど我々の文化が稚拙な、幼稚な原始的な段階にいようと、我々はその中で、生きたり死んだり、喜んだり悲しんだり愛したり憎んだりしてきたんだよ。それを『上』から、どのくらい上だかしらんがそこから見下されて、なんだかんじゃと『調整』されたり、『管理』されたりすることなど、まったく余計なお世話じゃろ。たとえ我々がいかに『彼ら』から見ておろかであろうとも、われわれにはわれわれの生き方があり、そしてわれわれの範囲でできうる限り、何とか賢くなろうとか、偉大になろうとか、苦闘を繰り返しておるんじゃからな。あるいはその結果悲しくもこの世界が滅びてしまうかもしれん、我々はおのれの愚かしさのために、先祖代々受け継いできたこの世界を滅ぼしてしまうようなことになるかもしれん。だが、それにしても、それはそれじゃろ。そして我々にはそうやっておのれの愚かしさのあまりに世界もろとも滅び去ってしまう権利だって、ちゃんとあるんだよ。おのれの賢さでより高き世界にたどり着く希望と同様にな。」

と言う話をする。グインサーガにおける『闇の司祭』グラチウスの役回りはこの世には巨大すぎるグインの持つ力をおのれの私利私欲のために使うためにグインをつけねらう悪役の筆頭であり、この世では_3大魔道師_の一人という巨大な力を持つ存在であると思っていた。が、この役回りのせいか、人としての存在を捨て去って別の存在と化した『大魔道師』アグリッパや入寂してしまった『北の見者』ロカンドラスと異なって、俗世に関わる人の代表としての意見を言えるのかもしれない。(その辺が、アグリッパやロカンドラスに言わせれば、「まだまだ青年の如く若造なのよ」と言うことになるんだろうが…) 珍しく見識のある意見かもしれないし、栗本さん自身のこの世界に対する意見なのかもしれない。
今回はついにしばらくぶりの登場となる○○○○○○(伏せ字にしておこう)も出てくるし、いよいよグインサーガも佳境に突入と言うことで、次巻以降がまたまた楽しみなのである。

もっと読む

2004年02月08日 日曜日

写真の整理

昨日のkumanekoさんの結婚式の写真の整理、日記の更新と整理が続いた1日だった。なんだか一気に作業でした。昨日は写真を撮ることに集中していたので、あまり自分の想いや考えが止まっていたが、今日ゆっくりと写真を整理していて、いろいろと思うところがあった。なんだか寂しくなってしまったな。

洗車

一昨日から融雪剤まみれになっていたので、雪が降る中洗車を行った。コーティングしているせいか水をかけるだけでたしかに気持ちよくなるくらい汚れが取れる。なかなか楽しい。

駄目だ、ダウン。

体力的なものなのか、精神的なものなのか、もうだめだめ。なんだかなんにもやる気がしない。食事も道でも良くなっているところがやばいかもしれない…

もっと読む

2004年02月07日 土曜日

kumenekoさんの結婚式に参列

今日はいつもお世話になっているkumanekoさんの結婚式に招待されていたので、参列してきました。kumanekoさんは僕が某所のイベントで写真を撮るようになった頃からお世話になっているのですが、一昨年の秋頃より個人的にポートレートのモデルをお願いして、自然な距離感、自然な表情で表情や仕草がとても可愛い女性です。非常によい関係で写真を撮り続けてきました。
彼女は写真からも読みとれるのではないかと思うのですが、非常にとても優しく、よく気の回る、非常にしっかりされた女性だなと思っています。こうしてご結婚されることを聞いて、「幸せになってくださいね」という祝福する気持ちと、こういう非常に得難い女性が結婚されていくのを見送るのに妙に悔しい気持ちと大きな喪失感が錯綜した何とも言い難い心境で参列してきました。(まぁ気分の整理はずいぶん前に付いているのだが…)
ただこういう付き合いで結婚式に呼んでいただけるのは本当に嬉しくて、呼んでいただけて良かったなと思うなかなか良い結婚式でした。旦那さんになられた方に初めてお会いしましたが、しっかりとされた方(_僕と比べればたいがいしっかりされた方ばかり_だな)で、どんな方なのかと思っていましたが、何となく安心しました。(実家が北九州市だというあたりが更にびっくりだったのだが…僕は元北九州市に住んでいたので。) とにかく末永くお幸せに…
と言うことで、今回も似非婚礼写真屋として写真を撮りまくってきました。しっかり撮影をされる山家さんがいらっしゃるので、安心していつもの基本スタイルである明るいレンズを活用したノーフラッシュ撮影と絞りを開け気味にしたバウンスを使った撮影をメインに撮影してきました。教会内での撮影も可能だったのですが、教会内はISO800で絞り開放(F1.4)でもぎりぎりシャッター速度が稼げる程度の暗さだったので結構テクニックを要する場所だったかなと思います。(ステンドグラスの青い光がいい具合に出る時と出ない時とがあって色合いも難しかった…)
kumanekoさん 結婚式 その1kumanekoさん 結婚式 その2kumanekoさん 結婚式 その3kumanekoさん 結婚式 その4kumanekoさん 結婚式 その5kumanekoさん 結婚式 その6kumanekoさん 結婚式 その7kumanekoさん 結婚式 その8
式が終わったあとは天候が非常に怪しかったので、1次会にて撤収。帰路もまさみさんと一緒に移動で、まさみさんとこの新居も見せていただいて無事帰還。以下は日記にしか出さないひょっとしたら今回のベストショット(?) 良い感じに動きが出ていて、良い感じにぶれたかなぁ…
kumanekoさん 結婚式 余興の一コマ