83's

Top > Archives > 2006 > October

October 01, 2006

cssがキャッシュされる 16:43

あー。友人の環境でレイアウト崩れてるっていうから「キャッシュじゃね?」って答えたときに思ったんだけど、

@import url(/stylesheets/a.css);

ってのがあったとして、a.cssはブラウザにキャッシュされるよなー。普通に考えて。 てことはa.css更新しても最新のが読み込まれないからデザインが壊れるのか。 これ、画像更新した場合もそうだなぁ……。

結局全部Railsでいうところの

<%= stylesheet_link_tag "a" %>

=> <link href="/stylesheets/a.css?1159464858" media="all" rel="Stylesheet" type="text/css" />

みたいにファイル更新の度にQUERY_STRING変えるように動的に書き出して読み込まないとダメかしらん。

と思ったけど普通はちまちまcss更新しないんですかね。 できあがってからあげるのか。

October 03, 2006

ツッコミへの返答 04:20

cssがキャッシュされるというエントリに、

yzのこのエントリのtagを見て、ちょっと疑問。CSSってtagがついているこの記事。確かに、cssを扱っている内容なんだけど、これってrailsに特化している内容だよね?

というツッコミが来た。

Railsに特化した話ではなくて、 Railsを知っている人に分かるように書いた、Railsとは関係のないCSSにまつわる話ですわ。

キャッシュを回避するには、例えばRailsのstylesheet_link_tagが生成するようなURLを CSSのurl()にも使わないと、という。そのURLを説明できるならなんでも良かったわけで。

まあオレが時間なくて、そのURLの説明をメソッド一つ書いてサボって いい加減なエントリになってしまったのが一番の問題。 表面的に見たら、あるいはしっかり読んでも、 人によってはRailsタグを付ける閾値に達しているのかも知れない。 ただ、オレが言いたかったことはRailsとはかかわりのないところで成り立つ話で、 その思考を実体化したのがあのエントリなわけだ。どう受け止められようとも。 オレと読んだ人の間で齟齬が生じたなら文章が思考をうまく伝えきらなかっただけのことで(ブログだしね)、 あのエントリがとりあえずはオレの思考を代弁していることは変わらないし、 だからあのエントリ(≒思考)を分類するにあたってオレはRailsタグをつけない。( '∀`)つ 今のところw ただ、わかりやすい文章を書きたいもんですなぁ。

まー、単純にタグ付け忘れてるエントリとかもありますよ。そりゃもう。 前はただのカテゴリ分類だったから、そのなごりとか。 タグ分類は必ずしも完全な秩序を持ってされているわけではないわな。 人間だもの。でも人間がたくさん集まると……って話が去年流行ったね……。

自分は、Railsを少しかじったことがあるから、なんとなくRailsのネタってわかるけど、例えば、純粋にCSSを調べている人(プログラミングとかわかんない人)がいたとして、同じCSSのtagがついているこの記事を見てから、同じ tagの記事をみているときに、?ってなってしまうよね。となると、Railsってタグがついていると親切だとは思う。

プログラミングとかわかんない人にRailsタグ見せても意味なくないすか?  それはともかく、タグはエントリの要約じゃないと思うし、 内容が伝わるよう親切をするなら文章を見直すべきだと思うね。 見えない文脈をなるべく表に出すとか。

で、日記についているtagが不適切と個人で思うのなら、はてぶにでもつっこんでタギングしておけよとか思われるんだろうけど、その人のタグにタグを付け足したいって要望で、ブックマークするっていうのも、何だか変な気分がするわけで。

そのエントリが重要ならブックマークして自分の管理下で整理すればいいのでは。 どうしてブックマークする程重要でないエントリについて、 他人の付けたタグを直そうと思うのかよくわからないんですが。 重要でないなら今後そのエントリに用はないはず。そこにタグ付けする意味は?

ん〜。

あら、ひさびさにトラックバック使ったけど、届いてない感じだな。 反映まで時間かかるタイプなのかな。 最悪なのはオレのブログが壊れていること……。 そろそろあちこち修正しないとな……。

October 04, 2006

ツッコミへの返答 その2 08:02

CSSとRailsというタグが一緒についているときに、それを読む人の読み方が変わると思うんだよね。これは、自分のもとめてるやつとはあまり違うんじゃないかと。また、同一タグ記事の一覧で記事を選ぶときにも助けになると思うのよね。

(snip)

頭にある文章の記憶だけでその記事を探すより、その文章の記憶からついてそうなタグの記事から探した方が簡単だと思うんだよね。

エントリがRails+CSSの話ならば、まったくそのとおりだと思う。

言及がないので確認しておくけど、 cssがキャッシュされるというエントリについては 前回の返答の中で言った通りCSSに限った話題であり、 またこのエントリを含むことができる適切なタグが他にないことから CSSというタグからたどってもらうことになる。

そのエントリが重要ならブックマークして自分の管理下で整理すればいいのでは。 どうしてブックマークする程重要でないエントリについて、 他人の付けたタグを直そうと思うのかよくわからないんですが。 重要でないなら今後そのエントリに用はないはず。そこにタグ付けする意味は?

重要でなくても見直したいっていうとき、ありませんか?重要でないなら、そのエントリにいかないってことありますか?なんというか、ブクマするほどでもないけどとか、他にその記事を見ることになるかもしれないという人への大きなおせっかいがあってもいんじゃないでしょうか?さっきもいったけど、自分でつけたタグって不完全だったりするわけだから、他の人からの助力をもらうって方法があってもいいんじゃない。

お節介という動機ならば特に言うことはないです。 明らかに間違ったタグは指摘してあげたらいいし、書いた人と正しい分類先について考えたらいいと思う。

ただ、ブックマークしていないエントリを探すときのために わざわざ自分にあったタグをつけていくくらいならば、オレは Googleとか、サイト内の全文検索とか、履歴とか、自分の分類方針とは少しずれているかもしれないタグの中から探すコストのほうを選ぶ。

あー、引用文ばっかだな……。

ドメイン延長 19:15

期限が切れそうなので更新。

これからもkatamayu.netをよろしくお願いいたします。 ブログしかないけど。

絵日記ブログリリース 21:24

友人がWeb絵日記サービスを10月3日にリリースしました。

絵日記表紙

ロゴはわかる人にはわかるはずwwww マジでデザイナー必要だって><

オレは手伝いをしていて、サーバで動的にやってるところは大体オレが担当しました。 てことで宣伝。

絵日記表紙
絵日記表紙

ある日の絵日記
絵日記

絵日記編集画面(flash)
編集画面

カレンダーは見応えあります
カレンダー

気になる絵日記はRSSリーダでチェック!w
Livedoor ReaderへRSSを登録

オレの絵日記見てね(`・ω・´)

8月中旬から2人で作り始め、2週間で完成させる予定が結局ずるずると1カ月半かかってしまったんだけれど、 当初問題になっていたflashのパフォーマンスが相当改善されたんで良かった良かった。 彼はもうflashで生きていけるよ。

しかしデザイナーは偉大だ。プログラムは考えてればなんとか着実に進んでいくけど、 デザインばっかりはオレには無理。うまくいったらデザインできる人見つけてかっちょよくしたいですね。

彼的には普通に就職するのか今みたいにやっていくのかいろいろ事情があって揺れているみたいだけれど、 本当にやりたいならとことんやってみるべきだと思う。多分本人もそう思ってるだろうけど。 残されたバグを直すとか、新機能を追加するとか、 このenibloを申し分ない絵日記システムとして完成させることが大事なんではないか。 そこまでしてもダメなら、そんときはホントにニーズがなかったってことであきらめるのさ。

さて、ここまで作ることができたのは制作2週間後のいい加減な状態から テストをしてくれたベータテスターのみなさん、 そして「絵日記を描きたい」と言い始めてから途中であきらめることなく 作りきった彼本人の根気と情熱によるところが大きい。 テスターがいたから妥協していたところが改善されたし、バグも早期に発見できた。 そしてflashがすべてとも言えるこのシステム、彼がflashに何十時間も費やさなければ完成はなかった。 オレはRails本読んでコードを写していたくらいでたいしたことはやっていないけど、 それでも責任を持って作りきるというのはとても貴重な体験だった。 どうもありがとう。いっつも途中で投げ出すからなぁオレ。 enibloだけではなく、今後の事業もうまくいくことを願っています。 どっかの研究室が作ったベンチャーなんかに負けるな!

て、作業がもう終わったみたいな締めになっちゃったけど、まだだ、まだ終わらんよ!

October 07, 2006

ひっきー 03:42

高い家賃払ってるんだから、ひきこもらないとソンソン!

  (・∀・) ニパッ
  (∩∩)

土日はenibloの機能追加とblogの手直しでもすっかなぁ。

あー、思い出したんだけど来週ソフ開だよ!  また5100円捨てるような気がしてきた……。めんどくせーもん。

October 09, 2006

体育の日 13:03

うわ、せっかく学校来たのに今日休日かよ! がっかりした! 睡眠時間返せ!

とりあえず研究を進めるか……。 なにかしらやっとかないとうるさいからなー。

ファイル名(の一部)からパッケージ検索 14:23

調べ物してたら便利なものに出会った。auto-apt, apt-file。

% sudo apt-file update
% sudo auto-apt update
% time sudo auto-apt search net/https
usr/lib/ruby/1.8/net/https.rb   universe/interpreters/libopenssl-ruby1.8
usr/lib/ruby/1.6/net/https.rb   universe/interpreters/libopenssl-ruby1.6
sudo auto-apt search net/https  0.36s user 0.04s system 89% cpu 0.444 total
% time sudo apt-file search net/https
libopenssl-ruby1.6: usr/lib/ruby/1.6/net/https.rb
libopenssl-ruby1.8: usr/lib/ruby/1.8/net/https.rb
libopenssl-ruby1.9: usr/lib/ruby/1.9/net/https.rb
sudo apt-file search net/https  5.68s user 0.15s system 95% cpu 6.104 total

auto-aptはaptのカテゴリにもマッチするみたいだからそこはうざいかもしれない。 でもauto-aptのほうが早いのでそっちを使うか。 ファイル名で検索する場合は拡張子ついてるからカテゴリにはマッチしないだろうし。

うーん、コマンドブックでも買って全部に目を通した方がいいかな。

October 13, 2006

map_by_method 03:48

眠いけどネット巡回してたら見つけたんで反応。ぴくぴく

Symbol#to_procはRuby本体に取り込まれるらしいけど、これはくるかなぁ。 map_by_method。gemで入る。

>> BankTransaction.columns.names # map by pluralisation
 => [”id”, “amount”, “date”, “description”, “balance”] 
>> BankTransaction.columns.name # singular works too 
=> [”id”, “amount”, “date”, “description”, “balance”] 
>> BankTransaction.columns.map_name # merge collector (map) + operation (name is method of BankTransaction object) 
=> [”id”, “amount”, “date”, “description”, “balance”] 
>> BankTransaction.columns.collect_name # merge collector (collect) + operation 
=> [”id”, “amount”, “date”, “description”, “balance”]
["100", "10"].map {|s| s.to_i }

がめんどくさくてto_procが出てきて

["100", "10"].map &:to_i

になったんだけど、もう

["100", "10"].map_to_i
["100", "10"].map_by_to_i
["100", "10"].map_to_is

にしてしまおう、という。

@transactions = BankTransaction.find :all, :conditions => ['date = ?', Date.today], :include => [:accounts => [:owner]] 
return @transactions.collect_accounts.select_overdrawn?.collect_owner.full_names

あー、今までに比べたら確かに見やすいかもしんない。リファクタリング後みたい。

@transactions.collect {|t| t.account }.select {|a| a.overdrawn? }.collect {|a| a.owner }.collect {|a| a.full_name }
@transactions.collect(&:account).select(&:overdrawn?).collect(&:owner).collect(&:full_name)

こうして並べてみるとto_procはキモいなw 書いてるときはいいけど、 &の向こう側にあのドラマがあるかと思うと字面としてはちょっとどうかと思うわ。 使いまくってるけど。

とりあえずto_procよりも使い勝手は良いかもですよ。 多分to_procの場合引数渡そうとすると

["100", "10"].map &[:to_i, 2]  #=> [4, 2]

ってなると思うけど、map_by_methodなら

["100", "10"].map_to_i(2) #=> [4, 2]

と自然に書けそうだ……と思ったら実装されてない。2行変更。

module GenericMapToProc
  def self.included(base)
    super

    base.module_eval <<-EOS
      def method_missing(method, *args, &block)
        super
      rescue NoMethodError
        error = $!
        begin
          re = /(map|collect|select|each|reject)_([\\w\\_]+\\??)/
          if (match = method.to_s.match(re))
            iterator, callmethod = match[1..2]
            return self.send(iterator) {|item| item.send callmethod, args }   # <-- add args
          end
          return self.map {|item| item.send method.to_s.singularize.to_sym, args }  # <-- add args
        rescue NoMethodError
          nil
        end
        raise error
      end
    EOS
  end
end

unless String.instance_methods.include? "singularize"
  String.module_eval <<- EOS
    def singularize
      self.gsub(/e?sZ/,'')
    end
  EOS
end

Array.send :include, GenericMapToProc

これで一応通る気がする。あんま試してない。

も…う…眠…い…。誰かオレの代わりに授業に出……

RubyForgeつながんね 19:52

gem使おうとしたらつながんない。もう最近で2回遭遇したよ。

October 14, 2006

親指シフター 17:13

そういえば戦うコラムニスト勝谷誠彦さんも親指シフトユーザです。

私は富士通のパソコンの親指シフトという絶滅危惧種キーボードのユーザーである。

ね?

大学では早稲田おとめちっくクラブから少女マンガ研究会に所属していた。

なんだこれwww

ちなみにオレは親指シフトキーボードを使ってるんじゃなくてエミュレータ派。

親指キーを「変換」キーと「無変換」キーにしてるので、 キーボード選びではこの2つのキーの位置がどこまで中央に寄っているかが重要。 「無変換」は「c」の右端、「変換」は「n」の真ん中あたりまで来ていればかなり打ちやすい。 なんか「変換」と「スペース」って組合せもあるみたいだけど、 感触と親指の位置が左右で違う組合せはなんとなくやだ。

なら親指シフトキーボード買えって感じだよなぁ。でも選択肢が少ないしなぁ。 あとスペースの打ちやすさが若干低下することだな……。

あとオレは机の上がすぐにごちゃごちゃしてしまうので、 テンキーのない省スペースなキーボードが良い。 そうするとHappy Hacking Keyboardの日本語配列モデル はなかなかよさげ。

October 18, 2006

ポール・グレアムが言ってた 01:15

学生のためのベンチャー指南」を読んだ。ポール・グレアムのエッセイは読んでるとワクワクしてくるね。 別にベンチャー起こしたい人限定の話ってわけじゃないからお薦めだよ。 オレも起業って行為自体は特に興味ない。1つの手段てだけで。

良い大学であれば、野心を持ち技術的に思考できる人が集中しているはずだ。多分、そういう機会は二度と来ない。ってあるように、 大学で周りにいる人間は貴重なのかもしれない。 そしてそういう人がいる環境は大学にいるうちだけかもしれない。 他愛のない話もいいけど、機会のあるうちに何か貴重な話を聞いておきたいもんです。 まあ「良い大学であれば」てのが気になるが。 「良い大学であれば」「良い大学であ……」「良い大学……」「良い……」

(∩´д`) …

JavaScriptでmapにインスタンスメソッド直接渡したい 22:47

JavaScriptってこう書けてクールだよね。

// JavaScript(with prototype.js)
[ 1, 2, 3 ].each(print);

;; Scheme
(for-each print (list 1 2 3))    ; Schemeタンひさしぶり…

# Ruby
[ 1, 2, 3 ].each {|a| puts a }   # 少々いけてない

インスタンスメソッドについてもこういう書き方ができないかなと思った。 でもprototype.jsはmapやeachに渡した関数を実行するときthisが期待している インスタンスとは違うのでうまくいかない。

// prototype.js is included

var A = Class.create();
A.prototype = {
  initialize: function(value) { this.value = value },
  getValue: function() { return this.value },
  show: function() { console.debug("value: " + this.value) }
  };

array = [ new A(1), new A(2), new A(3) ];
console.debug(array.map(A.prototype.getValue));    // [undefined, undefined, undefined]
array.each(A.prototype.show);                      // value: undefined

thisがリストの要素を参照するようにしてやればいいので、 そうなるようにprototype.jsを変更してみる。

  each: function(iterator) {
    var index = 0;
    try {
      this._each(function(value) {
        try {
          iterator.bind(value)(value, index++);   // .bind(value)を追加
        } catch (e) {
          if (e != $continue) throw e;
        }
      });
    } catch (e) {
      if (e != $break) throw e;
    }
  },

  ……

  collect: function(iterator) {
    var results = [];
    this.each(function(value, index) {
      results.push(iterator.bind(value)(value, index));   // .bind(value)を追加
    });
    return results;
  },

prototype.jsはほとんど読んでないんで変更がほかのところに影響しちゃうかもしれないけど、 とりあえずこれで上のmap(collect)とeachはうまくいく。 あとはEnumerableな関数にちまちまとbindしてけば良さそう。

Rubyの

array.map(&:getValue)

より断然いけてる気がするんだけど。

にしてもJavaScriptはthisが文脈中でころころ変わってなかなか慣れない。

October 23, 2006

小さい本屋がんがれ 02:36

近く?の本屋がつぶれたらしい。こうして大きな本屋だけが残ってくんだな。 なんかどこもこういう流れなんだなぁ……。

思うに小さい本屋こそAmazonの上をいくような情報化が必要な気がする。

本getまでにかかる時間 置いてる本の種類
小さい本屋 近くにあるので短い 少ない
大きい本屋 多少遠出する必要あり そこそこ
Amazon 数日待つ必要がある なんでも

この関係はあれと一緒じゃないか。

速度 容量
キャッシュメモリ 早い 小さい
主記憶 そこそこ そこそこ
補助記憶 遅い たくさん

キャッシュメモリに必要なのはヒット率をあげることだ。 一般的に売れそうなものを置こうとすると大きい本屋に負けるから、 確実に売れるものを置かないといけないんだなぁ。店狭いし。

  1. 欲しいマンガがある
  2. 近くの小さい本屋にはない(確かめてないけど期待値は低い)
  3. 大きい本屋 or Amazonでマンガを買う
  4. しばらくして新刊が出る
  5. なぜか近くの小さい本屋にあたかもオレのために用意したかのように1冊キープしてある
  6. 新刊が出るたびに小さい本屋に行くようになる

みたいな。

そういえば中学のころはチャリで何時間も本屋めぐりをしたもんだ。 あれはあれで欲しい本見つけたときの喜びが大きくてワクワクしてたけど、 今なら原付で大きいところ行くな。 きっとあのころの本屋は軒並つぶれてるんだろうな……。

以上、レポート書いてたら脇道にそれてった妄想の一部でした。 やべーこんなことしてないで、あと倍は書かないといけないよ。 もーあしたは午後から学校行こう。そうしよう。 コアタイム(8:40〜21:10)なんて知らんがな(´・ω・`)

October 29, 2006

Net::SSHでエラー 17:13

capistrano使おうとしたらrakeがabortすっからなんだと思ったら多分これだよ。

% irb -rubygems                                                                                          
>> require "net/ssh"
=> false
session = Net::SSH.start("192.168.11.x", "xxx")
NoMethodError: undefined method `<' for #<OpenSSL::BN:0xb77c4800>
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/util/openssl.rb:55:in `valid?'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/kex/dh.rb:102:in `generate_key'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/kex/dh.rb:100:in `generate_key'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/kex/dh.rb:208:in `exchange_keys'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/lifecycle/proxy.rb:60:in `method_missing'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/session.rb:172:in `exchange_keys'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/session.rb:133:in `kexinit'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/session.rb:100:in `initialize'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/transport/services.rb:121:in `register_services'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/lifecycle/singleton.rb:42:in `call'
        from /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/lifecycle/singleton.rb:40:in `call'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/service-point.rb:122:in `instance'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/container.rb:308:in `[]'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/connection/services.rb:60:in `register_services'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/lifecycle/singleton.rb:42:in `call'
... 4 levels...
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/service/process/services.rb:53:in `register_services'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/lifecycle/singleton.rb:42:in `call'
        from /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/lifecycle/singleton.rb:40:in `call'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/service-point.rb:122:in `instance'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/container.rb:308:in `get'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/container.rb:380:in `method_missing'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/service/services.rb:41:in `register_services'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/container.rb:365:in `require'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/definition-context.rb:77:in `require'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/session.rb:119:in `initialize'
        from /usr/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/container.rb:107:in `define'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/session.rb:97:in `initialize'
        from /usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh.rb:47:in `start'
        from (irb):3

えー、勘弁してくれよ〜。そこはサクサクっと行こうよ〜。

うーん、/usr/lib/ruby/gems/1.8/gems/net-ssh-1.0.10/lib/net/ssh/util/openssl.rbの OpenSSL::BNでinclude Comparableしたらrake remote:setupが動いてしまった。

不可解だ……。/usr/lib/ruby/1.8/openssl/bn.rbでもincludeしてるみたいなんだけどなー。 そういえばどこでOpenSSL::BN#<=>を定義してるんだろ。見なかったけど。まーでもすぐ片付いて良かった。

マラソン 19:19

B'zのMONSTER以来、ひさびさにCDを購入。ついに1〜7までそろった。 1枚で3通りの楽しみ方があるアニメタルマラソン。やめられないんだ、これが。

ANIMETAL・MARATHON VII~戦え!メタル・ヒーロー~
ANIMETAL 岩里祐穂 吉元由美 藤林聖子 小池一夫 八手三郎
バップ (2005/10/21)
売り上げランキング: 3,455
おすすめ度の平均: 5
5 まだまだストックはあるか!?

特撮。ジャスピオンとスピルバンが収録されてると知って思い出したように今回の買いものをした。 でもむしろ原曲を聴きたいな。YouTube見てたら懐かしくって。話はまったく覚えてないけど。

なんか知らんけどジャスピオンはブラジル版?ばっかだねYouTube。

ANIMETAL MARATHON VI-SENTIMETAL-
ANIMETAL
バップ (2004/09/22)
売り上げランキング: 11,696
おすすめ度の平均: 4.5
5 不滅のアニソン・メタル・メドレー
4 B面ソングコレクション!?

アニメ。またマジンガーとゲッターがいるよ! みゆきはこの前見てました。

アニメタル・マラソンIII~円谷プロ編~
アニメタル 東京一 清瀬かずほ 金城哲夫
SE (1998/10/21)
売り上げランキング: 16,037
おすすめ度の平均: 5
5 やってくれました

ウルトラマンシリーズ。まあ外れなわけがない。

しかしまだまだ聴きたい曲があるな。アニメタルにはネタをやり尽くすまでがんばってもらわないと。 なんか今年は10周年らしい。これまでの10年はイントロダクションだよね!