うーむ、ヤバイ。
http://www.shudo.net/diary/2006sep.html#20060928 http://kwmr.vox.com/library/post/%E5%A2%97%E4%BA%95%E3%81%95%E3%82%93-apple-%E3%81%B8.html
うはー、マジっすか! うわー。
インタビュー出来てよかった。紹介してくださったたださん、ありがとうございました。
ううむ、いつまでも10Fに居ると思ったら大間違いだ。
ううん、俺何してるんだろう。悲しくなってくる。
なんというか、とりあえず勉強しよう。
るびまのインタビューって、何なんだろうな。それが面白い、むしろそこしか読んでませんが面白い、とかそういう話をよく聞くんだけど。じゃぁ、それがアクセスを大量に集める優良コンテンツかというと、そういうわけでもない(そういうものであれば、他の商業媒体がやってるよな)。
だから、ニッチでるびまくらいしかやっていなくて、見る人は見る、というようなものなんだろうなぁ。
健全に回していく方法って無いのかしらん。
今はやっぱり不健全だよ。
第一食堂というところで飯を食ったんだが、すげえ量があってよかった。いいなぁ、東大生。
そういえば chad のインド本を買った。スゲー、chad カッコイイ!
スラドの記事からるびまのインタビューをちょっと読み返してみたんだけど、やっぱり面白いなぁ。全然覚えていないよ(ぉ。
で、
に笑ってしまった。
Rails 本はたくさんあるけど、ほんと何を買えばいいんでしょうか...。
ハムーをデフォルトオフにしておくか。
youryou というファイル名を見て、your you ってどういう意味だろうと悩んだら要領のことだった。
なんというか、また直前だよ。自転車操業だよ。ヤバイ。超ヤバイ。
TODO 管理とか出来てない。全然出来てない。考え直さないと。
うーーーむ。Symbol の挙動はやっぱり納得いかない。Symbol じゃなくて、別の名前にしたら納得できるような気がするけど。
大堀先生にサイン貰った。
SML#勉強しようかな。
日記や Wiki を subversion バックエンドで管理できないか考えてみる。履歴管理にCVSなどはあるけれど、やりたいのは、co して手元でエディタで変更してciすると、ウェブ上でも更新されているようなやつ。
http://www.kyosyokuinzaidan.jp/jigyo/j05dantai.html
こんなものが!!
a(b(x=c()), x)
と書いたら、x なんてシラネーと言われた。左のほうに宣言があるのに! 許せん!
というわけで、バグじゃないかと主張します。いかがでしょうか。
file = ARGV.shift; eval(File.read(file), nil, file)
meta circular interpreterです。
... 嘘です。ゴメンナサイ。
あぁ、死にそう。
よくよくプログラムを見てみると、休憩時間がないのな...。そんなに議論すること無いような...。
まぁ、苦労は買ってでもしろっていうしな。苦労しよう。
yarvの? > シラネー
http://d.hatena.ne.jp/buyobuyo/20040720 知らんかった。この「間違えた意味」をそのまま覚えていた。
液晶のスタンドが立たなくなった orz ということで、スタンドを外して立てかけて利用。なんとも間抜けな...。
というわけで、X が何時までも使えないのはいけないかなぁ、と思い、Ubuntu を入れてみる。早速解像度などではまる>LCDの設定をMonitorにきちんと設定することで回避
samba 経由のファイルを XMMS に D&D してみるも、反応せず。うむむ。他のオーディオプレイヤに(ローカルの)ファイルを食わせても、なぜか再生できない。ううむ。
やっぱり、普段使うのは Windows がいいのかなぁ。
いい加減、realforce はでかいなぁ、と思って余っていた HHKL2 を使ってみたんだけど、やっぱりしょぼいなぁ。
Kernel 読書会というのに初めて参加した。glibc の malloc/free のアルゴリズムについて、大変わかりやすい説明をしていただいて、とても参考になった。
ところで、ヘッダってあんなに確保する領域にべったりくっつけるものなんだろうか。
キャッシュ効率をよくするため、free したばかりのポインタをためておいて、malloc 時によく使う、という話。GC で free を連発する Ruby のような言語処理系(いや、文字列とか Hash とかで、多分 free たくさんしてると思うんだけど)では、不利になるんじゃないかなぁ、とか、なんとか。
マルチスレッド対応にする話とかも、楽しかった。
飲み会は、知った人ばかりで固まってた感じがしたのでさっさと抜けてきてしまった。弱いなあ。
やっと召喚獣呼べた、が、なんかシステムがまだよくわからないな。
spam がやっぱりきてしまったので、なんとかならないか考えてみる。とりあえずハムーチェックボックスを付けるのか。
プレゼントの応募が凄い勢いで来てる。お前ら、なんで便りを書かないんだと子一時間。
というわけで、抽選時には便りをくれなかった人は除外しよう。
とすると、きっと怒られる。
えーと、まだ便りは募集しています。遅れたと思った人はください。
仮想化実装技術勉強会 (3) で知った。
http://web.yl.is.s.u-tokyo.ac.jp/~kaneda/tvmm/
読んでみよう。
二周年乙。
若手の会、無事終わりました。皆様いろいろありがとうございました。また来年もよろしくお願いします。
で、幹事引退できた。
そして早めに切り上げて帰ってきたら、(略)。orz
悲しすぎて、すぐに寝てしまったら、13時間くらい寝たような気がする。
http://journal.mycom.co.jp/articles/2006/09/16/radiant2/
RoRベースであるため構築が簡単で、ちょっとしたブログシステムであれば10分もあればシステムができるというすぐれものだ。
... RoR だと構築が簡単なのか。
なんか最近イベントで喋ってないな。なんか機会ないかな。
定期健康診断を受けるためにわざわざ本郷まで行ったんだが、問診票を忘れた orz
ダメすぎる。
RubyConf 航空券を手配。4人分46万円なり。破産するのでお早めに振り込んでください。
眠らせていた G5 を使う。うーん、Mac 難しい。
とりあえず Fink 入れて sshd を上げたら、なんかもうふつうの UNIX な気もするが...。
なんか、初動が遅い。
後者は日本国内だからなんとかなるが、前者はどうしよう。
IRC で泣きついたら drbrain がホテルの部屋取ってくれた。ラッキー! ありがたいなぁ。
おくじさんのご尊顔を拝しに 11F まで講演を聴きに行く。流れるようなプレゼン、よどみの無い質疑応答が凄まじかった。
世の中にはこんな人も居るんだなぁ。凹むなあ。
大規模開発にRubyが向かない理由とか聞きたかったな。
あと、PythonなどのOSSプロダクトを使ってそこまでクリティカルな要件に対して品質が保証できるのかどうか、とか。
場違いな気がして聞けなかったけど。
いや、大変興味深い話を聞きました。ほとんど宇宙語だったけど。
うーむ、うちの職場でも喋ってもらいたい。
共済手帳有料化、とかいう知らせが着たんだけど、そもそも共済手帳ってなんだ?
OSSプロダクトを使ってそこまでクリティカルな要件に対して品質が保証できるのかどうか
問題はOSSかどうかじゃなくて、限界性能付近までの挙動把握がきっちりできているかどうかじゃないのかな。プロプラで品質保証があったとしても、実際にその品質があらゆる状況で発揮されるかどうかはまた別問題なケースが多々あるわけで。
Ruby のメソッド呼び出しの遅さって,メソッド探索はあんまり関係ないんだよね....前処理多すぎっていうか.最適化でその辺を解決できるんだろうか.
Ruby 関連組織の運営体制について。
... 他を知らない。
日本Rubyの会について。
というか,略称なんていらんだろ.
現実逃避に ruby-lang.org のアカウントもらっちゃった.
頭じゃなくて肩がすんげーだるくなってきた.寒い.
実は,ruby-lang は前のデザインのほうが好きなんだけど....こういうことを言う奴がいるからダサいとか言われるんだよな.すみません.
終わったーーーーー.いろんなことが.
これでたくさん寝れるぞ!(来年から家で寝てる生活だったらどうしよう orz orz orz)
お疲れ様です。
今の段階だと、YARVのコードを把握してるのは俺だけのような気がするけど。そんな難しいものでもないから、読むのはそんなにつらくないんじゃないかな。
そういえば、頭痛はなんとなく治ってる気がします。多分。
あと、YARV が Ruby Alternative としてリリースされたとして、誰も使わないと思うけどな。ちょっと現実的に考えてみれば。
... YARV がマージされるのは現実的に考えてどうなんだろう orz
あと,卜部君が何もしていない,という意見をちらちら見るけど,rubybugs のメンテをこつこつとしているのはいったい誰だと思っているのかな.
う,やっぱり頭痛いかも.
ドキュメントって書いてないに等しいような気がするな.がらっと変えたところとか,更新していないし.
そういえば,なんで電子メールって段落の最初に「 」(全角スペース)入れないんだろう.そういう慣習? いや,この日記にもいれて無いけどさ.
なんとなく,メールだと段落最初に空白を入れるという癖が付いてるんだけど,そういう人を他に見たことが無い.
時計を見たら 4:44 だった。うわー。
pthread_mutex_lock(&lock); body; pthread_mutex_unlock(&lock);
って書くのウザイから、マクロで定義して
#define LOCK_RANGE(lock, body) do {\ pthread_mutex_lock(lock); {\ body; \ } pthread_mutex_unlock(lock); \ } while (0) LOCK_RANGE(&lock, { body; });
と書くんだけど、RANGE という表現は多分、ぜんぜんここには合わないんだろうと思う。さて、なんてマクロ名がいいんでしょうか。
現実逃避に『アキハバラ@DEEP』を読む。
んー、これは、あれかな。なんというか。なんかいろいろと話を聞いて妄想しすぎちゃった話? せめてダイビルの位置くらい把握しておけよ。というかこんな女の子(ry
クリティカルセクション、エクスクルーシブブロック、とか?
追加しておくと,利用するロックがいくつか種類がある(fine grain lock,giant lock,etc)ので,それらにも流用できる名前がいいなぁ,と思うのです.「こっからここまではxxx」というのがいいなぁと思うのですが,語彙がなくて....
Scheme風にWITH_LOCKとかはどうでしょう.
ああ、なるほど!>WITH_ 他の意見も募集中。
LOCK_WITHINはどうでしょう。
何由来だろう.
何由来というわけでも無いのですが、「〜の中で」だと、withinがあってるかなと。
SCOPE_ はどうでしょう
SYNCHRONIZEDとか。
シンボルの話を考えると,p(:xyz+"abc")やp("abc"+:xyz)が何を返すかどうかが気になりますね.
職場に来たら,秋葉原駅前で自民党なんとかの街頭演説みたいなことをしていてうるさい!
なんか最近目が見えなくなってきた.やばいなー.
ちょっとこれは,夏休みをとらなくては(夏休み中もハックしてるんだろうな,ダメだ).
:foo が 'foo' と同じハッシュのキーとなる、というのは、nil.to_s が "nil" になることなんかよりも、絶望的にあり得ないことだと思うんだけど。
と思っている人は案外少ないらしい。
競合がおこっているときは(それも比較的長いときは)pthread_spin_lock の性能は大変悪い。
というわけで、pthread_spin_trylock を使うようにしてみた。
ということは、pthread_mutex_trylock でも良かったのかなあ。
試してみたら、pthread_mutex_trylock のほうが、やっぱり遅かった。
#include <errno.h> #define native_fg_lock(lock) do {\ int r = pthread_spin_trylock(lock); \ while (r == EBUSY) { \ sched_yield(); \ r = pthread_spin_trylock(lock); \ } \ if (r != 0) { rb_bug("native_fg_lock"); } \ } while (0)
こんな感じ。
まぁ、ぜんぜん fine grain じゃなかったってことだろうなぁ。
近かったのでhttp://shibuyajs.org/articles/2006/08/28/development-environment-conferenceへ行って来た.
svk の conflict 問題,pull 時に解決できる,とのことだったので,きっと私の使い方が悪いんだろうなぁ,と.
secondlifeさんには,もっと HTMLHelp をアピールして欲しかった.
しかし,デジハリの中ってあんなふうになってたんだなぁ.いいなぁ,広い部屋.
じゃあ私も少数派だ。
ぼくも少数派に入れてください。
声を上げないとこのままになっちゃうらしいですよ!
よくわからないなりに「ありえなさげ」と思ってますけど、そもそもなんでシンボルが必要なのかがよくわかりません。
咳さんが「何故」を言わないのは何故? 大規模ぽい。
Rubyに求めるものが違うっていう多様性を認めるべきなのかなあと思ったから。変更したいっていうのと変更されたら困るっていうのは同時には満たせないだろうねえ。
頭が頭痛でとても痛い。
頭が痛くて眠れない。本格的にヤバイ。
ので、なんとなく先日の tee を考えいてたところ、簡単だということに気づく。
module Tee def self.included mod mod.module_eval{ alias write_without_tee write alias write write_for_tee } end def tee *outs @__tee_outs__ = [] unless defined? @__tee_outs__ @__tee_outs__.concat outs end def write_for_tee *args write_without_tee(*args) @__tee_outs__ = [] unless defined? @__tee_outs__ @__tee_outs__.each{|out| if out.respond_to? :write_without_tee out.write_without_tee(*args) else out.write(*args) end } end end if $0 == __FILE__ class IO include Tee end STDOUT.tee STDERR puts 'foo' end
write メソッドによって出力するクラス全般でこのモジュールを include してあげると良い。
ちょこっと眠れたけど、頭は依然痛い。
そういえば、先日 Gauche の HTMLHelp を更新しました。バージョン番号付いてないの。使っている世界で3人くらいの人、どうぞご活用ください。
:foo が 'foo' と同じハッシュのキーとなる、というのは、nil.to_s が "nil" になることなんかよりも、絶望的にあり得ないことだと思うんだけど。
http://www.atdot.net/~ko1/diary/vote.cgi?mode=show&no=100
初心者票が伸びませんねぇ。
RailsChatとかに貼ると人が増えるかも。>初心者票。 いまみたら「したい]5票は超えてますね。
GC のための同期アルゴリズムをやっと固める。多分これでいいのかしら。
しかしなぁ。こんなことなら pthread_kill でシグナルハンドラ中でやればよかった。GC 処理全てが signal handler 中でやっても安全かどうか、イマイチわからなかったというのがあったので。
うーむ、要らないコストを背負い込んでしまったかなぁ。
StringValue() が String オブジェクトだった場合、dup を返すようにしたら驚きますかね? しかも frozen な。
久々に、駅のコンビニが空いてる時間に帰れるかも(11時には閉まっちゃうんですよね)。
うー、マルチスレッドプログラム中でシグナルハンドラを使わない方がいいかもです。。。
ふつーのアプリケーションと違い、言語処理系はそうは言っていられないのです。
やっぱsigwaitだけじゃだめすか
うーん、管理スレッドをそういう実装にしてしまうのはアリかもなぁ。
NetBSDとかはシグナルハンドラがあやしい動きをする時があるので、気になってますー おせっかいすいません
他の環境も色々いやデスヨねえ。
終電一個前に乗って帰るとき、綺麗に日に焼けた若い女の子が、途中の駅から乗ってきた。おー、焼けてる、と思ったんだけど、そういえば、夏だったんだねぇ。
とか思っていたら、休日に終電近く(職場からです、一応)で帰っている自分が無性にむなしくなってきた。
今年も、夏は過ぎていた。
「るびまのおかげで〜」という話は聞くけど、「だからるびまに〜」という話はめったに無い。まぁ、そうだよな。
俺も、Linuxのおかげで色々便利にさせてもらってるけど、Linuxに、とくにコミットはしていないし。
その上で、どんなふうにやっていくのか。
なんか、gdb では見れないエラー。
ptrace: No such process. [Switching to Thread 1083734320 (LWP 26773)] Cannot remove breakpoints because program is no longer writable. It might be running in another process. Further execution is probably impossible. 0x0000003263606490 in start_thread () from /lib64/libpthread.so.0 (gdb) bt #0 0x0000003263606490 in start_thread () from /lib64/libpthread.so.0 Error accessing memory address 0x40987230: No such process.
なんだこりゃー。Ruby レベルでのプログラムは走り終わっているような感じなんだが。ここはどうやってデバッグすればいいのかなあ。
FIT2006イベント企画「これからが面白いプロセッサアーキテクチャ」の
14:15-14:30 「コアの数なんてどうでもいい」 五島 正裕(東京大学)
が、聴きたい、聴きたい、聴きたい! (でも行けない)。
valgrind で、未初期化領域へのアクセスについて警告が出ているんだけど、それが何者へのアクセスだかわからない罠(GC時に出るので)。
SEGV のシグナルハンドラ中に while(1); と書いても止まってくれない(強制的に、誰かが止めている感じ)。しかも、その際、プロセス終了コードとして 0 を返すらしい。
はて、誰がこんなことしてるんだろう。
と思ったんだけど、SEGV を起こしているのがプロセス終了間際だからなのかも。
不思議なバグは、とりあえず pthread_spinlock_t の初期化の問題だったようだ。
しかし、test-all 中にも同じようなバグが起こる。不思議。
と思ったら、やっぱりまだ同じバグが orz 死にそう。
(gdb) bt #0 0x0000003262d2f4f5 in raise () from /lib64/libc.so.6 #1 0x0000003262d30e40 in abort () from /lib64/libc.so.6 #2 0x0000003262d66a6b in __libc_message () from /lib64/libc.so.6 #3 0x0000003262d6f6fd in _int_realloc () from /lib64/libc.so.6 #4 0x0000003262d7010c in realloc () from /lib64/libc.so.6 #5 0x000000000041e1b4 in ruby_xrealloc (ptr=0x677be0, size=33691) at ../parallel/gc.c:298
なんで realloc が死ぬのー。malloc, realloc, free の周りはロックで囲んでるんだけどな。
「るびまのおかげで彼女が出来ました」とかあるかなー
ちまたでは NilClass#to_s について議論が盛り上がっていますが、そんなことよりもまつもとさんがこっそりと(こっそりじゃないけど)コミットしているのが大変気になる。
Symbol と ID の関係はどうなるんだろう。関係なし?
3番目の話は、to_sなんかよりも、よっぽど重大だと思うんだがなぁ。互換性以外(いや、だから互換性関係はみんな敏感なんだけれども)。
というか、並列Rubyにとって、嫌がら (ry
test-all で SEGV するのは、きっとすぐに直してくれるだろう。
この辺について議論したいような気がするが、きっと場違いな感じ。
$ ./ruby -ve 'p :a=="a"' ruby 1.9.0 (2006-09-03) [x86_64-linux] true
これはあんまりじゃないでしょうか。
いつも電気がついている UDX に、ほとんど明かりがついていない。おー。
gdb へ渡すコマンドのメモ。
b debug_breakpoint run if $_exitcode == 0 quit end
実行中に SEGV 発生だったりすると、$_exitcode は void とやらだそうで、比較失敗になってしまう。まぁ、止まるからいいんだが、ちょっと気持ち悪い。しかし、条件式で void かどうかを知る方法がわからなかったので放置。
run p $_exitcode if !$_exitcode quit end でいけるみたいです。
ありがとうございます。! は試したつもりだったのが、試してなかったようで。
SymbolはGC対象になりませんよ。グローバルテーブルから参照されてますから。って、そういう意味じゃない?
あれ? s=:s; loop{s=s.succ} しても、メモリ消費が増えなかったので、GCされているんだとばかり。
実はSymbolを加工したものはStringなのですよ。反則?
それは気づきませんでした。仕様としては、他に類を見ないので、多分ダメな気がするんですが。
夜中まで研究を続けているわけですが。
小迫さんからのご指摘のとおり、static なものがあったので、そいつをthread localで取れるようにしました。すると、ちゃんと台数効果が出るようになりました。よかったよかった。でも、構造体を無理矢理ぶち込んでしまったので、ソースが汚い。どうしようかな。
それから、エルザ最強だと思う。
途中、バックトレースが出てきて吹いた。それようのインターフェースが出てきた。えらい。そして、内容を見てみると、納得できるものだった。想像通りのものというか。やっぱそうやるよなぁ、みたいな。
しかし、バックトレースを客に見せるのはアリなのか?
今日を金曜日だと思っていた...。
30秒って何。
参考にさせてもらって、kakaku.com を見てみたら、DS Lite が売っていた、という情報を見たので、くさいのを我慢して、ACM ICPC のTシャツを着て、という罰ゲームのような格好でビルの高いところへ登ってみるも、完売。4時間前の情報じゃ古いんだねえ。
評価のために、仕方なく続けているんですが、やっとドリフトの意味がわかった。
yarv のベンチマークがどうの、というページを見たらフランス語。読めるか!
いろいろイベントとかがあって楽しそう(今日だけで、4個?)だけど、てんぱっていて全然いけない。ガガーン。
おれんとこでもバックトレース出たよ! 3 時間くらいぶっつづけでやってたら NoMemoryError が。ところでみんなのゴーストが速すぎて俺にはついていけません
俺のときは .pak から読み込み中にエラーになったらしい。みんなのゴーストって何? ウェブランキングとかをつなげると、ゴーストもダウンロードしたりするんだろうか。
そう > ゴースト
本日家の近く(つっても15分歩く)の店で黒Lite入荷という情報があったのですが、寝坊して出遅れorz。黒以外なら来週も入るみたいですけど?
バックトレースとかNoMemoryErrorとかなかなか楽しそうですね。私も評価のために購入してみました。
DSliteは自作スクリプトでamazonやらトイザラスやらを監視して見つけました。大きな店なら定期敵地入荷するので早起きすれば買えるみたいですけど。
有楽町のビックカメラは、毎週日曜日の15時ぐらいに入荷してるっぽいです。それ以降に店で粘ってると買えると思います。
まずいなー。寒気がして体ふらふら。
http://slashdot.jp/comments.pl?sid=330607&cid=1008960
よほど未踏に恨みがあるのか...。 プレゼンスが弱いということなんだろうか。
http://www.xml.com/pub/a/2006/01/11/from-microsoft-to-openoffice.html
大変参考になる。
chm を少し更新。同期ボタンの付け方がわからなかったんだけど、やっとつけた。
調査のために、しょうがなく、遺憾ながら、Ruby を使ったプロダクトを購入した。はじめて通販でソフトウェアを買ってしまった。
上記ページを参考に、OOo でD&Dで ppt -> pdf 変換が出来た。OOo 素晴らしい。
FF3 が欲しいんだけど、DS Lite が売っていない。どうやったら秋葉原で買えるのか、詳しい人がいれば教えてください。
大変不思議なことに、並列に走らせると oniguruma の正規表現マッチが遅い。なんでだろう。
... というか、並列実行に対応していない? んー? わからん。
マッチ処理に時間がかかると、きちんと台数効果(2個だけど)が出ている。マッチがさっさと終わる場合に、かなり、3倍くらい遅くなるんだが、はてなんで?
おめでとうございます♪