トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|

ToDo:


2008-05-28

_ 1.9.0-0 からの流れ

  • 1.9.0-0: 81個
  • 1.9.0-1: emptstack が消えて adjuststack が発生
  • current: putcbase が発生

(07:11)

_ toregexp

げー引数の数変わってる…

(07:17)

_ colordiff.pl

いけてないな…

   @inputstream = <STDIN>;

の時点でアウトだろう

(00:01)

本日のツッコミ(全1件) [ツッコミを入れる]

_ Qxsvoswy [この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5..]


2008-05-27

_ mprotect(2)

man がおかしそうに思ったので レポートしたところ次回には反映されるとのこと

(01:36)

本日のツッコミ(全2件) [ツッコミを入れる]

_ kosaki [え? なんか間違ってるっけ? mmap()のmanが間違ってるのは最近LKMLで話題になってたけど]

_ shinh [SYNOPSIS の第二引数が size_t* になってるというような。]


2008-05-26

_ 本名

http://d.hatena.ne.jp/moira/20080502/1209734354

似た感覚があるなぁ。

匿名だとデタラメなことを色々したあげく バレて恥ずかしいことになりそうとかいう

(00:08)


2008-05-25

_ break

は throw で実現されてるらしい。

(03:44)

_ とりあえず

x86 の Ruby を作ろうと思った

なんか 404: http://www.ruby-lang.org/ja/

(19:31)

_ ruby x86

でけた。適当にとりあえずこんなかんじでできた。

% ./configure --target=i386-linux --program-suffix=86
% make CFLAGS='-fPIC -O -g -m32' LDSHARED='gcc -m32 -shared -Wl,-R'
% sudo make LDFLAGS='-m32 -L.' LDSHARED='gcc -m32 -shared' CFLAGS='-m32 -O -g' prefix=/usr/local/stow/ruby_x86 PREFIX=/usr/local/stow/ruby_x86 install-nodoc
% ruby86 -v
ruby 1.9.0 (2008-05-25 revision 0) [i386-linux]

でも extconf.rb 実行してもうまいこといかんので 手作業コンパイルするか。

(21:12)

_ Yajit::send

が悲惨すぎる。 結局スタックの積み方が逆なんだよというのが一番大きい問題である。

f(a, b)

とかを呼ぶ時、

push b
push a
call f

となって欲しいのだけど、 YARV は a から順に積んでくので、 順番を逆向きにしなくてはならない。

あーうーん rb_funcall を直接呼んでるのがアホなんだな。 rb_funcall2_rev とか作ってやれば良い気がする。

案外簡単だった。

(22:28)

_ あれ

アホな勘違いしたような

←若いアドレス
"%d\n"  4   self
  SP

なんだそのままじゃん。やはり rb_funcall 呼んでたヤツがおおまぬけ

(22:37)

_ やっぱ逆だろう…

落ち着いて考えるべき

YARV は

putnil
putstring "%d\n"
putobject 4

とかしてくるので、 CPU スタックの上では、

←若いアドレス
4  "%d\n"  self
SP

となる。向きを逆向ける必要はやはりあるだろー。

まぁ逆向けるコード入れることによって解決。 だいぶ簡潔になったのでやっと x86 に行く気が起きる、か

(23:08)

_ めも

i@u4 ~/wrk/yajit
> time ruby1.7 euler55.rb
zsh: correct 'ruby1.7' to 'ruby1.8' [nyae]? y
249
ruby1.8 euler55.rb  2.40s user 0.04s system 99% cpu 2.449 total
i@u4 ~/wrk/yajit
> time ruby1.9 euler55.rb
249
ruby1.9 euler55.rb  1.71s user 0.00s system 98% cpu 1.743 total
i@u4 ~/wrk/yajit
> time ./rubyjit.rb euler55.rb
249
./rubyjit.rb euler55.rb  1.66s user 0.10s system 99% cpu 1.775 total

(23:22)

_ x86

だと全部スタックで渡すので、

←
4 "%d\n" self
SP

とかなってるのだが、 受け手としては

←
argv argc mid self
SP

を期待しているため、

←
argv argc mid self 4 "%d\n" self
SP                argv

とすれば良いか。 つまり普通通りだな

あと argv の引っくり返しは C 側でやっても tail call が jmp になるので良さげ。

(23:35)


2008-05-24

_ あー

Xbox で斑鳩あるんだっけ…

http://d.hatena.ne.jp/KouMikage/20080523#p1

やりたいなあ Xbox 買いたす

(03:24)

_ getspecial

うあこれ $_ とかのためか…

ふーむむ

(03:59)

_ ほえー

def factor4(a)
  r = 1
  (1..a).each{|i|r *= i}
  r
end

local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1] s1)
[ 3] a<Arg>     [ 2] r
0000 putobject        1                                               (  85)
0002 setlocal         r(2)
0004 putobject        1                                               (  86)
0006 getlocal         a(3)
0008 newrange         0
0010 send             :each, 0, block in factor4, 0, <ic>
0016 pop
0017 getlocal         r(2)                                            (  87)
0019 leave

local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1] s3)
[ 1] i<Arg>
0000 getdynamic       r(2), 1                                         (  86)
0003 getdynamic       i(1), 0
0006 opt_mult
0007 dup
0008 setdynamic       r(2), 1
0011 leave

def factor2(a)
  r = 1
  for i in 1..a
    r *= i
  end
  r
end

local table (size: 4, argc: 1 [opts: 0, rest: -1, post: 0, block: -1] s1)
[ 4] a<Arg>     [ 3] r          [ 2] i
0000 putobject        1                                               (  77)
0002 setlocal         r(3)
0004 putobject        1                                               (  78)
0006 getlocal         a(4)
0008 newrange         0
0010 send             :each, 0, block in factor2, 0, <ic>
0016 pop
0017 getlocal         r(3)                                            (  81)
0019 leave
local table (size: 1, argc: 0 [opts: 0, rest: 0, post: 0, block: -1] s0)
[ 1] <CFUNC><Rest>
0000 getdynamic       <CFUNC>(1), 0                                   (  80)
0003 expandarray      1, 0
0006 setlocal         i(2)                                            (  78)
0008 getlocal         r(3)                                            (  79)
0010 getlocal         i(2)
0012 opt_mult
0013 dup
0014 setlocal         r(3)
0016 leave

なのか。

えーと…

(06:55)

_ つまり

for の方はなぜこんな複雑なことになってしまうのかー。

あと

*a=1

local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1] s1)
[ 2] a
0000 putobject        1                                               (   1)
0002 dup
0003 expandarray      0, 1
0006 setlocal         a(2)
0008 leave

か。とりあえず expandarray の flag&4 は実装されてない… そして flag&2 もなにやら難解だな。

(07:03)

_ Ruby

スラッシュのオーバーライドってそいや組み込みには無いんか。

(10:30)

_ ニコニコのロースコアの人

なんか見たような名前で呼称されてるのを見てちょっと調べた。

つまるところ僕的にはエスプの人な TAC の人のとこの兄弟はみな異常というような話みたいだ。 HAL の人らしい。

(11:14)

_ Xbyak

       void protect(const void *addr, size_t size, bool canExec)
       {
#ifdef __linux__
               long pageSize = sysconf(_SC_PAGESIZE);
               char *p = (char*)(reinterpret_cast<size_t>(addr) & ~(pageSize - 1ULL));
               int mode = PROT_READ | PROT_WRITE | (canExec ? PROT_EXEC : 0);
               mprotect(p, ((size + (pageSize - 1)) / pageSize) * pageSize, mode);

これひょっとしてダメか。

size < pageSize でも p + size が page 境界をまたぐことはある気がする。

(16:56)

_ はてなー

なんかまわりに見たような名前が多くて面白い。

http://tophatenar.com/ranking/subscriber/78

via: http://d.hatena.ne.jp/lethevert/20080524/p2

odzさんに少しまけ、はともかく、 ABAさんに勝ってる!

(18:14)


2008-05-23

_ 週休4日

カゼにより予定より早期に実現した。

サボったんならともかく、割と本当にしんどいから全然意味ねーな…

今日は我が家がアリに侵略されてここはサバンナかと思った。 ゴミ袋を捨てたら平和的に退散してくれた。

あとカーネルなんちゃら行きたかったな。無念。 kzkさんにkosakiさんにf/tさんとかいろいろ珍しい感じ

(19:43)

_ ICFPC

2003年って車かー。なつかしいな。 http://d.hatena.ne.jp/ranha/20080523/1211474043

ちょっと ICFPC で上位どんくらいだったのかなと振り返ってみた。

  • 2007: 10/357/869 (2.8%)
  • 2006: 30/361 (8.3%)
  • 2005: 放棄
  • 2004: 86/361 (23.8%)
  • 2003: 20/90 (22.2%)

去年は卑怯なマグレでしかないので、 まぁ上位 10% くらいに入れるといいなぁという感じか。

(19:44)

_ TODO

名刺をつくる

(22:16)

_ Coda

http://d.hatena.ne.jp/suu-g/20080523/1211498211

って今どうなってるんだろう。

kernel 見たら fs/coda とかちゃんとあるね。

あとそいや 9p が何やらメインに入ったらしいとか言ってたなーと 思って見てみるとあった。

だからどうだという感じもするけど Documentation/filesystems/coda.txt は長い。 1600行とかある。

i@u4 ~/src/linux-2.6.25.4/fs/coda
> wc *
   12    43   324 Makefile
  116   354  2970 cache.c
  166   512  4219 cnode.c
   20    41   434 coda_int.h
  195   623  5259 coda_linux.c
  698  2163 17202 dir.c
  243   641  6331 file.c
  306   762  6700 inode.c
   95   304  2467 pioctl.c
  436  1173 10451 psdev.c
   53   136  1221 symlink.c
   71   173  1373 sysctl.c
  875  2690 23291 upcall.c
 3286  9615 82242 total

えっと

(23:35)

_ scope

i = 0
1.upto(3){|i|}
p i

みたいなののブロック内の YARV コード見て、 なんで getdynamic i, 0 なんだよ 1 だろボケ… とか思って少し悩んだ僕は ruby1.8 に毒されてると思う。

ところで getdynamic ?, 0 と getlocal ? って 何が違うのかしらという。

(23:59)

本日のツッコミ(全2件) [ツッコミを入れる]

_ ku-ma-me [getlocal はメソッドとか直下の変数アクセスな気がします。 def foo  x = 1  1.ti..]

_ shinh [がーんそうなんですね…ふーむとなると(mameさんの例の) getdynamic ?, 3 を getlocal ?..]


2008-05-22

_ だんまくやさん

なんか色々増やしていただいていたのでちょっとやってみた。

http://shinh.skr.jp/sdmkun/zipup.cgi?mode=txt&down=sonic.bml

これいいな。明らかに僕の好み

(01:33)

_ 謎 putnil

http://markmail.org/message/ozva662lcvxdg76b

とりあえずめも

たぶんレシーバが無いことを示してるとかなんとか。 でも VM_CALL_FCALL_BIT があるんなら良くねーとか思ってしまうんだけど

(02:14)

_

http://www.youtube.com/v/WEBOdWyGE3E

なんか Gauche のやつ出たんだな。

(23:50)


2008-05-21

_ だるい

きょうやったこと

http://jp.youtube.com/watch?v=nrFMRuB2lbA

をみた。とても良かった。

ニコニコをみた。

http://www.nicovideo.jp/mylist/4491340

の人がすごいな。

(01:25)


2008-05-20

_ xpdf

http://d.hatena.ne.jp/mtkh/20080519

をいじるって発想はなかったな… 明らかに便利そうなのでとりあえず入れておく

(13:53)

_ 平日

平日でした!

なんか週末は麻雀打った記憶しかなくてもったいないなーと思う。 麻雀はクソゲーだと信じている。同じ4人ゲーならカタンの方が面白いよ

で今日はしんどいから休んだのでまた休日

(14:20)


2008-05-18

_ w3m -reqlog

http://cvs.m17n.org/~akr/diary/2008-05.html#a2008_05_18_2

を使うと strace とか使わなくても ~/.w3m/request.log に 手軽に残せたりとか。

(16:52)

_ 電話番号

消してみてから、どうせ絶対消し忘れがあるよなーと 思ってぐぐったらあった。 得に美人ストーカーの方から連絡をいただいたりはしてない気がするので、 野郎の電話番号なんて隠すような情報でもなんでもないとよくわかる。

(17:31)

_ 定期預金

高くて金利1%弱くらいみたいだ。 ついでに外貨とかインデックスファンドとか 30分くらい勉強してみたところ 基本的に外貨とかも別に単にオトクなんじゃなくて、 それなりのリスクとかあるんだなぁと勉強になって面白かった。

たぶん

  • 定期預金: 利率低いけど損はしない。
  • なんちゃら預金: 利率はちょっと高く見えるけど銀行に有利なよくわからん機能がたくさんついてる。このシステムはあまりにひどいと思った。
  • 外貨(ドルとかユーロとか): 利率高め(2-3%とか?)だけど変換するのに1回1%とかくらい(円に戻すなら2%くらいってことだと思う)の手数料かかるので結局そんなにかわらなくないか。ドルならまぁドルのまま使うとかあるかもだけど。あとこんなのを見ると日本人としてはバクチでしかない気がしてくる: http://www.shinseibank.com/unyo_info/2010_usd/index.html
  • 外貨(ニュージーランドドルとか): 利率もっと高い(7%とか)けどバクチ要素がさらに高いんだろうと思う
  • インデックスファンド: 安定してるのかなーと思ってたんだけど、思ったよりすごい上下してる(-20% から +30% 程度を見た気がする)。あと万が一倒産したらやばいんだよねこれ。

なんとなく結局リスクが大きいものほど利率多いんだなぁというような 当たり前の結論に至った。 あと国債とかあったか。見てないけど似たようなもんだろう。

結局リスクとかいやで面倒なのもイヤな僕のような子は 年に一度くらい定期預金に入れるといいんだろうなとわかった。

(18:08)

_ cheque

ついでに小切手について勉強したところ、 小切手は check ではなく cheque であるということがわかった!

(18:34)


2025年
1月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
1.Qxsvoswy(2010-03-29 15:54) 2.YT(2008-05-31 11:53) 3.shinh(2008-05-28 11:21)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h