2007-04-05
これっぽっちも相手がどんな人か知らない人から add friend が来て困る。せめてサイト名とかその他情報を載せて欲しい。もしくは一言なんか云ってほしい。
あれだ、orkut が出たときのとりあえず誰でもつっこんでおけ感なのかなー。人見知りが激しいのでするーするー。
uniq で block とりたい
sort が block とれるんなら uniq にあってもいいじゃないか!
こんなん。
#!/usr/bin/ruby
class Array
alias_method :_original_uniq, :uniq
def uniq
if block_given?
self.inject({}) do |hash, item|
hash[yield(item)] ||= item
hash
end.values
else
_original_uniq
end
end
end
require 'test/unit'
class BlockUniqTest < Test::Unit::TestCase
def test_original_uniq
assert_equal [1,1,1,1].uniq, [1]
end
def test_uniq_block
assert_equal [{:a=>1}, {:a=>1}, {:a=>2}, {:a=>1}].uniq {|i| i[:a]}, [{:a => 1}, {:a => 2}]
end
end
んー。もっとスマートに実装書けるのかしら。あと Test::Base で
--- array .uniq {|i| i[:a}
とか書きたいと思った。今だと引数までは書けるけど、ブロック引数は書けないんだよな。最初 Test::Base で書いたけどどう考えても assert のほうがシンプルなので辞めた。
ひさしぶりに ruby の Test::Base った
うわぁ自分でも使い方忘れてるよ。ドキュメント皆無!昔書いたテストコードがドキュメント!
http://test-base.rubyforge.org/coverage/
あとちょっとなんだよなー。そういや Test::Base の syntax は DSL だよね。
AS3 での Date#getTime() 関数の最小変更値は16ms から?
えええ。正確なベンチがとれない。
for (var i:uint = 0; i < 1000; i++) {
log(-(new Date).getTime() + (new Date).getTime());
}
みたいなコードを回すとほとんど0なんだけど時々16になる。で、速くしたい箇所に手を入れてもベンチで0か16しか表示されなくて参考にならない。むむむ。
だれか1msの差も追えるようなベンチマーク方法あったら教えてplz。
16じゃなくて15のときもあるな。うーん。
フレームレート関係するのかなぁ。でも 24 だったので 1000 / 24 = 41 だしなー。60だと16になる。
HD-600
最近AV観るときにしかつかってなかった。久しぶりに普通に使った。
英語
きのうえとさんと話して、やっぱ本気で勉強しないと身につかないよなー、と思った。でもモチベーションがなー。そもそも基礎が中学英語レベルしか身についてないので死ねます。大学受験は英語使わなかったし。
やっぷく二日目
今日もAS書きの日々です。