jFD開発したりしなかったり日誌
2006-02-18 [長年日記]
_ 液晶道中記
I氏から液晶ディスプレイをもらいに新宿へ。
バイクに乗って246を渋谷へ向かうとけっこうな渋滞っぷり。
あかんなー
渋谷を回っていこうかと思ったけれど、環七経由に変更。
多少はマシだったがあんまり大差なく、やっぱり渋滞していた。
食事がまだだったので九州一番で明太子ラーメンを食べてさらに進む。
道をよく知らないので適当に進んだら、新宿行きという看板があったので
適当に右折。
小さい道で、信号が多くてスムーズじゃないなあ、と思っていたら、
気が付いたらさとやんさんちのすぐ近くにいて驚いた。
あ、この道だったのか。
山の手通りで左折してだらーっと進み、青梅街道を上ってI氏オフィスへ。
無駄に時間かかったなあ。
I氏は仕事中なので、さっさとディスプレイをもらい退散。
持ってきたプチプチマットを敷いてバイクのトランクに入れたら
いい感じに収まった。
スクーターって素晴らしい。
帰りは高円寺を経由して帰宅。
新宿行くならこれが一番速いか。
_ その後、
帰宅したらとにかく掃除。
夜、お袋とOさんが来ることになっていたので、最低限掃除しなければならなかった。
体がやられまくってるので、整体してもらうことになっていた。
おかげでボクシングに行けず。
お袋は電車で、Oさんは車でやってきた。
246が事故で渋滞してたそうで、Oさんは遅れて到着。
整体に関してはあんまり詳しく書けず、抽象的に言えば鳩が出て飛んでいきましたよ。
もーわけわからん。
2006-02-16 [長年日記]
_ よく寝た
昨日帰宅したのが9時半くらい。
晩飯がまだで外食しようかと思ったけど、だるくてコンビニ飯購入。
部屋でもさもさ食ってたら親から電話。
ちょっと話して、ネット見て、BLEACH DSで何戦かして、だるいので布団に潜り、
目が覚めたら朝だった。
うは。
平日にこれだけきっちり寝たのは久しぶりだ。
_ jFD2
SWTにはAWT/Swingコンポーネントをはめ込む機能があるのは知っていたので、
前から「その内jFD2をEclipseに組み込んでみよう」と思ってたんだけど、
なんとなく思い立ったのでやってみた。
Eclipseの画面部品はViewPartというクラスで、これを継承してクラスを作り、
初期化メソッドの
public void createPartControl(Composite parent)
の中でこんなコードを書く。
Composite container = new Composite(parent, SWT.EMBEDDED); Frame frame = SWT_AWT.new_Frame(container); frame.add(<jFD2のファイラーコンポーネント>);
_ プラグインのクラスパス設定さえ間違えなければけっこう簡単に出来た。
Eclipseの白っぽい画面にjFD2の黒い画面が映ってるのはなかなか楽しい。
実用的に使うのはまだまだ厳しそう。
気が付いたのはこんなとこ。
・public void setFocus()をオーバーライドし、ファイラーコンポーネントの requestFocus()を呼ばないとフォーカスを受け取れず、キー操作を受け付けない。 ・↑で、Swingのシングルスレッドを気にしてrequestFocus()をイベントディスパッチ スレッドで呼ぶようにしたら、デッドロックしたらしくEclipseが起動しなくなった。 ・ダイアログを表示した後は、ダイアログが消えてもフォーカスが戻らないので、 自前でrequestFocus()を呼ぶ必要がある。 ・本当はjFD2のウインドウごとはめ込みたかったが、それは出来ないらしい。 ・なんか表示サイズが乱れる。
_ 実用からは程遠いけど、面白かったからいいや。
_ DANKETECH VJロケハン
仕事帰り、青山の蜂というクラブへ。
僕がレギュラーで出演しているDANKETECHというイベントの会場なのだけど、
ここは建物の形が少し特殊で、VJのプロジェクターの位置がしっくり
来ていなかった。
前回はDJブースの後ろに投影したのだけれど、これは問題が多かった。
まず、斜めからの投影になるので像が歪んでしまう。
次に、DJの視界にプロジェクターがあるので、まぶしくてフロアが
全然見えなかった。
これを改善しようということで、会場で位置決めをさせてもらいに行った。
僕は少し遅れて到着した。
会場にはDANKETECHメンバーでさとやん、アヴェさん、山ちゃん、みーこちゃんが
到着済み。
ある程度場所決めは決まっていた。
フロアから見てDJブースの右に、天井の梁と壁の間に突っ張り棒を張って、
そこにスクリーンをかけることにした。
映像もクリアで、ゆがみも少なくて素晴らしい。
左側の方が収まりは良かったのだが、残念ながら壁が斜めで突っ張り棒が
使えなかった。
店長さんも壁にフック等をつけるのを検討してくれることになったが、
とりあえず次回は右側で、ということに。
その後、近くの韓国料理屋へ行き、晩飯。
キムチがとても辛く、あんまり飲まないつもりだったけどついつい3杯ほど
飲んでしまった。
あと、冷麺が美味しかった。
2006-02-15 [長年日記]
_ jFD2
そろそろβ5出しちゃうか。
そんなに大きく変わってるわけじゃないけど、細かい使い勝手は
上がってると思いますよ。
プラグイン機構は入れたけど、今のところ表に出せるのが一つしかないのがなあ。
あ、プラグインのダウンロード機能が欲しい。
僕は平気だけど、一般ユーザーに手動インストールは面倒な気がする。
_ jFD2の細々
ResourceBundleを継承して、FileFishのファイルからリソースを読み込む
クラスを作成した。
基本的にプラグイン用を想定している。
ResourceBundleはクラスパスのルートにあるファイル専用なので、
後付けでクラスパスを追加するプラグインには使えないからだ。
ただ、ResourceBundleのリソースファイルはnative2asciiでアスキーコード化
してやらないといけないのだが、これって面倒くさいんで
変えてしまっても良かったかもしれない。
2006-02-14 [長年日記]
_ 鍵をなくし、
ビジネスホテルで目を覚まし、マンションの管理会社に電話する。
何度かかけて9時過ぎにやっと繋がり、社員のお姉ちゃんに事情を話したら、
担当の社員がまだ来てないので、到着次第連絡する、とのこと。
仕方ないのでホテルで待つ。
チェックアウト時間の10時ちょっと過ぎ、電話がかかってきた。
鍵は管理していないので、大家の所へ行って貸してもらってきて、
今日中に返却してくれ、とのこと。
連絡はしておいてくれるそうだ。
大家の場所を教えてもらい、一回マンションに戻る。
何故かバイクのスペアキーは持っていたので、バイクで大家へ。
大家は尾山台にある会社で、246、環八を経由して20分ほど。
無闇に天気がよく、バイクに乗るのも気持ちいい。
初めての場所だがほとんど迷わずに到着した。
社員のお姉さんから鍵を借りて、そのまま引き返す。
当初、帰宅して鍵を開けて、中で合鍵を回収してからまた大家に
鍵を返しに行くつもりだったが、よく考えてみると帰るのが無駄なので、
途中の二子玉川で合鍵を作ってそのまままた尾山台に引き返して鍵を返し、
やっと自宅へ戻った。
ため息つきつつ寝室に入った瞬間、あまりの散らかりっぷりに
目の前が暗くなった。
日常という現実に押し潰される。
着替えて今度は徒歩で駅へ向かう。
春の風が吹き、天気が良すぎて、このまま日が暮れるまでずっと
外でぼんやりしていたかった。
2006-02-13 [長年日記]
_ 本当に酷い
疲れて帰宅。
最寄り駅から自宅へ戻る道が自分を憂鬱にさせてることに気が付いた。
それまで平気だったのに、急に苦しくなってくるし。
帰るの嫌だなあ。
寝るかネット見るくらいしか無いし。
猫でも飼いたい。
でもマンションだから家猫にするしかないのに、
こんな家に居ない主人じゃ虐待だよ、可哀想で飼えないよ。
そんなことを思いながら家路を行く。
コンビニで酒を買おうかと思ったが、コーヒーゼリーで我慢して家に到着。
入ろうと思ったら全部のポケットを探っても鍵がない。
帰りたくないとは思ってたけど、これはあまりにあんまりだ。
管理会社に電話してみたが、この時間じゃ当然のように閉まっていた。
別で管理してたので、バイクの鍵はある。
渋谷辺りまで出て漫画喫茶かカプセルホテルにでも泊まろうかと考えたが、
気力が残ってない。
スーツでバイクに乗ると、下半身が冷えてどうしようもないし。
結局、うちから500メートルくらいのところにビジネスホテルがあったのを思いだし、
そこに泊まった。
疲れたよ、本当に。
_ jFD2
最新のJava SE6.0で動かしてみた。
よく動いているんだが、一箇所致命的な問題が。
CopyやMoveコマンドのダイアログで、キーボードでフォーカスを遷移させると、
コンボボックス内のテキストフィールドがフォーカスされない。
色々コードをいじって調査してみたが、Beta4で入れたショートカット表示ボタンと
専用に実装したFocusTraversalPolicyが問題になっていた。
どっちかというとFocusTraversalPolicyの問題っぽい。
付け焼刃的実装で対処したが、最適な方法は調べておいた方がよさそうだ。
_ そのほかは今のところ動作に問題は無いようだ。
起動が若干速くなっているようで、凄くいい加減な計測だが、
何回も起動と終了を繰り返した後だと5.0だと2.7秒、6.0だと2秒くらいで
最初のウインドウが開いた。
最新のAPIも試したいけど、下位互換性を考えると入れられないのが
切ないところ。
2006-02-12 [長年日記]
_ 日曜日
午後まで寝てた。
10時間くらい寝たか。
バイクにまたがり家を出る。
クリーニングでワイシャツを回収してからボクシング。
体調はだいぶマシになったとは言え、良いとも言えず、
縄跳びだけでも体に響く。
プリンストレーナーから衝撃の告白。
「昨日、トレーナーMと二人で一つのパフェ食べたんですよ」
なんてこと!
二人の関係はそこまで進んでいたのね!
すみません、体調悪くてこんなに美味しいネタなのに
いまいちテンション上がらないです。
1時間くらい、だらだら練習してあがり。
成城学園に移動して、Sさんの居る美容室へ。
前回は近所の美容室で髪を切ったので、Sさんと会うのは今年初めてか。
「今日はどうしますか?」
「面白おかしくやっちゃってください」
旅行や小物とかについてどうでもいいようなことを色々と話しながら
切ってもらったら、本当にかなり面白おかしく切っていただけた。
会社で何て言われることやら。
成城学園から二子玉川へ移動中、前から気になっていた大きいバイク屋を
覗いてみた。
2階建てで、一階はパーツが中心だが、これはあんまり興味ない。
二階はウェアが多く、これが目当てだった。
なんせ寒い。
僕の持ってる3シーズングローブは寒さが染みこんでくるし、
ジェットタイプのヘルメットは顎が酷く冷える。
ジーパンの裾からも冷たい風が吹き込んでくるし、とにかく暖かい
装備が欲しかった。
色々眺めて、冬用のグローブと、顔の下半分を覆うマスクを購入した。
早速着けてみたが、グローブは今まで使ってたのよりかなり暖かい。
マスクはヘルメットを被るときにずり落ちるのと、呼吸が上に漏れて
眼鏡が曇るのがちょっと不満だが暖かい。
帰宅してBLEACH DSで遊んで、コードいじって日曜日終了。
_ BLEACH DS
しばらくやりこんだ感想。
基本的に物凄くよく出来ている。
コンボは爽快だし、戦略性もあるし、入力レスポンスは高いし、
キャラクターゲームとしてもきちんと個性を捉えてるし、
やりこみ要素もあるし、ネット対戦楽しいし。
ただし、うんざりするほど馬鹿でかい欠点がある。
それは、プレイヤーのモラルに依存しすぎ、ということだ。
具体例を挙げるとこんなとこ。
1、明らかに強すぎるキャラクターがいる。
2、安直で強力すぎる連続技がある
3、安直かつ強力な霊符の組み合わせがある
1は、藍染と砕蜂が強すぎるよって事。
藍染の通常技はリーチが長い上に持続時間が長い。
さらに発動時間がほぼゼロで隙の無い超必殺技がある。
砕蜂はスライディングからの投げとか忍者軍団とか。
2は、霊圧無尽蔵を使ったコンボとか。
雛森のとか食らうとやる気無くす。
3は、たとえば体力平均化と体力増加の組み合わせ辺りが酷い
(他にも酷いのあるけど)。
頑張ってかなり体力削ったのに、平均化されてその後は体力増加を
使いまくられると、徒労感が強すぎる。
知恵や腕で負けたなら納得行くけど、
「この組み合わせなら誰でも出来る」
というのに負けるとやる気を無くす。
霊符のシステムは、制約が少なすぎたと思う。
強力すぎる組み合わせをされても納得がいくくらい制約があれば
良かったのに。
_ このゲームは、納得のいかない負け方が多い。
負けるのは全く構わないが、納得して負けたい。
それが出来るかどうかをプレイヤーのモラルに依存してるのが
このゲームの最大の欠点だと思う。
結局調整不足だよな。
PCのゲームならバージョンアップして調整できるだろうけど、
DSじゃそれも難しいだろうなあ。
キャラクター増やして、徹底的にバランス調整したのを出してくれたら
買いたいと思うんだが。
トレジャーだから続編は無いだろうなあ。
2006-02-11 [長年日記]
_ AFFINITY
AFFINITYでVJ。
例によって体調不良なのだが、お袋がいとこの結婚式で上京してきていて、
Oさんと一緒におじさんたちの整体をするついでに僕も見てもらうことになってて、
オーガナイザーの練乳さんや圧死さんにお願いして出番を早くしてもらった。
時間が無かったのでバイクで出発。
246を快調に飛ばして三軒茶屋のCHROMEへ。
しかしCHROMEの通りは週末は歩行者天国になるようで、店に近づけない。
仕方ないので通り過ぎて、次の曲がり角に入ったら行き止まり。
さらに次の角に入ったら、道がわからなくなって迷った。
やっとの思いで開場10分前に現場入り。
今回はVJは僕とえれえれさんの二人。
えれえれさんは僕も使っているTZTの作者で、さらに新作のfireflyを製作中。
fireflyはものすごく楽しみにしているのだが、なかなか完成版が
リリースされない。
気になってるので「まだですか?」と聞いたらもうちょっとだそうだ。
シェアウェアにすると聞いていたので値段を聞いてみたら、すんごい強気な
お値段で驚いた。
ただまあ、考えてみると競合ソフトもその位してるし、買う人は買う値段だ。
「安くすると変なユーザー付くから、信者で固めようと思って」
納得。
僕もjFD2をそのくらいにしたいが、市場は小さいけれど競合が少ない
VJソフトならそれもありだが、市場が小さい上に(さらにこれから縮小するばかり)
競合ソフトがありまくるファイラーでそれは厳しいだろうな。
ふざけて1ライセンス100万円とかにして、間違えてどこかの金持ちが
1本買ってくれればいいや、というのも考えたんだが。
準備をしてプレイ開始。
体力が落ちてるのでスクラッチプレイが辛く、どちらかというと長尺物が中心。
アルコールが入ってないのもあって、テンション上げきれなかったなあ。
ちょっと反省。
DJさん達のプレイは能天気なバカノリが多く、ジュリアナっぽくて楽しかった。
普段聞かないから新鮮。
出番が終わったらかなりグッタリ。
荷物をまとめてみんなと雑談して撤退。
まずは体調を取り戻そう。
良いVJはまず健康から。
_ で、
親の居る赤坂プリンスへ。
電話したら「まだおじさんが整体中だからゆっくり来ればいいよ」と言われたので、
先にじゃじゃおいけんで晩飯。
盛岡じゃじゃ麺の専門店で、とても美味しい。
バイクを三軒茶屋に置きっぱなしにして、電車で移動し、
ホテルに着いたらまだOさんがおじさんの整体をしていた。
お袋に、
「まだ時間かかるからシャワー浴びてきたら」
と言われてひとっぷろ浴びた。
おじさんの後で僕が整体してもらったが、痛いのなんの。
まったく狂いなく的確にツボをぐいぐい突いてくるので、悲鳴を上げそう。
そのかわり、終わったらここしばらくずっと続いていた、
内臓を捕まれているような感覚はかなり楽になっていた。
ありがたい。
「最近よく眠れてないでしょ」
「いつでも睡眠不足で眠いです」
「頚椎の○番と×番が出っ張っちゃってるからね、これじゃ眠れないよ」
なるほど。
まだ完全には復活してないが、ともかくこれでしのげそう。
また三軒茶屋に戻り、そのまま帰るのもつまらないので、ツタヤと本屋を眺め、
培倶人を購入。
フレッシュネスバーガーがあったので、夜食とコーヒーを頂きつつ
PCで日記を書いたりネットを眺め、閉店時間になったので帰宅。
2006-02-10 [長年日記]
_ jFD2
UNIX等でWindowsで作成されたスクリプトを実行する際に、エンコードの
違いのせいで表示が文字化けする、という問題がある。
元から少ないjFD2ユーザーの上に、UNIXユーザーで、さらにスクリプトを
使う人ってのは恐ろしく少ないと思うので問題にならなかったが、
ほっとくのもどうかと思うので直すことにした。
だが、よく見たらGroovyの実行って、エンコードを指定できるメソッドって無くて、
文字列(スクリプト全文)かInputStreamしか受け付けないのか。
これだから英語喋る人種はよー
仕方ないので指定されたエンコードで一回文字列として読み込んでから
実行するようにしてみたが、なんか無駄多いなあ。
_ jFD2
プラグイン機構がそれなりに出来上がってきたので、昔作ったけど
いまいち使えなかったのでほったらかしにされていた
QuickTimeビューアをプラグイン化した。
QuickTimeが扱えるメディアなら一通り再生可能。
でも、QuickTime for Javaの欠点で、ファイル名に2バイト文字が入ってると
再生できない。
使えねー!
バグレポートは送ったんだからいい加減そろそろ直してくれ、アップルさんよ。
_ HtmlTablePanel
ちと手を加えた。
keisukenさんのTableLayout Managerに対抗して、TDタグの中の文字列が
@で始まる場合、そのテキストを@抜きでJLabelとして表示するように
してみた。
ええかんじ。
でも@で始まったら、というのは何か違和感が。
もうちょっと仕様を詰めたい。
あと、実装で悩むものが一つ。
HtmlTablePanelがレイアウトマネージャじゃなくてパネルなので、
やろうと思えばタブが表現できる。
今はtable、tr、tdの3つのタグしかサポートしてないが、
適当なタグを追加してやればいい。
JTabbedPaneと、各タブをあらわすタグがあればいい。
ただ、いくつか悩むことが。
1、せっかく凄くシンプルにしてあるのを崩すべきか
2、タブが必要なくらいたくさんコンポーネントがあるなら、
むしろクラスを別けた方がいいんじゃないの?
実装するのは全然難しくないが、入れるべきか悩む。
2006-02-09 [長年日記]
_ 相変わらず不調
腹痛が治まらない。
鳩尾の上の辺りがなんか苦しい。
内臓を緩く握られてるような感覚。
微妙に頭が締め付けられるようで、緩い頭痛が。
しょっちゅう右目の周りが痙攣している。
体の不調が心にも影響してると思う。
どこでもいいからしばらく今の環境から離れたい。
明らかに、僕には静養が必要だ。
_ jFD2
プラグインがある程度固まってきたんだけど、
さてこれで何を作るか。
元々ファイルビューアはプラグインにしようかとは
思っていたんだけど。
でも今入ってるビューアは無理してプラグイン化する理由も無いし、
さてどうしたもんか。
プラットフォーム依存性の高いビューア(ムービープレイヤーとか)を
作るときにでも使うか。
_ クラスローダー
やってる内にわかってきたが、カスタムクラスローダーとリフレクションは
相性が悪い。
通常のクラスローダーで生成されたファクトリークラスで、
カスタムクラスローダーで読み込まれるクラスのインスタンスを
リフレクション生成しようとすると、失敗する。
当たり前のことなんだけど、今まで何も考えずにやってたことが、
クラスローダーを別けた事で意識しないといけなくなるのは面倒くさい。
ファクトリークラスにクラスローダーを設定可能にして対処したが、
もっとうまい手は無いものか。
多分、頭のいい人が既に利口なソリューション考えてるんだろうな。
2006-02-08 [長年日記]
_ 不調
昔から、思考を整理したいときは歩くに限ると思っていた。
血流が良くなるので脳の働きに好影響があるし、適度に変化があって
発想の元になるし。
だが、今の僕に歩かせるのは危険な気がしてきた。
ネガティブ思考スパイラルに陥っているようで、考えれば考えるほど
思考が悪い方向に向かってしまう。
本を読んだりゲームにはまったりして、脳のリソースを無駄に
使い切らないと潰されてしまいそうだ。
_ jFD2
K.Takataさんが書かれたプロパティ表示プログラム、prop.exeを
組み込んでみた。
これはWindowsのファイルのプロパティ画面を呼び出すプログラムで、
コマンドラインから呼び出して、パラメータにファイル名を指定してやれば
そのファイルのプロパティ画面が開かれる。
処理そのものは非常に簡単なのだが、これをどうjFD2に組み込むかで
ちょっと悩んだ。
propはWindows専用なので、一応マルチプラットフォームを名乗る
jFD2にはデフォルトでは入れたくない。
昔作って放置されていたプラグイン機構があるので、これを整備して
プラグインとして実装することにした。
実装そのものは非常に簡単だったのだが、プラグイン機構の作りこみで悩んだ。
この手のプラグインにはカスタムのクラスローダーが付き物だが、
FileFishと組み合わせることで、FileFishのファイル経由でクラスを
読み込めるクラスローダーを作ってみた。
ただし、これだとクラスを読み込むのは問題無いが、リソースを読み込む部分、
ClassLoader#findResourceが実装できない。
このメソッドの戻り値はURLになるのだが、URLの実装は限られたプロトコルしか
あつかえず、言うまでも無くFileFishのアーカイブの中のファイルのURLなんて
扱えるわけ無いからだ。
はっきり言って、なんでこれの戻り値がURLなのか全然わからない。
InputStreamでいいじゃん。
これってJavaの初期設計ミスの一つだと思う。
色々試行錯誤中なんだけど、さてどうしたもんかなあ。
_ K君
飯をおごってもらったのでちょっと調査を手伝った。
顧客から渡されたけどエラーが出て動かないシステムがあって、
原因がわからなかったらしい。
調査にあたり、まずブラウザで自分のサイトを開き、jFD2の
Java Web Start版を起動した。
最近これ無しじゃ仕事にならないんで。
Javaが入ってるだけで自分に一番重要なツールが開けるなんて
便利な時代になったもんだ。
ソースを追っていって、DB接続が設定されてなかったのが原因と判明。
なんか顧客さんもシステム渡すなら設定の仕方くらいドキュメント化してから
渡そうよ。
まったくもう。

_ トレーナーM [昨日気づいたんだが、オレバイクの免許失効してたぁぁぁl(涙)通いなおし、、、、]
_ Shunji [そんな酷い! 二人で湘南の道を駆け抜けて、蒼い風になろうって誓ったあの日の思い出は嘘だったの? とは言いませんが何や..]
_ トレーナーM [来月から通いなおします、引っ越して駅が遠くなったのでどうしても必要になりましてね。あ、そうそう、MSNメッセンジャー..]
_ Shunji [どうせならついでで大型取りましょうよ。 それなら損した気もまぎれますし。 あと、僕のMSNのアカウントはmixiの方..]