SVX日記

2004|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|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|

2005-01-07(Fri) SVXで帰省

  今日は朝からシチズンに腕時計の電池交換&修理を依頼するため、郵便局から簡易書留としてナビホークを送る。5万円を上限とする保険つきで金550円也。送ってしまうと左腕が妙に空虚だ……サミシィ。久々に駅でカラアゲソバを食うがどーにも左腕が気になってしかたない。一時期あれだけ腕時計がキライだったのに、一般人が携帯の普及により腕時計をしなくなる頃合にアエて腕時計をしだすとはマコトにオレらしい。ほげげ。

  仕事を終えてソソクサと家に戻り、SVXで名古屋に向かう。年の瀬に帰らなかったので、一週間ズラしての帰省である。ガスを満タンにして19時30分に出発。いつもどおり湾岸からレインボーブリッジを抜けて東名へ。今回はミヤゲを買うため海老名SAに寄る。

  画像の説明

  混雑を避けるという意味からすると一週間ズラして夜を選んだのはビンゴで、ほとんど渋滞ナシで70〜90参る巡航。いつもは高速走行時に若干出るバイブレーションが今日はほとんど出ずにかなり快適。あっという間に岡崎を抜け、新しくできたばかりの伊勢湾岸自動車道を経由、豊明で下りて実家についたのは0時15分であった。走行距離400kmチョイであるから平均時速70km/h。ラクラクですな。

高速柏→(常磐)→三郷\500
三郷→(首都高)→用賀\700
用賀→(東名)→豊明\7,000
備考500mile a day. ならぬ 250mile a night.

2007-01-07(Sun) 一日四千名様限定提供用サーバ

  さて、念願の省電力、省スペースのRHEL相当サーバが立ち上がった。しかも面白みのあるデュアル構成。さーて、なにから始めようかな。まずは、名前解決ができないと構築作業するにもうっとおしいからDNSの立ち上げからかな。

  そういえば、WRAPはshutdown時にリセットがかからない。つまりアダプタジャックを抜き差ししないと再起動しない。こいつはどうにかしないとカッコ悪い。そうそう、WRAPのマニュアルにリセットをかけるアセンブラコードが載ってたな。ちょいちょい、と。

  <コード、結果>

  実行したがエラーが出てリセットがかからない……そりゃそうか。rootといえど、ユーザモードからI/Oポートに書き込めるわきゃないわな。モジュールにすればいいだろう……ちょいちょい、と。

  <コード、結果>

  ん? コンパイルできるけど、modprobeできない……あ、そか。2.6からモジュールに関する作法が変わっているのか。そういえば、2.6カーネルのモジュールは、xxx.oでなく、xxx.koだった気がするわい。関連ドキュメントは……/usr/src/linux/Documentation/kbuild/modules.txtに説明がある。Makefileの作り方にコツがあるみたいだな……ちょいちょい、と。

  <コード、結果>

  ダメ。どうも、実行中のカーネルと、参照しているカーネルのソースツリーの内容が違うからのようだ。マジックコードの中のアーキテクチャが合わない。そういえばいま使ってるカーネルは、ノートPCで再コンパイルしたものだが、空きディスク容量の見積もりが甘くて、カーネルとモジュールは作れたものの、ソースのrpmの書き出し中にディスクフル起こして作成に失敗しちゃったんで手元にないんだよな。

  カーネルっていえば縁起物だし、WRAP自らに再コンパイルさせてみるか。よっこらしょっと……こりゃ素晴らしく遅いな……(10時間後)……やっと終わったか……と、思ったら、モジュールの仕上げのあたりで失敗してて、カーネルすらできてない……なんで? ん? 名前解決ができなくなってるぞ!? わ!! メモリ不足を起こしてたのか!?

  <システムログ>

  OOMKilerにBuildプロセスとnamedが殺されてる……nfsroot環境のマシンだと、swapの確保が一筋縄ではいかないんだよなぁ……nbdを試さなきゃかなぁ。でも、試そうにも玄箱に領域がないんだよな。ペンディング。

  なんだか、環境の構築早々、いきなりコアなところに飛び込んでしまった。じゃ、次は軽めに玄箱でサウンドモジュールを使えるようにしてみようかな。先日、1980円で買ってきた「響音3」という製品だ。USBメモリほどの大きさで、音声の「入」出力ができるすぐれもの。この手の製品で「入力」があるのはうれしい。玄箱にラジオの録音をやらせることができるからだ。ジュークボックス化するのにも役立つしね。

  ……と、思ったら、オイラがココで拾ってきたカーネルには、サウンドコアモジュールが添付されてないじゃないか……また、カーネルの再コンパイルかよッ!! できれば玄箱の側もソースrpmからコンパイルしたいところだが……パッチを理解しつついじりだすとなると、また一週間コースなので、こっちは素直にkernel.orgのカーネルに、素直にパッチを当てて、サウンド関連のコンフィグをして再コンパイルする。

Device Drivers  --->
 Sound  --->
  <M> Sound card support
 USB support  --->
  <M>   USB Audio support

  こんなもんかな。玄箱用パッチはRedhatのソースrpmと違って、余計なモジュールをほとんどコンパイルしないコンフィグなので、コンパイルは3時間くらい……遅いことに違いないけども。さて、終わったけど再起動は面倒だなぁ……設定だけして、次の何かの再起動タイミングに合わせて作業を進めよっかな。ペンディング。

  さて、軽めの作業をするつもりだったのに、いつのまにかまたもやコアな作業に足を踏み入れているではないか。こんどこそ、軽めにtdiaryの移行作業をしよう。そう、この「SVX日記」のホストサーバを移行してみるのだ。ちなみに、しばらくは現用サーバのApacheをリバースプロキシに、リクエストを後ろに回して運用するつもりなので、これは試行でもなんでもなく本格的な移行作業の一環である。

  tdiaryのバージョンが上がっていたのと、絵(写真)日記のためにオイラが使っていたのが添付されていた純正のimageプラグインでなく、image_xxだったことを再発見してちょっとつっかかったりしたが、無事、移行成功。Operaからページを開く……

  ……ん、んんんッ!? ぅおっ、遅いぃッ!!

  ……フロントページを表示するだけで20秒チョイもかかってしまう。これじゃ、使い物にならん……1分に3人弱しか閲覧できないとすれば、1日4000名しか閲覧できないことになってしまう。そりゃ、266MHzだから多少は遅いことを覚悟していたが、これほどまでとは……topで見ても、ほとんどがRubyのCPU負荷であり、改善の余地はない……mod_rubyとかでもダメだろうな、メモリ面でもキツいし……動的ページでなくしてしまえば実用レベルは保てるかもしれないが、それはちょっと大改造になるだろうからやりたくない。

  ほんじゃ、WRAPでなく玄箱にやらせてみようか……よいしょっと……時間は半減したものの10秒を下らない。これでも移行するにはキビしすぎるなぁ……Rubyって重いのねぇ。久々に実感したよ。現サーバはPenIIIの1GHzだけど、アクセスがある度にファンがウナってたのは伊達じゃなかったんだねぇ。

  ちゅーわけで、早々と移行は頓挫してしまったが……かくなる上は……ぽちっと。


2011-01-07(Fri) サヨナラを決めた朝

  過去、2回ほど車検でお世話になっている、K-STAFFさんに行ってオリジナルの二層式ラジエータの現物を見せてもらった。これは、素人でもポン付けできるモノなのか、ディーラーに依頼した方がいいのか、それとも、ディーラーでも取り付けは無理だから、ここまで車を持ってこなければならないのか、実際のトコロはどうなんですかねぇ……なんて泣きそうになるのをコラえながら尋ねている……

  ……という夢を見た。

  明け方、4時くらいに目が覚めて、そのままSVXのことばかり考えて寝られやしない。どうにも、スバルの対応に納得がいかなすぎる。こんなに非協力的なのってアリなのか。こんな環境で、これからも維持していくことが可能なのか。壊れる度に、1ヶ月も車に乗れない可能性があるなんて、想像を絶する。

  実際のところ、車通勤していないオイラの場合、SVX出動の9割以上がカミさんである。だが、所有する車がSVXであることにコダわっているのは、オイラの方だ。だからこそ、高額な車検や、突然の修理に備えて、毎月、小遣いの中から1万円を積み立てているくらいだ。

  だけど、限界かもしれない。車が使えない状況が続いていることで、カゼをひいているカミさんが、バスや歩きで用事を済まさなくてはならなくなっている。そのことに、どう顔向けしろってんだ。これが一番やりきれない。

  ……もう、SVXを降りるかな……。仮に今回は修理したとしても、次に壊れたら、修理してやる愛情が残っているかどうか自信がない。

  そういえば、近くにホンダがあったな。ド中古のシビックのセダンでも、適当に買ってしまおうか。そして、車に対してコダわりを持つなどという主義には、終止符を打ってしまうのも気が楽かもしれない。

  朝メシを食いながら、ボソっと、カミさんに「あの車、終わりにするか」と言ったら、エラく驚かれて、心配されてしまった。

  でも、なんでこんな気持ちになってんだろう? 別にSVXが悪いワケじゃない。壊れるのは、ある程度、覚悟の上で付き合ってるつもりだ。でなきゃ、もうすぐ17年にもなろう車に乗り続けない。なのに、なんでこんな気持ちになってんだろう?

  ひょっとすると、結婚しようと決めた彼女の親が、絶対に受け入れられないようなタイプだったりしたら、こんな感じの気持ちになるだろうか……。

  こんな終わり方になるなんて、思いもしなかった。2回とも大金かけたけど、そのぶんK-STAFFさんに誠心誠意整備してもらったのだと思うと、なんだか申し訳なくなってくる。

  無念すぎる。


2016-01-07(Thu) 石取りゲームのAIを作ってみる

  ひょんなことから、いわゆる「AI」を作ってみたくなった。

  で、とりあえず、習作として「石取りゲーム」を作ってみることにした。ルールは簡単で、まとめて置いてある数十個の石ころから「1~3個の石を順に取り合い、最後の1個を取った(取らされた)ら負け」というルールである。

  単純なルールなので、容易に必勝法に思い至るが、そのロジックをプログラミングしても発展性がない。ここは「ミニマックス法」を採用するべき状況なのである。というわけで、秘蔵のインデックスを検索し「Oh!X1990年4月号」を引っ張り出し、故祝一平氏の連載「C調言語講座PRO-68K」から「第21回 思考よ~ん(その4)」の記事を参照するのであった。ホンマOh!Xは一生もんでっせ。

  当記事では「ミニマックス法」よりは「αβの枝刈り」の説明を主としつつも、成果物(コード)には実装しない、というある意味で潔い(?)内容になっているが、内容的には十分に参考になるものだ。とりあえず、記事を参考に「ミニマックス法」をRubyで実装してみた。「αβの枝刈り」は、まぁ、余裕があったらやるということで。

  いざ対戦してみると、ゲームのルールがシンプルなだけに、ゲーム開始時の石数が十数個であれば、容易に読み切れてしまうことがわかった。「読み切り」とは、勝負の完了に至るすべてのパターンの把握をいう。それには、えらく複雑な処理が必要かと言えばさほどでもなく、評価関数に至ってはルールをそのまま表した、以下のコードだけ。

149     def evaluate(game)
150         point = 50                                              # 標準の評価点
151         game.stones == 1 and point = 99999                      # 手番後に石の残りを 1 にしたら勝ち
152         point
153     end

  突き詰めれば、この条件だけでコンピュータが勝利に向かって「思考」らしきことをするようになるってんだから、面白いったらない。

  画像の説明

  コードを置いておく。