いつの間にかマガジンで「まおちゃん」やってるし

OpenOffice 関係
1.1 rc が出たので入れてみる.
今回は独自ビルド(OOo_1.1RC_Win32Intel_install_ja_curvirgo)をインストール.
独自に日本語化されたOOo_1.1RC_Win32Intel_install_ja_curvirgoだと,ほとんど完成版という感触です.
ファイルのセーブやマクロの実行なども,ちょこちょこと速くなった気がします.
Java 関係
クリッピングのclass(一部)完成.
抽象classを初めてつかってみたり.
次はinterfaceだ.
ゴーメンガスト
DVD 見終わり.
ていうか,これは「タイタスグローン」「ゴーメンガスト」の映像化で,「タイタスアローン」は入っていないですね.
なかなかよかったですが,荒俣さんの「別世界通信」でじらさられた身としては,未消化感が残るので,小説も読んでみようと思います.
メモ:創元推理文庫「タイタス・グローン」,「ゴーメンガースト」,「タイタス・アローン
メモ:「よつばと!」 1巻は8月27日発売

HAL の A はアルゴリズムの A

仕事関係
で進展していなかったアルゴリズムを何とか捻出.
でも,煩雑だったので,もうちょっと何とかならんかと探したら,見つかりました.
Weiler-Atherton アルゴリズム (Weiler, Kelvin, and Atherton, Peter, “Hidden Surface Removal Using Polygon Area Sorting”, Computer Graphics, Vol.11., pp.214-222, 1977).
SIGGRAPH 77 の proceeding らしいです.
今日はこのアルゴリズムを検証して力尽きました.
ってこれで見通しが付いただけで,これからプログラミングに入るわけです.
いまから一山も二山も越えないといけない.

梅雨真っ盛り

サーバ関係
PHPを使ってみる.
参考:
日本 PHP ユーザ会
携帯端末 – PHP Tips
ケータイWatch ケータイ用語: 第140回:クライアント認証 とは
PHP4徹底攻略改訂版のPDFファイル公開
auの端末からサブスクライバIDを使って,パスワード入力なしに認証する.

<?php
if( ereg( "UP.Browser", $_SERVER['HTTP_USER_AGENT'] ) )
{
$headers=getallheaders();
if( ereg( "xxxxxxxxxxxxx_xx.ezweb.ne.jp", $headers['x-up-subno'] ) )
{
// Ezweb用のページ
echo "<html>";
echo "<head><title>sample</title></head>";
echo "<body>";
echo "test";
echo "</body>";
echo "</html>";
// header("Location: index.html");
exit();
}
else
{
// その他端末用のページにジャンプ
header("Location: ../index.html");
exit();
}
}
else
{
// その他端末用のページにジャンプ
header("Location: ../index.html");
exit();
}
?>

梅雨真っ盛り

母校関係
今度は中学校なわけです.
プールの隣には七瀬川が流れてて,水泳部だった私たちは,よく魚捕まえたりしたですよ.
ちなみに「ぬか」中学校と読みます.
その名の通りの田舎のいい学校でした.
蛇足ですが,その隣には額小学校があって,祖母も行ってた創立130年くらいの歴史(は)ある学校です.
PC Watch より
いまや希少種となったシングルスピンドル機「Interlink XP」
C1VJ の後継機をどうしようかと悩んでいる今日この頃.
A5サイズってないんですねぇ.
件の InterLink XP ですが,液晶が1,024×600 なのが悩むところ.
C1MZX でも 1280×600 あるんだよな,と思うと新古で C1MZX 探そうかなとも思ったり.
WPC Arena より
ソースの「1980円」に揺れるソフト市場
見逃してましたが,ソースネクストが頑張っている様子.
この値段なら,驚速ADSL(R)2 を買ってもいいかなと思ったり.
週末の予定
この週末は実家へ帰って墓参り.

生きるのに必死

通勤途中
に,巣立ちしたばかりのスズメをよく見ます.
蛾とかを追っかけて,慣れないものだから人が居るのも気づかずに,私に近寄ってきてしまい,びっくりしてたり.
生きるのに必死なのですが,その姿を見てると,ほのぼのします.
でも後で考えたら,私も生きるのに精一杯なので,外から見たらそんなもん?
A5305K 関係
ZDnet で特集
Java, +3D 関係

3/21分に載せた模型のその後.
Java3D の勉強がてらモデリングしてみました.
元は Java3D のサンプルを参考にしてアプレットで作り,回っています.
簡単に 3D が扱えるので,趣味でも遊んでみたいです.
サーバ 関係
NFS をサーバで動かし,kachuha(linux クライアント マシン)からもデータ共有できるように.
参考:Linux NFS-HOWTO
読書三昧
で,さすがに3冊続けて読むと脳がトコロテン状態に.
気分転換に夕方から風呂掃除して,ドライブ.
ハーゲンダッツ6個入りを買って帰る.
そんなわけで感想等はまた明日に?

メモいろいろ

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: