K.Sasada's Home Page

Diary - 2009 June

研究日記

水無月

_30(Tue)

うう,間に合うかなぁ.

_29(Mon)

IPの偽装とかIPを隠すってどういう意味だろう?

_km(Tue Jun 30 01:06:45 +0900 2009)

 IPアドレススプーフィングって、単にIPスプーフィングとも言うし、そんなもんじゃない?

_27(Sat)

買い物ネタが多いのだけど,ちょっと買い物にいくつもりが3時間ほど話を聞いてしまった.どうすっかな,これ.

_26(Fri)

暑いね−.

_25(Thu)

お客さんに出すお菓子とか,お茶とかを自腹で用意するので,できるだけ安いお店を探したい.秋葉原にはドンキホーテがあって,比較的安いんだけど,もうちょっと安いと助かるなぁ,と思っている.さて,秋葉原近辺にどっかにないもんでしょうか.

上野アメ横に行けばいいんだろうか.

_muscovyduck(Fri Jun 26 06:02:55 +0900 2009)

 アメ横なら「二木の菓子」でしょうか。http://www.nikinokashi.co.jp/

_ささだ(Fri Jun 26 12:45:51 +0900 2009)

 ご紹介ありがとうございます.とりあえず出勤するとき探したんだけど見つけられなかったという.今度は地図使って真面目に探してみよう.

_km(Fri Jun 26 18:36:07 +0900 2009)

 バルクで買って、100円ショップよりコストパフォーマンスを上げたい、てこと? 置き菓子ってコスパはそんなによくないのかな。

_ささだ(Fri Jun 26 22:45:29 +0900 2009)

 コスパ(と書くと,色んな意味がありそうだな)をあげたいということ.自分のおやつ用も要るし.

_24(Wed)

http://d.hatena.ne.jp/m-shiba/20090624

9P! 面白いなあ.


え,ちょ,マジで?

  • 俺がこれを知らなかった
  • これを,誰かが教えてくれなかった

という点で,非常に衝撃的だった.しかし,このネタでOOPSLAか.PLDIとかかと思った.

しかも,評価対象は 0.4.1 かよ! ちょ.これはやばい.

_23(Tue)

iPhone 3.0 にした.拍子抜けするほど問題がなかった(液晶割れ以外).

CalDAV を試したいんだが,さて CalDAV サーバがないのはどうしようかな.


紆余曲折の末,CalDAV のデータを iPhone で見れた! これで,歯医者で予定表を確認するとき,Laptop を開かなくてもよくなった.


しかし,全部のデータを CalDAV 上で管理してもいいんだろうか.色々不安は残る.

_niam(Wed Jun 24 02:50:01 +0900 2009)

 GoogleカレンダーのCalDavをiPhoneから登録して見るのではだめなのでしょうか。自分は、そうしています。http://ameblo.jp/shiogama-gadget/entry-10284805373.html

_ささだ(Wed Jun 24 12:10:48 +0900 2009)

 仕事の予定を Google Calendar に登録するのはどうなのかなー,と.

_22(Mon)

http://twitter.com/kzhk/status/2265902930

出来たらいいよね.と他人事のようには言ってはいられない.

格好いい.肝に銘じます.


いや,それなりにそう思っているんだけれど,クラウドの文脈では私はあまり手を動かしてないんだよな.学生さん任せ.


今月のPTTも,なかなか面白そうですよ.TNT は卜部君の会社で,卜部君からの紹介.

http://www.ci.i.u-tokyo.ac.jp/~sasada/ptt/arc/356/index.html

■日時: 2009年6月25日(木) 18:30〜
■場所: 東京大学 情報理工学系研究科 秋葉原拠点 秋葉原ダイビル 13F

 東京大学大学院情報理工学系研究科
 創造情報学専攻
 http://www.i.u-tokyo.ac.jp/map/index.shtml#aki 

 〒101-0021 東京都千代田区外神田1-18-13
 秋葉原ダイビル(13階)[*地上31階建のビル]
(13階のエレベータを降りてすぐの部屋になります)

 1階に警備員の方がいらっしゃいます。もし何か言われたら「13階の
東京大学に用事がある」と仰ってください。また、20時以降、表の入
り口が閉まります。裏口からお回りください。

・JR「秋葉原」駅(電気街側出口)より徒歩1分
・地下鉄日比谷線「秋葉原」駅より徒歩4分
・地下鉄銀座線「末広町」駅より徒歩5分

■話者: 伊倉広徳 (株式会社トランス・ニュー・テクノロジー)
■題名: ソフトコアCPUの意味するもの〜理想と実装の狭間で〜
■概要:
本発表では,ソフトコアCPUの可能性を端緒に,今後訪ずれるであ
ろう問題解決手法の本質的な変化について一つの提案を行う.FPGA
内の論理セル上に構築されるソフトコアCPUは一定の範囲内では旧
来のハードコアCPUに遜色が無いと言えるレベルまで急速に成長し
てきている.再構成可能なハードウェアをベースとするアーキテク
チャは多数存在するが,その中でもFPGA上にCPUを構成し,その上
でソフトウェアとハードウェアを任意に組み合わせて問題を解くと
いう方法は,階層化の適用による最も純粋な結果であると捉えるこ
ともできる.本発表では,実践的側面と理論的側面の両面からこの
モデルの現状を確認し,今後の発展への提案を行う.

なんか,今日,しんどい.

_21(Sun)

うう,仕事がはかどらない.


空気が悪い.どうしてくれよう.


和田先生西尾先生 の CG 対決が見てみたい.


http://www.asahi.com/national/update/0621/OSK200906200188.html?ref=rss

一方、県東部の高校では2年生男子(17)が「足が見えるミニのほうがいい」と本音も。

素直だなあ.どうやってこういうコメント取ってくるんだろう.

しかし,ナマ足って表現が凄いな.

_takai(Mon Jun 22 06:03:06 +0900 2009)

 記者「やっぱり足が見えるからミニの方がいいですよね?」学生「うーん、そうですかねー」

_にしお(Mon Jun 22 17:21:23 +0900 2009)

 CGって対決するもんじゃない気がするがw プロシンの企画でFIFOLでのコーディング対決とか万年カレンダーのときみたいにお題を決めてCGを作るとかするといいのかも?

_20(Sat)

なぜか最近忙しい.ちょっと考えてみる.

  • 大学の仕事 - あれやこれや
  • 大学の教育 - あんまりない(週1のゼミくらいしか,話を聞くことが出来ない)(でも,あんまり構うと嫌な顔をされる)
  • 大学の研究 - あんまりやってない orz
  • 研究室のこと - 最近,研究室に訪問したい,という人がちょっと来てる
  • 学会の仕事 - あんまりない
  • イベント関連
    • RubyKaigi2009
    • 夏のプロシン
    • 冬のプロシン
    • Ruby開発ミーティング
    • PTT
  • あの査読
  • この査読
  • ruby hack

こう見ると,あんまりないな.なんでこんなに忙しい気がするんだろう.IRC とか twitter ばかりやってるからだろうか.そんな気がする.


合間に,PS3 に Linux を(やっと)インストールしてみる.よくわかんなかったから,YDL を入れてみるが,管理できるだろうか....X11 とか要らないんだけど,勝手に入ってしまった.自動アップデートとか,セキュリティ関連の話とか,どうやるんだ.

Ubuntu で,ふつうに出来るのかなぁ.


朝マックは5時からなのなぁ.


あれぇ,ゲーム部に10GB残しておいたはずなのに,ディスクを全部 Linux に使っている.まぁ,別にゲーム出来なくてもいいんだけど.... ほんとか?

_たま(Sat Jun 20 20:09:58 +0900 2009)

 こっそりフォローしといた。

_19(Fri)

梅田さんが理想としているのと,CC を用いて実現したい世界というのは似てるのかなぁ,とか思った.そんで,CC を「オープンソース」という文脈で使うとチグハグな気がするけれど,そのようなチグハグさが,梅田さんの話にはあるのかなぁ,と思った.

と,IRC で議論しながら思った.

いや,レッシグさんの著作も,梅田さんの著作も読んだことないんですが.


今年の夏のプロシン,プログラムが豪華で楽しそう.RubyKaigi とか以外にも,楽しいイベント沢山あるよ?


http://www.nicovideo.jp/watch/sm7270634 すごいなー,おもしろいなー,と思って見てたんだけど,きっと,ローカルな解(自分の周りしか見ないでよける)とはまることもあるよなー,どうするんだろう,と思ったら bomb 使ってら.

_18(Thu)

分散計算についての思索を深める.ただ単にぼーっとしていただけな気がする.


タスク分散とか,そういう話をするのもいいが,いい加減自分のタスク管理をしっかり出来るようにならないと.なんなんだ,この駄目な感じは.

_17(Wed)

なんとなく,地デジ対応のHDDレコーダーが欲しいなぁ,と思いながら,そういえば自宅にはTVがないことに気付いてどうしようかと.できれば,PCのディスプレイと共用がいいんだけど,何がいいんですかね.

S2411W があるんだけど,レコーダ買ってきて,HDMI->DVI変換で見るかねえ.どれくらい幸せに見れるんだろう.

_16(Tue)

dfree をうまく使うというのは,我ながらいい案だ.


lenny には gonzui が入ってたので,使ってみたらむちゃくちゃ遅い.トップページを見るためだけで,凄い時間がかかる.これは.なんでだろう?


インテル® 64 アーキテクチャーおよび IA-32 アーキテクチャー最適化リファレンス・マニュアル [日本語: PDF 形式 4,293 KB] を読んでる.

http://www.intel.co.jp/jp/download/index.htm より.

インテル® Pentium® M プロセッサー、インテル® Core™ Solo プロセッサー、インテル® Core™ Duo プロセッサーは、ジャンプの向きに従った条件分岐を静的には予測しない。これらのプロセッサーでは、すべての条件分岐は、最初に発生したときでも動的に予測される。

へー.へー.

間接分岐を行う場合、最も可能性が高い分岐ターゲットをその間接分岐の直後に配置する。あるいは、間接分岐を使用するが、それらを分岐予測ハードウェアで予測できない場合は、間接分岐の後にUD2 命令を配置する。これにより、プロセッサーによるフォールスルー・パスのデコードが停止する。

ud2 なんて命令知らなかったよ.

_ひげぽん(Tue Jun 16 23:00:39 +0900 2009)

 Ypsilon の藤田さんが使っていましたね> ud2

_ささだ(Wed Jun 17 00:03:07 +0900 2009)

 おお,すごい.

_15(Mon)

SWEST 行きたいと思ってたんだけど,大学院入試の日程と被っていていけないことに気付いた.しくしく.


RDoc の T_DATA の数.

Proc が多いね.


Let's note F8 の AC アダプタの故障,これで 3 度め.

今回は,パナソニックお客様相談センターではなく,マイレッツ倶楽部カスタマーズデスク,修理窓口,というところに電話してみた.ら,ちょっと尋常じゃない対応をされてしまって,つい電話口で怒鳴ってしまった.すみません.まさか,自分が「もっと話が出来る人と代わってもらえませんか」なんて,ひどいことをいうとは思わなかった.すみません.

しかし,やはり顧客の心情を考慮した受け答えというのは大事だなぁ.

_14(Sun)

shiro さんも,さくっと答えた.さすがだなぁ.


RubyKaigi 会議さぼってたら,2次発売の枚数が凄いことになりそうだということを聞く.


RubyKaigi は何処に行くんだろうな.やはり,参加したい人がみんな参加できる会議を目指すべき?


test を書いて実行して,通ったからコミットしたら,実行する端末を間違えて,古いテストを走らせただけだったという


プロファイラ関連の情報,あとは何かな.


GC の heap slot 関連.ちょっと面白い.


1 object あたりのメモリ使用量(の平均).rdoc 後半では,File オブジェクトが大きくなっているのがわかる.

_13(Sat)

http://pc12.2ch.net/test/read.cgi/tech/1238194350/662

に話題が挙げられているが,まともな解答無いな.x 軸(時間軸)の目盛りはなんだ,という話.縦軸とは言わない>666


腹一杯.


require 'samplingprofiler/memprofile'
require 'samplingprofiler/linuxmemprofile'
require 'samplingprofiler/objprofile'

top = []

10.times{
  a = []
  1_000_000.times{
    a << Array.new(100/4)
  } # allocate 100MB
  # allocate additional one
  top << Array.new(100)
  a = nil
  GC.start
}
sleep 10

こんなコードを書く.つまり,Array を沢山作って,解放,を繰り返すようなプログラム.

そもそも,heap_slots を解放していないのが盲点というか,あれだけれど,とりあえず OS にはメモリを返していないことがわかった.今のままの(compaction 無しの)GC 戦略だと,そういうもんかなぁ.そういうもんかもなぁ.mostly copying を,作らないと駄目かなあ.


こういう解析,面白いと思うんだけど,なかなか誰も乗ってくれないのが寂しい.


ここで,ある工夫をすると,ほらこの通り,メモリがちゃんと OS に返ってくれます!

... 嘘じゃん! もっとメモリ食うようになっちゃったじゃん!! おっかしいなぁ.


というのは,間抜けなバグだったから.さて,計り直してみよ−.

うーん,結局総利用メモリ量は変わってないな,これ....うーん.

あー,いや,工夫してないのに比べて,10MBくらい減ってるかな.うーん.


で,具体的には何が問題点だったか,そして何が解決方法だったか,というと,面倒なので省略.いや,malloc の代わりに mmap/munmap 使えばすぐに解放されると思った,という話なんだけれど.しかし,どうしたもんかなー.munmap すれば,すぐに解放されるわけじゃないのなぁ.それとも,/proc/statm の数値の更新が間に合ってない(つまり,例えばメモリ圧縮したらすぐに使われるとか?

やってみよう.

require 'samplingprofiler/memprofile'
require 'samplingprofiler/linuxmemprofile'
require 'samplingprofiler/objprofile'

top = []

10.times{
  a = []
  1_000_000.times{
    a << Array.new(100/4)
  } # allocate 100MB
  # allocate additional one
  top << Array.new(100)
  a = nil
  GC.start
  obj = Array.new(200/4) # allocate 200MB
  obj = nil
}
GC.satrt
sleep 10

ううむ,ますます駄目な感じに.メモリ使用量的には変わらないが,なんで TOTAL の数がこんなに駄目なんだ?(最初,保守的GCを疑ったが,ちゃんとオブジェクトは free になっている) なんとなく,heap_slots の解放処理が駄目なだけな気がしないでもない.


試しに,munmap の前に madvise を入れてみたが,当然のことながら,ほとんど効かなかった.

まぁ,それはそれとして,やっぱり malloc に頼ってる限り,OS にはメモリは返されることは無いなー.多分.つまり,メモリ食いは,一般的には heap_slot じゃなくて,xmalloc する奴ら,な気がする.今回のはあらかさまにそうだしね.

これからどうしようかなぁ.


誰か Rails のベンチマーク用に使えそうなプログラムって持ってないですかね.Rails bench を見るのがいいのかなぁ.

_sheepman(Sat Jun 13 22:26:10 +0900 2009)

 brk で malloc, free を再実装するしか手はないのでは。

_ささだ(Sun Jun 14 00:56:05 +0900 2009)

 どちらかというと mmap で,というような気もしますが,再実装するしか無さそうではあります.

_12(Fri)

色で表現してみたり. http://www.atdot.net/~ko1/tmp/frame.html

これを学生に見せたら,デザインが悪いと怒られた.


夏のプロシンの発表募集が今日までです. http://spro2009.prosym.jp/

一緒にいろいろ議論しませんか?

_11(Thu)

http://www.jipdec.or.jp/camp/

何やら,お手伝いすることになりました.剣は振り回さない予定.どうなることやら.講義内容の見かけの難易度を上げすぎたような気がするので,3人くらいしか apply がなかったらどうしよう,と怖がってるんですが,どうなりますかね.

そういえば,Ruby に詳しいチューターを募集しないといけないんだけど,誰かいませんかね.


aobench の実行結果.aobench.rb は三浦さんのところから頂きました.

http://www.atdot.net/fp_store/f.7wu1lk/file.g.png

TOTAL = allocated + freed.heap_slot を増やしたら,GC の回数ががくんと減っているのがわかる.

このベンチマークのメモリ食うところは,言うまでもなく T_FLOAT というテンポラリオブジェクト.この辺は,例えば私のFloat埋め込みをすると劇的に変わると思う.

1秒にGCは0.2秒(平均)かかっているので,2割くらい速くなる,かもしれない.GC だけなら.

しかし,これも node が多いな.一定数(8000個くらい)ある.中身はなんだろう.


パンがかびてた orz 6/4 賞味期限だから,まだ大丈夫かと思ったんだけどなあ.


http://www.atdot.net/fp_store/f.4mv1lk/file.g.png

ふつーに,メソッド定義用の node だった.メソッド定義関連は,全部作り直した方がいい気がするね.


てか,コンパイル時に使う node と,実行時に使うノードは便利だからって混ぜちゃ駄目だな.

_Yugui(Fri Jun 12 11:33:54 +0900 2009)

 泊まり込みは無理だけど、会場への通いでよけりゃやりますが。千葉まで通勤してたから通える距離なのは実証済み < チューター

_ささだ(Fri Jun 12 12:28:22 +0900 2009)

 凄い人が釣れた! ぶらぼー!

_10(Wed)

人のこと全然言えないんだけど,お金もらってるのならもうちょっと真面目に....さすがにその対応はないよ.


久々に,眠くて眠くてしょうがなくて寝た.5時間だけだけど,すっきり.


昨日の問題,答えられた人は殆どいない.

アルファベットとかを使うように変更:http://www.atdot.net/fp_store/f.7x40lk/file.%2596%25B3%2591%25E8.png

ヒント:fib(40) の場合>http://www.atdot.net/fp_store/f.n270lk/file.%2596%25B3%2591%25E8.png

def fib n
  if n < 2
    1
  else
    fib(n-1) + fib(n-2)
  end
end

fib 40

西尾さんがノーヒントでさくっと答えた.さすがすぎる.

_にしお(Wed Jun 10 22:33:55 +0900 2009)

 うひひ

_9(Tue)

Thinkpad X61 を触っていて,無線Lanがうまくつながらなくて,色々試すと,802.11 a だけだとつながる.a g という設定だとつながったので,そのようにしておく.なんなんだろうなぁ.


なんとなく,やりたいことをやる前にプロファイラを作ってたら結構夢中になってやってしまった.楽しいなぁ.

楽しんだ結果:http://www.atdot.net/fp_store/f.i7zxkk/file.%2596%25B3%2591%25E8.png

平仮名の意味は問題にしよう.さて,何を意味するでしょうか. (今朝方は,答えを書いていたけど,消しました)

さて,問題はこれを英語圏にどう持って行くか.アルファベットじゃ,すぐに資源が枯渇しちゃうんだよね.なんかわかりやすい表現方法ないかな.うーん.


T_DATA 用のメモリサイズ計測フレームワークを作ろうと思ってたんだけど,実はそんなの要らないような気もしてきた.


tablet PC で PDF の論文添削ができるかやってみたが,全然できなかった.これは,誰が悪いんだろうか.

PDF Annotator というソフトを試したら,結構良い感じに書ける.いいかもしれないぞ,これは.


凄い欠点に気付いてしまった.余白が足りない.

_8(Mon)

プログラムを読んでいるとき,エディタ(xyzzy)から grep で何かを探すことがよくあるのだけれど,イチイチ grep するのは,やはり頭がよくない気がする.ということで,先にインデックスを作っておくような全文検索インターフェースがあるといいな,と思うのだけれど,あるのかなぁ.emacs だとあるのかなぁ.わざわざ全文検索DBにアクセスするほうが遅かったりして.


実は,etch にしてから,svn+ssh で運用してた私用 svn リポジトリにアクセス出来なくて,ずーっと書類等をバージョン管理してなかったんだけど,原因は UTF-8 環境しか入れてなかったかららしい.というのも,ssh でコマンド叩こうとすると LANG が EUC-JP になるんだが(.bashrcのためらしい),svn がそんな LANG しらねーよ,といって死んでたらしい.EUC-JP 環境を入れて解決,だが,これでほんとにいいんだろうか....

ということで,ため込んでいた書類をがーっと突っ込む.


で,全文検索 index を作るタイミングだけど,ちょっと難しいかなぁ,とか.でも,例えばファイルシステムと協力して云々したら,実は結構うまくいかないかなぁ.いかないかなぁ.


というか,FSまで話を広げなくても,xyzzy レベルでフックすればいいのか.


いや,grep のタイミングでいーじゃん,という気がひしひしとしてきた.grep のたびにインデックスを作る実装ってあるのかしらん.DB 書き換えオーバヘッドのほうが大きいという気もするが.


あれれ,というので口を出そうと思ったけど自重.ちょっと寂しいけど,まぁいつまでもそういうことばかりやってちゃ駄目だよな.

_きむら(K)(Tue Jun 09 01:48:06 +0900 2009)

 TAGSでは力不足でしょうか? (メニューのツールから選択)

_kosaki(Tue Jun 09 01:52:30 +0900 2009)

 僕はgtags (global) を使ってます。TAGSは同一の名前の関数が複数有るのに弱いのでマルチプラットフォームなソフトだとちょっと大変

_shinh(Tue Jun 09 02:03:04 +0900 2009)

 これの grep-like なんちゃらがそいうアイデアなのかなぁと https://members.fsij.org/trac/soc2008/wiki/Ideas

_ささだ(Wed Jun 10 06:27:49 +0900 2009)

 tags 関連だと,識別子だけになっちゃうのが.エラーメッセージとか,色々検索したいです.そういう意味で,grep-like のほうが,まさに期待していたものでした.期待!

_hyoshiok(Fri Jun 12 13:15:39 +0900 2009)

 cscope というのは古くからありますが便利です。grep より速いと思います。

_7(Sun)

眠い.


買い物に行きたいが,自転車がない.


暑いねー.

近所の中学校で,このくそ暑い中部活動をしているのを見てぞっとした.彼らの行動にぞっとしたわけじゃなくて,俺も15年前はあの中にいたんだなぁ,と思うところにぞっとした.

_6(Sat)

土曜日.Vista を sp2 に.

_5(Fri)

金曜日.

_4(Thu)

ぐるぐると,結論の出ないことについて悩む.やっぱり大学人に向いてないよ.今度誰かと飲みながら議論したい.誰か暇な人いませんかね.


扉の外,読了.面白かったんだけど,なんであんなにエロくする必要があるんだ.


GMP のマルチスレッド対応とかってあるんかな.

_kosaki(Fri Jun 05 00:46:19 +0900 2009)

 はい、はーーい(^^)/ 飲み会、歓迎

_muscovyduck(Fri Jun 05 09:47:08 +0900 2009)

 次回のAsakusa.rbででも飲みましょう!

_3(Wed)

今更,chaton に気付いたので ruby 1.9 でクライアントを書いてたんだけど,assoc list の解析が面倒.やっぱり,S式パーサは標準添付したいなぁ.


手元のマシンで動かない理由があったので,じゃあ動くサーバマシンで動かそうと思ったら,1.9 が入ってない罠.うーむ.


現実逃避に,ちょっと真面目に S式解析器を書いてしまった.何度目だろう.でも,あんまり綺麗になってるような気がしない.

しかし,cons pair をどう表現するのか,いつも迷う.chaton の例では実は配列だけでいいんじゃないだろうか.


久々に Ruby を書いてみるテスト.

http://blog.livedoor.jp/dankogai/archives/51219921.html に,Ruby のプログラムがある.問題設定とか,解答とか,かなりちんぷんかんぷんなんだけれど,とりあえず呼ばれたメソッド自分自身を無効化するという話と仮定する.で,すぐに undef と remove_method を思いつく.さて,この2つの違いは何か?

答え:undef の場合は,そのメソッドを強制的に呼べなくする.remove_method の場合は,そのメソッド定義を無かったことにする.これは,継承しているときとかに効いてくる.

class C
  def foo
    p "C#foo"
  end
end

class D < C
  def foo
    p "D#foo"
    D.module_eval{
      # (1) undef foo
      # (2) remove_method(:foo)
    }
  end
end

d = D.new
d.foo
d.foo
# (1) => undefined method `foo' for #<D:0x22b7788> (NoMethodError)
# (2) => "C#foo"

undef の理解は,「NoMethodError を発生させるメソッドを差し込む」でもいいかも.厳密には違いますけど.

_shiro(Wed Jun 03 08:44:25 +0900 2009)

 chaton側でjsonを返す方が親切とは思う。

_2(Tue)

色々バタバタする.

_1(Mon)

6月になってしまった.5月病は卒業しないと.


RubyKaigi2009 のチケット,(システムの)試しに買ってみた.誰か買いません? 近場の人.

で,近場の人はスピーカーだったりコミッターだったりスタッフだったりする罠.


売れました.

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