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

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


9月30日(日曜日)[前年][翌年]
Ruby 三昧/月姫その後

今日は普通に休日出勤<普通に?

昨日 ruby-list に投稿したあれは、この前の一時的インスタンス変数から直接…というわけじゃなくて、別のモノを作ろうとしてやっぱり Marshal に手を入れたいと思ったからでした。でもやっぱ ruby-list に投げたのは失敗か。せきさんもああ言ってくれた事だし、なんか実装してみて ruby-dev に投げてみよう。

ちなみにいろいろ考えているうちにこの前のサンプルにバグがあることが発見。_pre_format の返り値に nil,true,false,Fixnum を返すとおかしくなるはず。ほとんど誰も中見てないだろうけど:-)

んでまあ↑の話題のときにキャッシュは外部に持てば? という話があったので実装してみる。もともとたいそうなモノじゃないのでちょっと汎用的に。相変わらず長いです。

module CacheObject
  @cache = {}
module_function
  def cache(id)
    unless @cache.key? id then
      @cache[id] = {}
      ObjectSpace::define_finalizer(ObjectSpace::_id2ref(id)){ @cache.delete id }
    end
    @cache[id]
  end
end
class Object
private
  def _cache
    CacheObject::cache(self.id)
  end
end
class Module
private
  def attr_cache(*name)
    name.each do |n|
      unless n.kind_of? Symbol then
        if n.respond_to? :intern then
          n = n.intern
        else
          raise TypeError, "#{n.inspect} is not a symbol"
        end
      end
      module_eval <<METHOD
  def #{n.to_s}
    _cache["#{n.to_s}"]
  end
  def #{n.to_s}=(var)
    _cache["#{n.to_s}"]=var
  end
  protected :#{n.to_s},:#{n.to_s}=
METHOD
    end
  end
end
class Foo
  attr_cache :_hoge
  def initialize
    self._hoge = Array::new
  end
  def hoge
    _hoge
  end
end
foo = Foo::new
p foo           # => #<Foo:0x80f8118>
p foo.hoge      # => []

最初にアップしたのだとガーベジかからないので密かに修正(汗;
うわぁ、修正が混じってて動かないので再度修正(苦笑

でも実はものすごく気に食わない。何がって? それは

    self._hoge = Array::new

の部分。そう、レシーバを明示しないといけないのだ。_hoge= と書くと、_hoge= というメソッドが呼ばれるのではなくて、_hoge というローカル変数が作られ、= で代入されるわけ。_hoge,_hoge= が protected で宣言されているのもその為。最初は private だったのだが、それだと代入ができなくて。いやま __send__ 使えば呼べるだろうけど、それだとメソッド定義してる意味が半減する。

まあ、ゆーても5文字やし、shift 押す必要必要もないし、格段に使い勝手は上がってるけどね。

リビルドが終わらないから暇や…。いや他にもやることはあるんだが^^;

月姫。シエル先輩目指して…やってるはずだが、無事シエルルートに載ったのかどうか分からん(汗; とりあえずネロ後まで。そろそろいろんなところが目に付くようになってきたかな。
しかし、アル、秋葉と終わらせちゃうとちとモチベーションの維持がつらくなってきたような予感。なんていうか物語を5つのパーツに分けると、一人クリアするごとに3つぐらい集められるような感じ。もうちょっと出し惜しみしてもいいのに。でも出し惜しむと面白くなくなってたかも。…難しいねぇ。

う、リビルドこけてる。ローカルで変なことをした記憶はないんだが。ソース取り直して再度リビルド。無駄に時間が過ぎていく…。

…本屋行ってきた。

すべてがFになるのコミックも探したが見当たらなかった模様。つかソニーマガジンズ自体他に何が出てるところなのか知らんのだが^^;;

あ、上記レシーバが省略できない件、ちゃんと trap に載ってるや。良かった、問い合わせる前に気がついて(汗;

更に上記ソースに修正漏れがあったので再度修正。あううう。


10月1日(月曜日)[前年][翌年]
前言撤回

朝、ローズ敬遠の記事を読んで萎え。あんたらプロやないんかい? こういう明らかな行為は罰則規定設けて欲しい。八百長と大差ないやん。

月姫。前言撤回(汗; 主人公の存在がすごく希薄なんだけど、シエル先輩も十分面白いです。まだそういうネタがあったのかー。思いっきり手を広げてますなぁ^^;
ちなみにまだ最後までは終わらせていません。めがね or not なところで止めた(ぉ しかしなんでここで「制服」とかゆー選択肢はないのだろうと思ったり<ダメすぎ

お腹痛くて吐き気を少々。寝不足は間違いないのだが、お腹の方は一昨日あたりから微妙に続いていてすごく気になる。とりあえず昼はサンドイッチ…足りん。

式神の城。ダメっすか。まあ私もアレ以降やったことなければ探したこともないですが(汗;


10月2日(火曜日)[前年][翌年]
謎の JavaScript

昨夜は玄関開けたら2分で睡眠、という感じで(汗;
直前に友達に「折り返し電話クレー」と言っておきながらすぐに気絶してしまった。スマヌ。居間で着替えずに倒れてたら、便所に下りてきた父親に「こんなところで寝たら風邪引くぞ」と起こされてとてとてと部屋に戻って再度気絶。

あ、コラムも更新してネェ、更にスマヌ(汗;>

謎の JavaScript。真似されてる(ぉ というか、似たような機能を今まで誰も考えつかなかったのかな、私が知らないだけかもだけど。

それなりにウケたようなので何のことかと説明すると、IE でかつ JavaScript を有効かつ最新のページを閲覧している方は、このページの◇のアンカーをクリックしてグループ別のページに飛んでみてください。とび先(の一部)に色がついているはずです。これだけ。私は時々アンカーをたどって「どこの話だ?」と思うことがあるので^^; これだと安心して「ああ、ここの話題なんだな」と思える。なくても困らないけど、あるとちょっとだけ嬉しい機能。

ただネックなのは JavaScript な事だな。切ってる人も少なくなかろうし。

ちなみに別の実装が ZnZ さんの日記に。こっちの方が流用できる人多いんではないかと。

ロマンですね。小さいとこうはいきません(ぉぃ そっと(あくまでそっと)手を差し伸べたくなるような質感がなんとも言えんです。


10月3日(水曜日)[前年][翌年]

昼飯を食ってしばらくしたらお腹が苦しくなってベルトを緩めたり。…また太ってきた?(汗;

月姫。シエル編終了。トゥルー、グッド両方。てか、なんでこれがトゥルーやグッドなんだか…いや、嫌いじゃないですよ、こゆのも(笑 あ、めがねを選んだら CG 埋まってないでやんの。しゃーないのですっ飛ばしのまま回収。
次は…んーと、どうしようかな。

謎JavaScript(仮)。うーん、名前どうしよう(汗; まあ、発案者(かどうかは分からんが)が名づけなくてもどこかの誰かが「業界初!」とか言って勝手に名づけてもらえればそれで良いんだけど<マテ どこの世界でも名前付けるのは大変ですよねぇ…。

というわけで名前募集。つか広めたもん勝ち(ぉ

控えめなところに美しさを感じる性質なので^^; 自分の実装も「ちょっと野暮ったいよなー」なんて思ってて。ソースを書いたブロックにリンクされちゃうとものすごい範囲の色が変わっちゃうので。まあ、この辺は日記の書き方が問題なのですけども^^;


10月4日(木曜日)[前年][翌年]

私用で午後出社。私用ついでに Air-H" を探すも 404。入荷しそうな店も1件しか発見できず。まあ、姫路駅前まで出たらあったかもしれんが、そこまで行くと目的と寄り道が逆転しちゃうので^^; ただでさえ1時間余計に遅くなっ(げふんげふん まあ、もし見つかってたら契約の時間もかかるから更に遅(げふんげふん

あ、今日お茶当番だったの忘れてた…(汗;

月姫。メイン3人が終わったので脇役攻略。んがしかしどれがトリガなんだか目星がついてない。とりあえずすっ飛ばしたら見たことなかったバッドエンドに突入。更に進むもこっちじゃなさそうな気配が漂ってきたので中断。のっけの選択肢から間違ったかな。

まあ、翡翠の夢を見れたからいっか。はちさんみたいな人もいるし、私はおでこちゃん好きだしさ(ぉ さすがにあれは笑った。

ようやくコラム更新。私が悪いんです〜(;_;

そういや /.J で python の話が出てたけど、python の欠点ってインデント云々よりも「日本で情報が少なすぎる」点じゃないかな。前に python ってどんなのだろうと思って本屋で探したけどすぐに見つからないんだもん。首都圏に住んでるとかならともかく。
自分としては ruby が一番ありがたい点はオンラインマニュアルだな。日本語の。さくっと英語読めるようにならなきゃとは思うんだけど。読むだけでものすごく時間がかかるような今だとキツイ。そこまでする前にソース読むしな^^;

インデントに関しても、デバッグ用のコードは分かりやすいようにインデント無視して書くことが多いから、インデントに意味があるのはつらいような気はするが、まあこれは実際に触ったら気にならないかもしれんな。ただ特定のエディタがないと書きにくい言語は嫌やな。

虫を追ってたらこんな時間(23:30)に…ってそもそも今日は昼から出社なんだからいつもよりも遅いんだった。
つか自分担当部分ってほとんど作り直してるからバグ多いはずで。作り直さなくてもいいものまで作り直してるしな(ぉ てか、今の実装って気に入らないところ多すぎなんだよ、まぢで。

そういや午前中にうろうろしてる時にちょうど中学校のそばを通りかかり、ちょうど体育の時間らしくいっぱい生徒が運動場にいて、「ここでボールが学校の外に飛んできて、可愛い女の子が『ボールとってくれませんか〜』なんていう風に、なんてアホな妄想してたらホントにボールが飛んできてびっくり。いや、ソフトボールで相手は男の子だったけどさ^^;
しかし、その子、そのままフェンスによじ登り始めたのでちと笑った。さすがにそりゃ無茶だろ。ちなみに拾って投げてあげたら全然距離感が合ってなくて相手の後ろを転がっていった(汗; スマン(大汗;


10月5日(金曜日)[前年][翌年]

月姫。うーん、トリガの位置が分からん。って昨日は帰るのが遅かったからあんましやってないんだけど。
某氏に琥珀&翡翠を脇役とゆーなと怒られました。さっちん? 誰それ?<ぉぃ あ、そんな事言ってたらさっちんに以下略(汗;

BIGLOBE は 10/1 からサービス開始だったかな。denpa.org に移行した頃は解約しようかどうしようか悩んでたんだが意外に使い道が多い。Card H" でも使ってるし。
ただ、BIGLOBE を常用できない理由は From: に biglobe.ne.jp なアドレスを書かなくちゃいけない事だったり…って今はどうなってるんだか知らないが^^; まあ、POP before SMTP なサーバを一つ持ってるからさほど困りはしないんだが(面倒だけど)

それは日曜日に日本橋に来いと言う事ですか?(違

うー、散財欲が爆発中。必要なものに食指が伸びなくて不必要なものが欲しくなる。先々週に買ったもの&譲ってもらったものって実はまだ未開封で放置プレイ中なのだが(汗;

ちんまいケース欲しいなぁ…。

週末はじっくり考え事をしようかと思ってたんだった…。

「。」つけるのが流行ってるのだろうか^^;
誰かがもっとグレイトでエレガントでスパイシーな実装をしてくれることを望む。

げ。3ware製のIDE RAIDカード「Escalade 7000シリーズ」をリコール。うち、未開封の 6000 があるんだが(汗; いやま、6000 の方は不具合出てないけどさ。しかし生産中止ってすごいな…。
となるともしかしてこのクラスの IDE RAID カードって Adaptec の 2400 だけになるのかな。ううむ。


10月6日(土曜日)[前年][翌年]
うなぎ放題買っちゃいました/Linux と一晩中

AirH" petit 買いました。とりあえず繋ぎ放題中。しかし家の近くにエッジプラザがあったのを忘れてたとは。ちゃんと 10/4 に入荷してたらしい。迂闊。その場で繋ごうと思ったんだが、箱からCD-ROMが出てきたのと、挿すと標準モデムとしか認識しなかったのと、荷物が多かったのといろいろあって一時帰宅。しかし出っ張り部がでかいね。CF版無線LANカードに浮気しそうやな(汗;

今まで使ってた CardH" は解約書類請求中。その場では解約できんのか。まあ、店員さんが可愛かったから許そう(ぉぃ

…家の中では電波が弱いので外に出て繋いでたら虫に食われた様子(汗; かゆい…。

ちなみに家の外でもおうち無線LANの範囲内だったりする<馬鹿

とりあえず未開封の PC パーツを順次処分すべく、デスクトップマシン群をごそごそ。ばるさんから譲ってもらった DVD-ROM DRIVE を gensuke(ゲームマシン) に装着。ところてん式に余った CD-ROM DRIVE は放置プレイ中だった 新alice にとりあえず装着。NetBSD 1.5.2 の iso イメージをダウンロードしつつ、今日のメインイベントの 3ware Escalade 6200 を 新alice に装着して VineLinux 2.1.5 のインストール大会。

「艦長! 3ware のドライバディスクを使ってもデバイスを認識してくれません」「もう一度点検せよ」

おそらくカーネルのバージョンが違うからドライバが読めないんだな。こういうのに遭遇すると、Windows って楽でだよな、と思うね。ホント。

まあ、別に Vine じゃなきゃダメだって事はいので、正式にサポートしてる RHL 6.1,6.2,7.0 辺りを使うという手もあるのだが、ここでへこたれるなんて「面白くない」。とりあえずモジュールを作成する為に、余ってる HDD を普通に IDE で繋いでインストール。あ、/lib/modules に 3w-xxxx.o あるやん。作る手間が省けたな。

が、とんとん拍子に進んだのはここまで。なにせ「ドライバディスクの作り方を知らない」のだから。web でへこへこと調べてみる。modules.cgz を作り直せば良いのかにゃ? cpio なんて使ったこと無いぞ? ちょうど irc にぱぱんださんがいらっしゃったので聞こうかと思って…たら落ちてしまわれたので聞けず。残念。

もうちょっといろいろ調べて、適当に modules.cgz を作ってみるもダメ。眠さの限界だったので明日に持ち越し。

んで、上記作業中、夕方から夜にかけて札幌の結婚式の中継を聞いていたり。新郎も新婦も会ったことないのだが^^; 招かれているメンバーがメンバーだけにネタ満載。なんかそのテーブルだけ電源が準備されていたらしいし(笑 しかし、はうンしすてムズって有限会社だったのか…(ぉ

しかし、多少のタイムラグがあるとはいえ、札幌の結婚式の内容が聞けるってすごいよな。


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

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