忍者ブログ

マインのブログ

マインが何かを気まぐれに書く日記です。

[PR]

カテゴリー:

2024/11/25(Mon)21:25

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

バグバグだー

カテゴリー:1日の出来事

2010/07/13(Tue)23:29

オレが作ったところがバグだらけでした。
もー、ちゃんとチェックリスト作ってないからー。
明日がんばって直します。

そんなわけで、昨日からチェックリスト作ったり
バグ直したりしてます。
いやはや、こんなバグが今更見つかるとか。
ちゃんとチェックリストで網羅しないとダメですねー。
今はその反省もあって、少しずつチェックリスト作ってます。
といっても、チェックリスト作れる期間が今週いっぱい。
あれ?意外に時間ない?
でも、そんなにあっちこっち作るわけじゃないしなー。
明日見てもらうか。

昨日、会社で「日に焼けた」といったらものすごい驚かれた。
まあ、あんな話をした後だと驚かれるわな。
5月の下旬頃、4日休みをもらったときに、
トータル30分くらいしか外に出てないという話をしたので。
スーパー近いし、実家だし、引きこもりだし。
そんな人間が日に焼けるほど外に出たと言ったら驚くでしょ。
ちなみに、日に焼けたところはまだ赤いです。
触るとちょっと痛いです。
そして、ちょっと握ってみると打撲のような鈍痛がある・・・。
なんかしこりがあるような感じ。
うーん、骨にまで行ってないよな?
日ごろから日に当たってないのでメラニンがいなくって、
紫外線防御力がなくなってるからひどいことになってないといいけど。
ま、大丈夫でしょ。
1週間して赤みも痛みも引かなかったら病院ですかね・・・。

今日の帰り、バスに乗車を拒否られました。
うーむ、なぜあそこで扉を閉めるかね。
あと4歩で扉のところに足をかけられるところで扉が閉まって発車してしまった。
オレだけなら、まあ、五万歩譲っていいとしよう。
しかし、オレの前を歩いていた人は乗ろうと
足を上げようとした瞬間に扉が閉められた。
その人も、オレも「え~~」という顔でバスを見送りました。
まあ、確かに、ちょっといっぱいだったけどさ。
でも、2人くらい乗るでしょ?
よく分かりません。
そのあと10分ほどして次のバスが来ました。
待っている間、携帯でゲームをしようとしたらバッテリーが切れた。
タイミング悪。

で、帰ってきてから夕食。
夕食中にBLEACHとあそびにいくよを見てました。
BLEACHは、過去編はもうやったんだっけか?
なんかDVD出てたような気がするからもうやったんだろうな。
全然覚えてないわ。
あそびにいくよは、最初見たらフルメタル・パニックかと思った。
第1話の最後まで色々謎でした。

さて、もうそろそろ寝るかな。
最近眠くて。
今日は仕事にならないからコーヒードーピングしたよ。
結局眠かったけど、幾分かはましだった。
やっぱ週末は昼寝しないと持たないね。

拍手[0回]

PR

No.1981|Comment(0)Trackback()

日焼けがいてー

カテゴリー:1日の出来事

2010/07/11(Sun)16:57

えと、昨日は新人歓迎会を兼ねたBBQ大会でした。
一昨日までは雨の予想だったのに、当日はめっちゃ晴れた。
おかげで日焼けしました。
腕がひりひりするー。

BBQは、まあ普通に始まって普通に終わりました。
オレが30分開始時間を間違えたとか、
新人にTOEIC920点の化け物がいたとか、
幹事さんが計算を間違えてずっと悩んでたとか、
まあ、色々ありましたけどね。

炎天下の中に4時間ずっと立ちっぱなしだったせいか、
かなり疲れました。
帰ってきてちょっと寝ました。
夕食後、久しぶりに弟とマジックザギャザリングをやりました。
何年ぶりだろうか。
4年くらい?
デックを組む時間がおしかったのでもともとあったデッキでやりました。
どんなカードが入ってたか覚えてませんでしたが、
まあ、そこそこ遊べました。
弟が選んだ方のデッキは、オレが遊びで作ったやつでバランスがひどかったです。
弟色のデッキでリベンジがあるでしょう。

で、今日。
起きてアニメを見ようとGyaOにアクセスしたら迷い猫が消えてた。
あれ?昨日までだったっけ?
見逃した・・・。
まあ、最終回は総集編だったような気がするからいいか。
しかし、GyaOもひどいな。
最終話だけ公開日が1日少ないとは。
普通多くなるもんだろ。
今度からアップ日の前日に見るのではなく、アップされて4日後くらいに見るようにしよう。
そうすれば1日少なくなっても見逃さないはず。
・・・、残業がなければだけどね・・・。

正午ちょっと前にお出かけ。
ちょっとお金払うのがあったので。
で、ついでに少し足を伸ばしてマジックを買ってきました。
エルドラージ覚醒、ワールドフェイク、ゼンディカーのブーストパックを3パックずつ。
帰ってきて開けてみました。
そしたらゼンディカーがひどかった。
3パックしか買ってないのに何故こんなにカードがかぶるのか。
パックは開けにくいし、オマケカードは中国語だし。

久しぶり(大体10年ぶりかなー)にブーストパックを買ったんですが、
コモン×10、アンコモン×3、レア×1、基本土地×1、オマケカード×1という
構成になってたのを知りませんでした。
カードのレイアウトも全然違うし、びっくりです。
あと、今回マジックを買って一番強く思ったこと。
日本語、訳分かんね。
頭の中で一回英語に直さないとすぐに効果が分からない。
あとでアビリティの意味をネットで調べよう。
マジックは英語でやるものです。
日本語にする意味が分かりません。

ということで、今日購入したカードを公開。

ゼンディカー:
勇敢な防御
コーの装具役
土地縛りの儀式
光輝王の昇天
気高き面影×2
陽の泉の探検×2
風をまとう突撃
取り消し
乱動への突入
マーフォークの道探し
浅瀬の海蛇
呪文貫き
嵐のフクロウ
風乗りの長魚
沼のぼろ布まとい
墓所の切り裂き魔
見栄え損ない
不気味な発見×2
湿地での被災
愚鈍な虚身×2
噴出の稲妻
燃え立つチャンドラ
破砕×2
業火の罠
破滅的なミノタウルス
髑髏砕きの巨人
松明投げ
巨身化
砕土
ジョラーガの吟遊詩人×2
原初の怒声
リバー・ボア
野蛮な影法師
探検者の望遠鏡
カザンドゥの隠れ家×2
平地


「探検」の説明(オマケ、中国語)
蛇(オマケ)
人魚(オマケ)

ワールドフェイク:
天頂の鷹
イオナの裁き
湿地を縫う者
疲弊の休息
廃墟の幽霊
古参兵の反応
上天の貿易風
方解石のカミツキガメ
払拭
飛び地の精鋭
ハリマーの採掘者
蒸気の捕獲
ギザ蜂の群れ
ぬかるみの代価
泥地の吸血魔
虚石の探索
無情の戦刃
食餌の衝動
連鎖反応
コーシの荒廃者
破壊者のセンディコン
死鍛冶のシャーマン
乱動する地形
焼尽の猛火
タクタクの潰し屋
東屋のエルフ(キラ)
探検
残忍な競争
ナーリッドの群れ
闘士蜘蛛
ジョラーガの戦呼び
吊り弓の罠
頂の猿人
巨森のゼンディコン
面晶体の流浪者
刃のブーメラン
歩く大地図
ボジューカの沼
戦慄の彫像
ハリマーの深み
カルニの庭
セジーリのステップ



ドラゴン(オマケ)
植物(オマケ)
構築物(オマケ)

エルドラージ覚醒:
ウラモグの破壊者
アーファの番犬
隊商の随員
栄光の探求者
イキーラルの先導
岸壁安息所の騎士
光雷原
孤独な宣教師
刺し込む光
時を越えた詠唱
蟹の陰影
ドレイクの陰影
長魚の陰影
ジュワー島の小走り
マーフォークの観察者
記憶の壁
逆行
空見張りの達人
汚染された地
魔術の呪い
悪魔の貪欲
絶望の誘導
最後の口づけ
虚身の勇者
骸骨のワーム
過去の受難
ゾフの影
戦装飾のシャーマン
壊滅的な召喚
ラガークトカゲ
溶岩気の発動者
肉食らうもの
産卵の息
炎の覆い
古きものの活性
オーラのナーリッド
猪の陰影
抑え難い餌食
コジレックの捕食者
生命の運命
ネーマの沈泥潜み
平地
平地(キラ)


ルール解説(Lvクリーチャー)(オマケ)
エルドラージ・落とし子(オマケ)
エレメンタル(オマケ)

拍手[0回]

No.1980|Comment(0)Trackback()

構いすぎ?

カテゴリー:1日の出来事

2010/07/08(Thu)23:52

ちょっと先輩に怒られました。
そこそこ遅れてるもので。
もう一人には構わなくていい、とは言いすぎだけど
そんなに見なくていいよ、と言われました。
でも、初めてのところでソースをトレースする時間もなかったのに
いきなりプログラムを組んでもらうと色々分からないことが多いと思うんですよ。
それで止まるのもあれなんでよく見てたんですが・・・。
構いすぎですか?

そんなわけで、作業が遅れてます。
もう一人の作業が思ったよりかかってしまい、
オレの作業が遅れました。
やっぱオレがもう一人いれば・・・。
今日中に終わりそうだったのに更に半日遅れます。
ああ、もう、これどうしろと。
無理やりデータ持ってくるか。

4時間ほど残業して帰って来ました。
ああ、なんか気分が落ち込んでるよ。
こういうときはさっさと寝てしまおう。
明日は早めに言って作業開始したほうがいいかな。
・・・、起きれない可能性がとても高い。

拍手[0回]

No.1979|Comment(0)Trackback()

忘れてた

カテゴリー:1日の出来事

2010/07/07(Wed)23:49

残業のせいで忘れてたが、
今週はDQMJ2の参加賞が特別版になっている週じゃないか。
もう3日も無駄にした。
あーあ。
まあ、それほどがっつりやってるわけじゃないからいいか。
でも、日曜のスラキャンは欲しいな。

今日も仕事でした。
やっぱ期限間際の仕様変更&設計修正のせいで終わらなかったです。
明日中に終わるかもビミョー。
オレがもう1人いれば余裕なんだけどな。
しかも、前修正したところが不十分ということも発見してしまった。
くわー。

今日も残業した方がよさそうだったのですが、
新人歓迎会ということで定退しました。
部署が違うので若干アウェーでしたが、
まあ、そこそこ食ってきましたよ。
テキトーにしゃべって終わり。

帰ってきてびっくり。
まだ21時じゃないか。
ということでストライクウィッチーズを見てます。
途中、蚊の襲撃があり、30分ほど中断。
結局やれませんでした。

あと1話くらい見てから寝ようと思います。
明日中に仕事終わるかなー。

拍手[0回]

No.1978|Comment(0)Trackback()

残業再び

カテゴリー:1日の出来事

2010/07/06(Tue)23:46

えと、昨日今日と残業でした。
この時間に帰ってくるとすぐに次の日になるなー。
明日は新人歓迎会なので定退ですが、
明後日はどうなるかな。

ということで、また残業が始まりました。
期限ギリギリで仕様変更あったり、理論上無理なことが判明したりで遅れています。
今、もう一人自分のパートを触ってもらってるんですが、
いきなりJava Swingをやってもらってるんで作業が思うように行かない様子。
あと、オレの設計がチョーテキトーなのもうまく行ってない要因だと思います。
いや、まあ、このギリギリの時に設計しなおしとかやってられないんで、
テキトー設計で、なんかコーディングしててうまく行かなかったら
その都度修正するようにしています。

まあ、そんなこんなで、基礎が大体終わってきたところで帰ってきました。
まだまだやることあるんだけどね。
これ修正箇所多いわ。
あと少しだ思うんだけど、期限の明日は無理だな。
やっぱ、仕様変更が効いたな。

帰ってきてBLEACHを見てました。
見終わったあとテレビ欄を見てみたらぬら孫がちょうど終わったところ・・・。
ぬかったわー。
MXは録画できないから普通にチェックできてなかった。
あとは来週のアニマックスかな。
残業で見れなかったら諦めましょう。
GyaOでやらんかな。

さて、もう寝ますかね。
昨日、というか今朝だけどあまりの暑さで5時前に目が覚めてしまった。
今日はゆっくり寝れるかな。

拍手[0回]

No.1977|Comment(0)Trackback()

2個目

カテゴリー:1日の出来事

2010/07/04(Sun)22:38

久しぶりに1日2回の日記。
今日はインディペンデンスデイで、もうすぐ七夕ということで
mixiの画像を変えてみました。
作ったの4年くらい前なんですけどね・・・。
新しいの作りたいな。

ということで、予告どおり2回目の日記はアニメネタ。
ずっとゲームばかりやってた様な感じですが、アニメも見てました。
ようやくクェイサーを見終わった。
まあ、あんなアニメでした。
レインボーも2週分見ました。
アニキ死んじゃった。

新作としてBLACK LAGOON、アマカミSS、生徒会役員共、伝勇伝を見ました。
BLACK LAGOONはテレビ欄に騙された。
これ第3期じゃねーか!
1期2期見てないオレにはよく分からないよ。
アマガミSSは、まあ、ふつーの学生ラブコメ的は感じでしたね。
生徒会役員共は文武両道、才色兼備、女生徒に人気があり、高いところが苦手と
某進学校の無敵会長様のようなのに、言うことがいちいち卑猥というか
多分に赤面するような言動がある残念な頭をしてる人が出てきます。
(ああ、ネタ風に書くと長いね・・・)
ちなみに、アマガミも上に書いたネタに通じてるんですが、何か分かりますか?
と、マニアックなことを聞いてみたり。
誰もわからねーよ。
どうせ誰もコメント残さないけどさ。
伝勇伝はよく分からんかった。
アニメ化したということは、なんかひきつけるものがあるんでしょうかね。
どういう展開になるんですかね。

あと、ハガレン最終回も見ました。
今回はGyaOではなく生で見ました。
GyaOで見るもの減るなー。
第1期よりはいい終わり方したと思います。
オレとしては先週が最終回じゃなかったことを高く評価してます。
ああいう風に人との関わりが強いストーリーがあるものは
ちゃんとその後を見せるべきだと思っているので。
ハガレンはちゃんと最終決戦後が描かれてたのがよかったです。
エンディングでは更にその後も描かれてましたね。
ちゃんと平和になってました。
劇場版があるらしいんですが、どういう展開するんですかね。

今週からまた新作が始まります。
見れないけどぬら孫とか。
あと、ストライクウィッチーズとバサラが2期目が始まるそうで。
・・・、急いで第1期を見なければ。
どっちから見るのがいいですかね?

そいえば、昼頃mixiニュースで見たんですが、
何でもB型H系の制作者かどこかに脅迫状が届いているとか。
あんな過激なの出すな的なことが書かれてたとか。
まあ、確かにああいうものですからね、あれは。
このニュースでこのアニメが以外に好評だったことを初めて知った。
オレとしてはちょっと、という感じだったけどな。
原作知らんからかね。

さて、マニアックなのはこの辺で。
明日からまた仕事か。
明日はスティールボールラン21巻とサイレン12巻が来る。
しかーし、受け取り場所をバラバラに指定してしまった・・・。
家を挟んで正反対のセブンに届くので、
帰りに取ってきて、家に着いてからまた取りに行かないと。
ああ、面倒くせー。

拍手[0回]

No.1976|Comment(0)Trackback()

元気です

カテゴリー:ゲームとか

2010/07/04(Sun)22:11

えと、ずっと空いてましたが、元気に過ごしています。
運動しなくてメタボ気味とか、急に息が苦しくなったり、
左ももの付け根が痛くなったりしましたが、
元気にやってます。

と、まあ、色々ありますが、仕事をして帰ってきたら遊ぶという
いつもの毎日を繰り返しています。
なーんかですね、仕事中ちょっとAngel Beats!のことを思い出しちゃったら
急に鼻で呼吸が出来なくなって息が荒くなったことがありました。
なんだったんでしょうかね。
まあ、すぐ治しましたけどね。
パニック症状とかってこんな感じなんでしょうか?
あと、最近チャリに乗ってないので運動不足です。
ちょっとやばげです・・・。

大体定時に帰ってきて、ゆっくりしてから寝るまでXenobladeをやってます。
このゲーム、今までのいわゆる傑作ゲームのいいところ取りのような構成をしているような・・・。
特に思うのがFF7から結構パクってるなー、と。
エーテル→魔晄
ジェム→マテリア
一時期パーティから離脱する主人公
三角関係(仮)
最後のはちょっとビミョーですけどね。
FF7はクラウドがはっきりとした恋愛感情出してないんで。
あと、デートできるキャラにはユフィも入るけど、彼女の場合恋愛感情ではなかったような。
と、何はともあれ、FF7に似ていると思っているわけです。

それと、結構戦闘がたるいです。
今70レベなんですが、30レベの雑魚ですら一発でやれません。
まあ、攻撃力アップジェムをフル装備すればいけるのかもしれませんけど。
基本的に普通の攻撃だと10回くらい当てないとダメです。
こんなんで攻略中のダンジョンに行くと雑魚戦で四苦八苦するわけです。
特にユニークモンスターは脅威です。
同レベルであっても強さが段違いです。
ダメージが下手すると5倍になるし、ステータスもかなり高め。
他の普通のモンスターが乱入してくると死亡フラグです。
ものによってはボスのほうが楽です。

大体のボスはそれほど苦労することなくやれるんですが、
今日やったボスは辛かった。
ロウランだっけか?コイツが面倒で・・・。
まず、アーツをほとんど使ってきません。
なのでモナドの盾で防ぐことが出来ません。
そして、技名忘れたけどシールドを展開します。
このとき4体のエレメント系モンスターが出てきます。
大体2、3分存在し続けるんですが、この間は与ダメが約10分の1になり、
出現したエレメント系モンスターからは1匹当たり800のダメージを受けます。
エレメント系モンスターなので物理攻撃はあまり効かないためすぐに倒せません。

極めつけは地形ダメージのあるフィールドで
敵の馬鹿でかい図体に押されていってエーテル流(ライフストリームね)に
入るとダメージが倍増します。
今までのボスは基本的に物理ダメージだったのでそれように対策してきたのに
このボスはエーテル攻撃が主体とかひどい。
敵がシールドを展開しててエーテル流に押し出された時に
薙ぎ払いで1000以上ダメージを受けて転倒したりするともう涙目。
5回ほどゲームオーバーしました。

と、まあ、かなり苦労してようやクラスとダンジョンと思しき監獄島に入りました。
・・・、いきなり自分よりレベルの高いモンスターがいるとかやめて・・・。
ユニークモンスター辛すぎ・・・。
モンハンのキリンみたいな鳴き声するユニークモンスターとか攻撃当たらないし、
恐竜みたいなユニークモンスターは通常攻撃で1500近くダメージ受けるし。
ちなみに最大HPは戦士系キャラで9000、勇者系キャラで6000、
僧侶系キャラで5500くらい。
ユニークモンスターに加えて雑魚敵が出てきて、
燃やされたり出血させられたりする。
回復も全体回復が3000くらいしか回復しなくて、更に一度使うと1分くらい使えない。
単体回復もそんなに回復しないしチャージに時間がかかる。
早い話、ぜんっぜん回復が間に合わんのですよ。
もーー!!

で、行き詰った感が出てきたのでクエストを消化してました。
サルの化石どこにあるのー。
最初は巨神胎内かと思ったけど、アイテムが拾えるようになるのは後半なので
マクナだと思うんだけど。
一向に拾えないし敵も落とさないし。
もしかして、フィールドに出てるキャラと交換とか?
探すの面倒くせー。

と、Xenobladeはこんな感じ。
テレビを取られている間はDQMJ2をやったり久しぶりにスパロボWをやったりしてました。
DQMJ2はそんなに進んでないですねー。
スカウトが面倒になってきて・・・。
スパロボWは攻略情報のためにSSを取り始めてみた。
でも、こんなのHPに載せられないので自分だけで使うことにします。
それよりも、どうやって情報をExcelで整理するかだよな・・・。
今だ試行錯誤。
うまーくプログラムでHTMLに変換できるようにしたいから余計に変になる。
スパロボ情報用のプログラム組んだほうが早いのかもしれない。
そすればが像も含めて簡単にHTMLに変換できる。
どうしようかなー。

さて、ゲームのことはこの辺で。
さすがに休みまくってると書きたいことがあるので。
次はアニメ編です。

拍手[0回]

No.1975|Comment(0)Trackback()

寝不足です

カテゴリー:1日の出来事

2010/06/29(Tue)22:37

昨日の夜がとても暑くて寝れませんでした。
ベッドの上でずっとごろごろしてました。
おかげで寝不足で、午前中は作業効率が悪かったです。

昨日の夜は本当に暑かった。
室温は26度を超え、湿度もあって無風。
ベッドの上でごろごろして少しでも冷たいところを探してたんですが、
そんな場所はまったくなかった。
ちょっと寝ては起きてを繰り返してたような気がする。

朝になる頃には少しは寝てたんですが、
寝不足は否めず、午前中は睡魔と格闘してました。
昼に対睡魔兵器としてガムを購入。
ちょっとはマシになりました。
プログラムのほうも方向性が大体決まり、あとは組むだけになってきました。
ただ、ちょっと修正箇所が広いのがあれですけど。
明日からオレが今担当しているところ手伝ってもらえそうなので、
比較的簡単なところからやってもらおうと思ってます。
共通コンポーネントはあるし、似たようなものが別にあるから見れば出来ると思う。

で、今日もほぼ定退。
時間上は30分ほど残業です。
ちょっと打ち合わせしてたら長くなりました。
明日は新人の子と話してきます。
なんでも新人教育の一環で去年新人の談話というのがあって、
去年はうちの部に新人がこなかったのでその前のオレが指名されてしまいました。
配属されて苦労したこととか、仕事はこうやったほうがいいよとかを話せばいいらしいんですが、
苦労話のほうは、まあ、なんとかなる(かなー・・・)と思うんですが、
仕事話のほうは、オレがやったところとはちょっと違うことやるらしいんで、
何を話せばいいのやら。
ま、どうにかなるベ。

帰ってきてから夕食。
ミリタリーもの番組を見ながら夕食を食べてました。
M4とか色々でてきました。
銃で言えば、ちょっと話は変わりますが、
ファミ通.comの無料マンガのC3というマンガのページに
モデルガンに関するものがちょっとあるので銃大好きという人は見てみるのはどうでしょ。
あと、また話は変わりますが、サバイバルもののフリーゲーム、
XOperationというのが面白いと思います。

今日は日本×パラグアイ戦ということでテレビが23時から占領されるため、
Xenobladeはお預けです。
風呂に入ってからゲームでもやってますかね。

拍手[0回]

No.1974|Comment(0)Trackback()

遊びすぎ

カテゴリー:1日の出来事

2010/06/26(Sat)21:38

また日記が空いてしまいました。
仕事から帰ってきてからXenobladeをやってて、
気付いたら次の日になってて書けませんでした。

えと、どこから書いたらいいものか。
まあ、でも、書くことはないんですけどね。
今週は朝仕事に行って、帰ってきてからXenobladeをして、
次の日になるくらいに寝るという毎日でした。
ダメ人間ですねー。

昨日は特別で、1時55分までXenobladeをやってました。
それからデュラララとAngel Beats!を生で見ました。
デュラララはいい感じに終わりましたね。
ただ、首も見つかってないし、人もいろいろな方向に歩き始めたような感じで、
これからも続くの様な感じが強かったです。
Angel Beats!は卒業式でした。
戦歌が笑えました。
卒業式が終わると一人ずつ退場。
最後は二人になって、そのときに最後の秘密が明らかになって
一人が消えて、もう一人が残って・・・。
ここで、エンディングに入ったんですが、
エンディグ後にちゃんと残った方も消えたんだということが分かりました。
なんていうか、しんみりしました。
いつものことですが。
こんな気分のまま寝ました。

今日は起きてからずっとゲーム。
Xenobladeは、主にストーリーを進めていました。
以前クエストしまくってあれだけ余裕だったのに、
レベルの貯金を使い果たし今は雑魚にも四苦八苦してます。
今日はユニークモンスターを倒せなくてイライラしてました。
ストーリーの方は、ようやく機神界に入りました。
次は敵の本拠地に乗り込むところですが、
ここで横にそれてクエストを消化してます。
コロニー6の復興もやってるんですが、
アイテムどこにあるか分かんねー・・・。
町の人に聞けと言われたけど、誰も教えてくれないし。
時間で変わるのかね。
今度は夜に挑戦だ。

20時くらいまでやってました。
途中休憩がありましたけどね。
といっても、1時間ほどヒカルの碁を見てただけですが。
で、夕食を食べて、今に至ります。

今週はぜんぜんアニメを見てません。
録画がひどいことになってます。
今週で終わるものはほとんど終わりました。
来週は閃光のナイトレイドが終わります。
で、入れ替わりに新しいアニメが始まります。
確認したところではアマガミというアニメとBLACK LAGOONが始まりますね。
BLACK LAGOONは、2期だけしか持ってなかったような気がしたので、
録画してます。
あれ?逆に1期しか持ってなかったっけ?
てか、2期もあったっけ?
ぜんぜんダメですね。

さて、これからどうしようか。
テレビ親に取られちゃったからなー。
先に風呂に入って、上がったらアニメを片付けていきますかね。
なんか今日の日記はいつも以上にぐだぐだだな・・・。

拍手[1回]

No.1973|Comment(0)Trackback()

Javaに振り回された1日

カテゴリー:プログラムとか

2010/06/22(Tue)21:44

まあ、タイトルのとおりです。
クソJavaのせいで色々面倒なことになってます。
ああ、これどうしよ・・・。
あ、ちなみにここから下はとても長い&つまらないので
プログラムとかJavaとかに興味がない人は見なくていいですよ。

今日もプログラム。
Java Swingで作ったプログラムの、キーボード操作とマウス操作を組み合わせた時に
変な動きになるということで、色々やってました。
変なことになるのは次のような操作をしたとき。
1.JList上で項目を選択する
2.1番の時にクリックは押したままにする
3.Alt+Tabで別のウィンドウをアクティブにする
4.またAlt+Tabで元のJavaアプリウィンドウをアクティブにする
5.キーボードの上下ボタンを押すとセレクションは動くのにセレクション変更を拾えない!
といったものでした。

何でかなーと思って調べてみました。
そしたら以下が判明。
知っている人は知っていると思いますが、セレクション変更を検知する
ListSelectionListenerはクリックを押した時と放した時で2回は呼ばれます。
このときの重複をはじくためにListSelectionListener.valueChanged()内で
ListSelectionEvent.getValueIsAdjusting()がtrueかfalseのどちらかで処理するようにするのが
どうも定石のようです。
ちなみに、マウスドラッグでセレクションをぐーと動かしたりすると
ListSelectionEvent.getValueIsAdjusting()がtrueになります。
クリックを放す(マウスリリース)とListSelectionEvent.getValueIsAdjusting()がfalseに
なります。

自分のプログラムではfalseの時に処理するようにしてました。
理由としては、キーボードの上下でセレクションを変更すると
ListSelectionEvent.getValueIsAdjusting()がfalseになるためです。
このListSelectionEvent.getValueIsAdjusting()ですが、
「このイベントが複数の変更イベントのうちの 1 つである場合に true を返します」
と、よく分からない感じでAPIに書いてありますが、
まあ、要するに、「連続して変更されているかもしれない時はtrueになりますよ」というような意味かと。
つまり、マウス操作のときはドラッグで連続して変更されるかもしれないので
ドラッグ中はtrueになるらしいです。
で、終わったら(リリースしたら)falseになるんでしょうね。
キーボード操作ではキープレス一個ごとに見るので連続しないから常にfalseになるのではないかと。
押しっぱも連打と同じだと見ているんでしょう。

まあ、そんな理由からListSelectionEvent.getValueIsAdjusting()がfalseになったときに
セレクション変更検知の処理をしてたんです。
で、なぜうまく行かなかったかというと、これがクソJavaの罠でした。
まずは、ListSelectionEvent.getValueIsAdjusting()の変移を調べてみることに。
そしたら、マウスをクリックしたままアクティブウィンドウを別のにして元に戻してから
キーボード操作をするとそのあとはずっとtrueになりました・・・。
もー、What's the fXXkて感じですよ。
もう少し調べるために今度はマウスリスナーとつけて見てやってみました。
そしたら、マウスを押したままアクティブウィンドウを変更したら
マウスリリースが呼ばれないでマウスイクジットが呼ばれてました。
まあ、よくよく考えればこれは当たり前のことですが、
問題はこのときにListSelectionEvent.getValueIsAdjusting()がtrueのままになっていること。
どうもキーボード操作のときにListSelectionEvent.getValueIsAdjusting()がfalseになるのではなく、
前回のListSelectionEvent.getValueIsAdjusting()の値のままになるようです。
なので、マウス操作でtrueのままになるとそのあとは永遠にキーボード操作でもtrueになって
オレの実装ではうまく行かなくなってました。

こんなのJavaのバグかと思うんですが、
今までそういうのが話題に上がってないところを見ると、これが普通のようなので、
なんとか解決できないかなーと思ってちょっと考えて見ました。
まず考えたのは「マウス押しっぱでウィンドウが変わったらリリースと判断するようにする」ということ。
まあ、簡単ですわな。
class MyMouseAdapter extends MouseAdapter {
    private JList list = null;
    private boolean pressed = false;
    public MyMouseAdapter(JList l) {
        list = l;
    }
    public void mousePressed(MouseEvent e) {
        pressed = true;
    }
    public void mouseReleased(MouseEvent e) {
        pressed = false;
    }
    public void mouseExited(MouseEvent e) {
        if (pressed) {
            MouseEvent newEvent =
                new MouseEvent(e.getComponent(), MouseEvent.RELEASED, e.getWhen(),
                                                 e.getModifiresEx(), e.getX(), e.getY(), e.getClickCount(),
                                                 e.isPopupTrigger(), e.getButton());
            list.dispatchEvent(newEvent);
        }
    }
}
つーのを、JListに付けてやればいいわけですよ。

でも、先輩に「ドラッグ中でもセレクションが変わったら検知できるようにしてほしい」と
言われたので、ListSelectionEvent.getValueIsAdjusting()がtrueで判定することになりました。
もちろんキーボード操作も見越して。
で、考えたのが以下のリスナー。
class ListSelectionChangeListener implements ListSelectionListener {
    private boolean truedFlag = false;
    public void valueChanged(ListSelectionEvent e) {
        if (e.getValueIsAdjusting()) {
            truedFlag = true;
            selectionChanged(e);
        }
        else {
            if (truedFlag) {
                selectionChanged(e);
            }
            truedFlag = false;
         }
    }
    public void selectionChanged(ListSelectionEvent e) {
        //ここにセレクションが変わったときの処理を書く
    }
}
これならマウスリリースの時をはじけて、かつ、falseとtrueの両方のときのキーボード操作に
対応できました。(簡単にしかテストしてないんですけどね・・・)
ちょっとやってみた感じうまくいってそうなので先輩に見てもらったんですが、
Javaの仕様が(本当に)オレの想定通りなのか疑問という点と、
Ctrl+Aの時にselectionChanged()が2回呼ばれるということでボツになりました。
(なのでここにさらしてるんですけどね)

まず、Ctrl+AでもselectionChanged()が2回呼ばれる原因ですが、
BasicListUIの中にあるHandler(マウス、キーボードなどのリスナーパック)で
Ctrl+Aのアクションを見てみると、setSelectionInterval()とaddSelectionInterval()を
getValueIsAdjuting()がtrueになるように呼んでいる所為でした。
両方のメソッドはセレクションを変更するのでListSelectionEventが発行されます。
もー、何やってんよ。
仕様が想定通りかというのは、ちゃんとドキュメントに書いてあるかが心配されました。
「実際にそうなってもドキュメント(APIとか)に書いてないことは安易に実装すべきでない」と言われ、
しゅんとなりました。

で、午後はずっと考察&やり直し。
色々考えましたよ。
valueChanged()が呼ばれるたびに選択されているインデックスを比べてみる、とか。
でも、これは性能が悪くてですね。
セレクションの変更は基本は追加と解除の2つで、「切り替え」がないので、
選択されている最小インデックス、最大インデックス、選択数だけを保存すればいいんですが、
選択数はListSelectionEventではすぐに取れません。
ListSelectionEvent.getSource()でListSelectionModelを取り出して、
モデルから最小インデックスと最大インデックスを取って、
それをループして何個選択されているかを調べないと選択数が分かりません。
JList.getSelectedIndices()やJTable.getSelectedRowCount()も同じようにループさせてます。
作り方次第ですけど、たくさんデータがあるときに何回もループさせると
ヒジョーに大変なことになるので、却下。

なので、もうListSelectionListenerの中でどうこうするのではなく、
セレクション変更の処理でどっかのメソッドを呼んでどうせJListを参照するんだから
そこで最小、最大、選択数を取って前回呼ばれたときと同じ選択状態が調べることになりました。
はあ。
今日は調査&試行錯誤で何時間無駄にしたんだろ・・・。
てか、Javaがセレクション変更をすぐに検知できるリスナーか何か作れよ。

今日で2つくらいバグが直るかなーと思ったら1つも直らなかった。
もーー。
だんだん時間がなくなってきたのでちょっとイライラしてます。
カルシウム取ります。
定時から少し残って頭の中を整理してました。
明日はソースを整理しないと。
疲れるなー。

ということで、今日はぜんぜん進展してません。
あと2週間?くらいしかないというのに。
Javaはもうちょっと色々できるようにして欲しいです。
あと、何をどうするとどうなるのか全部書きやがれ(怒)。
中身のデフォルト実装もどういう動作か書きやがれ(怒×2)。

さて、もう風呂に入るかな。
上がったらDQMJ2で選手権に登録して、それからXenobladeでもやるか。
あ、上のほうに書いたソース、別に使ってもいいですけど
あんまテストしてないし今書いたからスペルミスとかあるかもですよ?
使うときはそれを覚悟してください。
長々と駄文失礼しました。

拍手[0回]

No.1972|Comment(0)Trackback()