メモいろいろ

Java
昨日 Java2 SDK_1.4.1_03 を落としたら,今日 1.4.2 が出ている罠.
VAIO PCG-SRX7F/P でJava3D (というよりも OpenGL) が使えないと思ったら,表示色数を 16ビット(True Color)にしたら OK でした.
やさしくわかる Java3D」,太田 篤史著 を購入.
Atsushi’s Homepage ~ Java3D 関連リンク
Java3Dアプレットを実行するには
JavaによるCGの体験学習
Java トラブルシューティング
クォータニオン(四元数)
3D グラフィック関係で,Ichiroh Kanaya先生のVector Complex Quaternionが参考になりそう.
OpenOffice
OpenOffice.org 日本ユーザー会
OpenOffice.orgの使い方
OpenOffice.orgドキュメントプロジェクト

初夏嵐

シルマリルの物語 改訂版
出てました.
旧版の上下巻も持ってるのですが,何やら追補されてるようなので買いますた.
「指輪」サガではこれが一番好きです.
BS漫画夜話 再放送
今回見たのは「幽☆遊☆白書」「パトレイバー」「最終兵器彼女」.
高橋しんは最近苦手気味.
「いいひと」途中まで単行本買って読んでたのですが,この人の漫画はやたら感情に響くんですよ.
痛いくらいに.
で,「彼女」ですが,連載開始時に少し拾い読みしてました.
今回の放送を見ながら,一度読んでみようかなと思いました.
ただし,途中までは.
後半を見ていると,もう凄まじいですね.
レギュラー陣の話を聞いているだけで心臓が縮み上がりました.
ストーリーも逝くとこまで行ってるみたいですね.
「いいひと」のときから「絵」がコントロールが効いてるなぁ,と思ってましたが,
なるほどお話もコントロールが効いてるようですね.
オープンオフィス
マクロで現在のファイルネームを取得する方法.
Excel では CurrentFileName = thisWorkBook.Name
thisComponent.location でフルパスのファイルネームが次のような URL形式で取得できる.
file:///D:/Documents%20and%20Settings/user/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/RecruitIndex_20030627.sxc
ので,そこからファイルネームを切り出す.
下記の CurrentDir は windows版では CurDir がうまく動かないため.

Dim thisBook as object
thisBook = thisComponent
CurrentFileName = GetFileName(thisBook.location)
CurrentDir = GetPath(thisBook.location)


Function GetFileName (ByVal fullPath As String) As String Dim i, j, tmpLength As Integer j = 0 tmpLength = Len(fullPath) for i = 1 to tmpLength if Mid(fullPath, i, 1) = "/" then j = i end if next i GetFileName = Mid (fullPath, j + 1, tmpLength - j) End Function

Function GetPath (ByVal fullPath As String) As String Dim i, j, tmpLength As Integer j = 0 tmpLength = Len(fullPath) for i = 1 to tmpLength if Mid(fullPath, i, 1) = "/" then j = i end if next i GetPath = Mid (fullPath, 1, j) End Function

夏がくれば

オープンオフィス
windows版で作ったマクロを linux 版で動かしてみる.
文字列の加算が windows (ver 1.1 b2)では “+”,”&” どちらでも OK でしたが,
linux (ver 1.0.2) では “+” でないとダメでした.
後,マクロで HTML を出力しているのですが,出力されるファイルの文字コードが windows では S-JIS,linux では EUC になります.
どこかで選択できるのかな?
linux では CurDir は正常に動いてました.
windows では挙動があやしいうえ,日本語も化けてます.

夏時間

Java on Linux
昨夜は linux に Java SDK をインストールし,これまで windows 上で作ってた ソースを動かしてみる.
当たり前ですが,ちゃんと動きました.
偉い,偉い.
MS Excel → OpenOffice Spreadsheet
データはほぼ問題ないのでマクロを移行してみる.
環境は以下の通り
Windows XP Pro sp1
Microsoft Excel 2000
OpenOffice ver 1.1 beta2 Windows版
excel の形状指数マクロを OpenOffice Spreadsheet(OOS) に移植.
単純な計算のみなためかスムースに移行.
excel(VBA) では円周率(π)を Application.pi() で呼び出してましたが,
StarBasic(SB) では Pi という定数でした.
また,phi, zeta は SB では予約語らしく変数名としては使えませんでした.
勢いづいて,少し複雑なHTMLを吐き出すマクロをいじってみると,細かいところで違いがあり,一歩づつ手探りでした.
例えば,セルの参照は次の様に対応しています.
VBA: Comment = Worksheets(“ソース”).Range(“D2”).Value
SB: Comment = ThisComponent.sheets.GetByName(“source”).GetCellRangeByName(“D2”).String
ここで SB では最後を “.Value” にすると int 型として読みます.
中身が文字列の場合は “0” が入れられます.
(OOS ではワークシート名に日本語を入れるのもちょっと心配.)
行・列を指定する場合は以下のように.
VBA と SB では行・列の順番が逆です.
また,excel では左上隅のセルは(1, 1)ですが,OOS では (0, 0)ですね.
VBA: tmp = sheet.cells(row, column).Value
SB: tmp = sheet.GetCellByPosition(column – 1, row – 1).String
ActiveCell なども異なりますが,こちらは未整理.
その他,CurDir (current directory) が正常に動いていない気がするんですけど…?
とりあえず,求人情報(HTML)を吐き出すマクロは移植できました.
ただし,マクロが汚いので修正が必要です.
これら以外は,ほぼ手を加えることなく動いたので,VBA と SB とはけっこう互換性は高いようのではないでしょうか.

曇天吉日

Java
Tiff のヘッダを読むプログラムが大体形になってきました.
一応,これで解像度などの情報を読み取り,中身を読めます.
コードは汚くて長いので,結果だけ.

0000: 49 49 2A 00 08 00 00 00
0008: 0E 00                               / 14 of IDF
0010: FE 00 04 00 01 00 00 00 00 00 00 00 / NewSubfileType	0
0022: 00 01 03 00 01 00 00 00 00 02 00 00 / ImageWidth	512
0034: 01 01 03 00 01 00 00 00 00 02 00 00 / ImageLength	512
0046: 02 01 03 00 01 00 00 00 01 00 00 00 / BitsPerSample	1
0058: 03 01 03 00 01 00 00 00 01 00 00 00 / Compression	1
0070: 06 01 03 00 01 00 00 00 00 00 00 00 / PhotometricInterpretation	0
0082: 11 01 04 00 01 00 00 00 90 01 00 00 / StripOffsets	400
0094: 15 01 03 00 01 00 00 00 01 00 00 00 / SamplesPerPixel	1
0106: 16 01 03 00 01 00 00 00 00 02 00 00 / RowsPerStrip	512
0118: 17 01 04 00 01 00 00 00 00 80 00 00 / StripByteCounts	32768
0130: 1A 01 05 00 01 00 00 00 B6 00 00 00 / XResolution	72
0142: 1B 01 05 00 01 00 00 00 BE 00 00 00 / YResolution	72
0154: 28 01 03 00 01 00 00 00 02 00 00 00 / ResolutionUnit	2
0166: 49 86 01 00 CA 00 00 00 C6 00 00 00 / (unknown)	0
0178: 00 00 00 00                         / end of IDF
0182: 80 FC 0A 00 10 27 00 00
0182: 80 FC 0A 00 10 27 00 00
0182: 38 42 49 4D 03 E9 00 00 00 00 00 78
0194: 00 0C 00 00 00 48 00 48 00 00 00 00
0206: 03 2A 02 40 FF F1 FF F7 03 39 02 49
0218: 2A 02 05 78 03 DE 01 00 00 00 01 2C
0230: 01 2C 00 00 00 00 0D 2F 09 60 00 01
0242: 00 00 00 64 00 00 01 01 00 01 00 00
0254: 00 00 00 01 27 0F 00 01 00 00 00 00
0266: 00 00 00 00 00 00 00 00 00 00 00 00
0278: 00 00 00 00 00 00 00 00 00 00 FF C2
0290: FF DA 0D 6D 09 86 00 08 01 00 00 00
0302: 00 00 00 00 00 00 00 00 00 00 00 00
0314: 38 42 49 4D 03 ED 00 00 00 00 00 10
0326: 00 48 00 00 00 01 00 02 00 48 00 00
0338: 00 01 00 02 38 42 49 4D 03 F3 00 00
0350: 00 00 00 07 00 00 00 00 00 00 00 00
0362: 38 42 49 4D 27 10 00 00 00 00 00 0A
0374: 00 01 00 00 00 00 00 00 00 02
0384:

実戦配備

夏の足音
余りもので今夜の御飯はソーセージカレー.
冷蔵庫の中もだいぶすっきりに.
暑くなってくると物が腐りやすくなるので,食材は早めに食べるようにしないとね.
そうそう,今夏初の蝉の声を聞きました.
下宿の前の桜の木から聞こえてきましたとも.
早っ.
アース ノーマットを買いました.
実は,一人暮らしして15年間でこういうものを買ったのは初めて.
下宿はいつも川沿いのとこばかりで,蚊は多いのですが,昼間から網戸をしていればほとんど問題なし.
だったのですが,
Bonnie and Clyde (俺達に明日はない), 1967
DVD 買ってたのをやっと見ました.
面白かったです.
分かってはいるのですが,やはり最後の銃撃シーンは綺麗でしたね.
てか,昔見たはずなのに,クライドがイ○ポってところは全然覚えてませんでした.
メモステ アダプタ
メインマシン用に Flash GO! memory stick
長らくほったらかしでしたが,メインマシンでメモステを使えるようになりました.

I lost k

ルータ ダウン
どうやら水曜日は下宿のルータが落ちてました.
というか,勝手に接続断してたようです.
時々,不思議な行動してます MN7320.
キーがイーに
仕事で使ってる SRX7F/P のキーボード “k” だけの「感」が悪くなりました,突然.
日本語変換がおかしいのかなと思っていたら,k だけ2回に1回くらい取りこぼすことが判明.
私は元々ソフトタッチ気味で,なおかつノートパソコンなのでキーを強く打つのはちょっと気に障ります.
結構ストレスがたまるので修理に出した方がいいんだけど,仕事でガンガン使ってるしなぁ.
青歯王 完敗
Bluetoothはなぜ日本で流行らない? を読んで激しく同意.
そうですよ,何で日本では流行らなかったんでしょうか?
とか言ってる私も Paldio 633S を解約しましたが.
でも乗り換えた au がやってくれそう?

明日は VF-11B ファストパック版の発売(予定)日なので,トイザらスへ行きまふ.

カメ

時ソバ
昨日,生協で買い物したときに「時ソバ」をやってしまいました.
パンとジュースを買って,レジ打ち(バーコードリーダですが)の時に話しかけたら,ジュースが会計から漏れてしまいました.
レジのお姉さんは気が付かなかったので,こちらから言ってお金はちゃんと払いましたよ?
そのとき話してたのですが,工学部の生協食堂(1F)にもエアコンが入りましたよ!
pc 関係
kachuha の CD ドライブが認識されなくなっていたので,筐体をあけて見てみると,IDEケーブルが随分とくたびれていました.
前の M/B のときに結構無理な取り回しをしていたのでした.
で,ケーブルを交換すると,無事認識されました.
ついでに,win2k と Redhat 9 のデュアルブートにして,遊びつつバックアップマシンとして使うことにします.
Java 関係
まだ java 流のコードの書き方(というよりもキチンとしたコード書き)に慣れていないので,大きなプログラムを作る前に,コードを推敲してみる.
まだ酷いものですが,前よりはましになったかな.

// Tiff データ ファイルを読み込み IDF を解析する
import	java.io.*;
class AnalizeTiffFormat {
int	tmpMinOfData = 240;
int	tmpMaxOfData = 540;
int	tmpNumberOfTag = 0;
int	tmpMaxOfTagNumber = tmpMinOfData;
int	tmpMinOfTagNumber = tmpMaxOfData;
String [] key = new String [] {"", "", "", "", "", ""};
String [][] matrix = new String [tmpMaxOfData - tmpMinOfData][6];
int	i = 0;
int	j = 0;
String	DefaultTagFileName = "tags.txt";
/* Tag data の初期化 */
void Initialize() {
LoadTagFile(DefaultTagFileName);
}
/* 10進コードに該当する tag が存在するかどうかを返す */
boolean ExistTagNumberOf (int i) {
if (i < tmpMinOfData || tmpMaxOfData < i) {
return (false);
}
else if (matrix [i - tmpMinOfData][0] == null) {
return (false);
}
else {
return (true);
}
}
/* IDF の Name を返す */
String IDFName(int i) {
return (matrix [i - tmpMinOfData][0]);
}
/* IDF の 10進コード を返す */
int IDFDecimal(int i) {
//    return (i);
return (Integer.valueOf(matrix [i - tmpMinOfData][1]).intValue());
}
/* IDF の 16進コード を返す */
String IDFHex(int i) {
return (matrix [i - tmpMinOfData][2]);
}
/* IDF の Type(byte, ascii, short, long, rational) を返す */
String IDFType(int i) {
return (matrix [i - tmpMinOfData][3]);
}
/* 読み込んだ IDF データの個数を返す */
int NumberOfTag() {
return (tmpNumberOfTag);
}
/* Tag data file を読み込む */
private void LoadTagFile( String TagFileName ) {
try {
FileReader File = new FileReader( TagFileName );
for (int k = tmpMinOfData; k < tmpMaxOfData; k++) {
matrix [k - tmpMinOfData][0] = null;
}
int a;
i = 0;
while(( a = File.read() ) != -1 ) {
if (a == '\n') {
i++;
int num = Integer.valueOf(key[1]).intValue();
for (int k = 0; k < j; k++) {
matrix [num - tmpMinOfData][k] = key [k];
key [k] = "";
}
if (num >= tmpMaxOfTagNumber) {
tmpMaxOfTagNumber = num;
}
if (num <= tmpMinOfTagNumber) {
tmpMinOfTagNumber = num;
}
j = 0;
}
else if (a == '\t') {
j++;
}
else {
key [j] += (char) a;
}
}
tmpNumberOfTag = i;
File.close();
}
catch ( Exception errorvalue ) {
errorvalue.printStackTrace();
}
}
}
class TiffFormatTest {
public static void main( String args[] ) {
AnalizeTiffFormat Tiff = new AnalizeTiffFormat();
Tiff.Initialize();
for (int i = 250; i <= 539; i++) {
if (Tiff.ExistTagNumberOf(i) == true) {
System.out.println(i + ": " + Tiff.IDFName(i));
}
else {
System.out.println(i + ": /");
}
}
}
}

びわ

日々の星座
Paldio 633S を解約
プリンタ MD-1300 を廃棄
RedHat のスクリーンセイバに「マトリックス」を発見
久しぶりに風呂を沸かして,GOTH by 乙一を読む

実録 今日一日.
10分おきの画像を一日分並べてみる.

ソース焼きそば

PC 環境 – 下宿

掃除をかねて PC 周りを整理.
ついでに,kachuha (写真右 一体型)をメインマシン(写真中央 ディスプレイとその下の本体)の隣に持ってきました.
linux をクライアントとして使ってみます.
server backup として使う前に遊んでみる予定.
メモ
Opera 7.11 日本語版
秀丸エディタ 4.00b2
A5305K

写真とって見ました.
paldio 633s よりも小さくなったクレイドル.
クレイドルに乗せたまま本体を回転することも出来ます.
AC アダプタも大きく見えますが,クレイドル側がプラグになっています.
そのため,AC アダプタ部だけを携帯して充電が可能です.
今使ってる壁紙は原田屋(原田さん)の画から.