« 2007年07月 | メイン | 2007年09月 »

2007年08月 アーカイブ

2007年08月01日

Hash.newよくわかんね

Hash.new()の引数に何かを与えると、デフォルト値が与えられて初期化しなくてすむ。と言う認識なんだけど、

irb(main):001:0> a = Hash.new({})
=> {}
irb(main):002:0> a['a']['b'] = 1
=> 1
irb(main):003:0> a
=> {}
irb(main):004:0> a['a']
=> {"b"=>1}

え?

irb(main):005:0> a = {}
=> {}
irb(main):006:0> a['a'] = {}
=> {}
irb(main):007:0> a['a']['b'] = 1
=> 1
irb(main):008:0> a
=> {"a"=>{"b"=>1}}

これが期待されるよね普通。何が分かってないんだろう?

続きを読む "Hash.newよくわかんね" »

2007年08月05日

mechanize.rbでニコニコ動画のflvをダウンロード

Perlでニコニコ動画のflvとコメントxmlをダウンロードする (Yusukebe::Tech)
perl - 勝手に添削 - ニコニコ動画ダウンローダー (404 Blog Not Found)

と言う訳でRubyの勉強のためにネタをパクってきました。ソースは以下。

#!/usr/bin/env ruby -Ku
require 'yaml'
require 'rubygems'
require 'mechanize'
require 'cgi'

video_id = ARGV.first.scan(/sm\d+$/).first

agent = WWW::Mechanize.new
agent.post('http://www.nicovideo.jp/login', YAML.load_file('nico.yaml'))

agent.get_file('http://www.nicovideo.jp/watch/' + video_id)
content = agent.get_file('http://www.nicovideo.jp/api/getflv?v=' + video_id)
params = content.scan(/([^&]+)=([^&]*)/).inject({}){|h, v| h[v[0]] = v[1]; h}
video_url = CGI.unescape(params['url'])

puts "downloading url : " + video_url
video_file = open(video_id + '.flv', 'w')
video_file.print agent.get_file(video_url)
video_file.close

使い方としては、要mechanizeで、
% sudo gem install mechanize
した後、
- 
- mail
- your@mail.jp
-
- password
- yourpass
をnico.yamlに保存して、
% ruby nicodown.rb sm673443
な感じ。
% ruby nicodown.rb http://www.nicovideo.jp/watch/sm673443
もok。

以下思った点。
1) mechanizeをログイン状態の保持だけに使うのは、狐狩りにミサイル持ってくるようなもんだと思うんだけど、何が適当なんだろ。
2) mechanizeでpostの引数がArray of Arrayなのが気持ち悪い。
3) まだ全然よく分かってない(ファイルの書き出しが分からなくてリファレンス引いたww)

まあでも2ヶ月でFizzBuzzが書けないよレベルからニコ動落とせるよレベルになれて嬉しい。あんまり変わってない気もするけど。

続きを読む "mechanize.rbでニコニコ動画のflvをダウンロード" »

2007年08月07日

きょうじんAPI

きょうじんAPIっぽいものを作った
http://polog.org/lab/kyoujin/kyoujin.cgi
JSONPらしきものを出力してくれるが、よくわかっていないので正しいかどうかは知らない。
ラッパーはcallbackと言う名前、Hash keyはtalk。
まあとにかく僕は今日は舟遊びをして死にそうになっているので寝ます。東京湾最高。

続きを読む "きょうじんAPI" »

2007年08月23日

Googleの検索結果ページは画像を一つしか読み込んでいない

T/O
CTOから教えてもらったんですが、検索結果のページをFireBugのNetで見るとこんな感じに!
読んでるイメージはこれ
たぶんjsで切ってるんだと思いますが、そちらも超圧縮されてる徹底ぶり。

偏執狂たれとはこの業界よく耳にする格言ですが、ほんとに脱帽ものの偏執狂っぷりです。Googleすごすぎ。

2007年08月25日

Award on Rails

これで事例紹介プレゼンやってきました。割といろんなバックグラウンドの人と話せておもしろかったです。結構デカめのベンダーな人とかも来ていて、やっぱOSSって無視できないんだなーってのが肌で実感できる感じですね。
それにしても某社のエバンジェリストの方がすげー気さくで笑いました。「やっぱOS Xの人多いですよね。や、うちもそうなんすけど」みたいな。

Powered by
Movable Type 3.34