A Day in the Life

2007-04-05

twitter

これっぽっちも相手がどんな人か知らない人から 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書きの日々です。

記事の一覧 >