2009年6月30日火曜日

100均で買ったインナーイヤーヘッドホン

コネクタが平型で変換コネクタ経由しなくても携帯につながったのでこりゃいいやと買ってみたんですが、さすが100円。音はひどいですw
なんつーか、音がこもってる。高音も低音もうまく出てないような。

前に使ってた1000円ぐらいのやつ(まぁこれも安物ですが100円のほどひどくはなかった)がどっかいっちゃったので買ってみたんですけど、もうちょっといいの買おうかなー。

2009年6月28日日曜日

Google app engne を試してみたメモ。

悩んだところメモ。

・Verify Your Account by SMS

携帯のメールを入れろってことで
国はjapan、キャリアはKDDIを選んでezweb.ne.jpのアドレスのユーザー名を入れてみた。
届かないなーと思ったら携帯のメールフィルター設定してたんで、フィルター外すと受信できた。
SMSて言われたんで、Cメールのことかと思ったんですが、携帯Eメールでよかったようです。

・Create an Application Application Identifier:
ukaukaとか入れたところ駄目だった。使われてるのか?
ukaukaukaもだめ。ukaukaukaukaもだめw いや別にこだわる必要はないけどどーなってんだ。そんなに使う単語か? これw
ukaukaukaukaukaまで行くと使えたけど長すぎるのでuka-ukaにしてみた。

・eclipse plugin
google側の設定は出来たようなのでeclipseの設定でもしてみる。
えーと3.5用は……まだないのか。終了w(ちなみに、3.5に3.4用プラグインをインストールしようとしたところ失敗しました。)

しかたないので3.4でやってみる。

・デプロイ
プロジェクトを作成してデフォルトで作られるhello worldを表示するだけのサーブレットを配置しようとするとエラー。
どうもロックを解除しないといけないようで。
https://www.google.com/accounts/DisplayUnlockCaptcha
下記でキャプチャ画像の値を入力してロック解除するとデプロイできました。

・独自ドメイン設定
まずgoogle apps とやらに登録が必要のようです。有料サービスかとびびりましたが、無料版もあるようなのでそちらで登録。

https://www.google.com/a/help/intl/ja/admins/editions_spe.html の Standard Edition が無料です。
で、ドメインの確認とやらでDNSでCNAMEをgoogle.comに設定して確認するんですが、確認まで最大48時間かかるとか表示されました。
ですんで、本当に独自ドメインでうまく設定出来るかがわかるのはもうちょっと後になりそう。

と、まぁとりあえず動作確認だけしました。
http://uka-uka.appspot.com/hello/ で cubbyというフレームワークのサンプルが表示されます。

追記)
独自ドメイン設定もできたようです。
http://uka-uka.a.ukauka.net/hello/
でもアクセスできるようになってます。
サブドメインは余計だったような気もするので、もっぺん設定しなおすかも。
今はcubbyのサンプルがデプロイされてます。cubbyは動くようなのでよかったです。

2009年6月27日土曜日

餓狼剣士装備

餓狼が求められるケースもあるようなので一応それっぽいの作っておくかと探してみた。
手持ちのものが出来るだけ流用できる&課金装備は使わないで探したところ以下のようなものが。

MHSX2 装備クリップ 剣士(男)

武器スロットなし
捨身のピアス(イ)       34 ●●  剛力珠, 剛力珠
アカムトウルンテ       176 ●●  剛力珠, 研磨珠
ストレガFアーム       126 ●●  美声珠G, 剛力珠
ギアノスRフォールド      65 ●●  剛力珠, 剛力珠
モノデビルRグリーヴ     109 ●●● 怪力珠, 音無珠G, 音無珠G

防御値:510 スロット:■0□0●11○0 火:+5 水:+3 雷:-7 氷:+7 龍:0

攻撃力UP【大】,餓狼+2,見切り+3,火事場力+2,高級耳栓
砥石使用高速化,はらへり倍加【大】

餓狼で必要なスキルってこんなもんだろうか? 
まぁ、ストレガが作れないんですけどね。勝ち組&伝説の鍛冶職人が来ないと……。

積んでる本リスト

買ったはいいもののなんとなく読んでない本が結構あるので可視化しておくためのリスト。

新書系が多い気がする。手持ちの本読んでから買えばいいのにね。まったく。
ちょっとずつ読んで減らしていこうと思います。

一気にここに書いたら、重くなってしまったので別ページにリストを移動しました。amazonのapiを読んでるので複数一気に呼ぶと重かったようです。
積んでる本リスト

struts2のResult Type

アクションクラスのアノテーションで指定する@Resultに指定するtypeですが以下のようなものがあります。

chain
別のActionクラスを呼び出します。urlは最初のアクション呼び出し時のままです。
redirect
指定したURLにリダイレクトします。urlはリダイレクト先に変わります。
redirectAction
指定したActionにリダイレクトします。urlは指定したActionのものに変わります。
他にも下記のようなタイプがいろいろあるようですが、使ってみてないんであまりわかってません。

dispatcher,freemarker,velocity,xslt,stream,plainText,tiles,jasper

大体みたまんまの感じのものだと思います。

dispatcherはjspを呼び出します。tilesはそーゆーフレームワークのようです。jasperは帳票フレームワーク?

2009年6月26日金曜日

Wiiスポーツ リゾート 買ってきました。

[tmkm-amazon]B001DLXXCC[/tmkm-amazon]

まだちょっとしかやってませんが、このモーションプラスが付いた状態が、本来のWiiリモコンの姿なんじゃないでしょうか。少なくとも最初Wiiを買う前にイメージしてたのはこんな感じでした。チャンバラとか。
動きをきっちりトレースしてくれる操作感がなかなか心地いいです。

2009年6月25日木曜日

Struts2 自作インターセプターでexcludeMethodsを有効にする。

インターセプターの自作で調べたことのメモ。

struts2関連でインターセプターを調べてるとstruts.xmlに

以下のようにparamのexcludeMethodsに書くとそのメソッド実行時はインターセプターは実行されないとあったので
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>


インターセプターを自作してこのような設定を書いてみたんですが、設定したメソッドの実行時にインターセプターが実行されてしまいました。

で、何が悪いのか調べてみたんですが、この設定を有効にするには、MethodFilterInterceptorを継承しないと駄目だということがわかりました。(試しに作ったインターセプターはAbstractInterceptorを継承してました。)

ですんで、MethodFilterInterceptorを継承して、doInterceptというメソッドに処理を記述すると上記の設定で実行しないメソッドの指定が有効になりました。

2009年6月23日火曜日

飛竜種の重顎の集め方

ティがレックス変種を倒すのが一番出やすいわけですが、ソロやペアだとちょっときついので、ソロで集め安いかなーという方法です。

ハンターズクエストのHR100~用クエスト、塔の剥ぎの極意・発火袋がよいです。

ティガ変種以外で重顎を集めるには部位破壊ぐらいしかないわけですが、このクエはレウスの頭部破壊のサブ報酬でも顎が出ますのでそれで集めるといいです。

僕は弓でやりました。

持ち込むのは、戻り玉、強激ビン、閃光玉、音爆弾。火事場発動用に栄養剤か爆弾。

弓はP・マスターボウⅦ。防具は弓用の連射テンプレです。

1 開始したら火事場用に体力を減らしながら2番へ向かいます。遠い場合は戻り玉を使います。

2 2番に入ったら、強激ビンをセット。レウスに閃光玉。続けて音爆弾を投げてガブラスを落とし、ガブラスを全滅させます。(ガブラスの攻撃をよけれる自身があればガブラス倒す手間を省いてもいいですが、結構邪魔なので全滅させた方が安定しました。)

3 レウスの閃光が解けた(30秒程です)瞬間にもう一度閃光を投げます。

4 弓で頭を攻撃します。強激ビン10本程度で壊れると思います。

5 ついでなので翼も壊しておきます。簡単に壊れます。

6 戻り玉で戻ってサブクエクリアします。戻り玉がない場合は適当に攻撃食らって死んで戻るか、歩いて帰ります。

これで2分程度でクリア出来ます。

これを延々繰り返せばそれなりの確率で重顎が出ます。が、2,3個集める程度ならこれでいいんですが、10個以上これで集めるのも結構しんどいですね。

素直に求人とかでティガ変種倒すのがいいかもしれませんw

2009年6月21日日曜日

リニア3ルート試算提示、知事は静観姿勢 県内関係者は賛否両論

http://www.chunichi.co.jp/article/nagano/20090619/CK2009061902000025.html

route

いや……これCルート以外ありえなくないですか? この図を見せられただけでそー思いますが。
なんで遠回りするのよw

Bルートにするメリットて何かあるんですかね。利権とかそーゆーのですかね。
もういっそのこと長野迂回すればいーんじゃないですか?

俺が小学生の頃に読んでた学研とかに夢の交通機関としてリニアの記事がよく載ってて、大人になるころには開通してるもんだと思ってたんですが……。

で、Cルートで40分。Bルートで47分てことなんですが、7分差てほんとですかね。もっとかかりそうな気もするんですが。停車して人の乗り降りがあるんでしょうし。

剛種ラオシャンロンをペアでやってみました。その2。

今回は部位破壊を目指してやってみました。

ほぼ前回と同様ですが、私は覇弓で、もう一人はロングホーンボウで。
手順も同様です。
覇弓は後退しながら頭撃ちます。
ロングホーンボウの方は肩を横あたりから狙います。
で、エリア終盤では覇弓も横に回って肩撃ちます。
背中は無視ですw なかなか壊れないし。

こんな感じで20分ぐらいで討伐出来ました。部位破壊は背中以外は出来てました。
前回確認していなかった砦の耐久力ですが70%ぐらいでしたんでそんなに、砦は襲われていなかったようです。

頭撃つほうは比較的安全なんですが、横から撃つほうは岩が振ってくるのが危険ですね。いまだによくわかんなくてたまに食らいます。

まぁ4人で行けば全破壊でもっと早く討伐は出来るんですが、求人で剛種ってなんかやなんですねw 失敗してチケット消費するといたたまれないというか……。

2009年6月20日土曜日

剛種ラオシャンロンをペアでやってみました。

剛種ラオシャンロンをペアでやってみました。
えぇ、基本ソロかペアです。4人集めるのしんどいですw

とりあえずは討伐してみるということで部位破壊は無視です。

使用武器はロングホーンSPⅦ。スキルは連射、攻撃大、見切り+3、貫通強化あたりです。
火事場で強激ビンを調合分も合わせて撃ちまくります。
狙いは頭。頭から胴体へ貫通するように撃ちます。
最初から最後までこれです。後退しながら溜めて、溜め3で振り返って撃ちます。

これを延々繰り返すと……17分で討伐出来ました。砦の耐久力は確認してなかったんでもしかしたらやばかったのかも……。

てことで倒すだけならペアでも問題なさそうです。ただ頭以外の部位破壊もしつつとなると難しいのかな?

それと頭撃ってるだけなら、覇弓でもいい気もしてきました。

2009年6月18日木曜日

STREET FIGHTER IV BENCHMARK やってみました。

http://www.4gamer.net/games/049/G004954/20090612078/

このベンチマークソフト。公開されてからアクセスが集中したのでミラーサーバー増やしたそうです。
で、試してみました。
ランクBらしいです。一応快適にプレイできるそうで。

まぁ、もしプレイするとしても360でやると思いますけど。
結果はこんな感じでした。

SCORE: 9328
AVERAGE: 52.52FPS
OS: Windows Vista(TM) Ultimate
CPU: Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz
Memory: 4094MB
Graphics Card: ATI Radeon HD 2600 XT
Display Setting: 1280x720 60Hz

(c)CAPCOM U.S.A., INC. 2008, 2009 ALL RIGHTS RESERVED.

剛種のシェンガオレンとラオシャンロンやってみました。

まずシェンガオレンやってみました。
通常のに比べて動きがだいぶ早いです。
で、報酬がしょぼいです。甲殻種系の素材しか出ませんw チケット2枚使ってこりゃねーだろ、と思いました。
こりゃ駄目だ、と思ったので1回だけにしときました。

次に、ラオ。
こいつも動きが早くなってます。
こいつは剥ぎ取りで、古龍種の尾系素材が出たので結構おいしいです。
火事場弓4人で頭ばかり狙って10分程度で倒せました。頭以外の部位破壊はなしでしたが。(ラスタの副産物で何分かかったかが1分単位でわかるようになってますw)
肩とか背中とかの部位破壊で古龍種の血系素材も出るらしいんで今度はそっちも狙ってみようかと思います。

ラスタ

5.5の新機能のラスタを早速試してみました。
仕様をよくわかってなくて試してやっと理解したんですが、このラスタで一緒についてくる奴の装備やらの設定は、自分がするんじゃなくて、相手がするんですね。
つまりラスタの装備とかを自由に設定出来ないと。相手まかせだと。

まぁ、この時点ですっかりこの機能を使う気がなくなりましたw 自分のラスタの強化しても自分で使えないんじゃなー。

2009年6月17日水曜日

古龍に角笛が効かなくなるようですよ。

http://daletto-members.mh-frontier.jp/support/update/update15.html

アイテム「角笛」について、古龍種のモンスターには効果が発揮されないように変更いたしました。


あからさまなハメ封じ? まぁ、角笛ハメやったことないから、どういう手順なのか詳しくは知らないんですが。

2009年6月16日火曜日

openid4java 0.9.5 が公開されてました。

http://code.google.com/p/openid4java/downloads/list

openid4java-full-0.9.5.593.tar.gzを解凍して出てきたopenid4java-full-0.9.5.jarを0.9.3と入れ替えてみましたが動作しました。ですんで、今後は0.9.5で大丈夫そうです。

2009年6月15日月曜日

Struts2.1でopenIDを試してみました。

以前cubbyを使ってopenIDを使ってみたんですが、Struts2.1でもやってみました。

まぁ、特に変わりはないんですが、任意のURLにリダイレクトさせる方法とかを調べたりしました。

後、ConsumerManagerは認証とベリファイで同じインスタンスを使わないと駄目とか。これでちょっとはまりました。めんどくさいし別にどーでもいーだろ、と思ってauthとverifyで別々にnewしてたんですがシグネチャの検証部分が通りませんでした。同じ内部値じゃないと駄目なんですかね。よくわかりませんが。

あ、あとopenid4javaはやっぱり0.9.3じゃないとうまくいかなかったとか、やっぱりyahooはローカルからだと駄目だとか。

後はdbにアクセスしてログイン情報を登録したりとかしてみようと思います。で、s2jdbcを使いたいんで必要ライブラリをセットしようかと思います。あ、
Struts2 Seasar Pluginなんてのもあるんですね。これも試してみようかと思います。

2009年6月14日日曜日

鳥竜種の剛尾の集め方

ドスゲネポス変種で集めるのはやめたほうがいいです。めんどくさい。

剛尾はゲネポス変種からもそれなりの確率で出ますので、樹海の地図クエあたりに行けばいいです。

剥ぎ取り装備で行くと多少効率いいかもしれませんが、結構敵多くて邪魔されて2回剥げないこともありますんであまり気にしなくてもいいかも。

衝撃の黄

なにこれw

鳥竜種の剛尾が欲しくて行ったんだけど全然倒せないんですけど。

ペアで30分かかって倒せなかったのでもうリタイアしました。

キングナルコレプターで眠らせて、ため3とか考えて行って見たんですが全然だめです。まぁ、武器の選択が悪かった気はしますが……。

頻繁に移動するようにはなったので弱ってたのかもしれませんが、そこから倒しきれなかったんでしょうか。移動で体力回復するとか聞いたことあるし……。

2009年6月13日土曜日

skypeがポート80を使いやがる

tomcatをポート80で起動しようとしたらエラー。

このマシンで80なんて使ってないはずだけどなー、と調べてみるとskypeが80使ってやがる。

えー! そりゃないよ、なんで勝手に使うのよ。もっと大きい番号使えばいいじゃん。

ということでskypeで使用するポートを変更しました。

skype立ち上げて

1 ツール>設定

2 詳細>接続

3 「上記のポートに代わり、80ポートを使用」 のチェックをはずす。

で変更できました。

ほんと、なんでわざわざ80を使うんだろw

wordpress2.8にバージョンアップしました。

2.7で特に不都合はなかったんですが、2.8が公開されたようなのでバージョンアップしてみました。

2.8のアーカイブを持ってきて解凍して、ファイルをwordpressのディレクトリに上書きしました。

で、ダッシュボードを表示すると、データベースの更新が必要とか言われるので、指示に従うとバージョンアップ完了です。

いまいちなにが変わったのかよくわかってませんが、速度向上してるらしいのでその辺に期待です。

2009年6月12日金曜日

イーバンク銀行の口座を解約しました。

入出金手数料がかかるようになるとかふざけたことを言い出したので解約することにしました。
小金のやり取りに使ってたぐらいなので、無料になるほど取引しませんし。

で、解約方法ですがちょっとわかりにくかったです。まぁ、Q&A見たらわかるんですけど。

まず、本人名義他行口座を設定しないといけません。解約時に口座にあるお金を振り込んでくれるそうなのでその振込み先のようです。まぁ、振込みには手数料取られるので、口座のお金は全額引き出しておきます。手順は以下のページを参考に。結構階層が深いので迷います。
http://searchfaq.ebank.co.jp/je/faq.asp?fid=10140

で、次に解約を行います。
http://searchfaq.ebank.co.jp/je/faq.asp?fid=31617&cid=

で、めでたく解約です。

……で、投資用にイーバンクから入金してたんですが、今後どーしよーかなー。
ジャパンネットバンクも口座維持手数料とかかかって無料にするのめんどくさいし……。

2009年6月11日木曜日

ソフトバンク、「iPhone 3G S」の価格を案内


http://k-tai.impress.co.jp/cda/article/news_toppage/45691.html?ref=hl_rss



















キャンペーン適用価格
(実質負担額)
キャンペーン非適用価格
(実質負担額)
iPhone 3G S 16GB480円/月(1万1520円)960円/月(2万3040円)
iPhone 3G S 32GB960円/月(2万3040円)1440円/月(3万4560円)

だそうですよ。キャンペーンというのは2年契約の縛りです。

iPhoneで何かソフト作ってみたいなー、とは思ったんですが開発環境がmacだからねぇ。
今一番安いmacってmac miniとかなんだろうか。

後、月額料金かな。パケット定額で5000円ぐらいかかる?

2ちゃんのスレ見てたらパケットを全然使わない最低金額でこのような感じになるようです。
■新型iPhone3G Sの月額最低金額(キャンペーン適用)
ホワイトプラン+S!ベーシックパック+パケット定額フル+分割支払金-特別割引額

980+315+1029+2400-1920=2804円(iPhone 3G S 16GB、2年)
980+315+1029+2880-1920=3284円(iPhone 3G S 32GB、2年)

『婚カツ!』の視聴率が一桁になったようです。

http://news.ameba.jp/cyzo/2009/05/38091.html

http://www.narinari.com/Nd/20090611761.html

月9の栄光も過去のものってことでしょうか。

で、この件で検索してたら録画率とか持ち出してきてる記事が。
http://www.rbbtoday.com/news/20090512/59754.html
http://headlines.yahoo.co.jp/hl?a=20090522-00000003-jct-ent

そりゃないだろw 今まで視聴率が基準だったんだから急に録画率持ち出されてもさぁ。

<機動戦士ガンダム>「台場に立つ」18メートルの雄姿現す

http://headlines.yahoo.co.jp/hl?a=20090609-00000038-maiall-ent

gun

なにこれ。なんかすげー。
特にガンダムに興味ないけど、18メートルのロボットが立ってるのは迫力あるねぇ。
ちょっと実物見てみたくなったよ。

デビュー9年目の水樹奈々、声優史上初の首位獲得に「夢のような出来事」

http://www.oricon.co.jp/news/rankmusic/66771/full/

[tmkm-amazon]B001TK8WQE[/tmkm-amazon]

水樹奈々さんは確かに凄いんでしょうけどそれよりも、7.4万枚で1位ということにびっくりしました。
いつのまにこんなことに。
CD売れなくなってるんですねー。

魚拓【大】=16 魚拓【小】=8 カジキマグロ=4

数えてみたらなんとか半分超えてたようです。

しかしここまでやってしまうと今更引っ込みがつかないw

別に太公望はそんなに欲しいわけじゃなかったんだけど……。特に使い道なさそうだし……。

2009年6月10日水曜日

Struts2 入力値検証

バリデーションを試してみようと思ったんだけど、これってActionSupportクラス継承してないと駄目? アノテーションやらvalidation.xmlで書いてみたけど、ログにはエラー出るんですが、メソッドは実行されて普通に遷移しちゃうんですが……。

pojoで出来るだけ設定ファイル作らずにやりたかったんだけどなー。

あ、それと2.1でいろいろ非推奨になってるやりかたでやってたみたいなんでその辺はもうちょっと調べてみます。

Struts2.1を使ってみる。単純な入力フォームの例

単純に表示するだけは出来たので、入力フォームから入力するような機能を試してみます。
環境はすでに用意してあるものを使います。

1 アクションクラス作成。

net.ukauka.lab.action.test2にHello2Action.javaを作成します。
package net.ukauka.lab.action.test2;

import org.apache.struts2.convention.annotation.ParentPackage;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.EmailValidator;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;

@ParentPackage(value="default")

public class Hello2Action extends ActionSupport{

public String name;
public String email;

private static final long serialVersionUID = 1L;

public String execute() throws Exception {
return "input";
}

@Validations(requiredStrings=@RequiredStringValidator(fieldName="name",message="名前いれて"))
public String inputName() throws Exception {
return "ok";
}

@Validations(
requiredStrings=@RequiredStringValidator(fieldName="email",message="メールアドレスいれて"),
emails=@EmailValidator(fieldName="email",message="メールアドレスがおかしい")
)
public String inputEmail() throws Exception {
return "ok";
}

}

http://localhost:8080/app1/test2/hello2.action でアクセスします。

入力用にname,emailという変数をpublicで作成します。この変数に入力値が設定されます。
inputName,inputEmailというメソッドは入力実行時に呼び出されます。
今回は無意味に送信ボタンを二つ用意してそれぞれの動作がわかるようにしています。
@ParentPackage(value="default")
という記述は、どの設定を使用するかです。これを書いていないとデフォルトではstruts-defaultが使用されます。
後述のインターセプタ設定に関連するので必要です。

@Validations うんたらかんたらの部分はバリデーションの設定です。極力設定ファイルを書きたくないのでアノテーションで設定するようにしました。
メソッド毎に違うバリデーションを行いたいので、二つのメソッドで別のバリデーションを設定してあります。

2 jspを作成

入力用と表示用のビューを作成します。

入力用 test2/hello2-input.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>入力</title>
<style>
.errorMessage {
color:red;
}
.errorLabel {
color:red;
}

</style>
</head>
<body>
<h1>入力</h1>
<s:form>
<s:textfield label="名前" name="name" />
<s:textfield label="メールアドレス" name="email" />

<s:submit value="名前入力" method="inputName" />
<s:submit value="メールアドレス入力" method="inputEmail" />
</s:form>
</body>
</html>

入力フォームはstrutsタグを使うと楽です。基本は

s:formの中に書く入力用タグを配置するだけです。

s:formを指定するだけで、入力欄とかサブミットボタンとかは勝手にtableタグで適当に整形されて表示されます。

これはthemeを指定することでいろいろ変更できるようです。とりあえず勝手に整形されるのは困るって場合は<s:form theme="simple'>を指定すればいいです。デフォルトはtheme=xhtmlらしいです。他にもcssレイアウトやajaxを使うものとかあるようですが、面倒なのでデフォルトでやっときます。

見たまんまですが、s:submitでmethodを指定してますがこれが実行したいメソッドの名前になります。

cssでerrorMessage、errorLabelを指定してますが、これはエラー時に出力されるメッセージ用です。色でも変えておかないとわかりづらいです。

出力用 test2/hello2-ok.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>出力</title>
</head>
<body>
<h1>出力</h1>
名前:${name}<br/>
メールアドレス:${email}
<a href="hello2.action">戻る</a>
</body>
</html>

3 設定ファイル
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="defaultStack">
<interceptor-ref name="exception" />
<interceptor-ref name="alias" />
<interceptor-ref name="servletConfig" />
<interceptor-ref name="i18n" />
<interceptor-ref name="prepare" />
<interceptor-ref name="chain" />
<interceptor-ref name="debugging" />
<interceptor-ref name="profiling" />
<interceptor-ref name="scopedModelDriven" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="fileUpload" />
<interceptor-ref name="checkbox" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="actionMappingParams" />
<interceptor-ref name="params">
<param name="excludeParams">dojo\..*,^struts\..*</param>
</interceptor-ref>
<interceptor-ref name="conversionError" />
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
</package>
</struts>

今回この設定を調べるのに結構時間食いましたw
アノテーションでメソッド毎にバリデーションを実行するのに、

<interceptor-ref name="validation">
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor-ref>

validateAnnotatedMethodOnlyをtrueに設定する必要があるんですが、この方法がよくわかんなかったのです。

まぁ、わかってみると簡単なんですが、struts-defaultを継承したpackageを作成しinterceptor-stackのdefaultStackを上書きすればよかったです。

で、ここで指定しているpackageをアクションクラス側で指定しないとデフォルトのstruts-defaultが使用されてうまくいきません。(結構悩みました)

defaultStackはstruts-defaultの内容をそのままコピーしてもってきてvalidation部分だけ追加しました。いらなそうなインターセプターは削除しておいてもいいと思います。

4 実行

http://localhost:8080/app1/test2/hello2.action にアクセスすると入力画面が表示されます。
「名前入力」ボタンを押すと、名前欄のみチェックされて、問題なければ出力画面が表示されます。

「メールアドレス入力」も同様です。

二つのボタンで別々のバリデーションが働きます。

hello2Action#execute 実行

test2/hello2-input.jsp 表示

hello2Action#inputName 実行

test2/hello2-ok.jsp 表示

という流れになります。

2009年6月9日火曜日

Struts2.1を使ってみる。単純に表示するだけの例

http://struts.apache.org/2.1.2/index.html

struts2で検索すると、解説ページは出てくるんですが肝心のダウンロード先がすぐわからないんで、真っ先に書いておきますw
まず、本家のURLを提示してくれよ。解説はいいからさ。
現時点では2.1.6が最新のようですので、

http://struts.apache.org/download.cgi
こちらから
struts-2.1.6-all.zipをダウンロードします。
allなんでソースとかサンプルとかドキュメントとかいろいろ入ってると思います。

eclipseのwtpで一番単純な表示するだけの機能を作ってみました。

1 wtpの動的Webプロジェクトを作成。

とりあえずapp1という名前のプロジェクトを作成してみました。

2 必要ライブラリを配置。
app1/WebContent/WEB-INF/libにライブラリを配置します。解凍したファイルに入ってます。
とりあえ以下を入れてみます。今のところ使わなさそうなのも入ってますが。

commons-fileupload-1.2.1.jar
commons-loggin-1.0.4.jar
freemaker-2.3.13.jar
ognl-2.6.11.jar
struts2-convention-plugin-2.1.6.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar

ビルドパスの設定でこれらのライブラリを追加しておきます。

3 web.xmlの変更
app1/WebContent/WEB-INF/web.xmlを修正します。
以下を追加します。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

struts2自体はfilterとして動くのでその設定ですね。
2.1からは
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

を使用するようなんですが、これ使うと日本語が文字化けしちゃうんですよね。無理やり文字化けしないようにも出来ないことはないですが面倒くさいのでorg.apache.struts2.dispatcher.FilterDispatcherを使ってます。2.1からは非推奨のようですが特段問題はありません。


4 struts.xmlの追加

設定の記述量が少なくなると言っても最低限の設定は必要ですので、struts.xmlを作成します。
app1/src/struts.xmlを作成します。中身はこんな感じです。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
   
<constant name="struts.devMode" value="false" />
</struts>

struts.enable.DynamicMethodInvocationはアクション名!メソッドという形式のURLでのメソッド実行を有効にするかどうか。
struts.devModeは開発モードでtrueの場合はデバック用のインターセプターとかが有効になるようです。

5 アクションクラスの作成

srcにnet.ukauka.lab.action.test.HelloAction.javaを作成します。
こんな感じです。
package net.ukauka.lab.action.test;

public class HelloAction {
public String message;

private static final long serialVersionUID = 1L;

public String execute() throws Exception {
this.message = "<strong>こんにちは!</strong>";
return "success";
}
}

これで
http://localhost:8080/app1/test/hello.action というURLへのアクセスでこのアクションが実行されるようになります。
で呼ばれます。

これはパッケージ名から判断されます。actionという部分の下のパッケージ名が対応します。

action.test.HelloActionなので/test/hello.actionになります。

アクションクラス自体はPOJOってやつです。特になにも継承したりしません。
このサンプルでは単純にmessageという変数に値を設定して、リターンコードを返すだけです。このリターンコードに対応したviewが表示されます。

6 ビューの作成

ビューはとりあえずjspで作成します。(他にもfreemakerとかvelocityとかのテンプレートも使えるようですがよく知らないので。)

app1/WebContent/WEB-INF/content/test/hello.jsp を作成します。

WEB-INF/content/test以下が参照されるのはアクションクラスのパッケージ構造に対応しています。

WEB-INF/content 以下からビュー用のファイルを探すのがデフォルトになっています。

まぁ、この辺は設定で変えられるようですがこの構造で覚えときゃいいかなと思ってます。

hello.jspは以下のような感じです。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<h1>単純に表示するだけ</h1>
1 <s:property value="message" /><br/>
2 ${message}
</body>
</html>

表示はs:propertyを使えば表示できます。これはhtmlエンコードをやってくれますんで、< を &lt;とかに変換してくれます。
${}の場合はそのまんま表示されます。

7 実行
サーバーを起動してhttp://localhost:8080/app1/test/hello.actionをブラウザで見てみると
<html>
<body>
<h1>単純に表示するだけ</h1>
1 &lt;strong&gt;こんにちは!&lt;/strong&gt;<br/>
2 <strong>こんにちは!</strong>
</body>
</html>

と表示されます。

hello.actionなのでhelloActionが実行されて、hello.jspが表示される。という流れになっています。アクションクラスでsuccessという文字コードを返してますがこいつで表示するビューを指定することが出来ます。ちょっとややこしいですが、ビューは以下のような感じで探すようです。

successがリターンコードの場合。

1 hello-success.jsp
2 hello.jsp
3 hello-success.vm
4 hello.vm
5 hello-success.ftl
6 hello.ftl

今回は1のファイルは用意されていないので2が採用されたってことになります。

2009年6月8日月曜日

ラヴァーズFピアスのLV7まで強化しました。

特に使い道は決まってませんがせっかくなのでFの7まで強化してみました。
途中舞雷龍の堅殻が必要になった以外はスムーズに強化できました。

ベルキュロスがめんどくさかったです。
自爆するのを始めて見ましたw 自爆するとかなりのダメージがあるのか、それからすぐ倒せる感じでした。

今日は他は、入魂やってたぐらいでしょうか。
トータル1000魂ぐらい入魂しました。
主にシークレットです。ババコンガとナヅチで稼ぎました。
シクレない時は、逆襲のレウスで14魂がペアでやる場合は効率がよかったです。

2009年6月7日日曜日

eclipse 3.5 インストールしてみた。

まぁ、ダウンロードして解凍して起動してみただけですが。
6/24に正式リリースのようです。
今回ダウンロードしたのはRC2版です。

ラヴァーズピアス ゲット!

lp

みんなでネットカフェ【カップル】キャンペーン

ネカフェ行ってきました。
ラヴァーズピアスも無事ゲットできました。
入手方法は店にもよると思いますが、今回行った所は以下のような感じでした。
インターネットカフェ@WAN系列です。

1 受付でモンハンやりたい旨を伝える。
 最初に言わないとスムーズに行きませんw あたりまえですが。今回最初に行ったネカフェは結局席がなかったので、そこはあきらめて別の店に行った。という経緯があったんですが、そのとき最初にモンハンやるっていうのを言ってなかったので、モンハンやる席が空いてるのかどうかわからないまま席を取ろうとしてグダグダになってしまいましたw
 2件目の店では席が空いてたのでこちらでやることにしました。モンハンやりたいと言うと、イベント参加ですか? とか聞かれましたんで、その辺の話はスムーズに進みました。
2 参加券をもらう。
 今回行った店では、後で席に参加券をもってスタッフがやってきました。
3 3時間ネカフェですごす。
 3時間以上が条件なので3時間ぴったりでいいはずなんですが、今回の店は、3時間+延長10分しろと言われました。まぁたいして金かかるわけでもないんで別に文句は言いませんでしたが、なんか納得いかねーなー。
 (と、思ったんですが後でレシート確認したら延長分払ってませんでした。なんだったんだ? 最初に言われたのは)
4 退店時に参加券を提示。
 で、イベントコードを印刷した用紙がもらえます。

せっかくネカフェ行ったんでネカフェでしか出来ないことをやろうってことで、カフェメダルでも取ってみようかとやってみたんですが……なにこれ、全然でねー。
ドドブラを2時間程やってみたんですが、カフェメダル・黒が2個出ただけでした。
途中でやる気なくなったんで、
[tmkm-amazon]4088594568[/tmkm-amazon]
を読みはじめる始末。

後は、消耗品を大量に買い込んだりしてました。

まぁ、ラヴァーズピアス自体はヤフオクで2000円~ぐらいで出てますんで、ネットで行く相手募集したり苦労するぐらいならヤフオクのほうが楽だと思います。(規約違反だからだめだ! とかいう意見はおいといてw)
ブース席で二人分払ったら2000円近くになるネカフェもありますし……。

2009年6月6日土曜日

eclipse wtp を試してみた。

wtpの使い方がよくわかってないので試してみた。

とりあえず今のeclipseにはwtp入ってるようなのでインストールは省くとして、

1 tomcatをインストールする。
バージョンは何でもよかったんですが、サーバーに入ってるのが5.5系だったのでそれにあわせました。
http://tomcat.apache.org/download-55.cgi
現時点では5.5.27が最新のようです。
Core: のところにあるzipをダウンロードして解凍。出来たフォルダを適当に配置。

2 サーバの設定
eclipseでウィンドウ>ビューの表示>その他
で、その他のビュー選択画面になるので、サーバーの中にあるサーバーを選択。ビューウィンドウのタブに「サーバー」が追加されます。
サーバーをクリックしてアクティブにして、ウィンドウ内で右クリック>新規>サーバー
新規サーバーの定義という画面になるので、
サーバーのタイプを選択>apache>Tomcat v5.5サーバーを選択。完了ボタン押下。

3 プロジェクトの作成
ファイル>新規>プロジェクト でプロジェクト選択ウィザードが開きます。
Web>動的Webプロジェクト を選択して「次へ」押下。
プロジェクト名を入力して「完了」を押下。
今回は「app1」にした。

4 プロジェクトをサーバーに追加
サーバービューの「ローカル・ホスト の Tomcat v5.5 サーバー」を右クリックして「プロジェクトの追加および除去」を選択。
プロジェクトの追加および除去の画面が開くので、左側の使用可能なプロジェクトからプロジェクトを選択して「追加」ボタンを押下。完了を押下。

5 動作確認。
app1プロジェクトを右クリック>新規>サーブレットを選択。
クラス名を選択する画面になるので、パッケージ名「test」、クラス名「Test」で作成。
java リソース:srcのなかにtest/Test.javaが作成される。
とりえあず、何か表示するために、

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         response.setContentType("text/html");
         response.getWriter().println("Hello");
}

適当に入力。
doGetやらdoPostメソッドの雛形は自動作成されてます。

web.xmlにもTestで勝手に登録されます。

サーバービューの「ローカル・ホスト の Tomcat v5.5 サーバー」を右クリックして「開始」を選択すると起動します。

http://localhost:8080/app1/Test

でHelloが表示されます。


まぁこんな感じで使うようですが、今更サーブレットは使わないと思いますんで、Struts2とかで試してみたいと思います。
これ、なんか便利なんですかね? まぁ、Tomcat pluginとか入れなくても、ほぼ標準の環境で作れるからいいのかな。

2009年6月5日金曜日

いぬまるだしっ 2巻 買ってきた。

[tmkm-amazon]4088746988[/tmkm-amazon]

今日はジャンプ系のコミックスの発売日だったので会社の帰りに本屋に寄ってみたんですが、いぬまるは最後の一冊でした。
馬鹿売れ! じゃないよな……。入荷が少ないんだよな、これ……。
アマゾンのデータ取得してみても表紙画像登録されてないしな……。
バクマンは山ほど積んであったけどな……。

これ面白いと思うんですけどねー。
最近は人気あるんでしょうか。たまにカラーの回とかあるし……。

今回は31回までと、読みきりの猫カフェ話が載ってました。

※6/5にアマゾンのサイトを見に行ったら2巻の表紙画像登録されてました。apiの取得する画像はタイムラグあるんですかね。

2009年6月4日木曜日

にほんブログ村

http://game.blogmura.com/onlinegame/

以前のブログでもランキング用のリンクをつけてたので、このブログでもつけてみた。
適当に自分でリンク押してるだけでもオンラインゲームのカテゴリで60位ぐらいまでは行けたw

一回押されて10ポイントなら週間INで70ポイントぐらい。50位ぐらいまでなら行けるだろうか?

あー、いや、ちゃんと読者に押してもらうもんだとはわかってますよ? けど、そんな役に立ちそうなことも書いてないですし、見にくるひとそんないないしね……。

ミラルーツもミラバルカンと大体同じ要領で行けました。

今日から、古龍クエストに祖龍が来てたのでやってみました。ミラバルカンと同じような感じやってみたんですが、大体同じような感じでした。

ポイントとしては、
・落雷はミラバルカンの隕石と違って常に正面にいればいいわけじゃない。
 でも、これは一発目がどこに落ちるかでどこに逃げればいいかがわかります。ですので、大体正面あたりに位置どって顔面とか羽とか部位破壊できるところを攻撃。で、一発目の落雷が祖龍の近くに落ちたらそのまま正面。落雷が自分の後ろのほうに落ちたら右前あたりに移動。

ぐらいでしょうか。他の攻撃はちゃんと見てたらよけられるんでそんなに難しいことはないです。塔の上にいった場合の落雷は、入り口の岩のあたりとか、タイルの剥げたあたりとか安全地帯ありますんでその辺で。

いつものごとくペアでやったんですが、最初のうちは火炎弾で顔と羽を攻撃。破壊が終わった後は毒麻痺調合水平撃ちで10分~15分ほどで倒せました。

こいつも苦手意識があってあまりやってなかったんですが、今後は落ち着いてやれそうです。

三十番地キリスト教会

http://ichurch.me/

キリスト教 下世話なQ&Aコーナーというページが面白かったのでメモ。

・キリスト教では同性愛はダメなんですよね?
・クリスチャンって合掌したり焼香したりはしないんですよね?
・神なんて想像上の産物にすぎないんじゃないんですか?
・教会で結婚式あげると安上がりって本当ですか?

とか、こんな感じの質問に答えてたりとか。

E3 任天堂 出展タイトルリスト

http://www.nintendo.co.jp/n10/e3_2009/titlelist.html

いろいろ発表されたようですが、ニュースサイト見てもスクリーンショットがあるぐらいでよくわかりません。
が、公式サイト見ると動画もあってどんな感じかわかりやすくなってます。

この中だと、メトロイドが面白そうです。FPSになってからのシリーズはやる気しなかったんですが、これなら大丈夫そうです。

SCEJ、PSPの新機種「PSP go」発売決定!

pspgo03_s

http://game.watch.impress.co.jp/docs/news/20090603_212234.html

あー、やっぱこれなわけですか。
で、びっくりしたのが価格ですね。26,800円
高いw psp-3000で19,800円ですからね。えらく高くなってます。

小さくなったところに魅力感じる人もいるんでしょうけど、PSP持ってる人の買い替え需要は薄いような。UMD使えませんし、画面も小さくなってますし。
少なくともPSP-3000を発売当初ぐらいに買った僕としては特別魅力感じません。

しかしスライドで操作部が下に出てきてあんな操作しずらそうになるなら、左右にスライドじゃ駄目ですかね? 強度が心配になりますけど。

「ストリートファイターオンライン」サービス終了のお知らせ

http://www.daletto.com/pc/sfo/sfo_news_detail.html?news_no=630

ストリートファイターオンラインがサービスを終了するそうです。
あー、駄目な感じだなーこりゃ、と思ってたらやっぱりサービス終了ですか。
格闘ゲームでマウス操作ってのがそもそも受け付けないよな。(メインで使ってるのがトラックボールだというのはおいといて)

2009年6月3日水曜日

グーの惑星 チャプター3まできました。

チャプター3まで来たんですが、ロボが真ん中でぐるぐる回ってる面で詰まった。
どーにか、上のほうにある爆弾ぽいとこまで伸ばしていけばいいとは思うんだけど途中でくずれちゃうんだよなー。

METAL GEAR SOLID: RISINGがXBOX 360で出るそうです。

http://game.watch.impress.co.jp/docs/news/20090602_212112.html

まぁXBOX360は持ってるんで出るんならやるかもしれないですが、メタルギアシリーズはメタルギアソリッド2までしかやってないしどうだろう?
シリーズものでナンバリングの途中で過去話になるってのが気に食わなくて3からやってなかったんですが……。

剛種クエストのオオナズチから出る素材が変わるそうです。

http://daletto-members.mh-frontier.jp/information/news/info/2135.html

今まで報酬と剥ぎ取りで出ていた角系の素材が、鱗系の素材に置き換わるそうです。

なんじゃそりゃ。
まー、めんどくさくて剛種クエはスルーしてるんであまり関係ないかもしれませんが。
別に角がぽろぽろ出たっていーじゃないですか。こいつからはこの素材が出やすいってだけでしょ?

汎用素材がそもそも駄目だよな、これ。ナヅチ倒したんならそいつの素材が出るべきだと思うんですが、古龍とかひとくくりにしちゃうから……。

東京・銀座にあるパリの老舗宝石店実施の「ダイヤ無料配布」に長蛇の列 混乱 も

http://www.fnn-news.com/news/headlines/articles/CONN00156309.html

ダイヤ無料配布に長蛇の列。というニュースなんですが……。
あほか、こいつらw

5000円相当っていうけどそんな価値あるんでしょうか、これ?
単体では意味ないですよね? アクセサリにするには加工が必要なんだし。
これが、金(gold)ならどんな形でもそれだけで価値あると思います。でもダイヤの裸石もらったってしかたないでしょう。
なんかダイヤって響きにごまかされてないですか?

……あー、でもPCのメモリ配ってたら並ぶかもなー。たとえ1Gとかでも。

2009年6月1日月曜日

ミラバルカンにやっと慣れてきた。

ハンターランクが450を超えてから何を言ってるんだ、お前は。という感じですが、よーやくガンナーでミラボレアス(紅龍)、通称ミラバルカンに慣れてきました。
ずっとこれやるの嫌だったんですよねー。
魔眼目当てで必死にやってるのに結局眼壊せてなかったとかがっくりきますし。いんちきくさい隕石で即死とか……。

きんねこじゅうSPをいまさら作ったのでこれでペアで何回か行ってみたところだいぶ慣れることが出来ました。
まぁそんなこと今更言われなくても知ってるよ! とか思われそうですが、一応コツとしては、大体ミラバルカンの正面にいればいいです。

距離は咆哮が届かないギリギリぐらいがいいと思います。咆哮食らう距離だと倒れこみでやられることもあります。
正面にいると食らってしまう攻撃には、ブレスと滑空があるんですがどちらも、準備動作にかなりの隙がありますんで油断してなければ、モーションを確認してからよけるのは十分に可能です。

複数人いる場合は大体同じ位置にいるといい感じです。ばらけてると、攻撃が読みづらいですね。

ペアできんねこじゅうでやる場合、火事場でまず顔、羽の順に火炎弾で攻撃して破壊完了後は水平撃ち。火炎弾がなくなったら、麻痺、毒調合打ちで10分ぐらいで倒せました。

今週祖龍がくると思うので、今度はそれもやってみたいです。

特定のカテゴリの場合に表示を追加

ブログランキングへのリンクの類を特定のカテゴリの記事にだけ表示したかったんでテンプレートファイルをいじってみました。

プラグインとかで何かこーゆー用途のものがあるのかもしれませんが探すの面倒だったんでw

やってるのは、記事のカテゴリを特定して、そのカテゴリと親カテゴリの名称を取得して、キーワードに一致する場合に表示するという処理です。今回は「mhf」を親とするカテゴリの場合に出したかったので下記のようにしてみました。

<?php
$c = get_the_category();
$c = $c[0];
$parents = get_category_parents($c->cat_ID, false, ' ');
$result = ereg("mhf", $parents);
if($result){
?>

<div class="ranking">
<a href="http://game.blogmura.com/onlinegame/"><img src="http://game.blogmura.com/onlinegame/img/onlinegame88_31.gif" width="88" height="31" border="0" alt="にほんブログ村 ゲームブログ オンラインゲームへ" /></a>
←ランキング参加しています。よろしければクリックのご協力お願いします。
</div>
<?php
}
?>

ただ、このやり方だと、index.php, category.php, archive.phpとか記事が表示される箇所全部に手を加えないといけないんでそれがめんどくさいですね。