JAVA勉強日記

独学で勉強。日々進歩していくはず

12月« 2012年01月 /  12345678910111213141516171819202122232425262728293031»02月

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

サーバーマシンについて

PAWAGRAM.NETは自宅サーバーにて運営しています。
もう使わなくなったWindows XPマシンをサーバーマシンとして使っているのですが、このマシンがもう7年くらい使われている為に、最近頻繁に問題が発生しています。
毎日Windowsが再起動、もしくはフリーズ状態になっており、後者の場合は手動で起動させないといけないので、長時間サーバーが停止している可能性もあります。
原因は分かっていないのですが、大凡の見当は付いているので、週末に一度サーバーマシンを停止して、中を覗いてみます。その為、サーバーマシンが停止している間は、当サイトには繋がらない状態になります。場合によっては、一時的にメインPCをサーバーとして使いますが、Vistaということもあり上手く動くか分からない状態になっていますので、こればっかりは当日どうするか決めます。おそらく1時間程度はサーバーが停止することになるかと思います。

さて、今回はそのサーバーマシンに起こったエラーを紹介します。
数日前に、長時間のサーバー停止が起こっていました。サーバーマシンを見てみると、ブルースクリーンにてエラーが出ていました。英語でこのようなエラーが出ていました。
STOP: c0000218 Unknown Hard Error
Unknown Hard Error
Beginning dump of physical memory
さて、これを見ただけで原因が分かるほど精通している訳ではないので、ネットで検索してみました。注目箇所は一行目のc0000218 Unknown Hard Errorです。これで検索してみると、早速このエラーを取り扱っているページが見つかりました。

内容を読んでみると、「完全な解決策がない」「死のエラー」などの文字をみて諦めました。とりあえずデータの復旧をする為にも、一度ログインしなければならないのだけど、いかんせんWindowsが起動しない。その為、CDから起動できるLinuxであるKNOPPIXをCDに焼いて、初めてLinuxを触ってデータを取り出しました。
DSCF1848_R640.jpg
GUIで触れる為に、特に詰まることもなく、目的のデータ(サイト関連)を救出し、リカバリをかけました。

DSCF1849_R640.jpg
リカバリ中はお暇です。

システムリカバリが終わった後、今度はアプリケーションリカバリです。しかし、アプリケーションリカバリのDisc1が見事に行方不明に。んなばかな@@;
まぁ、このマシンはサーバーとしてしか使わないので、余計なものをインストールしなくて済むので、アプリケーションリカバリはすっ飛ばしました。

その後は、サーバーマシンとして使うことができるようにアパッチやらその他色々インストール&設定をしました。

一応サーバーとしては復活しましたが、その後も落ちたりしています。原因はおそらくメモリにありそうと予想しています。元々256MBのメモリを512MBに増設していますが、そのメモリ周辺に問題がありそうです。

その為、週末に一度メモリ周辺を抜いて色々試してみます。

パワポタ4コードメーカーDM・・・その3

本当に少しずつになっていますが、作成を進めています。
ここにきてエラーの連続で、それを潰してはまた別のエラーを見つけて・・・という繰り返しですが、少し進展がありましたので、現状報告をします。

まずコードメーカーを起動したSSです。
20091215a.jpg
下のエリアをテキストエリアからリストへと変更しました。
ちなみに色が付いていますが、これは気にしないで下さい。デザインが上手く出来ているか色を付けただけですので、最終的には色無しになります。

リストは2つあり、左のリストは編集するアレンジチーム番号になります。
そしてバイナリデータをロードした時のSSが↓になります。
20091215b.jpg
編集するアレンジチームを左のListで選択すると、右のListへ登録されている選手の名前を表示します。
当初は読み込んだバイナリデータの名前アドレスから、Listへ出力する名前を生成して反映していたのですが、アッチソンとウィリアムスを選択するとエラーが。どうやら、一部の選手には名前のアドレスに専用の数値があるらしく、そのデータを読み込んだときに、登録している文字データとの比較で一致するものがないということでエラーが吐き出されていました。
対策として、当初は選手IDをそのまま出力するようにしていました。が、これにも問題が。サクセスなど自分で作成した選手の場合、当然選手IDには存在していませんで、そういう選手を選択するとまたエラーが。ということで、選手IDがある選手は選手IDから名前を奪ってきて、それ以外は文字アドレスから名前を生成して出力というハイブリッド方式を採用しました。

そして、右のListから編集したい選手を選択すると上のエリアの基本能力タブなどに反映されるわけです。
20091215c.jpg
細部にチェックはしていませんが、大方一点を除いて問題なく動いてくれているようです。

その一点というのが、今の最大の難点です。
選手形態において、どういうデータが存在しているのかが良く分かりません。
0:通常選手→金本とか大半の選手はこれ
4:外国籍選手→阪神:林、巨人:ラミレスがこれ
8:新人王資格あり選手→ソフトバンクの摂津がこれだった
14:通常外国籍選手→大体の外国人がこれだった
という感じでいいのでしょうか?
外国籍関係が二つあるのは何でしょうか。全員の外国人をアレンジにぶち込んで調べるというのは面倒なんですが、数人の選手を調べてみたところ、阪神の林や巨人のラミレスは選手形態は4で設定してありました。
その他の外国人は、調べた範囲では14が設定してありました。当初はFA権資格あり外国人かと思いましたが、正直自信ありません。というか、0・4・8・14以外のデータもあるんでしょうか?

できればこれを読んでいる方のお知恵を拝借できればと思います。


話変わります。
自宅サーバーマシンが死にそうです。それに関して、次回の記事で書きます。

パワポタ4コードメーカーDM・・・その2

まず初めに。
ペナントモードではチームのアドレスやキャラのアドレスは変動するというのはご承知だと思います。
チーム順は采配可能チームを複数にした時のチーム選択画面の順序で問題ないと思いますが、キャラ順をどこで調べるのか悩んでいましたが、以下の方法でキャラの順序が分かりました。
記録室にあるチーム記録内の野手or投手ランキングでの選手の並び順がキャラ順序のようです。
しかしながら、試合をこなすことでソートされてしまいますので、ペナント初戦が始まる前に確認する必要がありますが。。。


ではコードメーカーについて。
前回の記事では中途半端に読み込んだデータを表示していましたが、とりあえず基本能力に関しての表示処理は完了したかと思います。
↓はバイナリデータを読み込んで反映させた直後。
20091203.jpg
色々出力がうまくいっているか確かめたくて、チームの一人目を涌井に変えました。
名前の「井」が意味不明になっている以外、追加時に書き換えた能力もちゃんと反映されていそうです。変化球・オリジナル変化球関係も一応問題ないはず。。。
ていうか、なぜ「井」が記号になっているのか。。。
安藤のときはちゃんと表示したのにね。。

あとは、特殊能力のアドレスでの加算タイプをどうやって分解して反映させるか。。。ですな。

これが終われば1キャラ完成になるので、あとは別キャラも編集できるように処理を流用して作っていくだけでです。
今のところ、特殊能力を除けば詰まりそうなところは見当たりませんが、それはどんどん進行していくことで分かることなので、今は特殊能力処理に力を注ぎたいと思います。

まだまだ完成にはかかりそうですよ〜。

パワポタ4コードメーカーDM・・・その1

今回からタイトルをコードメーカーにします。
前回の状態から少し弄っています。変更箇所も少し。

まずは基本のウィンドウから。
実行ファイルを実行すると、以下のウィンドウが現れます。
20091130a.jpg
前回の記事にてコンボボックスをボタンに変更すると書きましたが、その後色々考えた結果、やはりコンボボックスを使うことにしました。理由は後々分かると思いますので、ここでは省略します。
基本的なコンポーネントはVer2の流用なので、今後の状況によっては追加削除があるかもしれませんが、今はこの形になります。

続きましてファイルロードです。
これは以前の記事にて少し触れていますが、こんな感じです。
20091130b.jpg
ツールバーの一番左のボタンがファイルロードボタンになります。ここで現れたファイルチューザーにて、バイナリファイルを読み込みます。24MBものファイルをバイト単位で読み込みますので、PCによっては結構なロード時間があるかもしれません。

ここでファイルをロードしたら、現状の処理としてはそのままウィンドウの中央の能力画面に反映させます。
こんな感じ。
20091130c.jpg
最終的には左ボタンにて編集モードを選択してから画面に表示させるのですが、ここでは動作確認がてらロード終了→即反映という処理を行っています。
現在は1キャラの全てのデータの反映処理は書いていませんので中途半端になっていますが、ある程度の動作は分かるかと思います。

今後はとりあえず悩みの種となっている「特殊能力などの加算型のアドレス」を、どう分解して反映させるかが問題です。2年くらい前に、この分解方法を考えたのですが、既に忘れてしまってまた最初から考えないとです。どこかサイトで解説しているところがあれば楽なので、まずはネットを徘徊して調べてみますが。。。

一人のキャラがうまくいけば、その後のキャラはそれを流用して処理を作ることができるはずなので、簡単にできると思います。次の更新は1キャラが完全に出来たら・・・でしょうか。

とりあえず、こちらをメインに開発をしていきたいと思います。

バイナリ処理の続き

バイナリデータの取得について何とか希望通りに動いてくれたか?
20091129.jpg
下のエリアに部分取得したデータを表示させてみた。なぜチョロっとはみ出しているのか謎だけど、今重要なのはデータが取得できたかどうかということなので、そこは無視しています。
このテキストエリアを見る限り、ちゃんとデータの取得が出来ていました。

ということで、今度はそれをデータとして繁栄させなきゃいけないので、それ用のタブを設置。中のコンポーネントはVer1を移植しただけなので、実際には大きく変更する予定です。実際の処理の流れは、バイナリデータロード→取得したデータをタブエリアに反映という流れになりますが、まだそこは書いていません。

現在はVer1の移植になっていますので、各能力の変更にはプルダウンを使用していますが、実際には全部ボタンになる予定です。ボタンを押して出てきたダイアログ内で数値を変更していき、出力用のコードを作成する予定になっております。特殊能力の処理をどうするかはまだ未定ですが、とりあえず基本能力を弄ることができるようになってから考えます。

左のボタンはモード切り替えです。ツールバーにプルダウンでの選択メニューを設置するのが一番シンプルなんですが、見た目を鮮やかにしたいなぁと思った遊び心です。


まぁ、一番の問題はやはり24MBのデータを読み込むのに、パワーの弱いPCだとどういう動きになるか・・・ということですがね。自分のPCはCore2Duo3.0GHzのメモリ4GBなんですが、それでも2秒くらいのフリーズがあります。フリーズというか読み込み時間ね。実際に完成してみたら、サーバーマシンでも動かしてみたいんだけど、サーバーマシンにはJAVA VMをインストールしていないので、誰かに人柱になってもらうか@w@なんてあくどいことを考えています。まぁ、それは出来てから考えればいいかな。