トップ 最新 追記

niche diary

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|04|11|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|
半期 四半期 全カテゴリ
Teeda OLUG Java-Kuche
[HOME] [AGILE] [OBJECT] [PROGRAMMING] [JAVA] [LINUX] [OKINAWA] [BBS] [DIARY]

2004-06-01 [J] [長年日記]  この日を編集

_ のんびり

土日休出したので今日代休を取得しました。

今日はのんびりTapestry勉強するぞー!!!(違

_ [sports] 水泳@健康増進センタ

クロール:400m、平泳ぎ700m、計1.1km

やっぱり、週一ぐらいで泳ぎに行かないとダメですね。(×_×)

体重:69.7kg

体脂肪率:23.7%

_ [book] 実践J2EEシステムデザイン

50冊クラブに参加しているのですが、まだ10冊にも到達していません。
さて、記念すべき10冊目は何にしようかと思っていたのですが、ここらで大物を…と言うことで、実践J2EEシステムデザインに決定!!!
読み終わるのはいつの事やら…。^^;
本日のツッコミ(全2件) [ツッコミを入れる]

_ gogo_goyah [休出お疲れ様でした。 > 今日はのんびりTapestry勉強するぞー!!! とか言いながら、いつの間にかお子さん..]

_ t-doi [長女が幼稚園なので今日はちょっと…。 次のお休みにでも行ってみます。]


2004-06-02 [J] [長年日記]  この日を編集

_ [gardening] この木なんの木

植えてから三週間近くたつのに芽が出なかったので、だめにしてしまったか?と思っていましたが、気がついたら芽が出てました。

_ ご結婚おめでとうございます

やっと、yoneさんもBlogを始めたようです。

つーわけで、ご結婚おめでとうございますを兼ねて、TrackBackしてみるテスト。

個人的に結婚生活がうまくいく秘訣と思っているのは、表面上は亭主関白で実態は奥さんが仕切っていると言うのが…あくまでうちは本当に亭主関白です。誤解なきよう…。

_ [tool] LOOM .NET

.netでAOPを行うためのツールLOOM .NET

_ TrackBackが文字化け

外部から受け取ったTrackBackがことごとく文字化けしてます。

どうやらこの日記の設定(?)に問題があるようです。(T.T)

現在原因解明中ですので、少々お待ちください。>みなさま

_ [ruby]バージョンアップではまる

自宅サーバのRubyを1.8にあげるべーと作業開始。

Rubyのインストールはすんなり終了したもののapacheが起動できない。

つーか、起動してsuccessなんて出てるのにプロセスがいない、ログも出力されない…。とりあえず今日はそのまま放置。

本日のツッコミ(全3件) [ツッコミを入れる]

_ yone [ありがとうございますm--m プラズマTVまってますよ♪ でも、ほんとうに亭主関白なのですか・・・あやしい。]

_ gogo_goyah [サーチしてみました。「Uconv」でしょうか? (意味自体はわかりませんが)例えば↓。 ttp://masahiko..]

_ t-doi [をを、ありがとうございます。 その他もろもろありまして、Rubyのバージョンアップを検討中です。おそらくそれで解決す..]


2004-06-03 [J] [長年日記]  この日を編集

_ [ruby] バージョンアップではまる

引き続きRubyバージョンアップ作業。

rhtmlをerubyに食わせる設定をしている場合、singleton.rbでsegmentation faltになっているみたい…原因わかんねー。

とりあえず日記は復旧。

_ [oia] [seasar] 審査?

来週のOIA勉強会で発表するので暇な人来てねと社内にメールを出しておいたら、我が社の社員が社外で発表する場合は、社外発表内容審査票なるものの提出が必要などと言われる。

それにしても、審査票の制定日が2004年6月1日って、嫌がらせとしか思えない…。

で、なんだかんだ色々細かいことを書いてあるのだが、会社に不利益な内容と判断した場合は、出演を許可しないらしい。

不利益って何?なにをもって不利益と判断するのか書いてないじゃん。

つーか、これって言論の自由を侵害してないか?

本日のツッコミ(全2件) [ツッコミを入れる]

_ zu [言論の自由、とは関係ないのかも。 もし必要であれば、しかるべき筋から講師依頼を出しますけど どうしましょう?]

_ t-doi [はい。言論の自由はちょっと大袈裟でした。 会社に不利益と〜ってのを、戦時中の日本の戦争反対者への弾圧みたいに受け取っ..]


2004-06-04 [J] [長年日記]  この日を編集

_ [ruby] バージョンアップではまる

やっと原因判明しました。

どうやらlibphp4.soとmod_ruby.soの相性が悪かったようです。

てか、この前apt-getよりphpをインストールしたときにSegmentation Faltになって、mod_ruby.soを最新にしたら直ったので、今回は関係ないと思いこんでました。

結局PHPのtarball取得して、make&installして何とか復旧できました。

疲れた…。

_ TrackBack

UConvをインストールして文字化けしなくなりました。

ありがとうございます。>gogo_goyahさん

_ はてな

はてなダイアリーTrackBackできたのか、知らんかった。

と言うわけで、お師匠様の所にTrackBackしてみるテスト。

本日のツッコミ(全2件) [ツッコミを入れる]

_ gogo_goyah [できました。ちょっと嬉しい。 お疲れ様でした。]

_ gogo_goyah [言葉が変ですね。すみません。  ×:お疲れ様でした。  ○:おめでとうございます。]


2004-06-05 [J] [長年日記]  この日を編集

_ [amazon]amazon.co.jp

本を5冊注文。

_ [sports] ランニング

3Kmくらい。

体重:69.6kg

体脂肪率:23.2%

_ [oia] 資料作成

ひえー。後1週間しかない〜。

つーわけで、せっせと資料作成。


2004-06-06 [J] [長年日記]  この日を編集

_ こどもの国

資料作成のあいまを縫って、沖縄市にあるこどもの国に行ってきました。

天気が良すぎて暑すぎ。

動物園、水族館はちゃちすぎでしたが、ワンダーミュージアムは以外に面白くて子供も大人も楽しめました。

_ [oia] できた

資料できました。

何だか脱EJBなんて言っておきながらEJBの話題はほとんどなかったり。^^;

資料を書いていてい気付いたのですが、脱などと言いつつ実は、自分は今までEJBに染まった仕事にそんなに関わった事なかったです。(をい

以前EJBを使ったのは、某○Frameworkを使用するからEJBを使う〜とか不純な動機だったし。そのとき心底EJBを嫌いになったのを覚えてます。^^;

_ EJBは不要

koichikさんの日記、自分は今回Servlet+Seaserで開発してまさにそう感じました。>Servlet + DICon + Hibernate でEJBは不要

特にS2Daoが出てきたらServlet + S2 + S2Daoでもう完璧ですね。

特にS2はテストに関する部分も色々用意されていて、これ1つで実装〜テスト*1まで面倒見てくれるところが素敵です。

*1 TDDならテスト〜実装

_ 沖縄県議会選挙

誰に投票するか選ぶの一苦労でしたが、投票してきました。

なんで一苦労かと言うと、各自がどんな政策を訴えているかあんまり知らないからなんですよね。

政治家って選挙の前後だけしか活動してないように見えるのは私だけでしょうか?

本日のツッコミ(全2件) [ツッコミを入れる]

_ yone [沖縄にもこどもの国あるんですねー。 はぁ、金曜日からの沖縄出張たのしみだ〜☆]

_ t-doi [む。こどもの国に行きたいっすか?おこちゃまだなぁ:-)]


2004-06-07 [J] [長年日記]  この日を編集

_ リサーチしておきました

 そんなさちぶさんの為においしい沖縄料理のお店をリサーチしておきました。

_ [amazon] 発送

先日注文した本がもう発送されたらしい。早!!!

本日のツッコミ(全1件) [ツッコミを入れる]

_ さちぶ [おぉーありがとうございます! でも、聞いたことのないメニューがずらり...豆腐らしきものもあるようですが... うっ..]


2004-06-09 [J] [長年日記]  この日を編集

_ はてなポイント換金

はてなポイントは、1ポイント=1円です。

2000ポイント以上ポイントを貯めると、1000ポイント単位で換金できます。

知らなかった…。ひょっとして「はてな長者」とかいるのかしらん?

_ [oia] [seasar] 台風4号

発生してます。ひがさんこれなくなったらどうしよう…想像しただけでも恐ろしい。

本日のツッコミ(全2件) [ツッコミを入れる]

_ zu [本日のJAL/ANAが何便か欠航になってます。 土曜日はだいじょうぶじゃないかな]

_ t-doi [沖縄は土曜日大丈夫そうですね。 問題は関東かと…。]


2004-06-10 [J] [長年日記]  この日を編集

_ テストはいつ作る?

最近、私を含め、うちの会社はテストケースを作る時期が間違っているのではないかと思っています。

うちの会社でのオーソドックスな工程の流れは、プロジェクトごとに工程の呼び名が異なることはあれ、おおむね「要件定義→基本設計→詳細設計→実装→単体テスト→プログラムテスト→システムテスト」といった感じになっています。

通常は詳細設計書から単体テストのテストケース、基本設計書からプログラムテストのテストケースといった感じで、各仕様書に対応したテストケースを作成するわけですが、そのテストケースを作成するタイミングが間違っているのです。

うちの会社の場合は、「要件定義→基本設計→詳細設計→実装→単体テストチェックリスト作成→単体テスト→プログラムテストチェックリスト作成→プログラムテスト→システムテストチェックリスト作成→システムテスト」と各テスト工程の前でテストケース(チェックリスト)を作成してるんです。

このタイミングでテストケースを作成してしまうと、実装をもとに作成する輩が現れるし、なにより各チェックリストを作成する段階で仕様の矛盾に気がついたりして何も良いことがありません。

本来は、「要件定義→システムテストチェックリスト作成→基本設計→プログラムテストチェックリスト作成→詳細設計→単体テストチェックリスト作成→実装→単体テスト→プログラムテスト→システムテスト」と各仕様書を作成後にその仕様書に対応するテストケースを作るべきだと思うのですがねぇ。

仕様書はその性質上抽象的にならざるおえないので、仕様書に対応したテストケースで実値を当てはめることにより仕様の矛盾にも気づきやすくなるし、なにより手戻りの発生が格段に押さえられるようになるのではないかと…。

この作成手順が実践できている所ってあるのでしょうかねぇ?

それとも、実践できてないのはうちの会社だけ!?

やっぱりXP、TDDマンセー!!!

_ 賞与

今日は賞与支給日です…まぁまぁかな?

_ 心が折れますた

賞与はまぁまぁだったけど昇給がねぇ。

会社の業績は良かったので、賞与&昇給とも標準と聞いていたのに、小学校低学年の小遣い並の昇給額とは…。

資格も取りまくったし、この1年結構頑張ったつもりだったのに…。ああもう仕事やる気しねー。(`へ´)フンッ。

本日のツッコミ(全4件) [ツッコミを入れる]

_ topi¢ [テストについては酷く共感を覚えます。 実際今やっている例の呪い付きのシステムも 実際のシステム運用を全く視野に入れて..]

_ もんちゃ [システムテストって重要ですよね。。 テスト漏れで、不具合がおきても、取り返しがつかないことおおいですもん。。]

_ t-doi [こんにちは。 システムテスト重要ですよね。でもその重要なテストのテストシナリオをシステムの最終段階近くでしか作らない..]

_ もんちゃ [同感です!]


2004-06-11 [J] [長年日記]  この日を編集

_ yoneさん来沖

打ち合わせでyoneさんが奥さんを引き連れ来沖されました。

打ち合わせは何だか話しが発散してしまいまとまらなかった感じ、申し訳ありませんでした。>yoneさん

事前に打ち合わせ内容をマインドマップ等である程度まとめておけば良かったと後悔。

本日のツッコミ(全3件) [ツッコミを入れる]

_ yone [ただいまです★ 沖縄では大変おせわになりましたm--m ありがとうございましたっ! あまり会議らしい会議できなくて..]

_ t-doi [その節は、是非私をアドバイザーとして雇ってください。:-)]

_ マトリックス     [佐久川さん元気ですか ]


2004-06-12 [J] [長年日記]  この日を編集

_ [oia][seasar]OIA勉強会(seasarのからさわぎ in 沖縄)

無事終了しました。

どうやら私は淡々としゃべっていたらしい…。(^^;

前半はある程度しゃべる内容のシミュレーションができていたので良かったのですが、後半は途中から何しゃべっているか訳分からなくなっていたのは秘密です。:-)

事前にリハーサルする時間があったらなぁ。<ちょっと言い訳。

_ ひがさん

ひがさんの雰囲気と言うか、立ち振る舞いと言うか、なんか印象がkoichikさんにそっくりに思えるのは私だけでしょうか?

_ XPエクストリーム・プログラミング実践記

しまったー。せっかくひがさんに会えるのに持って行くの忘れたぁぁぁ。(T_T)

サインゲットのチャンスだったのにー。

本日のツッコミ(全4件) [ツッコミを入れる]

_ koichik [お疲れ様でした. イケメンと評判のひがさんに似ているだなんて褒めすぎです♪ ぐはぁっ,顔が似ているとは書いてないのか..]

_ t-doi [顔が似ているとは思いませんでしたが、イケメンぶりは互角と見ました。 ひがさんもkoichikさんの影響を受けてるとお..]

_ やましろ [お疲れ様でしたー 次回はもっとレベルの高い質問ができるよう鍛錬してきます。]

_ t-doi [ひぃ、私もいっぱいいっぱいなので…。(^^;]


2004-06-13 [J] [長年日記]  この日を編集

_ 検診

長男が前回の検診で貧血で引っかかったので再検査に行ってきました。

何とか正常値になっていたようで一安心です。


2004-06-15 [J] [長年日記]  この日を編集

_ [oia][seasar]Seaser in 沖縄(OIA勉強会)まとめ

仕事も落ち着いてきたので、一応まとめておきます。

私はノートPCの設定などの時間を考慮して、開始1時間前に会場入りしました。

会場にはOLUGynerome会長mataさんがすでにいらっしゃっていて準備のお手伝いなどをされていました。

そんなこんなで準備をしつつ「ひがさん飛行機飛んだかしらん」などと話をしていたら、 15:00ちょうどにひがさんから電話がかかってきて今沖縄大学に着いたとのこと、さすがひがさん時間ぴったりです。

ひがさんと雑談しつつ開始時間を待っていたのですが、15:30開始予定なのに開始10分前でも人があまり入ってません。

しかたがないので、開始時間を10分遅らせて15:40開始に変更しました。

さすが沖縄、さすがうちなータイム。

発表はひがさんからダイコン白書(基本編)、ダイコン白書(導入編)、ダイコン白書(AOP編)、ダイコン白書(アーキテクチャ編)、

をお話し頂きました。

基本編が終わった所での質疑応答で誰からも質問がなかったので大丈夫かいな?とか思ってしまいました。(^^;

これは沖縄で仕事をしている我々(?)の課題とも思いました。

もっと沖縄県内でのJavaそしてオブジェクト指向普及に努めなければ…。

ダイコン白書(アーキテクチャ編)は今回初お披露目の資料との事でしたが、Webアプリケーションのアーキテクチャに 関心がある私にとっては非常に為になる内容でした。

最後に私がSeaserの適用事例紹介を行いました。

前半はEJBとSeaserを比較しつつ、Seaserのどのあたりが便利かといった内容とDIConがキラーフレームワーク になるのでは?と言った事をお話ししました。

後半はSeaserが提供する機能のうち、今回の開発で何を利用しどう便利だったか?と言ったことをお話したのですが、 途中から何を話しているのか自分でも訳分からない状態になってしまいました。

参加者の皆様申し訳ありませんでした。m(__)m

最終的な参加者とその内訳は参加者33名、うち学生5名、うち女性3名(ひがさん情報)と言うことでした。

さすがひがさん、私には女性の人数を確認するほどの余裕はなかったです。

_ [oia][seasar]宴会

勉強会後は近くの居酒屋(?)で宴会がありました。

残念ながら宴会には女性および学生さんなどは参加されていませんでした。

宴会にはJasminsoftの贄(にえ)社長も参加されていて、JasmineSoft Harvestの仕組みの話や、自動生成した

ソースのカスタマイズをAOPでやれば透過的にできて良いのではないか?とか色々有意義なお話しが聞けました。

宴会後半は酔いと眠気の為、何を話していたかほとんど覚えていないのですが、2ch用語が飛び交っていたのは間違いない!

本日のツッコミ(全5件) [ツッコミを入れる]

_ zu [やっぱ、ユーザーグループみたいなの必要じゃないすかねえ。]

_ t-doi [むぅ、作るのは良いのですが人集まりますかね? 少なくとも、うちの会社には参加しようと思うようなやる気(?)のある社員..]

_ nie [私も会社設立時に Java ユーザーズグループを立ち上げてみたらどうか、と妄想?したことがありましたが、人が集まらな..]

_ t-doi [まぁやってみないと分からないっすね。 開発者が集まるような場があれば、提案してみようかしらん?]

_ zu [3名も集まるならやる価値はあるんじゃないでしょうか。 とりあえず、設立準備宴会をするとか... :)]


2004-06-16 [J] [長年日記]  この日を編集

_ [tool]Poti

Potiwikiの一種らしい、すごいかも。

_ サーバ入れ替え計画

このサーバはPentium133Mzh、mem48M、HDD2Gと言う環境なのですが、さすがに最近非力に感じるようになりました。

自宅にUPSを置くほど怪しい人ではないのと、瞬電ぐらいなら耐えられるように新たなサーバマシンとして中古ノートパソコンを物色中…。

本日のツッコミ(全2件) [ツッコミを入れる]

_ zu [そら最近の環境では非力でしょう...]

_ やましろ [アメリカンNo1というジャンク屋さんにそれっぽいのがあるかもしれません。]


2004-06-17 [J] [長年日記]  この日を編集

_ 眠い

異常に眠い…午前中は仕事にならないなぁ。(−_−)゜zzz…

_ ゴルァ

他の案件がトラぶってるからって、なぜうちらの案件のチェックリストを始めっから再消化ですかゴルァ。


2004-06-19 [J] [長年日記]  この日を編集

_ 休出

休出です。意外に簡単に仕事は終了。台風が近づいてきているようなので早く帰ってきました。


2004-06-20 [J] [長年日記]  この日を編集

_ 台風

直撃ではなかったので、思っていたよりは雨風ともにすごくなかったです。

_ 出不精

結局今日は一歩も家から出ることなくすごしました。


2004-06-21 [J] [長年日記]  この日を編集

_ [ruby][tool]WebObjectライクなRuby用のWeb開発ライブラリ(?)

WebObjectライクなRuby用のWeb開発ライブラリ。

_ RallyCar

via kojのとりあえず日記

現実逃避の為に、インストールしてみました。これお手軽で面白いかも。

_ [sports]水泳@北谷スポーツセンタ

本日の成果:クロール500m、平泳ぎ500m、背泳ぎ100m、計1.1km

体重68.8kg、体脂肪率21.5%

本日のツッコミ(全1件) [ツッコミを入れる]

_ Howie [私の名前はハウイです。アメリカ人です。日本語を勉強しています。英語のサイトをつくりました。サイトはさいきんゆうめいに..]


2004-06-22 [J] [長年日記]  この日を編集

_ やられ気味

このところかなりというか、ずいぶん前から精神的にやられてます。

自分が納得できない事を押しつけられて無理矢理やらされる…工夫することを知らない人々…あぁもう耐えられない。

やっと逃れられたと思ったのに…また逆戻りですか?

_ じんましん

基本スペックは=その1。

実は*1、私もここ10年くらい時折発病する、原因不明のじんましんに悩まされています。

何度か病院で血液検査などを受けたのですが、結局原因は分からず…とりあえずアレルギーでは無いらしい。

発病するのはだいたいストレスがたまるような仕事をしているときなので多分精神的なところからきているのでは?と自分では思っています。

で、ここ1年、それはそれは精神的に苦痛な仕事をやらされているおかげで、このじんましんに悩まされている訳ですが、幸い私の場合はタウロミンという薬を飲めばじんましんを抑えられる事が分かっています。

ただ、この薬を普通に飲んでも直らず、規定量の3倍〜4倍を飲まないと直らないのがたまに傷なんですよね。

一応説明書では、症状によっては一時的に規定量2倍〜3倍を服用しても良いことになっていますが、私の場合発病すると常時3倍〜4倍を服用しているので、一応副作用みたいなのがあります。

最近太ってきているのも副作用のせいかな?などと思ったり。

あぁもういい加減この環境から抜け出したくなってきました。

*1 って言うほどの事でもないが…

本日のツッコミ(全1件) [ツッコミを入れる]

_ とぴぞう [私が当時医者から出されていた薬は、 「特効薬ではないけれどもなんとなく効くらしい」ぐらいの薬でした。 副作用は肥満。..]


2004-06-23 [J] [長年日記]  この日を編集

_ RallyCar

現実逃避中…とりあえず、チェックポイントを順番に巡るところまで。 Stateパターン適用はちょっと冗長かしらん?

import com.ibm.rally.Car;
import com.ibm.rally.ICar;
import com.ibm.rally.IObject;
/**
 * This is the class that you must implement to enable your car within
 * the CodeRally track. Adding code to these methods will give your car
 * it's personality and allow it to compete.
 */
public class RallyCar extends Car {
    private StateManeger stateManeger = null;
    private StateAction action = null;
 
    /**
     * @see com.ibm.rally.Car#getName()
     */
    public String getName() {
        return "NicheCar";
    }
 
    /**
     * @see com.ibm.rally.Car#getSchoolName()
     */
    public String getSchoolName() {
        return "OLUG";
    }
 
    /**
     * @see com.ibm.rally.Car#getColor()
     */
    public byte getColor() {
        return CAR_BLUE;
    }
 
    /**
     * @see com.ibm.rally.Car#initialize()
     */
    public void initialize() {
        stateManeger = new StateManeger(this);
        action = new GoCheckPointAction(this);
    }
 
    /**
     * @see com.ibm.rally.Car#move(int, boolean, ICar, ICar)
     * Put the car in reverse for a few moves if you collide with another car.
     * Go toward the first gas depot.
     */
    public void move(
        int lastMoveTime,
        boolean hitWall,
        ICar collidedWithCar,
        ICar hitBySpareTire) {
        try {
            Context context =
                new Context(
                    lastMoveTime,
                    hitWall,
                    collidedWithCar,
                    hitBySpareTire);
            action = stateManeger.getNext(context, action);
            action.turn();
            action.ahead();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }
}
 
class Context {
    private int lastMoveTime;
    private boolean hitWall;
    private ICar collidedWithCar;
    private ICar hitBySpareTire;
 
    public Context(
        int lastMoveTime,
        boolean hitWall,
        ICar collidedWithCar,
        ICar hitBySpareTire) {
        this.lastMoveTime = lastMoveTime;
        this.hitWall = hitWall;
        this.collidedWithCar = collidedWithCar;
        this.hitBySpareTire = hitBySpareTire;
 
    }
 
    /**
     * @return
     */
    public ICar getCollidedWithCar() {
        return collidedWithCar;
    }
 
    /**
     * @return
     */
    public ICar getHitBySpareTire() {
        return hitBySpareTire;
    }
 
    /**
     * @return
     */
    public boolean isHitWall() {
        return hitWall;
    }
 
    /**
     * @return
     */
    public int getLastMoveTime() {
        return lastMoveTime;
    }
 
}
 
// 状態管理
class StateManeger {
    private StateAction goCheckPointAction = null;
    private StateAction backAction = null;
 
    public StateManeger(Car car) {
        goCheckPointAction = new GoCheckPointAction(car);
        backAction = new BackAction(car);
    }
 
    // どの状態にするかを選択する。
    public StateAction getNext(Context context, StateAction nowState) {
        if (!nowState.canChange()) {
            return nowState;
        }
        if (context.getCollidedWithCar() != null) {
            return backAction;
        }
        return goCheckPointAction;
    }
 
}
 
// 状態抽象クラス
abstract class StateAction {
 
    private Car car = null;
    private IObject checkPoints[];
    private IObject fuelPoints[];
    private IObject tirePoints[];
    private ICar rallyCars[];
 
    public StateAction(Car car) {
        this.car = car;
        checkPoints = car.getCheckpoints();
        fuelPoints = car.getFuelDepots();
        tirePoints = car.getSpareTireDepot();
        rallyCars = car.getOpponents();
 
    }
 
    abstract void ahead();
    abstract void turn();
 
    // 次の状態へ遷移可能か?
    public boolean canChange() {
        return true;
    }
 
    /**
     * @return
     */
    public Car getCar() {
        return car;
    }
 
    /**
     * @return
     */
    public IObject[] getCheckPoints() {
        return checkPoints;
    }
 
    /**
     * @return
     */
    public IObject[] getFuelPoints() {
        return fuelPoints;
    }
 
    /**
     * @return
     */
    public ICar[] getRallyCars() {
        return rallyCars;
    }
 
    /**
     * @return
     */
    public IObject[] getTirePoints() {
        return tirePoints;
    }
 
}
 
// チェックポイントを狙う状態
class GoCheckPointAction extends StateAction {
    private IObject target;
    private double distance;
 
    public GoCheckPointAction(Car car) {
        super(car);
    }
 
    void ahead() {
        getNextCheckPointInfo();
 
        getCar().setThrottle(Car.MAX_THROTTLE / adjustment());
 
    }
 
    void turn() {
        getNextCheckPointInfo();
 
        // 目標までの角度を計算
        int iHeadingTo = getCar().getHeadingTo(target) - getCar().getHeading();
        if (iHeadingTo > 180) {
            iHeadingTo = iHeadingTo - 360;
        } else if (iHeadingTo < -180) {
            iHeadingTo = iHeadingTo + 360;
        }
 
        // 角度を有効範囲に収める。(-10〜10)
        if (iHeadingTo > Car.MAX_STEER_RIGHT) {
            iHeadingTo = Car.MAX_STEER_RIGHT / adjustment();
        } else if (iHeadingTo < Car.MAX_STEER_LEFT) {
            iHeadingTo = Car.MAX_STEER_LEFT / adjustment();
        }
 
        // ステアリング角を決める。
        getCar().setSteeringSetting(iHeadingTo);
 
    }
 
    private int adjustment() {
        if (distance > 100) {
            return 1;
        } else if (distance > 50) {
            return 2;
        } else if (distance > 25) {
            return 4;
        } else {
            return 8;
        }
 
    }
    private void getNextCheckPointInfo() {
        int iPrevPointNo = getCar().getPreviousCheckpoint();
        iPrevPointNo = iPrevPointNo + 1; // 前回通過の次のチェックポイント
        if (iPrevPointNo >= getCheckPoints().length) {
            iPrevPointNo = 0;
        }
        target = getCheckPoints()[iPrevPointNo];
        distance = getCar().getDistanceTo(target);
    }
}
 
// 後ろに下がる状態
class BackAction extends StateAction {
    int backTime = 10;
 
    public BackAction(Car car) {
        super(car);
    }
 
    void ahead() {
        getCar().setThrottle(Car.MIN_THROTTLE);
    }
 
    void turn() {
        getCar().setSteeringSetting(Car.MAX_STEER_LEFT);
    }
 
    public boolean canChange() {
        if (backTime-- <= 0) {
            backTime = 10; // 次に備えて初期化
            return true;
        }
        return false;
    }
}

_ RallyCarその2

つーか、状態と動作をきちんと洗い出さなくては…。

あと、targetは外側から渡すようにして!>俺


2004-06-24 [J] [長年日記]  この日を編集

_ [shopping]ANTQUARIUM

ANTQUARIUM

NASAってこんなのも開発してるのかー。


2004-06-25 [J] [長年日記]  この日を編集

_ ドラ○エにたとえると

自分で言うのもなんですが、私は魔法使いです。:-)

JUnit、リファクタリングといった小物(?)魔法からRUP(UP)、XPといった大規模(?)魔法を駆使して戦います。

魔法使いなので、魔法を封じられると手も足も出ません。

去年の今頃からやらされていたプロジェクトは、魔法を封じるどころか魔法全否定で、「魔法?この世に魔法なんてないんじゃー!」な人ばかりなので困りものです。

そういえば、うちって魔法使いな人はほとんどいなくて戦士・武闘家のたぐいの人ばっかりのような気がします。

僧侶に至っては、回復魔法はホイミぐらいしか唱えられないくせに、なぜか味方にザラキを唱えまくっているというメダパニ状態だし。

つーわけで、勇者および魔法使いおよびメダパニっていない優秀な僧侶が欲しい今日この頃です。

#あ、Wiz○rdryの忍者みたいな人ってのも良いかも。

本日のツッコミ(全7件) [ツッコミを入れる]

_ また [イメージが浮かびあがるような例えだと思いました(^^;。 とりあえずの力業は必要な時もありますが、 それだけというの..]

_ yone [うちのほうがもっとひどいかもしれませんね。。。 冒険の書すらつくれないひとがうようよたくさんいますから=、= て..]

_ やましろ [毒針でどんなデスマーチも一撃必殺・・・だといいなぁ 忍者みたいな人・・・素っ裸で首を切りまくる人?]

_ jinnee [今の出向先はエリミネーターみたいな人ばっかりなんですが。 処刑されそうで困ってしまいます。大元のDoXXXoがラスボ..]

_ あすま [私は職業「遊び人」きっとレベルが上がると賢者に転職できるはずやーーー]

_ t-doi [忍者はもちろん最強キャラです。>やましろさん 普段は姿を見せませんが、プロジェクトが危機的状況になるとすべてをバッタ..]

_ t-doi [実は上記の魔法全否定のプロジェクトはDoXXXoのシステムだったりします。>jinneeさん この仕事は来月から無く..]


2004-06-26 [J] [長年日記]  この日を編集

_ 運動会

長女の幼稚園の運動会でした。

屋内運動場で行われたのですが、直射日光を浴びないとはいえ、この時期の沖縄は暑い!

暑さと保護者参加競技のおかげでバテバテです。


2004-06-27 [J] [長年日記]  この日を編集

_ [amazon]注文

本を4冊注文。

先日本を購入したときがちょうど1万円以上購入した方に1000円キャッシュバックキャンペーン中でした。

今回注文するのに、そのギフト券を使いたかったのですが、本の購入には使えないとのことでしたので、妻希望のジューサーミキサーをあわせて注文しました。

そういえば、amazonで本とCD以外の物を買うのは今日が初めてだなぁ。


2004-06-28 [J] [長年日記]  この日を編集

_ [linux]不正中継

お家サーバのハードディスクがやけにガリガリ言っているなぁと思い、ログをチェックしていたらどうやら不正中継に利用されていたもよう。(T.T)

とりあえず、Postfixをabortさせてキューにたまっていたメールを全部削除しました。

出先からでもメール送信できるようにして設定していたけど、SMTP-AUTHも設定していたし、ORBSのリストの設定とかもしてたんで安心していたのですが…とりあえず当面はPostfix停止しておいて、暇なときに設定の見直しを行わなくては…。

_ なくなった

例(謎)のプロジェクトの作業はなくなった模様。一安心。

それにしても、もう会社辞めようかなーとか思うと、うまい具合に事が運ぶのは「おまえはまだこの会社に居ろ」と言うおぼしめしか!?


2004-06-29 [J] [長年日記]  この日を編集

_ [ball pen]第2巻

P54-55


2004-06-30 [J] [長年日記]  この日を編集

_ Yahooオークション

ThinkPad 600Eを落札!!


[HOME] [AGILE] [OBJECT] [PROGRAMMING] [JAVA] [LINUX] [OKINAWA] [BBS] [DIARY]