K.Sasada's Home Page

Diary - 2010 January

研究日記

睦月

_31(Sun)

固形物取らないダイエット7日目.7kg 減った.あと一週間くらい続ければ,もうちょっといくかなぁ.


昨日はキャラメルヨーグルトとやらを食べた.美味しかった.今はいろんなもんがあるんだねぇ.

_29(Fri)

固形物を食べないダイエット 5 日目.


PowerPoint の画像はこうやって EPS 化すればいいのか.知らなかった.


うちの M2 の発表が終わった.総じて,悪くない印象.


修士論文審査会が終わって,だいぶ一段落.週末はお休みします.


しかし,「さぁ,週末だ美味しいものでも食べるぞ」とか思えないと,驚くほど人生に味わいがないというか.

まだ,お腹が変なので(毎食なんとかゼリー,ポカリをがぶ飲みだけだからか?),食べたい気はしないのだけど,味気ない.

_みずしま(Sat Jan 30 00:14:17 +0900 2010)

 過剰なカロリー制限はダイエットのためにはかえってよろしく無いと思いますので、ほどほどに。

_28(Thu)

なんかもう駄目かも.

頑張れ若者.

_24(Sun)

また「嫁はまだか」イベント発生.


なんと,去年の9月以来のコミットだったらしい.

_kt(Mon Jan 25 18:11:39 +0900 2010)

 嫁はまだなんですか?

_にしお(Fri Jan 29 18:58:48 +0900 2010)

 去年の9月に嫁をコミットしたのかと思った

_22(Fri)

なんかいろんなことがあった日だった.

_20(Wed)

だるいだるい.

_17(Sun)

RubyKaigi 会議だった.


久々に Rails勉強会に出席.学生さんのメモリプロファイラの話を聞いてもらった.

やはり,フロントエンドへの注文が多いな.これからその辺はいじるんだろうけど.

_16(Sat)

もうこんな時間.

_15(Fri)

なんか,とても楽しいハックの話を聞いた.凄かった.相手にとっては大変申し訳ないことをしてしまった気がする.


しかし,14 (木) は酷い日だった.

  • 2:00 就寝
  • 6:30 起床,朝風呂,朝飯
  • 9:00-12:00 プロシン最終日
  • 12:00-14:50 秋葉原へ移動
  • 14:50-15:00 めるめる
  • 15:00-15:40 修論拝見
  • 15:40-16:00 本郷へ移動
  • 16:00-18:00 何か発表
  • 18:00-18:30 秋葉原へ移動
  • 18:30-20:30 修論拝見
  • 20:30-21:00 何やってたか覚えてない
  • 21:00-00:30 D論説明

さすがに腹が減った.


なんか,防災訓練をやっている.凄い規模だ.

_14(Thu)

「毎週30人が論文を紹介するので,読んだ論文記録が1000本を越えた」らしい.なんというか,凄すぎる.うちもやろう.

_13(Wed)

憧れの奥村先生にご挨拶ができて大変光栄でございました.

というのも,高校のころ,Cアルゴリズム辞典を読んで感動してこの業界に入ったような感じなので.


なんか,最近飲み会で寝てしまう.比較的,睡眠欲には勝てない質だったのだけれど.

_11(Mon)

身につまされるというか.俺もオフィスアワーとかあったほうがいいんだろうか.あれば,それ以外の時間はシャットアウトしていいんだろうか,とか.多分違うな.

_10(Sun)

17時間も寝てしまった.ためていた家事とかの計画が全部おじゃんだ.

_9(Sat)

MYTHREAD という語を見て, myth read って何か悩んだ.


外部イテレータを高速化するための仕組み(というか,Fiber を使わない用にするための仕組み)を作ってみた.

module OuterIterator
  def rewind
    @oe_prev_state = @oe_reset_value
    remove_instance_variable :prev_state
  end

  def next
    raise StopIteration unless has_next?
    next_value
  end

  def initialize_outeriterator reset_value = 0, data = nil
    @oe_prev_state = reset_value
    @oe_reset_value = reset_value
    @oe_data = data
  end
end

module IntegerTimesOuterIterator
  include OuterIterator

  def next_value
    r = @oe_prev_state
    @oe_prev_state += 1
    r
  end

  def has_next?
    @oe_prev_state < @oe_data
  end
end

module ArrayOuterIterator
  include OuterIterator

  def next_value
    r = @oe_prev_state
    @oe_prev_state += 1
    @oe_data[r]
  end

  def has_next?
    @oe_prev_state < @oe_data.size
  end
end

max = 1_000_000
ary = Array.new(max)

iter = max.times

oeiter = max.times
oeiter.extend IntegerTimesOuterIterator
oeiter.initialize_outeriterator 0, max

aryiter = ary.each

aryoeiter = ary.each
aryoeiter.extend ArrayOuterIterator
aryoeiter.initialize_outeriterator 0, ary

require 'benchmark'

Benchmark.bm{|x|
  x.report("times   \t"){
    max.times{}
  }
  x.report("times next\t"){
    loop{
      iter.next
    }
  }
  x.report("times oe\t"){
    loop{
      oeiter.next
    }
  }
  x.report("ary     \t"){
    ary.each{}
  }
  x.report("ary next\t"){
    loop{
      aryiter.next
    }
  }
  x.report("ary oe   \t"){
    loop{
     aryoeiter.next
    }
  }
}

こんなのを作ってみた.

ruby 1.9.2dev (2009-09-11 trunk 24849) [i386-mswin32_90]
      user     system      total        real
times   	  0.125000   0.000000   0.125000 (  0.131000)
times next	  3.026000   0.000000   3.026000 (  3.067000)
times oe	  0.827000   0.000000   0.827000 (  0.790000)
ary     	  0.125000   0.000000   0.125000 (  0.137000)
ary next	  2.964000   0.000000   2.964000 (  2.811000)
ary oe   	  0.827000   0.000000   0.827000 (  0.874000)

3倍くらい速くなる.

しかし,今学生さんにやってもらっている Fiber の高速化で 3 倍くらい速くなるらしいので,この程度の高速化は意味がない気がする.


と,久々に Ruby っぽい内容.


ruby 1.9.2dev (2010-01-08 trunk 26249) [x86_64-linux]
      user     system      total        real
times             0.100000   0.000000   0.100000 (  0.097459)
times next        2.740000   0.000000   2.740000 (  2.741926)
times oe          0.550000   0.000000   0.550000 (  0.544832)
ary               0.100000   0.000000   0.100000 (  0.098708)
ary next          2.770000   0.000000   2.770000 (  2.767319)
ary oe            0.650000   0.010000   0.660000 (  0.650934)

まぁ,環境によりけりだねぇ.gem として作って置くのはいいかもしれんなぁ.

_8(Fri)

明日起きれるかな.

_7(Thu)

Actor model とプロセス代数の話がよくわかんなかったんだけど,比較があった.Wikipedia 恐るべし.


Actor model が自然物理から来てるって理屈がよくわかんなかったんだけど,どういう話なんだろう.

_sumii(Thu Jan 07 18:27:01 +0900 2010)

 Actor modelに関するHewitt氏の主張は少し独特のように思います。Wikipediaでは http://www.guardian.co.uk/technology/2007/dec/09/wikipedia.internet という事態に至りました。

_6(Wed)

こういうのが書けるセンスは凄いなぁ.


PLDIr.勉強になるなぁ.

YARV に実装してみたい.

_shiro(Thu Jan 07 07:56:30 +0900 2010)

おもしろいけど、目的はsize optimizationみたいですね > Bytecode compression via... インストラクション融合の自動発見にも使えるかもしれないけれど、学習セットにoverfittingしちゃうようだと困るし、実行速度だけをmetricsにするとVMのISA=CPUのISAにしてネイティブコード生成するのが一番良かったりしそうで、バランスが難しいかも。

_ささだ(Thu Jan 07 11:14:18 +0900 2010)

 JITまで考えるといいと思うのですが,考えないとネイティブコードレベルに落とすと命令発行時間だけが大きくなりそうです.

_5(Tue)

いきなり一月から大変なことに.


歯医者にいったら2時間かかった.どれだけ待たせるんだ....

_4(Mon)

2000 年の記事だけど,面白いな.私も,もっと大学を利用して色々出来るといいと思うんだけど.


noblesse oblige なぁ.全然そういう意識は無かったのだけれど,恵まれていないかというと,全然そんなことは無いだろうなぁ.


海外ボカロ、リアル路線からアニメ/コミック路線に方針転換?

ボカロって一般用語なの? 何か最初わからなかった.


最近困った git の話.

■シチュエーション1 local -> remote

local (ClientA)で作業してきた git リポジトリがあるとする.他の人(ClientB)と共同作業をしたくなった.ClientB から ClientA は入れない(ssh で.以下同じ).そこで,A,B がともにアクセスできる ServerA を用意した.

そこで,取るべき選択は?

■シチュエーション2 remote -> remote

ClientA からアクセスできる ServerA 上に git リポジトリを作っていた.しかし,ServerA から ServerB にリポジトリを移さなければいけなくなった.ServerB から ServerA には入れない.逆も同じ.ClientA は,どちらにも入れる.

そこで,取るべき選択は?


結局どうしたかというと,ClientA のリポジトリを scp でサーバへコピーしたという.もうちょっとなんとかならないのかな.なんで git clone remote remote って出来ないんだろう.

コピー先サーバで git init して云々,が正しいんだろうか.こんなケースは滅多に無いのかなぁ.


今年はもうちょっとうまい文章が書けるようになりたい.

_okkez(Thu Feb 11 11:34:44 +0900 2010)

 git format-patch でパッチを作ってメールで送るというのはどうでしょう?

_1(Fri)

明けました.

今年もよろしくお願いします.


  • 一日一回はコード書きたい.
  • 文章が書けるようになりたい.
  • 健康でいたい.

中吉だった.

Sasada Koichi / ko1 at atdot dot net
$Date: 2003/04/28 10:27:51 $