Diary?::2007-11

2007-11-01
Thu

(21:44)

今朝も自分の心がバキバキと折れる音を存分に聞いて、その後必死にどうにか折れた心に応急手当てを施し、ゾンビのような面持ちで 1 時間弱遅刻して出社。もっとも、体調不良とか精神的にアレという理由で前半休 or なし崩し的に休みが頻発しているので、全然問題なかったりするんだが。いや問題あるけど。プロジェクトに。

今のプロジェクトは人によって何がキツいのかってのは違っていて、例えば仕事の難易度が本人のスキルを越えちゃってる人もいれば、作業量の問題を抱えている人もいる。かく言う俺は仕事の内容があまりにもバカらしくてウンザリしてる。最近発表されたテスト計画書では、ソースコード何行あたりテスト項目何件で障害検出率何件という目標値が書かれていてさらにゲンナリ。あのなぁ、 21 世紀にもなってソフトウェアを目方で計るんじゃねえよ。

あと前からイラついてるのはやっぱり足を引っ張るようなメンバーの存在で、なんつーかお前らこれぐらい知っとけということを知らなかったりするのはどうなんだろ。確かに今までの仕事とは勝手が違うだろうけど、別に技術的にはたいして難しいことやってないというかやらせてないんだけど。

結局のところ今の会社の教育ってのは基礎力の付いてない状態で応用的なことを作業手順だけ丸覚えさせて、それで現場が変わる度にそれを繰り返しているだけだ。数学でいうと、数学的な考え方とかの欠如した状態で公式の丸暗記をさせてるようなものだ。プログラミングその物とかコンピュータアーキテクチャ、情報数学の基礎がごっそりと抜けている状態で、そこでいきなり研修期間中に Java やらせてそっからいきなりフレームワーク開発だろ。前から書いているけど、フレームワークってのはスキルの低い奴でもソフトウェアを作れる仕組みでは決してないんだよ。

2007-11-02
Fri

(23:23)

「ええかげんにせえや Python さん」の時間がやって参りました。本日のお題は「モジュールをスクリプトとして実行した時のインポートエラー」です。まったくもってここの読者の 99% ぐらいには関係なさそうですが、まあそんなことを気にしてはいけません。あ、ちなみに Python2.5 が対象の話です。

まず、以下のようなファイルを用意し、 Python のライブラリのサーチパスの通ったところに配置してください。

if __name__ == '__main__':
  print 'foo'

実に投げやりですね。ファイル名はとりあえず foo.py とでもしておきましょうか。それでは、コマンドラインに python -m foo と打ち込んでください。画面に "foo" と表示されるはずです。このように、 Python にはモジュールをあたかも実行スクリプトのように使える機能があり、単純なフロントエンドを作る程度ならこれで十分な事もあります (逆にスクリプトがライブラリとしても使えることがわかったときにも有用)。

さてここからが本題。今度は以下のようなファイルの構成でパッケージを作ってみましょう。

foo/
   __init__.py
   bar.py

各ファイルの中身は次のようにしておきます。

#__init__.py
from bar import *
if __name__ == '__main__':
  bar()
  
#bar.py
def bar():
  print 'bar'

じゃあこれも実行してみましょうか。 python -m foo と打ち込んで、画面には……

Traceback (most recent call last):
  File "/usr/lib/python2.5/runpy.py", line 95, in run_module
    filename, loader, alter_sys)
  File "/usr/lib/python2.5/runpy.py", line 52, in _run_module_code
    mod_name, mod_fname, mod_loader)
  File "/usr/lib/python2.5/runpy.py", line 32, in _run_code
    exec code in run_globals
  File "/path/to/foo/__init__.py", line 1, in <module>
    from bar import bar
ImportError: No module named bar

ハァ!? お前は一体何を言っているんだ。テメエ、そこに bar.py あるじゃねえか。どこに目ぇ付けてんだよ、ケツか? これじゃ実行できねえじゃねええかああああ!!

えーと、これがどういうことかっつーとだな、簡単に書けば普通に foo パッケージをモジュールとして使う場合には /path/to/foo 以下のファイルが見える状態で実行されるけど、スクリプトとして使う場合にはカレントディレクトリに __init__.py をコピーしてきてそれを実行した場合と同じ状態になるってことだ。詳細は runpy.py, pkgutil.py あたりのソース読むしかないんだけど、実際にやってることはモジュール名からファイル名を探り当てて (モジュール名とファイル/ディレクトリ名が一致する仕様だから出来る技)、それを読み込んでオンデマンドで compile して exec という代物だ。なので、モジュールとして使っていた場合は __init__.py から見えていた bar.py は実行時には見えなくなっているわけだ。ちなみに /path/to/foo に移動して実行すると、何の問題もなく実行できる。これは実行時にはカレントディレクトリに bar.py があるので、そこからインポートしているってわけ。

このままだとパッケージをスクリプトとして使えなくなってしまうので、次のように __init__.py の記述を変えよう。

from foo.bar import *
if __name__ == '__main__':
  import sys
  sys.exit(main())

考えてみれば当たり前だけど、絶対パスで指定すれば問題は起こらんよな。

それにしても pkgutil や imp はドキュメントが古いままなのか間違ってるのか、本家にあるライブラリリファレンスが当てにならない (特に pkgutil が酷い)。まあ、滅多に使わないモジュールではあるんだけどよ。

追記: 最初は実行時のみ絶対パス指定してたけど (サーチパスの順序によってはおかしなことになりそうだったから)、よくよく考えたらそんなこたぁまず起こらねえよな。なので今の形式に修正。

2007-11-03
Sat

(02:49)

本日の Firefox の不具合: 最小フォントサイズ以下のサイズが指定された場合、文字が表示されなくなるケースがある。

どうも最小フォントサイズと通常のフォントサイズを同じにしておくとおかしくいなるっぽい。俺はやたら大きい/小さいフォントで表示されるとムカつくので常に 12px で固定していたのだけど、それが裏目に出たか。

(18:32)

昨日は俺のいる方でない事業部の頭達と飲んできたんだけど (つっても俺は飲めないんだけどな)、話によるとどうも元請けの企業もかなりの割合で被害者で、それはやはりユーザ側がアレな連中だかららしい。どういう風にアレかというと

  • プロジェクトに遅れが出ていると言うとテーブルをバンバン叩いて怒鳴り散らす
  • それどころか灰皿を投げつけてくる
  • さらには「開発者を監禁して作業させろ」というメールが届く
  • プロジェクトが失敗しても、自分たちの責任じゃなければ知ったことではない

という文化をもったユーザ様で、正直に言ってそういう輩は本当に全員出来るだけ無惨に死ねばいいと思っているんだけど、まあ流石に今の会社も懲りたようだし二度とその業界には近付かないだろうな。

(19:49)

晩ご飯を買いに行ってこんなもんを買ってくる俺は相当頭が弱いらしい。

ロールちゃんの方はあまりにラブリーだったので思わず買ってしまった。

大魔王ジョロキアは暴君ハバネロが辛いけどそれなりに美味しかったので買ってみたのだけど、うん、これは二度と買わない。

2007-11-04
Sun

(12:59)

オープンソースソフトウェアにナショナリズムを持ち込む野郎は信用できないね。というかまあ、ナショナリズムを声高に叫んでる連中はまったく信用ならんのだけど。

(16:33)

Ninja Magic の Web サイト、日本語版が出来てるじゃん。スゲー直訳というか機械翻訳にかけたような日本語だけど、これは多分わざとやってるね。だって連中の歌詞、 "When Lightning Strikes Once, The Ninja Strikes Twice" とかそんなんばっかりだもん。

ところで 2007 年以降の音源、ヴォーカルの Kawasake にかなりの進歩が見られるね。いや、まだ下手な部類だとは思うんだけど、とりあえずろれつがそれなりにまわって、ヘタれた感じが大分減ったのは大きい。もっとも前が酷かったので相対的にマシに聴こえるだけかもしれないけど。曲はありがちなスピードメタルっぽいものからはとっくに脱却していて、なんか 80 年代っぽい。 LA 系という感じだ。あの衝撃の迷曲である "The Way Of Life" の頃には考えられなかった曲調で、これは普通にヘヴィメタル/ハードロックとしてありだ。ただなんというか、ネタっぽさが曲からは薄れたのが残念っちゃ残念。

2007-11-05
Mon

(23:01)

仕事は忙しいが通勤電車でゲームは出来るので「ゼルダの伝説 夢幻の砂時計」を購入。殆どの操作をタッチペンで行うというゲームなのだけど、かなりアバウトな操作でもどうにかなる調整がされているっぽいのでその部分での引っかかりはゼロ。

もっとも俺はそういうわかり易いアピールポイントよりも、むしろ「新しいアイテムと仕掛けで謎解き -> その経験でボスを撃破」という実に正しいアクションゲームっぷりに感心してる。

2007-11-06
Tue

(23:36)

残業や休日出勤をしてスケジュール通りに進めることの何が問題かというと、明らかに無茶なスケジュールでも綻びが表面化しなければ無問題と思われてしまうことだ。おそらく、ユーザ側の上層部は今現在開発者が置かれている状態をまったく認識していない (そして多分しようとしてない) だろう。

これは要するに「止まれ壊れたダンプカー」と同じ状態だ。実際今までどうにか取り繕ってきた部分がだんだん取り繕えなくなってきたら、まあなんというか当然のようにキッツイことをこちらの責任者が言われてるんだけど、実際に今までどれだけの時間外労働が発生していたかをきちんと評価していればそういうことにはならんよな。

この状態を改善するには、ユーザ相手に限った話じゃないけど、とにかく本来の業務時間をオーバーした部分は実質的には遅延だとして評価すること。これは今のプロジェクトではマイルストーンとかの管理表では問題に気がつき難い部分でもあり (一応作業時間の入力はあるけど誰もそれは見てないし評価してないと断言できる。だってそれをレポートに出力するオプションが見当たらないもん)、そもそも長時間の残業や休日出勤が当たり前の雰囲気が漂っている。が、これは明らかに異常な事態なんだから、元請けもユーザも他の下請けももっとしっかり認識するべきだよな。

2007-11-07
Wed

(23:51)

二つの作業の〆切が同じ日になるという大変な日に 2 時間ほど遅刻 (疲れてたせいか超寝坊) という相変わらずの数え役満っぷりをやらかす自分が心の底から嫌。それでもまあ、間に合わせたけどな。

2007-11-08
Thu

(01:06)

ジーパンの腿の辺りに違和感を感じたので脱いでちょっと裏返してみたら、クモらしき謎のクリーチャーの死骸が!!

(23:52)

今日は素で起きたのが 11:30 という天衣無縫っぷりだったのだがどうにか午後から出社。というか疲れたんだって、ここ数日のあれやそれやで。まあ、他の面子も「お前は今日は休みだと思ってた」とか言ってたし。それでも今日は今日で二つばっかり絶対にやっとかないとマズいものがあったんで、どのみち休むなんて出来るはずもなかったのだが。

それにしてもあれだ、今の現場はどう考えてもスキルの足りてない奴が配属されていて、それの面倒見てる人達がキレそうになっていたりするのだが、連中にはせめて足手まといにならない程度にはなろうという考えはないのかねえ。もっとも、「他人から言われないと勉強しない」「というかそもそも情報技術について学ぶのを勉強・努力と思ってる」というのは俺の中では終わってる人なんだけど。

2007-11-09
Fri

(00:26)

そういや今週は母校の大学祭だ。一応、ゼミの OB 会に呼ばれているので行ってくるけど、なんかまた壮絶な「俺たちはどれだけバカらしい仕事をしているか比べ」から「転職候補探し」になりそうだ。他の連中、結構な割合で携帯電話系の開発に入ってるからなあ。そういう意味じゃ俺はまだまだ楽だ。いや、仕事の具体的な内容のバカらしさって点ではブッチギリかもしれないが。

(11:09)

朝起きたら体がだるくて仕方がなかったので、今日は大事を取ることにした。無理して行ってもこんなコンディションで出来ることはたかが知れてる (それどころか変なミスをするリスクが大きい) からな、休んでおいた方がいいだろう。他の連中にもいえることだけど、無理をしすぎると長期的には大きなマイナスにしかならないってことはしっかりと認識するべきだな。ラストスパートをかけてるってんなら話はわかるけど、残念なことにまだまだこのプロジェクトは終わらない。少なくとも、年内から来年の三月ぐらいまでは俺のチームは継続的に負荷のかかる状態になっているはずだ。無理して体調崩して肝心な時にいませんってのは最低なので、休めるときに休んどけ。

2007-11-10
Sat

(07:29)

毎年この時期は天候が不安定なんだけど、いい加減俺の母校は大学祭の日程をずらそうとか思わないのかなあ。

2007-11-11
Sun

(11:17)

os.environ に対して pop() をしても環境変数が残りっ放しという問題らしい。手元の Python 2.5 で試したら、 del で値を削除したら普通に環境変数からも消えてたんだけど、これは pop() と del では明らかにやってることが違うってことだよな。

(14:18)

まーた実家からゴミが送られてきた。「お前らの送ってくる物は俺の役には一切立たないし、そもそもお前らから何かが送られてくると鬱になるから俺には一切関わるな」と散々言ってるにもかかわらず、またこういうことをするか。これは本気でブタ箱送りを覚悟して実力行使する必要があるかもしれん。これだから宗教にはまってる人間はダメだ。

宗教にはまっている人間にかなり共通してみられるパターンというのは、自分の善意が常に通じるという思い込みである (そしてそれはマルチ商法と同じである。マルチに騙されている人間は本当に相手も自分も儲かると思ってやっている)。実際には善意の行動が相手の迷惑になるケースというのは非常に多く、例えば地震などの災害発生時に、現地にボランティアと称して足手まといの素人連中が押し寄せたり、デマに踊らされて支援物資のつもりで無用の長物を送りつけるとかがそうだ。そういった人間全員が特定の宗教にはまっているとは言わないが、宗教の本質が「ありえないことを信じることでの一致団結」にあるとすれば、連中は「善意が常に相手に通じる」という「ありえないこと」を信じているので、ある意味宗教団体と言ってもいいかもしれない。「善意のバカ教団」とでも呼んでみようか。

ついでに書いとくと、 WWW という媒体は「善意のバカ教団」をさらに肥大化させる側面もあるように思える。現状では「マスコミは悪」だからそれに対して立ち向かうネットユーザは善というこれまた「ありえない」ことを無邪気に信じていそうな面々が洒落にならないほど多く見えるが、これは俺の気のせいか? 証拠がないので確信は持てないが、見込みとしては正しそうな気がする。ちなみに前述のようなネットユーザ (主に 2ch とかでマスコミを叩いてるようなの) はまったくもって善人ではないというか、そもそもメディア同士の対立に善も悪もないので根本からこれは間違ってる。結局これは「誰がどの方向にバイアスをかけようとしてるか問題」であり、自分たちが有利なようにバイアスをかけるのはある意味で当然の事である。そして「どうあがいてもバイアスはかかる」という事実を認識してない連中がこれまた多そうというのが、恐らくは最大の問題である (そして俺はこれは絶対に解決できないんじゃないか、という予想を立てている)。まあもっとも、真っ向から対立する両陣営が存在するというのはそれはそれでフェアなことだといえるけど。

(23:24)

前にも書いた気がするけど、俺は結構ギャグ漫画の類は売っ払うことが多いんだけど、一応手元に残る奴もある。で、その手元に残るギャグ漫画の共通項が「生活感のあるギャグ (というかバカ話)」なんだよな。具体的な例をあげると、「天体戦士サンレッド」でヒーローであるサンレッドからの電話に悪の組織サイドから「サーターアンダーギー作ってるんで後にしてもらえますか」って返事があるところとかがもの凄く好きだ。

2007-11-12
Mon

(23:42)

今の開発体制の根本的に (検閲削除) なところは、客に納品してしまったモジュールの修正が事実上製造フェーズでは認められていないことである。おかげで既存のクラスを少し修正するだけで大幅にコードのコピペが無くなる部分があるというのに、それが出来なくなってしまっている。あんたら、こんな品質のコードでいいの?

多分、相手の言い分は「そんなこと設計段階で気がつけ」なんだろうけど、そんなことできるわけねーじゃん。だって互いに強く関連するモジュールが人的にも時間的にも分断されてるし、そして今回のモジュールの担当者はどう贔屓目に見ても (検閲削除) だし。

ところで思いついてしまったので話の流れをぶった斬って書いてしまうが、プログラミングの習得に 10 年かかるとしたら (俺はこれはかなり正しいと思ってる)、やはり素人を雇うのは完全に間違ってる。何もわからん新卒を雇った場合、プログラミングを習得する頃には 30 台になっている。仮に 23 で雇ったとして、マスターする頃には 33 になっている。が、大学で 4 年間きちんと学んだ人間であれば、そこからさらに 6 年 = 29 ぐらいでマスターになるという計算になる。十代前半から趣味でプログラムを組んでるようなタイプは、多分高卒で雇ったとしてもかなりの戦力になれる。 13 でプログラミングを始めて 19 で雇ったとすれば、 23 でマスターである。仮にこれらのプログラマが同じ働きをするとして、

  • 完全に素人で入ってきた 33 才 (勤続 10 年)
  • 大学で学んできた 28 才 (勤続 6 年)
  • 十代からの叩き上げ 23 才 (勤続 4 年)

さて、お得なのはどれかな?

これはバカみたいというかバカその物といってもいいぐらい単純化した (例えばプログラミング以外の能力を無視している、学習環境なども考慮してない) 図式なので額面通りには受け取れない代物だけど、それでもいくばくかの真実は含まれているはずだ。特に日本の場合は未だに年功序列 & 学歴で給与が決まっていて、そしてさらにプログラマをどんどんマネジメント方面に転身させようという風潮を考えると、どうもやってることが矛盾してるよな。要するに、コストパフォーマンスが悪すぎるのである。慈善事業でやってるってんなら別にまったく悪いことではないのだけど、営利企業としてはどうも間違ってると言わざるを得ないな。もっとも、業務用 Web アプリには三流程度でも充分だと思っていて、それでこういう雇用をしているのかもしれないし、実際酷いプログラマというかプログラマもどきでもどうにかなるのである。ただし、出来る人がある程度犠牲になって尻拭いをするという条件付きだが。

ちなみにプログラミングの習得に 10 年かかるというのは本人がプログラミングに対してマジになっていることが絶対的な前提条件であり、マジになってない人間を何十年間鍛えたって無駄である。

2007-11-13
Tue

(23:12)

最近体の調子が低調なままで、先週よりかは幾分マシだけどやっぱり辛いことには変わりない。というか、これは精神的な物の影響が大きそうだ。ぶっちゃけ仕事行きたくねぇ。

2007-11-14
Wed

(22:05)

今月の Young Guitar は別に買わなくてもいいかなー、別に俺そこまで A7X 好きじゃないしなと思いつつも買ってしまったわけだが、結果としては買って正解。いや、メインであろう Synyster Gates じゃなくて、菰口雄矢の方が。まだ 19 才らしいんだけど、この上手さは本当に凄い。メタル外からもこういう凄腕がポコッと紹介されるから油断ならんよ。

2007-11-15
Thu

(00:35)

俺はよくプログラムの設計のタコさ加減を罵る言い回しとして「木造アパートの上にサンダーバード基地が作られてる」というのを使うんだけど、これは俺のオリジナルではなく「アセンブラを知らない子供たち」からの拝借である。第1章の終わりの方に元ネタが出てくる。あと、出来ねえ野郎の成果はマイナスで計上しろっていうのはここからの完全なイタダキ。

今ちょっと読み返してみてちょっと気に止まったのは、第2章の膨大なソースのホワイトボックステストを依頼されたところ。新入りにいきなりホライトボックステストは厳しかろうと思ったら、それはあくまでも OJT みたいなもんで、実際には他に担当者がいてそっちできちんとやるという話。まったくの素人をちょいと研修で Java だの C だのをかじらせて、それで現場に丸投げして本番の仕事を容赦なくやらせる今の現場との落差に眩暈がするようだ (そもそも、どんなに経験があったって初めての現場ではルーキーだろうに)。しかもこれ、 8 年以上前の話だからね。

結局この業界は進歩してないんじゃないかというか、少なくとも今の職場はそうだな。

(23:02)

久しぶりに職場で激怒した。同期のクソバカタレの納品したコードに今になってもの凄い論外なミスが見つかり、あやうく俺のコードがテスト不能に陥る所だった。まあ、最初はその部分の担当は俺で、結構オーバーワーク気味だったからそいつに回されたんだけど、やっぱ俺がやった方がよかったか。フレームワークをソースレベルで知ってないと不味い部分だったからな、そこの所は。

もっとも、フレームワーク云々を抜きに何かわかんないところ、仕様が曖昧なところを誰にも聞かなかった、というか本来の担当の俺に機器に来なかったってのが大問題で、俺はてっきり順調に進んでいるものだとばかり思っていたんだよなあ。いや、本人としては俺様ワールドで順調にやっていたのかもしれないが、それじゃ困るんだって。

2007-11-16
Fri

(00:27)

結局、殆ど通勤電車の中だけで「ゼルダの伝説 夢幻の砂時計」をクリア。ほぼタッチペンだけの操作だけにもかかわらず、不安定な電車の中でもプレイできたのは結構驚きだ。まあ、タッチペンでそんな精密に操作できるわけないし、それを踏まえての調整がされたたってことかな。

プレイ時間は多分 15 時間前後。まあアクションゲームでこんだけ遊べりゃ上等か。どーでもいいけど、俺が今までの生涯で一番長く遊んだアクションゲームは多分スーパーマリオブラザーズ3。それこそゲロが出るほど遊んだ記憶がある。半分ぐらいの時間をバトルゲームに費やした気がするけど。対戦格闘ならストリートファイター3 (3rd Strike ね、当然) かな。これは未だにゲーセンに立ち寄ることがあると遊んでる。

2007-11-17
Sat

(23:03)

VOX の amPlug を試しに買ってみた。最初は Metal にしようかとも思ったけど、結局一番潰しの利きそうな Classic Rock に。結構いい感じの音になっているというか、俺程度の下手の横好きには高級過ぎるぐらいだ。特に嬉しいのがステレオ入力端子が付いていることで、これのおかげで簡単に CD とか教則 DVD に合わせて練習できる。

2007-11-18
Sun

(20:54)

Python の optparse は便利なのだけど、可変個の引数のオプションを扱えない (一応かなりダーティなやり方で出来るが、それは出来ないのと同義だ) という問題がある。可変個の引数を取るオプションなんて滅多に作らねえだろってのはその通りかもしれないけど。ちなみにそういう奴の実例は diff コマンドで、 diff の -u と -c はそれぞれ unified diff, cotext diff に出力をスイッチさせるのだけど、この二つはオプションとして行数を受けとる。こういうのは optparseでは (ってか getopt でも) 上手く扱えない。

もっとも俺はこの diff のコマンドライン引数の受け取り方はかなりどうかと思っていて、 (出力フォーマットの指定のために貴重なオプションのための文字が食いつぶされている。 -n が RCS 形式の差分ってどうなのよそれ) 自分でこういうコマンドライン引数のオプション形態を作りたいとはまったく思ってないのだけどな。

(21:34)

ふと思ったのだけど、日本の裁判における誤審問題って殆どが冤罪問題 (さらにいえば痴漢と死刑) になってる気がする。俺としてはむしろ、誤って軽い刑で済ませてしまうことの方が問題だと思うんだけどなあ。例えば女子高生コンクリ詰め事件の主犯格のガキが死刑にならなかったのは、俺の中では誤審である。出所後に「俺はコンクリ詰め時件の犯人だぞ」というのを脅し文句に使って暴力沙汰を起こしていたことから、明らかに更生してないというのがわかるはずだ。

ちなみに俺にとっての更生の定義は「欲望を満たす手段を変える」なのだが、これに従うとある種の犯罪者は更生できないことになる。極端な話、持っている「欲望」が「人を殺したい」「幼児とセックスしたい」といったものの場合、そもそも合法的な解決手段が存在しない。そして「手段」に比べると「目的」を変えさせるのは困難 (というか殆どの場合不可能) なので、結局その手の連中は殺すしかないということになる。まあ、その手のどうしようもない犯罪者はプロファイリングに使えるので生かしておくという戦略はありだとおもうが (プロファイリングの話題はアメリカのシリアルキラー程度しか聞いたことが無いのでちょっと判断が付かない。そしてそのアメリカでは死刑が廃止されていない州がある)。

2007-11-19
Mon

(21:51)

それにしても寒くなった。ってかもう 11 月の半ばだから当然か。おかげで今朝は寒さで心が折れそうになった。

どーでもいいけど、って全然よくねえんだけど、去年買った手袋をどこにしまったのか忘れてしまった、というか間違って処分したくせえ。

(22:38)

そーいや、 150cc ミラー (コースが左右反転。他のモードで練習できない分厳しい) の途中で放置してたマリオカート DS でようやくグランプリ制覇。結局最後までクッパ + タイラントで片付けてしまった。途中何回かあまりのリカバリの遅さにキャラを変えようと思ったけど、そもそも俺のプレイスタイルがこの組み合わせを前提にしたものになっていたので、むしろキャラを変えるともっと勝てなくなってたな。

ところでこのゲームって wifi を通じて対戦できるんだけど、あいにく俺は無線 LAN は使ってないんだよな。一応任天堂が無線 LAN 用 USB コネクタを出してるけど、そっちは Windows 専用だしな。他の USB 接続の無線 LAN でもどうにかなりそうだけどな。

2007-11-21
Wed

(19:11)

今日は久々にぐんにょりした。あのさあ、スーパークラスの public メソッドと全く同じメソッドをサブクラスでわざわざ作るってのはどういうこと? さらには終了ステータスの渡し方も間違ってるというか明らかにこいつドキュメント読んでねえし。

別に俺はもの凄く高い要求をしてるわけじゃなくて、

  • ちゃんとドキュメント読め
  • きちんと読んだ上でわからないことがあったら聞け
  • それで出来たものに自信がなかったら俺にコードレビューを回せ

ということしか要求してないんだけど。別に自信があったんならそれでいいんだけど、だったらもうちょっとマシなものを作ってくれよな。この前なんかプロパーの提供するフレームワークで定義されてる定数と寸分狂わない値をわざわざ自前で定義してたし、次何か論外なヘマやったら俺はキレるぞ。

2007-11-22
Thu

(21:54)

どうにも俺の友人は職場で貧乏くじを引く確率が高いらしく、

友人A
前からヤバかったが先日入院。命に別状はないらしいけど、どう考えてもオーバーワーク。
友人B
配属先に使えない奴しかいないせいで酷使され、耐えきれず転職。
友人C
主に上司がクソだったせいで鬱に。配属を変えたら (ってか転勤先から戻したら) マシになったらしい。

俺も大変といえばそうなのだけど、相当前から生存最優先で動いているので体の方は持ちそうだ。精神的には相変わらずキッツイ状態だけど。

ていうか今の会社どうすっかなあ。とりあえず今回は最悪なレベルの奴に当たったということでもう諦めているんで、次のプロジェクト次第って状態なんだけど。一応、うちに関してはお偉いさんが「死んでも完成させろ」みたいなことは言ってこないので、そういう意味じゃあまともなところなんだけど (でもクライアントやプロパーが言ってくるんだよな)。ってか、俺に次のプロジェクトがあるかが微妙なんだけど。あんまりここに長く居すぎると多分俺の精神が持たないけど、でもここの現場を知りすぎてるせいでプロパー側から離してもらえないかもしれん。まあ、今の時点で考えても仕方のないことなんだけど。どうせまだこのプロジェクトは終わらない。

2007-11-23
Fri

(014:20)

世界樹の迷宮2 の発売日は 2008/02/21 って来年じゃねえか。その頃は多分今のプロジェクトも落ち着いてるだろうからいいっちゃいいんだけど、でも来年か。

2007-11-24
Sat

(22:17)

「FINAL FANTASY CRYSTAL CHRONICLES Ring Of Fates」を買ってきた。とりあえず 4 時間ほどプレイして思ったことをつらつらと。

  • 魔法とアイテムの使い方が独特。ってか、十字キー + 6ボタン + タッチパネルの操作は忙しすぎる (ライトゲーマーはついてこれるのか?)
    • 魔法の組み合わせで効果が変わる (ファイア + ファイアでファイラとか) のは面白いけど、操作が忙しすぎるせいで慣れるまでは大変
    • 結果として魔法やアイテムを使うときには大きな隙が生じる (魔法を組み合わせようとするとさらに大きくなる)
  • フルボイスじゃないけど、イベントの中には音声が入ってるものあり。飛ばしてるけどな、俺は
  • 防御してる相手を魔法でこじ開けて連続斬りとか、相手の発動しようとしてる魔法を逆に利用して威力増加 (相手のファイアを発動前に自分のファイアで潰してファイラに変化とか) など、アクション部分は案外工夫のしがいがある
    • 仲間を持ち上げてジャンプして投げ飛ばすことで、本来なら特定のキャラや仕掛けでないと突破できない地形を突破できてしまう。進めてる最中に「あ、これ正規のルートじゃねえかも」と気がついた
    • 全体回復とかどうすんのかと思ってたら、魔法を発動した場所に仲間を引き連れてくればそれっぽい効果になった
  • CPU の操作する仲間キャラは、よくいえばプレイヤーの邪魔をしない、悪く言えば木偶
  • ボス戦は結構厳しいというか、受けるダメージがちょっと凄くて四回直撃したら死亡コースも。さらにボスは特殊攻撃を仕掛けてくる上に仲間が木偶なので、操作はさらに忙しくなる
  • 装備品に応じて見た目が変わるあたり芸が細かい
  • ストーリーは王道っぽいけど、時々ちょっと壊れたキャラや台詞が出てくる。あれ、こんな会社だっけ?
  • マルチプレイヤーモードは周囲に持ってる人がいないので無理くさい

そーいや、スクウェアのアクション RPG は「デュープリズム」以来だ (知ってる人いるかな)。この二作を見る限りでは、むしろアクション RPG 作ってる方がいいんじゃないのかなと思う。

2007-11-25
Sun

(22:24)

まさか二日でクリアできるとは、 Ring Of Fates。とても電車の中で話を進める気にはなれなかったのでピッチを上げて進めようかと思っていたけど、割合普通にクリアできたな。プレイ時間は 10 時間ほどで、まあアクション RPG なんだからこのぐらいの長さになるか。

アクション部分の出来はやはり良くて、基本的にはそんなに難しくないものの敵の与えるダメージが多めで状態異常系の攻撃も多く、緊張感は結構あった (ボス戦で何回か全滅したし)。一番キツかったのはラスボスで、第二形態撃破後に何やっていいかわからないまま適当に動いてたらボスが復活しやがり、都合三回ほど叩き潰したところでモーグリがやってきて第二形態撃破後にやんなきゃいけないことを教えてくれた。当然、その後全滅した。いや、最初は普通に第三形態かと思ってアイテム回収してたんだけど、そういうことだったのね。

シナリオの方は思ってたよかずっと面白かったけど、これガキがわかる話か? 可能性未来とか平行宇宙とか、今までやってきたシリーズ (まあ俺は 6 で殆ど見切りをつけて、 8 以来触ってないんだけど) のシナリオからは逸脱してるネタだ。アカシックレコードにアクセスして平行宇宙をどうのこうのという、ぶっちゃけ下手すりゃ電波な設定だからな、ピンと来ない人がいてもしょうがないかも知れん。俺はこういうネタは大歓迎なんだけどな。それでもその設定がゲームシステムの特徴の一つであるマジックパイル (魔法の重ね合わせ) の説明にもなっているってのはかなり感心した。これ、狙ってやってたんならかなりのファインプレーだな。

さてこっからはシナリオモードの二周目とマルチプレイモード (こっちも実は一人で遊べる) なんだけど、どうもマルチプレイの世界はエンディング後の世界らしく、それっぽいネタがそこかしこにあるな。というか、全体的にはっちゃけたノリになってる (本編でも街の人の一部とかミースの台詞全般がネタまみれだったけど)。スタッフが本当にやりたかったのって、シリアスな本編シナリオよりもこっちだったんじゃねえのかなあ。

2007-11-26
Mon

(21:10)

心の風邪はいくらこじらせても死ねないんだよな、それだけじゃ。

それにしてもあれだ、今まで誰も気がつかなかった問題が噴出すると死ねるね。俺の直接の担当分じゃねえから、俺のところに火の粉が降りかかるわけじゃないんだけどさ。やっぱ成果物へのチェックが甘かった時期に (つまり一番混乱してした時期に) 作られた物はまったくもって信用できない。そして俺たちのチームは、大半のコードを混乱期に書いている。さて、俺は生き残れるのかな。

ま、それでも最近はずいぶんとプロジェクト全体を見れば落ち着いてきてはいるんだけど、やっぱりこれはプロパーがようやく本来あるべきところに人を配置して、トップクラスのエンジニアを持ってきたのが大きいな。俺からすればその決断は半年以上遅いんだけど、一体どうなってたんだろうねえ (どのプロジェクトも火を吹いていたに 1 ペソ)。

2007-11-27
Tue

(21:12)

えーと、こういうことはまったくもって考えたくないんだけどさ、まさか回りの連中「多少のことは Kuwata 君がよくわからない魔法で辻褄合わせてくれるよ!」とか思ってないか。いっとくが、俺は既に MP 切れてるからな。あとそんなに上位魔法使えるわけでもないんだからよ。ってか、プログラミングは魔法でも何でもないんだから無理なものは無理。何度もギリギリの辻褄合わせが成功すると思うなよ。

2007-11-28
Wed

(23:36)

うわぁ、本当に「ティ」「ディ」がそれぞれ「thi」「dhi」で入力できる。知らんよ、こんな入力方法は。

それはさておき、なんで一言ストレートに言えばいいのに禅問答にする奴がいるのかねえ。いや、禅問答したいってのなら俺は止めないので、出来ればそういうことはお寺でやってくれませんか。要するにお互いピントがずれてるだけなんだろうけどさ。俺はもう嫌だよ、禅問答に巻き込まれるの。

2007-11-30
Fri

(21:14)

今日はえらいこと体調が悪かったんで最悪休もうかと思っていたんだけど、「環境構築が上手くいかない」という連絡が入り、そしてそれが俺の担当部分だったのでだるい身体を引きずりつつ出社してみたら、テメェそれ俺が原因じゃねえじゃねえか。

それはともかく、流石に久しぶりに乗った体重計を見て愕然とした。えーと、このプロジェクトが始まってから、俺って 7kg も太ってるのか。これはマズいなあ。とりあえず体重をこれ以上増やさないために、まずはカロリー制限から始めよう。というか、本来の食生活に戻そう。

  • コンビニで飯を買わない
  • 平日でも朝昼の飯は自分で作る

晩飯を作ってる時間はまだ取れそうにない、というか無理 (休日は出きるけど) なのでこの二つをやることにしよう。ちょうど俺の仕事も落ち着く予兆が見えてきたし、そろそろ自炊復活してもいいだろう (仕事が忙しいと飯作る気力がなくなる)。