責任って重いなぁ。自分の言ったことって、重いなぁ。
人の振り見てってのもアレだけど、きちんと肝に銘じなければ。
5時半の快速電車に乗ったら,結構快適だった.これからはこれを狙うかなあ.
スーツを着なければならなくなった.しかし,まともなスーツを持っていない.ということで,休日に買ってくるかなあ.どこで買うのがいいんだろ.あぁ,ひどい出費.
なんかもう自分のダメさに死にたくなってくる.
多分,文章,とくに自分の文章に対してシビアな目で見ることが出来ないんだろうなぁ.あああ.
どっちだろう.前者のつもりでいたんだが,なんとなく,指摘を見ていると後者な気がしてきた.となると,俺は世の中にくだらないものを出そうとして,無駄な努力をしているのか.それは世の中のためにならないよなぁ.うーん.
朝日がまぶしい.
しかしまぁ,色々重なるよな.
日記書けているうちは大丈夫だ,うん.
なんというか,人の悪意には慣れないね.どうにも.凹む.
英語が得意でないんで,本当に単なる疑問なんですが.
serif でいいのか? 何か勘違いしてるんだろうか,俺.serif文字を使うからとか,なんとか.
アクセスカウンタ間違えてた.こういうとき,静的なページは厳しいなあ.
言われてみれば…台詞の意味の「せりふ」ってどこから来てるんだろう。英語ではlineって言う。
普通に日本語みたいですよ>台詞 セリフ・台詞(せりふ) - 語源由来辞典
へぇ^12
Python の generator の理解がイマイチだったので,Ruby で実装してみた.
class Generator def initialize &b @cc = :first @bcc = nil @block = b end def _next callcc{|@bcc| case @cc when :first val = self.instance_eval(&@block) @cc = :finished @bcc.call val when :finished raise else @cc.call end } end def _yield *args callcc{|@cc| @bcc.call(*args) } end end g = Generator.new{ _yield 100 _yield 200 _yield 300 } 10.times{|i| puts "next (#{i}) #{g._next.inspect}" }
こんな感じかなぁ.
って,generator.rb と同じか.
いや,partial continuation を実装すると幸せになれるかなぁ,と色々考えていた感じなんですけどね.
Ruby 呼び出しレベルだけだったら part cont はあんまり問題にならなさげなんだが(rescue/ensure が混じるとやっぱりダメな気がするが).
いや,まつもとさんがマイクロスレッドみたいなものが欲しいと言っていたので.きちんとした仕様にするのは,やっぱり大変そうだ.
なんだこれは.
うーむ,RubyConf2006 の俺の発表の写真が無いので,発表証明が無い.
うう,あと何個残ってるんだ.
確かに入門JavaScriptって薄いなぁ.さくっと読めてしまった(超斜め読みだけど).
るびま17 リリース。お楽しみください。
ううむ。
超すげー.自分でもさっぱり忘れていた.
ESPer行きたかったなあ orz
生まれて初めて銭湯に行った気がする.初めてではないかもしれないけど,行った覚えがない.
なんというか,迷惑かけっぱなしで申し訳ないです.色々と.
もっと能力があればなぁ.
昨日の夕刊の1面にまつもとさんが.プログラマが1面に載るのって何人目くらいなんだろう.
しかし,親からお前なんかこんなのやってなかったか,と指摘された.新聞の威力は凄いなあ.
あー,まずいなぁ.またやってしまった.
さすがまつもとさん。Ruby全然書いてない自分が知っているほど有名な方ですからねぇ。
次の RHG で読みます.
はて,16日以前が消えた.なんで? 直した.リンク消えちゃったけどいいや.
マジで,全然おわらねぇ.
うううう.
図を書くのは意外と楽しいんだけどな.説明が....
かえろう……
27の誕生日はとっても修羅場らしい。
次の RHG のページ名を考えていて、 RHG読書会::東京 鬼隠し編 にするのはどうだろう、と思ったんだが、ページを紹介するときに恥ずかしいので止めた。
なんかえらい詳しいな... すげぇ
うーむ,こんな施設があるのか.宿泊も可能か.なるほど.しかし,このURL凄いな.
自分へのプレゼントに,ではなくただの現実逃避に,
を買ってきた.まぁ,お仕事に使えるかも,ということで買ってきたんだが,恋する〜はちょっと違うか.
ちょっと凄い誕生日プレゼントが来たな,これは.
http://www.ipa.go.jp/jinzai/esp/2006mito2/koubokekka.html
またかよって言われそうだ.
ChangeLog に日本語が許されれば,色々と詳しく書けそうだなぁ.
おめでとうございます。誕生日プレゼントもあわせておめでとうございますです。
おめでとう!そして、ありがとう!>Yarv
おめでとう!そして、またかよ!(御期待通りに言っておこう!)
一歩遅れましたが、もろもろ合わせて(笑)おめでとうございます! 継続できる精神力に脱帽です。
一日遅れですが、おめでとうございます。これでユース含めて3回目でしたっけ?修羅場に負けずにがんばってください。
素晴らしい誕生日とかプレゼントとかおめでとうございます。
20日だったんですかー。おめでとうございますー。
おめでと〜♪
ああ、RHGか。
RHG だった。ふつける読み終わった。今日も面白かったなぁ。最近全然行けなかったので、久々。
== これまでのあらすじ * RHG1 2003/1 - 7 * RHG2 2003/8 - 2004/12 * 単発 * 2005/1 何しようか * 2005/2 YARV * 2005/3 Rails * 2005/4 CGIKit * 2005/5 arton * 2005/6 なでしこ/HSP * 2005/7 MLコンパイラ * ふつりな 2005/8 - 2006/4 * もなど 2006/5 * ふつける 2006/6 - 2006/11
長いよなあ、ほんと。丸4年やったんか。次で5年目。
次からは JavaScript の本になります。
ふつける終わり
あれ、Matz にっきに書き込めない。
... 嫌われてる!
なんか意外と疲れた。疲れたのは結構立ちっぱなしだったからな気もする。いい加減、運動不足だなぁ。
やってよかった、と言ってくれる人がいればいいんだけど。
http://slashdot.jp/mobile/article.pl?sid=06/11/16/1234255&threshold=-1
凄いなあ。
でも、俺は腕時計付けないしな。USBメモリ付き懐中時計が欲しい。
国民年金滞納のお知らせが来た。共済年金に入ってるから要らないって、以前も問い合わせたのに...。再度問い合わせたら、やっぱりミスだって。
西山さん、森田さん、角谷さんから Pickaxe2 訂正Wikiを紹介された。みんなよく知ってるなあ(森田さんは、そりゃそうか)。
あー、どうしよ。ヤバイ。
Simula では。
どうしよう。全然書けない。
最近、rgrey をすり抜ける spam がどうしようもなく増えてきたな。一晩で50通か。
もうちょっと厳しい何かを設けたほうがいいんだろうか。
なんかとても疲れた
帰りの電車で、堂々と携帯電話で喋っている人がいた。うーむ。
指摘できない俺もヘタレだが...。
本当に、これを世に出していいのか不安なものがたくさん。どうやって自信を持つんだろうなぁ。
タイトルが全然決まらない。内容もなんだが。
今日の話は、話は面白かったけど、その後が...。ネットワークがつながらなかったのがつらかった。
指摘すると刺されるかもよ!
そうなんだよねぇ。
自信を持つんじゃなくて、自信が無くても出していいんだということを学ぶんでは。
それはちょっと。
質問で、プログラムカウンタからフレーム情報検索テーブルはリンカが作ってると答えてしまったのですが、すいません、ちょっと正しくなかったです。
フレーム情報とプログラムカウンタの対応は、フレーム情報に書かれています。 unwind-dwarf2の例外用のテーブルは、二分探索できるように検索テーブルをリンカが作ってますが、GDBは、特にテーブルは作らないで、線形探索してるようです。
誰が何時何所で(手作業でどうやって)作る/使う、みたいなものがやっぱり難しい/面白いですね。
モースト「もったいない」賞
orz
Rails は拍手貰ったからよかったと思ったんだけど、あんまりよくなかったらしい。日本では二番煎じは結構受けるんだがなあ。
来年はどうしよ。もう3年もやったから、いいかなぁ。
前も書いたっけな? 大変今更感がありますが。
再びRubyのパフォーマンスについてには、Ruby のメソッドディスパッチは「Duck typing, late binding だから遅い」って書いてあるけど、そこはあんまり問題じゃなかったりする(ハッシュの検索がどうの、とか言ってるんだけど、そんなこと言ったら Python と同じじゃん。あっちのほうがナイーブに検索してるよ)。Ruby の高級な機能をサポートするために、いろんな仕組みがあるんだけど、その辺が重いんだな。例えば、method っていうメソッド呼び出し式において、method メソッドが無いとき、引数も括弧もないからローカル変数かもしんないね、っていうエラーメッセージを出すため「だけ」にフラグがあったりする、そういう諸々が積み重なって、重いんだよね。
というか、Language Shootout を見て判断するってのが (ry
ってか、
私はRubyがすべての状況に適するわけではないという主張を続ける
って、あたりまえじゃん。そうでないと主張してる人なんて居るのだろうか?
メソッド呼び出しが x86 の call 命令一個に落としこめるか。答えは本質的に No で、なぜかと言うと、たとえば Strongtalk がどうの、って言っている人が cmp 命令と、って言っているとおり、(JIT compile するような)inline cache でも cmp 命令は必要で、多分移植性を考えると backtrace のための補助情報を埋め込む必要がある。補助情報は多分 linked list かなにか、たどれる形にしなければならないので、数命令必要であることは自明。例外とか考えるともうちょっとややこしい。
YARV wiki で検索すると Wikipedia が出てくるのは悲しい。
measured VMM って、検証は誰がするんだろう。H/W 的にブートをしなくなっちゃうんだろうか。
Intel は Transaction Memory を H/W にちゃんと入れるんだなぁ。
なんか体力の限界かも。
これからお詫びの文を書かないといけない orz
JavaScript みたいじゃなくてダサい、とか、Scheme みたいに callcc が無くてダサい、のなら、JavaScript や Scheme を使えばいいじゃない、という気もするんだが。
さて、ならなぜ Ruby に入れたくなるのか。
どっちも、かな?
後者は、たとえば YARV で JavaScript や Scheme を作ると解決できるかもしれない(いや、callcc の問題は残りそうだが... callcc は core の作り方で大分決まっちゃうからなぁ)。前者は、... どうなんだろう? Ruby っぽく書ける Scheme マクロを作る、なんてどうですかね。
Scheme に、ブロック構文みたいなものが出来るんだろうか。
[1, 2, 3].each{|e| p e } #=> (each #(1 2 3) {|e| (p e) }) (each #(1 2 3) (do (e) (p e) ))
リーダーマクロでなんかすれば、いけるのかな? do じゃなくて lambda そのまんまじゃん、というのは、まぁとりあえず書いてみただけ。
(#(1 2 3) . each (do (e) (p e) ))
なんてのは、マクロで書けそうだけど、どうなんだろう。
http://portal.nifty.com/koneta05/03/28/01/
世の中にはスゲエ人が居るもんだなあ。
cmp命令ってレシーバの型チェックですか? だとしたら、例えば期待しているのと違うレシーバが来た時にcallee側でハード的に例外を発生させる仕掛けとか作れたら、予測が当たる限りにおいては最速に動いたりします? (外れたときのペナルティは大きいですが)。 昔のLisp処理系で数値演算をそんなふうに実装してたのがあったような気が (fixnumだかflonumだかの場合はノーペナルティで、それ以外の数値が来たときに例外を発生させてハンドラで処理する)。
そういう手も確かにありますよね。
専用ハード無しで↑を実現する方法を考えてみる。
超富豪的にアドレス空間を使うことになるけれど…
fixnumだかflonumだかの場合はノーペナルティで、それ以外の数値が来たときに例外を発生
MITやSymbolicsのLispマシンはそういう感じでしたね。fixnumの演算とflonumの演算と型チェックをハードで並列にやる。bignumなんかの時はハンドラへ飛んで処理。
あとは、SPARCにtaddcc (tagged add set condition code) なんていう命令があった気がします。下位2ビットが0でないと例外が発生する整数加算。
Scheme に、ブロック構文みたいなものが出来るんだろうか。
もしかして: map
いや、Ruby っぽくってことで>map
x86 のセグメントを〜 というので前考えたことがあります。
(use gauche.collection) (define-method object-apply ((seq <sequence>) (proc <procedure>) . args) (apply proc seq args)) (define (each seq proc) (map-to (class-of seq) proc seq))
とかやっといて
gosh> ('#(1 2 3) each (lambda (x) (* x 2))) #(2 4 6)
これはSchemeじゃない、というツッコミは可。
きっと、lambda って書いたら負けなんですよ。
Common Lispのリーダマクロみたいのを導入すれば ('#(1 2 3) each {(x) (* x 2)}) とか書けると思うけれど… あるいは { x -> (* x 2) } とか、Paul GrahamのArcだと [* _ 2] と書けるらしいし。でもそういうことにあまり熱心になれないのがLisp脳 (「どうせ展開してlambdaになるんでしょ」)
その辺に気を使わないのがlispが一般人にウケない理由のような
多分、ひとつに決めてしまうことに抵抗があるんだと思う。決まりごとがある程度多い方が広めやすいってわかってても、プライマリユーザ=作ってる人たち自身が「ひとつに決められる」ことに抵抗があるから、色々できるようにしといて好きなの選んでね、っていう形に行きがち。
わかります。ま、それがLispの生きる道なんでしょうね、きっと。
固有表現抽出というのを知らなかったので、ちょっとぐぐってみた。
http://www.forest.dnj.ynu.ac.jp/~mori/MExperiment/NE/gazolab.html
なんともわかりやすい解説で感動。なんか、正規表現でグリグリ書いたほうがいいのかしらん。自動学習型ってのが、楽そうなんだけどなぁ。
OpenSync というのを見つけたが、何と何を sync 出来るのかようわからんかった。
http://www.amazon.co.jp/gp/product/0321486811/
ドラゴンがかっこよくなってる!!
A君にパタヘネ3版を買ってきてもらった。凄い小さい!
って、CD-ROM つきか。
http://www.tnlab.ice.uec.ac.jp/daihinmin/
サンドボックスとか、何か利用するのかなぁ?
http://d.hatena.ne.jp/tkng/20061110/1163187966#c それ CaboCha で出来るよ、ということなので、ちょっと試してみる。Windows 版はインストールが超簡単だった。
[ruby-list:42182] を例にとってやってみる。
ここから抜き出したい情報は、
ということになる。
とりあえず、cabocha -n1 としてやってみる。
Subject:[ruby-list:42182][ANN]日本Rubyカンファレンス-D 2006開催の-D お知らせ EOS From:SASADAKoichi<ko1atdot.net> EOS Date:Tue,2May200601:22:12+0900 EOS -D <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006実行委員会の---D さ-D さだです。 EOS EOS お待たせ-D しました。---------O <LOCATION>日本</LOCATION>での-D | 初の---D | Rubyオン<PERSON>リー</PERSON>な-D | 大規模イベントである-D <LOCATION>日本</LOCATION> EOS Rubyカンファレンス-D 2006、-D 通称RubyKaigi2006の-D 開催を-D お知らせします。 EOS EOS チケット発売は-----D <DATE>一週間後</DATE>の-D | 5/9を-D 予定しています。---D 発売チケット枚数が-D 会場 EOS の-D 関係で-----D あまり-D | 多く-D ありませんので、---D 売り切れに-D ご注意ください。 EOS EOS 皆様の-D ご参加を-D お待ちしております。 EOS EOS EOS ----------------------------------------------------------- EOS EOS ==================================================== EOS ==日本Rubyカンファレンス-D 2006開催の-D お知らせ== EOS ==http://jp.rubyist.net/RubyKaigi2006/== EOS ==================================================== EOS EOS EOS =日本Rubyカンファレンス-D 2006とは EOS ==================================== EOS EOS -D <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006(通称RubyKaigi2006)は、-D 多 EOS くの-D Ruby開発者、-D Ruby利用者が---D 一堂に-D 会し、-D 技術的・人的交流 EOS を-D 深める-D イベントです。-----D また、---D プログラミング言語Rubyのみに-D 特 EOS 化した、-D 国内では-----D 初の---D 本格的な-D カンファレンスです。 EOS EOS -D 詳しくは-D http://jp.rubyist.net/RubyKaigi2006/about.htmlを EOS ご覧-D ください。 EOS EOS [日程] EOS EOS -D <DATE>2006年6月10日</DATE>(土)、---D 11日-D (日)の-D 二日間です。 EOS EOS *<DATE>6月10日</DATE>(土)9:15開場、-D 9:45開始 EOS *懇親会は---O <DATE>6月10日</DATE>(土)18:30開始予定(場所は-D 準備中) EOS *<DATE>6月11日</DATE>-D (日)9:15開場、-D 10:00開始 EOS EOS [カンファレンス会場] EOS EOS 独立行政法人産業技術総合研究所 EOS <LOCATION>臨海</LOCATION>副都心センター別館-D (バイオ・IT研究融合棟)-D 11階 EOS (地図:http://www.cbrc.jp/cbrc/map/index.ja.html) EOS EOS EOS =主催 EOS ====== EOS EOS <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006実行委員会,日本Rubyの-D 会 EOS EOS EOS =後援 EOS ====== EOS EOS 独立行政法人産業技術総合研究所 EOS EOS EOS =協賛企業 EOS ========== EOS EOS -D <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006は、-----D 現時点で---D 以下の-D 企業より協 EOS 賛を-D 頂いております。 EOS EOS [特別協賛] EOS *株式会社ネットワーク応用通信研究所 EOS EOS [協賛] EOS *サイボウズ・ラボ株式会社 EOS *株式会社永和システムマネジメント EOS *株式会社ツインスパーク EOS *<PERSON>サン・マイクロシステムズ</PERSON>株式会社 EOS EOS EOS =プログラム EOS ============ EOS EOS Rubyの-D 開発者である-D まつもとゆき<PERSON>ひろ</PERSON>氏、---D RubyonRailsの-D 作 EOS 者である-D <PERSON>DavidHeinemeierHansson</PERSON>氏両名の-D 基調講演を-D 予定して EOS おります。 EOS EOS プログラムについて、-------D 詳しくは-----D 次の-D | ページで-D ご確認ください。 EOS EOS <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006-プログラム EOS http://jp.rubyist.net/RubyKaigi2006/program.html EOS EOS EOS =参加方法 EOS ========== EOS EOS チケットの-D 購入が-D 必要です。-----D 5/9(火)に---D <PERSON>ローソン</PERSON>チケットで-D 発 EOS 売予定です。---------D 詳しくは-------D 次の-D | ページを---D ご覧-D ください。 EOS EOS <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006-参加申し込み EOS http://jp.rubyist.net/RubyKaigi2006/application.html EOS EOS 会場の-D 関係で、-------D あまり-----D 多くの-D | チケットは-D 発売できないので、-D 売り EOS 切れに-D ご注意ください。-----D チケット発売についての-D | 詳細が-D 確定したら、 EOS また---D 本MLにて-D ご案内いたします。 EOS EOS EOS =FAQ EOS ===== EOS EOS *Q.-D 「<LOCATION>日</LOCATION>本Ruby会議2006」じゃないの? EOS *A.違います。---D 「<LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006」です。 EOS EOS *Q.RubyConference(RubyConf)ですか-D ? EOS *A.違います。-------O RubyCentralInc.が---D | 毎年-D | 行っている-D RubyConf EOS とは---D 関係-D ありません。 EOS EOS *Q.日本語ですか-D ? EOS *A.オフィシャル言語は-D 日本語です。---O ただし、-D DavidHeinemeier EOS H<PERSON>ansson</PERSON>氏の-D 発表は-----D 英語で-D | 行われる-D 予定です。 EOS EOS EOS =お問い合わせ EOS ============== EOS EOS -D <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006についての-D お問い合わせは EOS rubykaigi2006/jp.rubyist.netへ-D お願いします。 EOS EOS EOS <LOCATION>日</LOCATION>本Rubyカンファレンス-D 2006実行委員会 実行委員長 -D <PERSON>高橋征義</PERSON> EOS ----------------------------------------------------------- EOS EOS 本メールの-D 内容の-D ブログなどへの-D 転載は---D 歓迎します-D :) EOS EOS -- EOS //SASADAKoichiatatdotdotnet EOS EOS EOS EOS
うーん。ここからどうするものなんだろうなぁ。日付は取れてるけど、場所とかタイトルとかは難しそうだな。
タイトルはメールの Subject 決めうちでも、そんなに悪くない気もするな。「Subject: こんなイベントがあるそうです」なんてのはレアケースとして無視して。本文中に Subject と同じ内容があれば、タイトル決定でもいいのかもしんない。
自分の職業を「学者」と人に言われて、初めてそういう解釈もあるんだ、と思った。
というか、FF3 のジョブっぽくてカッコイイ! 召喚師にはなれそうにないけど、学者にはなれるんだなぁ。本でガコガコ殴る練習しないと。
今日は3本の記事をでっちあげて、あと一本なんか書かないといけない。ヤバイ。
今日(もう昨日か)は久々に特急電車がある時間に帰れた。いつもこうありたいものだ。
ご利用のIPはブラックリストに登録されているため、スパムコメント防止対策として投稿が禁止されています。 大変お手数ですが、はてなにログインしてから再度お書きください。 コメントの内容は以下となります。 .... 詳しくは、はてなダイアリーのヘルプをご覧ください
!!!
えー、これがですか。Ruby 関連に突っ込みいれすぎたということなのか。
って、それならいいんだけど、この辺ハックされていたら一大事だ。ちょっと、どういうことか調べないと。
詳しくは〜 っていうところを見ても、この件についてはさっぱりわからん。
とりあえず、俺の atdot.net の管理が悪かったのか、上流が悪いのか知りたい。
というわけで、ここに書いていこう。
http://d.hatena.ne.jp/hzkr/comment?date=20061110#c
昨日、メソッド引数のコンパイルあたりを色々変えたので trunk を対象にするとよいかもしれません。 if/else のコンパイルについては一度まとめました:http://jp.rubyist.net/magazine/?0013-YarvManiacs ちなみに、poped は popped の typo なんですが、pop 自体適当かよくわからないので、どうしようかなぁ、と思っています。
そういえば、帰り際、えらい長い行列があって、PS3 の発売を知ったのだった。
うー、なんでこんなところでこんな仕様変更してるんだー、と泣きながら parse.y の変更に追従しているわけですが。
やってきました GC バグ。parser 周りなんだろうな。
orz
やっとなんとかなった。
2263 tests, 18140 assertions, 37 failures, 100 errors
やっと test-all が動くようになった。
なんか昨日は狂ってた。
いつもは、イベントも何もなく、全然人と会うことなどないのに。重なるときは重なるものだなぁ。
で、今日はとくに何もない。多分。
何もしないと思ったんだがなあ。
class C def m p "C#m" end private :m end class D < C public :m end D.new.m
が動かないなぁ。
動いた。
NODE_ZSUPER なメソッドで、visibility を上書きできないようになっていた。
2263 tests, 18491 assertions, 37 failures, 81 errors
test_get(TestNetHTTP_v1_2): Errno::EADDRINUSE: Address already in use - bind(2) /home/ko1/yarv/trunk/lib/webrick/utils.rb:73:in `new' /home/ko1/yarv/trunk/lib/webrick/utils.rb:73:in `block in create_listeners' /home/ko1/yarv/trunk/lib/webrick/utils.rb:70:in `each' /home/ko1/yarv/trunk/lib/webrick/utils.rb:70:in `create_listeners' /home/ko1/yarv/trunk/lib/webrick/server.rb:74:in `listen' /home/ko1/yarv/trunk/lib/webrick/server.rb:62:in `initialize' /home/ko1/yarv/trunk/lib/webrick/httpserver.rb:24:in `initialize' /home/ko1/yarv/trunk/test/net/http/test_http.rb:280:in `new' /home/ko1/yarv/trunk/test/net/http/test_http.rb:280:in `spawn_server' /home/ko1/yarv/trunk/test/net/http/test_http.rb:270:in `setup'
この辺はなんだろう?
POSTARG と ARGSPUSH の違いはなんなんだろ。
ほんとに push するのか。しかも、毎回 dup して。非効率だなぁ。しかし、arraypush バイトコードを新設しないといけないのか...。どうしようかなぁ。
文章抽出とかは全然経験が無いので、少し試してみようかしらん。
なんか、世の中のカレンダーソフトには、メールの中からスケジュール(イベント)情報を抽出するという機能を持っているものがあるらしい。きっと、google は gmail のエントリから抽出して、google calendar へ追加する機能をくっつけてくるんだろうと思う。
最近、(結局)Sunbird を使ってスケジュール管理してるんだけど、Thunderbird のメールエントリから Sunbird のエントリ追加を簡単にするプラグインを誰か作ってくれないかしらん。いや、コピーしてクリップボードに入っている文章を解析してくれる、というのでもいいんだが。
面白いと思うんだがなぁ。誰かやらないかな。
日付と時間の抽出だけでも、ありがたいと思うんだけれど。場所まで出来ればもっとよし。
「頭がいいと〜」を読み終わった。1300円が帰りの電車だけで読み終わるとは。
amazon のレビューにあったけど、基本をさらっただけ、と言う感じだった。だが、読みやすかった。こういう文章を書けるようになれるといいのかしらん。
まつもとさんの時計はやっぱりちょっとずれているような気がするなあ。
まつもとさん帰ってった。
YARV の parse.y が随分進歩したと思う。SEGVの嵐になったが。
うーん、Ruby に lexicial じゃない scope ってないと思うんだけど、何か勘違いしているのかな。
うは、module duplicate inclusion って revert されたのか!
なんか15日(水)が呪われてる。
BinaryHacks 聞きに行きたいんだけど...。
module M1 def m p "M1#m" super end end module M2 def m p "M2#m" super end end module M3 def m p "M3#m" super end end module M4 def m p "M4#m" super end end class C0 def m p "C0#m" end end class C < C0 def m p "C#m" super end include M1 include M2 end o = C.new class << o def m p "singleton#m" super end end o.extend M3 o.extend M4 o.m class << o p ancestors end
"singleton#m" "M4#m" "M3#m" "C#m" "M2#m" "M1#m" "C0#m" [M4, M3, C, M2, M1, C0, Object, Kernel]
extend したときのメソッド探索順を取り出すには特異クラスの ancestos を取ればいい、ということを卜部君に教えてもらった。
Binary Hacks を参考に、Ruby レベルで C のネイティブスレッドを出せるようにした。
./miniruby -I../trunk/lib ../trunk/test.rb 0x80d62d6: nsdr ../trunk/yarvcore.c:842 0x80d3751: call_cfunc ../trunk/call_cfunc.h:27 0x80d2b53: th_eval ../trunk/insns.def:2144 0x80d3353: th_eval_body ../trunk/vm.c:1527 0x80d5807: yarv_th_eval ../trunk/yarvcore.c:464 0x80d514a: yarvcore_eval_iseq ../trunk/yarvcore.c:176 0x80592d1: ruby_exec_internal ../trunk/eval.c:233 0x80592f6: ruby_exec ../trunk/eval.c:247 0x8059340: ruby_run ../trunk/eval.c:268 0x8056710: th_get_ruby_level_cfp ../trunk/eval_intern.h:301 0x4009b974: ?? ??:0 0x8056631: _start ../sysdeps/i386/elf/start.S:105
こんな出力が出来るようになった。
NSDR().each{|e| if /(.+?)(\(.+\)|) \[(.+)\]/ =~ e cmd = "addr2line -e #{$1} -f #{$3}" puts "#{$3}:" puts `#{cmd}`.lines.map{|e| ' ' + e} else raise e end }
addr2line を ruby レベルでやっているので、segv 時の出力としては利用は難しいか。アドレスだけ出せばいいんかな。
某で日本語がダメダメであるという指摘を受けた。まったくそのとおりかと思います。すみません。すみません。粉骨砕身の決意で直したいと思います。
うーん、首が。
首が回っていないうちの1つが、なんとRubyプログラムを作る(Rubyを作る、じゃなくて)なので、気分転換にそっちをやる。しかし、Ruby プログラムを作ると、性能とかバグとかやばそうなところを考えてしまってダメダメだ。
POK: Plain old Koichi
文章力が超落ちているような気がする。
ということで、「頭がいい」と思わせる文章術 仕事で結果を出す“稼ぐ書き方”を買ってきた。
なんで彼等は VCS 選びであんなに盛り上がれるんだ。
cygwin で一生懸命 find を実行しようとしていたら
$ find . -name CVS FIND: パラメータの書式が違います
と出て動かない。やっぱり俺には find は使いこなせないのかと思っていたら、Windows の find を呼んでいた罠。
なんか、安請け合いして書かなきゃいけないものが溜まり溜まっている。
で、そんな中 Binary Hacks が。ヤバイよ、面白いよ読んじゃうよこれは。封印したい。
というか、なんで俺に書かせて(ry
ありがとうございました m(__)m
あんまりバイナリって感じじゃない気がするなぁ。
というかお仕事が全然進まないんですが...。すみませんすみませんすみません。
GTD(Get Things Done)流に、仕事の一部を delegate (委譲)するのもいいかも。http://air.geo.tsukuba.ac.jp/~eddie/2005/05/26/58.html
仕事の一部をdele..te(記憶から)
それだ。
VCSってVIとEmacsの戦争みたいだろ。実は人の好みは説明のしようがない^_^
右左のわからない俺。
というか、なんでみんな右左をぱっとわかるんだ? 東西南北ならさっとでてくるんだが。
笹田先生と書かれて寒気が...。
コンビニでなんか買って、電気街口の広場でダラダラする、ってのはやっぱりダメだよな...。
ぼくも右左がわからないです。たしか森毅さんも、エッセイで東西南北のほうがわかりやすいって書いてました。京都の人だから。
私もわからん。考えないと出てこない。東西南北、及び上手(かみて)下手(しもて)はさっと出てくる。思うに、頭の中の座標軸が、場所固定の人と自分固定の人とがいるんではなかろうか。
「知らないところでは、東西南北がわからん」といことがあります。
神戸は山のある方が北ですし、大阪は東西が「通り」で南北が「筋」なので、どちらでも東西南北の方がわかりやすいので、そういうところで育った人は東西南北がわかりやすいんじゃないでしょうか。東京はどっちがどっちかさっぱりわかりません。ずっと秋葉原の街は東西方向に伸びていると思ってました。
場所を住所で言い合うような場所には住んだ事はないんですよね。札幌の人が場所を聞いたら住所を聞き返してきたときにはとてもびびった。
神戸は上下左右で地図の説明をされる方が多い気がします
ああ、ローカルな説明なら、mauka(山側)/makai(海側) とか windward(風上側)/leeward(風下側) とか使います。ホノルル近辺ではDiamond head side/Ewa sideのように特定のランドマークも。
なんか、とても疲れた。
議論が飛び交ってる中で、一人内職しようとしていたら、全然集中できなくてダメダメだった。ああいう場で集中して一人ドキュメントを書いていた shiro さんはやっぱりスゲエ。
http://pc8.2ch.net/test/read.cgi/tech/1159315598/592
というわけで、すみません、日本語ボロボロでした。
module M def m p "M#m" end end class C1 include M def m p "C1#m" end end class C2 < C1 include M end C2.new.m
従来は C2.ancestors は [C2, C1, M, Object, Kernel] になるので、C1#m が呼ばれます。
しかし、今回の変更で [C2, M, C1, M, Object, Kernel, BasicObject] となったので、M#m が呼ばれるようになります。
というわけで、C2 が M を include したという影響は後者のほうが大きいということになります。
いや、なんかわかりづらいなあと思ってたんだけど、適当な日本語が思いつかなかった。
さて、なんでこの件について考えているかと言うと、YARV では include される Module は1つである、という前提のもとで書かれたコードがあるから。具体的には super の処理。
C2#m のメソッド表現には、自分は C2 のメソッドであり、C2 の super は M を探せばよいかわかる。しかし、M#m は super したとき、どこを探しに行けばよいか実行時にしかわからない。なので困ってしまう。
そこで M#m で super が行われたとき、YARV は、receiver の klass の ancestors を検索して、M を探して、その上からメソッド検索を行っていくようになっている。
なので、ancestors が [..., M, C1, ..., M, ...] とあって、M#m が super を呼ぶような処理の場合、2度目の M#m を実行しているとき、最初の M の次の C1 へメソッド探索順序を戻してしまうため、無限ループになってしまう。
で、RSS に
class C0 def initialize p "C0#initialize" end end module M def initialize p "M#initialize" super end end class C1 < C0 include M def initialize p "C1#initialize" super end end class C2 < C1 include M def initialize p "C2#initialize" super end end C2.new #=> 1.9 最新版では以下のようになる "C2#initialize" "M#initialize" "C1#initialize" "M#initialize" "C0#initialize" #=> 従来はこうなる "C2#initialize" "C1#initialize" "M#initialize" "C0#initialize"
こんなコードがあって、YARV では動かないわけです。
Ruby 以外に module 機能のようなものがある言語ってあったっけ? で、それではこの問題はどう解決しているんだろう? そもそも module のメソッドに super なんてするなよ、ということかもしれないんだが。
自分の経験が、OSS 関係などの(開発に関わらず)比較的緩いものしか無いので、どうにも経験不足が身にしみる。
理想的には
"C2#initialize" "M#initialize" "C1#initialize" "C0#initialize"
こうなるべき、なんだろうか?
なんか ruby-dev が盛り上がってるな。
linearizationしないの? > ancestors
linearization という言葉を理解できているか自信がないのですが、従来はそうしていた、ということで、そうじゃなくなって「ぎゃっ」と言っている次第です。
ああ、Ruby本体の仕様変更ということなんですね。
はい。すみません、言葉足らずでした。
自分で試したわけではありませんが、http://strongtalk.org/downloads/mixins-paper.psの6.3辺りを見ると、superclassも"invocation"ごとに違うみたいなのできっと複数あっても大丈夫なのでしょうか。(Related WorkのところにRubyも含めていろいろな言語が載っています)
複数あっても大丈夫というのはわかるのですが、複数あっていいのか、というのが知りたいんですよね。いいのかなぁ。
s = 'foo' t = "#{s}"
こんなコードで、s と t の実体が同じになるというバグがずーーっとあったらしい。ううむ、こんなところでひっかかるとは。こんなテスト書かないしなぁ。
mkmf.rb が String#dup の代わりに使っていた。一文字多いんだけどなあ。
たんたんと読んでいって素晴らしい。コメントとかデバッグメッセージを全然メンテナンスしていないので、微妙に違う感じがするな...。
ruby-core にも投げた。
dblack に英語を添削してもらったんだが、merge Ruby with YARV でもいいが、merge YARV into Ruby のほうがいいだろう、と教えてもらった。今度から気をつけよう。
さて、RubyKaigiのミーティング。なんかまた背負いすぎのような気がする。
なんか終わった後長時間ダラダラと。
参ったなぁ。なんとなく、まったりと読書会をやるつもりだったのに、なんか大変になってきている。
Symbol 周りが遅くなったので YARV でのコンパイルがとても遅くなっているような気がするなあ。作り直さないといけないかも。
あまり速度は変わらないと思ってたんだけど(生成以外)。ちゃんとプロファイルとってないんで、遅そうな点があったら直します。
決めた。
職業病なのか、青木さんに洗脳されたからか、揃っていない空白とか、空白なしのツメツメの文章とかが気になってしまってしょうがない。
Google maps、「サンノゼ」で検索できた。
Rubyの本読書会ですが、目的はいくつかあって、
などになります。とりあえず、Ruby の C のソースコードの話はしません。し、しないんだからね!
まぁ、要するに慈善事業をしたいわけではないということです。こちらも下心があるので、気兼ねなくご利用ください。
てゆーか、知ってる人ばかりになりそうなんですけど orz ううむ。また偏っちゃうのかなあ。
ものすごい勢いで注釈をつけている件。
亀SVN 1.4 を入れたらコマンドラインのsvn 1.3では動かなくなってしまった件について。
もしかして: newbie
ウワーン。
あ、もしかしてインタビューいじってた? > 注釈
svn 1.4からワーキングコピーの仕様が変わってます。ワーキングコピーは自動的に変換されてしまうそうです。http://subversion.tigris.org/svn_1.4_releasenotes.html
まだ見てもいない>いんたびゅ 多分そうなんだと思いました>仕様変更 問題なのは、サーバがとても重くて svn 1.4 がなかなか落とせなかったということなんですね。
微妙に関係無いですけど、亀SVNって何のことかと思ってたら、Tortoise SVNのことだったんですね。英辞郎で検索して初めて知りました。
スペル書けないんだもん。
PTT ちょっと遅れ 今池袋
2プライスとか3プライスとかのスーツ専門店が安くてよいのではないかと。スーツカンパニーとかスーツセレクト21とか。
なるほど.探してみます.