Last-Modified 2010/10/25 11:35:19

その日あった事ダス第232週


2月17日(日曜日)[前年][翌年]

今日は一日家でのんびり。

久々の大悪司。6th だっけか? 前回の約束どおりアンリルートへ。今度はちゃんと見捨てず、PM 戦開始直後に潜ってみる。…うひゃ、そういう展開ですか。頑張れ>悪司
ちなみに今回は高山組も選択してたんですが…こっちはこっちでそんな唐突な…。
もうかなり慣れちゃってるので特に問題もなくエデン占領。ウワサのギガフロート編に突入。こういう導入だったのね。雑魚敵の多さにあきらめて中断。

これ以外はひたすら寝てただけ。あと、お部屋のお掃除をちょびっと。


2月18日(月曜日)[前年][翌年]

風邪が流行ってます。うつらないかとビクビクしてます。

謎な referer があったので気になってみてて、去年の日記のとある記述が目にとまる。自販機のおつりって、3枚以上のコインがおつりの場合、必ず3回で全部支払われます?

なんてことはない。同一金種のお金は同時に1枚しか出せないだけ。80円の場合は 50x1,10x3 なので 3 回。380円の場合は 100x3,50x1,10x3 でこれまた 3 回。120 円という値段のせいで、単に 4 回以上かかることが滅多にないだけだった。
…いや、この前 80円を 10x8 で払われたので気がついたのでありました^^;

ちなみにこの問題が気になる理由の一つに、昔 110円 だった頃に、520 円で缶ジュースを2本買ったらお釣りが 100円玉 13 枚だったという奇妙な出来事に出会ったからでした。その時に聞いたつり銭の音が 3 回。…やっぱしよっぽどのおっちょこちょいがいただけかなぁ。

大悪司ギガフロート編。
思ってたよりも楽勝でギガフロート以外を奪還。ラスボスはものすごく強いと聞いていたのでそっちは放置プレイでひたすら経験値溜めのために潜る。おかげでタコ井戸・ウメダ地下街制覇。ここまで強くなれば大丈夫だろうと挑んで…一撃(汗; マヂですかい。さてどうしよう?

  1. 体力を倍にする
  2. 攻撃力を倍にする
  3. 運に任せる
  4. あきらめる

どれも嫌だ(涙 1. に比べて 2. の方が必要ターン数は少ないのだけど、それでも 20 週以上かかるよ…。とほほ。


2月19日(火曜日)[前年][翌年]

今日はいつもとは違うお仕事をば。AR320 というルータとにらめっこ。既にされてある設定ともろもろの資料を見比べつつ設定の修正。取説を読むだけでは自分のしたい事が全然分からないので help を眺めまくり。夕方までに設定できるやろか(汗;

来月半ばにも同じルータでまた別の設定をしなくちゃいけないので今のうちに理解しとかないと。

しかし一緒に行くはずの上司が風邪でダウンしてたりして、今日休みだったらどうしようかと思ってたのだけど、それは回避されたらしい。…が、すごい鼻声なんですが。大丈夫かなぁ。

…マルチホーミングなんで嫌いだ…。

大悪司 6th。えらいぞぷーさんハンマー! というわけでなんとかクリア。どう考えてもあの状態から 20 以上レベル上げるのは困難だと判断したので、いろいろ策を考えた結果ぷーさんハンマー使用という結論に。もっとも昨日の段階では命中が低かったので命中を少し上げてから再チャレンジ。それでも 10 回近くやり直し(汗;
しかしここまで苦労したにもかかわらず感動は全くなし。一度やれば十分。蘭のキャラクリもついたし、タコ井戸も制覇したし、もうこっちのルートに来る必要はなかろう。ないことを祈りたい…。

しかし残っているキャラクリなりCGなりがほとんどナコ教に関連なのが痛い。あとなんかいクリアすれば埋まるんだか。とほー。
現段階のキャラクリは 63/78。CG が 142/172。未入手アイテムが 6 個。


2月20日(水曜日)[前年][翌年]

自作アクセスログ解析ツール。セキュリティホール発見。検索エンジンからの referer をデコードしてそのまま HTML に埋め込んでいるので以下略。これだけのために require 'cgi' はちとあほらしいで必要な部分だけ写して対応。

斑鳩。なんか斑鳩プレイしている人が結構いるようで。思わずウオッチしてみたい気分に。さすがに過去まで遡るのはつらいので目に付いたところに反応してみるテスト。

うひー、B+C で 2-B の黄チェーンなんか繋げられるんですか!?<斑鳩ちゃうやん
B+C ってことは敵の横を潜り抜けなくちゃいけないんですよね。もしできるんならすごい…。
ちなみに私もシャッター地帯はあんまり難しそうに思えなかったり。まあ 2-B で慣れているので緊張はしないのは確か。エキスパートだと打ち返し弾がものすごいことになりそうではありますが(汗;

お試しプレイがあるのでそれを有効利用するのも手かも。どうせ3面なんか行けへんしー、なんて思っててうっかり2ボス倒しちゃうと悲しいものがありますが^^; もし Normal でやられているのでしたら Easy でやってみるのも一つの手かも。

あうー。禁斑鳩ですか(;_; 復帰をお待ちしております…。

問題なしです:-)
って、1面しか曲が思い出せない(というか面によって曲が違うのかどうかも思い出せない)時点でダメダメかも>私 シルバーガンの時はよく曲聴いていたのになぁ。周りがうるさいわけではないのだけど…。

今日は一応定時退社日だしゲーセン寄って帰るかな。

ソースのレビューをしててものすごく重箱の隅をつつくような事ばっかり言ってるような気がする。自分が細かすぎなのかなぁ。例えば、こんな感じ。ちょっとばかし簡略化してある。

if( hoge == 0 ){
  foo1();
  foo2();
} else
  bar();

コレ(既存のコード)に、

if( hoge == 1 ){
  para = ON;
} else {
  para = OFF;
}

コレ(新規のコード)を追加。で、結果。

if( hoge == 1 ){
  para = ON;
} else {
  if( hoge == 0 ){
    foo1();
    foo2();
  } else
    bar();
  para = OFF;
}

…間違っちゃいない。しかしコレでは if( hoge == 0 ) の部分の評価も(インデントのずれを直すために手が入っているので)必要になるよと言ってダメを出した。で、この程度でダメと言ったことが良かったのかどうか今でも悩んでいる。

…これ、

} else
  bar();

の部分が

} else {
  bar();
}

なら対応違ってただろうし、私もダメだとは言わなかったかもな。

ちなみに二つの条件は両方とも真になることはありえないのだけども、意味的には関わりあいのないことなので、私の答えは「並列で if を並べる」だったりして。それぞれに else if が付いて両方真になるパターンが発生するかもしれないし(可能性としての話)

…この程度でやる気を失ったりしないことを祈るばかり。はぁ。

…あ、ホントだ。違うよね。ソース読めてなかったのは私自身か。バカだ(苦笑
結局ダメといって正解だったわけか。明日ちゃんと説明するです。ありがとうございました。

う、自分自身にリンクしてどうする…訂正。

斑鳩。てんでダメ。1面で2機死んだり、3面にたどり着けなかったり。敵の出現位置を忘れてるわけではないんだが…精神的にいらち入ってからかなぁ。操作が大雑把になってた気がする。


2月21日(木曜日)[前年][翌年]

昨日の件。重箱の隅をうんぬんは何も解決してないのだけど、日記にまで書いたのにミスに気がつかなかったという自分に気がついてちょっとすっきりしてみたり。恥ずかしくて言い訳したくなる自分もいるのは確かだけど。慢心してたね。

argument for def。かなーり時期を逸しているけども、演算子系の method_added にも対応したし ruby-list に流してみようかと思って…バグを見つけた。

def hoge(a)
  a[0] = "adz"
end
a = ["adz"]
hoge(a)

これが検知できない。ちなみにこの場合だと == も成り立ってしまう。
これの回避方法が思い浮かばん。EachObject で [obj.id,obj] に置き換えてしまうか? それとも無視? ああ、ものすごく悩ましい。変なアプローチを取っているから余計に。
いっそのこと String#inspect を書き換えてやろうかしら。

まだまだ続く argument for def。いや、もはや別物になってる気がするが気にしてはダメ。
まあ、String#inspect の問題があるとはいえそれなりに面白い物ができたので、手元にあるいろんなスクリプトで試してみる。いくつかのスクリプトではちゃんと動いている。warning(つまり変更を検知)が出たやつもあって、これは設計が悪いなと自分で納得してたりした。この段階まではまあ良かったのである。

が、しかし。とあるスクリプトでエラーが出た。SystemStackError。思いっきり再帰してますよお兄さん。なんでやねんと調査開始。結果、簡単なスクリプトで再現。

module Foo
  def hoge
  end
  module_function :hoge
end
Foo::hoge  # => SystemStackError

うむー、原因が分からん。仕方がないのでこんなスクリプトを書いて実験。

class Object
  def singleton_method_added(name)
    puts "singleton_method_added #{self}::#{name}"
  end
end
class Module
  def method_added(name)
    puts "method_added #{self}##{name}"
  end
end
module Foo
  def hoge
  end
  module_function :hoge
end
class << Foo
  alias :niya :hoge   # => method_added Module#niya
end

…Module#niya?(汗; もしかして特異メソッドの alias ってできないの?

これ以上は気分転換の領域を越えているので後でじっくり考えよう…。


2月22日(金曜日)[前年][翌年]

arguments of def。昨日の再帰の原因は簡単だった。def hoge; end した時点でホンモノの hoge は __original_hoge になってるわけで。module_function :hoge の意味が違ってしまうんだな。特異メソッドの alias は全然関係なかった。module_function から呼ばれているのは分かるのでその時は module_function :__original_hoge するように修正。

ちなみに特異メソッドの alias は「できない」のじゃなくて、「できる」けど「singleton_method_added じゃなくて method_add が呼ばれる」っぽい。1.7 では修正されているね。ChangeLog より。

Wed Dec 19 14:05:00 2001  Yukihiro Matsumoto  <matz@ruby-lang.org>

  * eval.c (rb_mod_define_method): define_method should follow
    default method visibility.

  * eval.c (rb_attr): should warn if the default method visibility
    is "module_function" (can be error).

  * eval.c (rb_mod_define_method): should define class/module method
    also if the visibility is "module_function".

  * eval.c (rb_mod_define_method): should call hook method
    "method_added", and "singleton_method_added".

これの一番下やね。1.6 には入らんのだろうか?

更に昨日に String#inspect がうんぬんと書いたけど、よく考えたらこれだけじゃなくて inspect で id が表示されないのは全部該当するね…。最初は冗談だったけど inspect を書き換えるのが一番かもしれんなぁ。

うう、今度こそどうしようもない壁にぶつかったか? 新たに判明した問題点。alias を使われるとダメ。つまり

class Foo
  def foo;end
  alias :bar :foo
end

されると、呼び出し経路が bar -> __original_bar(=foo) -> __original_foo となる。それはまずい。いや、動くけどゴミが残るし warning も不適切になる。

んで alias はメソッドじゃないので対応しようがない…と思う。alias_method ならフックできるけどなぁ。くそ、なんとかならんもんかな。

kitaj さんのところから Emusica。源平とかグラディウスとか聞きたいなぁ。でも今日は今から客先なんだよなぁ<って回線を私物利用しすぎ
そういや明日もこの時間は家にいないなぁ。明後日も多分いないし。うーむ。


2月23日(土曜日)[前年][翌年]

今日は @Random …のはずだったんだけど、遅刻して、とりあえず会場の前までは行ってみたんだけど、どうしても入る勇気がでなくてトンズラ(汗;

仕方なくマクドでのんびりしてるところにおさかなさんがももにいたんと連絡がついたという連絡を受けたのでそのまま日本橋で移動。ももにいたんの知り合いの人と喫茶店でのんびりしてたりして、適当に店を回った後離脱。

いやー、何しに大阪に行ったんだかなー(汗;


このページは基本的にリンクフリーです。

written by Shin'ya Adzumi 'あづみ しんや'
adzumi@denpa.org