Kondara 解散かよ! ちょっとびびった。Plamo は大丈夫かなあ。なんか「萌えプラットホーム化してる」という噂を聞いたんだが。
っても正直言って個人的にはディストリビューションはなんでもいいんだよな。どうせメインで使ってるものは全部自分でコンパイルするし。
今日の午前中は (親に借金して) 本を買いにいった。とりあえずは書いてる原稿に必要なもんを買わなきゃいけないのであまり無駄遣いはできない。
『オペレーティングシステム』Andrew S.Tanenbaum, Albert S.Woodhull 著、ピアソンエデュケーション。ソースコード解説を書く以上、ソースコードの解説本は一通り見ておきたかった。
『Java言語仕様 第二版』James Gosling, Bill Joy, Guy Steel, Gilad Bracha 著、ピアソンエデュケーション。重い。高い。ついでに仕様書だけあって面白くない。訳もイマイチだ。どうせなら原書にすべきだったかな。
『プログラミング言語C++ 第三版』Bjarne Stroustrup、ASCII。もっと重くて高い。なんだよ 1031 ページって。小さいほうが必ずしもいいってわけじゃないけど、ここまでデカいとさすがに考えちゃうでしょ。
『Interface 8月号』 今月の特集はBSDか。Interface最近おもしろいね。
『rootから/へのメッセージ』高野豊著、ASCII。いまは一人が一台まるごと使い放題だけど、昔のUNIXは大変だったのねえ。VAX一台二億円とは……。
今日は結局三万近い出費。でもまだまだ欲しい本がいっぱいあるんだよなー。Sed&Awkとか、Solaris インターナルとか。ハードウェア関係の本も欲しいし、あと SICP の原書も欲しい。PostScript と TeX 関係の本もほしい。Hacking Guide の原稿料が入ったらジュンク堂レジ係のおねえちゃんがビビるくらい積みあげてこよう。ていうか今日ですらけっこうギョッとしてた。
OPL で公開されてるのを翻訳してライセンス変えちゃった、という話です。もうちょっと正確な概要その他は Rubyist! からどうぞ。
Ruby Hacking Guide は出版後ウェブで公開したいと思っているのですが、出版社の人はかなり乗り気じゃないです (あたりまえだけど)。この本は値段も高いしページ数多いし専門書じゃないですか、ネタもマイナーじゃないですか、ちょっと試読させてあげて知名度高くするほうが売り上げのびますよ、って説得して「とりあえず第一部くらいなら」ってことになったんですけど。こっちとしても責任があるんでこういう事件のことを黙って公開させちゃうわけにはいきません。そんで、むこうが知れば当然「危うきに近寄らず」になる可能性もあります。気が重い……。
そうですか……Webで見られるんですか……。そりゃそうですよね、公開仕様なんだから、当然予想できることでした。まる (泣)
いやここは前向きに、紙でしかも日本語の文書なのだからより付加価値の高いものを買ったんだ、と思うことにしよう。
ぐはぁ (致命傷) Java の仕様、日本語訳もウェブにあるんですか。そりゃそうだよなあ。あれだけ騒がれててウェブにリソースがないなんてことあるわけがない。だめだ、もう立ちなおれない。この金のないときに 5500 円の出費は痛すぎる。けっ、いいさいいさ、おれは金が無くたって紙が好きなんだー!
ちなみに日本銀行券って書いてある紙は特に好きです。
ふーむ、OPL もオプションを付けると明示的に修正・配布を制限できるのですね。なるほど。
でもねえ。こういうのって起こった時点でけっこうダメージでかいですよね。「こういう条項があるから大丈夫」といくら言ったところで、配布する人達 (出版社も含む) がそのライセンスを信用できなければそれまでです。今回はライセンスの解釈で揉めてましたけど、そもそも解釈によって結果がこれほど大きく変わってしまうようでは、いくらオプションを付けたところで「なんか抜け穴があるような気がする」と言われたら反論できません。
オープンソースソフトウェアを公開してる人達ってのは、そもそもオープンなライセンスに積極的、または寛容、言ってみりゃ「甘い」です。でも最終的に結論を下すのは、そういう人間ではなくクローズな世界でやってきた人達ですから。
RHG はどうなるかなあ。
Alpha はもとから流通量が少ないですが、Yahoo! オークションが有料化してからというものさらに出品される Alpha の数が減ったような感じがします。いまは偶然 dPW500a が出てますね (dPW = digital Personal Workstation)。ちなみに dPW シリーズは a がついてるのが Alpha、i が 86 マシンです。いま 200i も出てますが、これは秘かに PPro200 のデュアルのうえ I/O が SCSI なのがよさげ。おうちサーバにどぅ?
そうそう、dPW a シリーズには a と au があり、基本的に au が UNIX 用ですので注意しましょう。
だめだ……。こんなんマージしたうえに解説書いてたら締切に間にあわねえ。今回はあきらめよう……。あ、でもそうすると出版した瞬間に GC の章が通用しなくなるってことか? それもなんか腹立つな。
あー、どうしよどうしよ。オロオロオロ。
キレた。もうあとのことなんて知りません。徹夜で速攻マージ GO!
五時間経過。なんとか miniruby は動いてるようだ。
ぐぁ、だめだ、落ちた。嫌だなあ、ファイル名が化けてる。この落ちかたはどう見ても GC で失敗してるよー。(続く)
あ、パッチどもです。あてときます。
ReFeと言えば、Marshal使わないバージョンを書きたいなーとずっと思ってるんですよね。その方法はと言うと、まずRDをリファレンス部分だけにしておきます。各エントリにはクラスも含めた完全名を付けておきます。次に、コマンドライン引数を正規表現に変換します。たとえば s g! に対しては \As.*?#g.*?! (opt=i) を生成します。検索します。おしまい。きっととても速いと思うんですよー。
括弧を省略したメソッド呼び出しがネストすると警告が出るようになったようだ。手元のパッケージをチェックしてみると、ポロポロと出てくる。が、あまりたくさんはない。これだけのためにリリースしなおすほどでもないな。
■
なかだ [そういや最近の1.7.2ではrefeでwarningが出ます。
diff -ru2p refe-0.5.0/bin/refe refe-0.5.0+/bin/refe
--- refe-0.5.0/bin/refe Fri Mar 22 20:21:23 2002
+++ refe-0.5.0+/bin/refe Fri Jul 5 05:39:14 2002
@@ -261,5 +261,5 @@ end
class OutputFunctionFromMethod < OutputMethod
def describe_method( name )
- print @table.function_definition @table.method_to_function(name)
+ print @table.function_definition(@table.method_to_function(name))
end
end]
■
木山 [調査する時間がないのと,すでにGCを忘れかかっているので
正確なことは言えませんが,実行時間に占めるGC処理時間の割合が
少ないので,GCを速くしても全体に与える効果は少ないと思います.]
/.j で知ったネタ。フジテレビの 27 時間テレビの企画で、みんなで集まって湘南の浜辺を掃除しようとしてたのを、2 ちゃんねら〜達が先手をとって掃除してしまったらしい。カナーリ爆笑。なかなかおバカな企画でいいですね。こういうのは大好きです。27 時間テレビなんかよりこっちのほうが面白くない?
「パソコンする」と「テレビ見る」はちょっと関係が似てる。
Windows Me と言えば忘れられないのはあれだ、起動直後の宣伝ビデオ。何の前触れもなくいきなり「Windows Meのデジタル世界をご案内します。ビデオを再生しますか? Y/N」とか聞かれて、一回全部見るまで絶対に止まってくれないやつ。N にしても、一度見るまでは何度でも聞かれるというカスっぷり。これって Libretto L1 だけなんでしょうか。
しっかし、あれは本気で逆宣伝かと思いました。だって、その直前まではけっこうウキウキしてたんですよ。イマドキなスリムノートだし、わりとカッコいいし、薄くて小さくてカワイイじゃないですか。Windows でもまあいいかー、エヘヘー、なんて思ってたとこだったのに、アレをくらったせいで堪忍袋の緒が三本くらいブチ切れましたね。そりゃもう、ブチブチブチッて音が聞こえるくらいに。
モニタの壁紙……。ぼくの場合どうせ 常時 kterm で画面が埋めつくされてるからルートウィンドウは 100 ドット分くらいしか見えません。だから最初から壁紙貼りません。壁紙が役に立つ人ってどういう画面構成になってるんですか? 起動直後だけ見えればいいのかなあ。(.xinitrc から必要なアプリ起動しちゃうとそれすらも見えない)
おおなるほどっ、スケスケですか! それは考えてなかったー。そういや「時代は半透明を求めている」みたいな記事が昔の日経にあったような気がするな。たしか初代の iMac が流行ったころ。
emacs も透けるのかな。xemacs あたりは節操なく透けそうだな。どうでもいいことだが「透けそうだな」と「スケトウダラ」は似てる。
[ruby-talk:43992] なんかよくわからないけど Racc を使ってくれているようだ。嬉しい。
aref の由来を確認するためにかけずりまわる。
というところで思ったんだけども、こういうプログラミング特有の略語の辞典ってないのだろうか。たとえば簡単なのだと defun → define function、stmt → statement、idx → index、str → string というように。
コンピュータ一般だとたくさんあるな。でもプログラミング専門のはあまりないようだ。idx str が載ってるのは全然ない。ああでも、aref だったら aref で検索してみりゃいいのかな?
ちなみに aref は array reference で由来は Lisp。ref が refer か reference か、で迷ってました。
ちょっとー、一日 100 通どころじゃないじゃん。6日 105通、7日 86通、8日 135通。つーか each か? String#each がいかんのか? てめえら本当に文字単位で each したいのか?
ま、こういうズレズレな意見はまつもとさんにあっさり却下されること間違いなしなので適当に眺めとくに限る。
二日前に賞味期限の切れた鯵を食べてしまった。どきどきどき……
■
なかだ [eachと<<の組合せならStringだけじゃなくてIOでも有効なので、そっちのほうが便利じゃないかと思うんですがねぇ。
まぁEnumeratorやらparameterized moduleってのはいいんですけど。]
■
あおき [でも文字単位の繰り返しは重いですよ……。前にやって懲りました。
それに文字ってあんまり明らかな概念じゃないですから。]
■ なかだ [もちろん、行単位です。IO.eachはやはり行単位でしょう。]
■ あおき [あっ、だから行のほうがいいってことでしたか。それなら納得。]
■
なかだ [[ruby-talk:44082]なんて面白いかもとか思ったりするけど、こりゃ大きすぎるから無理だろうなぁ。
結構大変そうだし。]
@hour_offsetが効かない、おかしい…… とずっと思っていたのだが、 よく見たらフォームの日付を調節するって書いてあった。 メール経由なら効かないのは当然だ。
どうせ posttdiary.rb は原形を留めないほど改造されているので 定数決め打ちで調整した。ついでにプリプロセスをかまして念願の 行折り返しを実装。プリプロセッサは前の日記スクリプトから 切り貼りだ。
ちなみにこのメールがそのテストでもある。
refererからアンテナを削って重要なrefererが見やすくなったのはいいけど、 今度は削りすぎてさびしくなってしまった……。ショボーン。
レトルトカレーであさごはん。そして冷蔵庫の奥にいつからあるのかわからない福神 漬を発見。当然食べるでしょ。
……うわっ、うわああああ! 福神漬クラスタの内側にカビが! 青いカビがふさふさしてるよ! いくらなんでもヤヴァいだろこれはっっ。
……ペニシリン……とかいうことはないだろうなあ。 ぐわっ、なんか腹痛い?!
シュークリームって、
クリームの入ったシュー?
シューでくるんだクリーム?
……どっちでもないらしい。正式名称は shoe a la cream (フランス語)。 shoe はキャベツ、a la が〜風で「クリーム入りキャベツ」かあ。 参考: http://www.shokushoku.com/event/003/chou_a_la_creme.html
あ、ちげえよ。「クリームの入ったシュー」でいいんだ。なーんだ。
や、やばっ、ツボにはまった……。 おもしろすぎ。
つうことはアレっすかね? .福神漬フレームワークってのがあるんですね。 高速な .福神漬バイトコードを生成する VC++.福神漬テクノロジ、とか インドカレーからボンカレーまであらゆるカレーライス環境に対応する .福神漬バーチャルマシンとか。
あっ、はじめまして。 そうですねえ、なんでチャレンヂしてしまうんでしょうね。 きっとそこに賞味期限切れの食べ物があるからじゃないでしょう。 ほら、主婦によくあるじゃないですか。もったいないからと言って 余り物を全部食べてしまって太るというパターンが。そういえば うちの母親も冷蔵庫に「わたしの胃袋はゴミ箱ではない!」という メモをはりつけています。食べてしまいそうになったときに冷静に なるためだそうです。(無駄だけど)
んで突然思ったんですが、あのフワフワ青カビクラスタはもったい なかったです。なにがもったいないって、あれだけ見事にカビてた のだから写真くらい撮るべきでした。それでここに貼ったら Visual じゃないですか。VisualStudio.福神漬じゃないですか。うわっ、 もったいなー!
なにいー。 ruby 1.7 な tDiary ユーザは他にもいるのか……。 やはりイマドキ ruby 1.7 程度ではインパクトがないのだな。 なにか次の手を考えなければ。たとえば tDiary まるごと 拡張モジュールにするとか! (意味無)
1.6→1.8 への移行で大変そうなことと言えば、STR2CSTR が obsolete になったことでしょうか。(なくなったわけじゃないです) あとはマイナー API がなくなったり、新しい API ができたり してるだけなのでリコンパイルだけでだいたい通りそうです。
どっちかというと Ruby スクリプトレベルのほうが影響が大きいかも。 if /re/ が通らなくなったとか、$= が半分消滅しかかってるとか、 そのへんの Perl 経由のやつを多用してると苦労するかもしんない。 あと net/http のバージョンアップ。もしかしてほとんどおれが原因?
Rubyレベルの違いは新井さんがかなり詳細にまとめてくださってるので 助かりますね。http://www.ruby-lang.org/ja/man-1.6/ の 「1.7 feature」のとこを見ればすぐわかります。
C レベルのは、ruby-dev になにかあったような気がしないでもない。
■ なかだ [あとはAllocation Framework。]
■ ken_u [確かにもったいない(笑)。>VisualStudio.福神漬]
■
(う) [使用許諾契約書にありますように、VC++.福神漬を用いて生成された福神漬は、フリーなレシピのカレーと組み合わせることは出来ません。
ボンカレーなどのレトルトカレーであれば問題ありません。
# ところで、「高速な .福神漬バイトコードを生成」って、要するに傷みが早いってことですか? ^^;]
■ arton [下品で行くと、そりゃ、くだるのが早いってことでは。]
■
なひ [福神漬けに山椒を振り掛けることによって、食後に安全に回収することができるんですね。
unmanagedな福神漬けの山椒(版)を取り出すことをボクシングと。。。]
ruby-core ML に Bohem GC の Bohem さん本人からメールが来てる! [ruby-core:00225]
そっか、allocate もありました。あれ結構面倒なんですよね。ただ、あれっ て対応してないからと言ってコンパイルが通らなくなるっていうものじゃない ですよね? allocate を使う Ruby プログラムでバグるっていうだけで、 いちおう動いちゃいませんか。
それと if /re/ が通らなくなったのは、こんなコードでぼくがハマって 文句言ったのが間接的なきっかけです。
class C def initialize( re = nil ) @pattern = re || /default pattern/ ####ここが問題 end attr_reader :pattern end c = C.new p c.pattern # nil
これは嫌でしょ、かなり。
炊きたて御飯だった御飯をちょっと時間を置いてから卵と納豆で食べました。
べつにね、いいんですよ。賞味期限が切れてたっていいんですよ納豆なんか。 あんなもん最初から腐ってるんですから。使う菌がちょっと違うだけです。
卵も大丈夫です。固いカラで守られているのでそう簡単に腐ったりしないので す。卵がそんなに簡単に腐ってたらヒヨコが生まれる前に腐ってしまいまうで はないですか。
そもそも、賞味期限ってのは相当にマージンをとって設定されています。同じ 食べ物だろうと数がたくさんあれば必ず腐敗に強い個体と弱い個体があります から、ダメになる時間の平均値を使ったりすると弱いものは賞味期限前にダメ になってしまいます。だから普通は一番弱い個体の賞味期限からさらに少しマー ジンをとって設定されているのです。すなわち平均的な個体ならば賞味期限な んかよりも遥かに保つと言えます。よほど賞味期限の短かいもの以外ならば、 倍は保つと思ってよいでしょう。ええ、よほど短かいもの以外なら。たとえば 生魚みたいな生ものはヤヴァいですね。
さ、アジ焼こっと。
■
kjana [実際生卵は「常温でたてておく分には」一ヶ月ぐらいもつものらしい
ですね.冷蔵庫に入れたりなんかするとかえって早く痛むとか.
....なんか書いててちょっとうそかもと思った :-P 早く痛むってこと
はないか.生魚はだめそうならだめそうな味と匂いがするから大丈夫 :-P]
いったい何を思って「あお」とか「そうですねえ」を 検索したんでしょうか……。謎。
そういえばぼくも前に何気なく「じゃじゃ〜ん」を 検索したことがあります。そのとき見付けたのが これ。
……えー、あのー、
どうしたらいいんでしょう?
今回 MNU みたいのは付くのだろうか。大予想!
二文字も変えちゃだめじゃん。
いやー、さすがに味噌は賞味期限切らしませんよ。 あれってそうとう持ちますからね。 と言いつつこの前のは切れそうになってあわてて食べたので なんとも言えないんですが……
それよりもね、それどころじゃないんですよ。 味噌ないと味噌汁作れなくて昼飯食えないので 急いで味噌を買いにいったんですよ。 ところが! ところが! と、ところが!
買い忘れたんです……味噌だけ……(泣)
にんじんをまるごとかじる。二本ほど。カロチン。
ふーむ、まとめるとこういうことですね。
なんにしても ruby -cw で自動チェックできるのでとりあえず 本物で確かめてみるのがベストかな。
ruby のスキャナの状態遷移を追って朝があけました。
ここ一ヶ月あたりの i.loveruby.net アクセスランキングトップは 『ソースコードを読む技術』 でした。アクセス数は約 7000 で二位の Racc 1.4.2 に 15 倍近くの差を つけています。こんなすごいことになってるのはどうやら カトゆー家断絶 というところがリンクしてくれた影響らしい。
うーん、この文書が人気出るということは、ここらへんはやっぱり 既存文書の「穴」なのかな。そういう意味では Ruby Hacking Guide も意外と 善戦しそうな気がしてきた。……なんて自分で言ってどうする。
まあ、ぼく自身は最初っから「メチャ売れるとは思わないでください」と 出版社の人に言ってます。出版社の人も口では「○万部売りますよー」と 言いつつ初刷○千部だし。さすがだよねっ!
いや、でも真面目な話、初刷で終わるのは避けたい。
やっと B5 変形 250 ページを越えました。書くの遅すぎだよ俺。
つうか、こんなとこで内情を書いてていいのかって気がしますが、 ruby-list に書かれてしまったくらいだからもうどこでなに書こうが 同じですな。それに少しは事前宣伝しとかないと本当に○千部で終わりかねない (泣)
getopts で、 第一引数と第二引数の間のカンマを抜かしたために文字列が連結されてしまった。
誰だよそういうことするバカは。さっさと実名を出せ。 ……発見。 やはりこういうのは学生系に限るな。公式サイトには一言も出てねえし。
つうかさ、前に学生がセクハラしたときは速攻で退学にしなかったっけ? たしか一橋祭の打ち上げで全裸で池落ちしたときだ。 でも教授が抱きつくと減給&戒告か。ふーん。利口な判断だな石弘光。 さすがは学生投票で「不」人気第一位だよ。
そうですね。まず、対象にするのは CVS HEAD 版なのであと二年くらいはもつだろうと思ってます。つまり現時点 でまだ最先端に追従してます。まあそれにしたって本と CVS HEAD ではタイム ラグが出ざるを得ないわけですが、それはしかたないです。完全に通用すると きなんてどうせ一瞬しかないわけですから。
それに、今回はどちらかと言うと「rubyの実装を知る」ことが主眼ではありま せん。もちろんそれも重要なテーマの一つであるわけですが、すべてではあり ません。
まず第一にはソースコードを読む実際的な方法を書くという目的があります。 つまり『ソースコードを読む技術』は実は RHG のまえふりにすぎません。あ るいは RHG はその「実装」です。その場合はモノがあればよくてバージョン はどうでもよいです。
第二に「本物の」言語処理系を読むという目的があります。言語処理系には何 が必要なのか、何を考え書く必要があるのか、それについて書きます。本物の 言語処理系の解説本は現在にいたるまで Scheme Pascal gcc くらいしかなく (gcc のは英語だけかも)、実は意外と数が少ないです。ですから ruby のバー ジョンが多少古いところでそれらよりは遥かに新しいわけで、なにも問題あり ません。特に最初から日本語で書かれたものはないはずです。
第三に C 言語の定石を読むという目的があります。たとえばハッシュテーブ ル、関数ポインタを使った継承の実装、マクロの使いかた、autoconf など。 この場合も ruby は単に実例にすぎません。
第四にプログラム言語 Ruby をヨリ深く理解するという目的があります。プロ グラム言語は自然言語とは違うものであり、完璧に理解するにはなんだかんだ 言って処理系それ自体の理解が必須です。Ruby の本質を知るには ruby を読 むのが一番でしょう。「本質」はそうそう変化するものではないので、これも バージョンには関係ありません。
それから前に書いたようにウェブで公開する予定なので、あまりにも変わるよ うならそれなりのフォローはそちらでできると思います。というか、ウェブ公 開はそれも念頭に置いて進めています。
またもちろん解説するバージョンのソースは CVS から取って CD に入れます し、rubyの CVS レポジトリおよび cvs、cvsup も収録予定です (cvsup はサ イズ的にキツいかも)。メーリングリストの過去ログと検索セット一式も入れ ます。cvs を使って変更を追跡する方法と、メーリングリスト・ChangeLog の 解析についても本文中でやります。さらに、ぼくが Ruby で書いたソースコー ド解析ツールを一式入れて、本編でもそれを使いながら進みます。つまり徹底 的にツールを使って知りたいことを半自動で得られるようにすることで読者が 勝手に最新版に追従できるようにしてしまう (アップデートが必要なくなる) のを理想とします。
うーむ、我ながら完璧に宣伝モード。 ここは話半分に読んどいてください (^^;;;;
ソースコードの解析用ツールは出版前に全部まとめてLGPL でリリースする予 定です。本音を言うと先にテストしておきたいから、なんですが、まあ無料& フリーで公開するからそれくらいは許しもらおうということで。
あともちろん global などライセンスのはっきりしてる ソースコード読みツールは添付したいと思ってます。
Ruby 関連パッケージもガシガシつっこむし。 リファレンスは当然入れるし。 書き下ろしの Ruby コア関数リファレンスも入る予定だし。 ReFe も入って検索はバッチリ。
できれば原稿も HTML 化して CD に入れたいっす。 本文のリストの関数名から定義やリファレンスに飛べたらすごいじゃないすか。 章間リンクもハイパーリンクで楽ちん。
※ そうすると本のいいところはなにかって話になってしまいますが、 それはそれであるんですね。図がキレイとか (EPS だからね)、 目が疲れないとか、いろいろ書きこめるとか、 著者にサインを書いてもらえるとか。最後のはいらねえな。
あ、そうだ、言いたい放題書いちゃいましたが、 出版前のリンク・引用はできるだけご勘弁願います。
あぁしかしこんなに大口たたいてしまっていいのか俺……。 マゾか? つーかマゾなのか?
■
たかはし [>いや、でも真面目な話、初刷で終わるのは避けたい。
そして増刷される頃にはRubyのバージョンと実装が変わっているという罠。
……実際のところ、その辺の(アフター)フォローをどうするか、計画されてますか?]
■ ただただし [自分を追い込まないと仕事できないタイプなんだね……(笑)]
■ あおき [あたりです。甘やかしてるととことん堕落します。]
■
woods [食事も甘やかしてるとできないタイプ?(^^;;
で、チャレンジに走るとか?]
■
あおき [財布のヒモを甘やかせないという事情が一番でかいです。
だめになったからって捨ててたら生きのびられません。]
■
たかはし [なるほど、第二・第三が充実していればそれだけでOKというのは納得です。
あと、メーリングリストの過去ログは「たのしいRuby」でも収録しようという話があったのですが、許諾をどうしようというところで面倒になってやめてしまったのでした。]
■ あおき [MLログはRuby本にも入ってたし、そう気にすることもないのでは?]
■ たかはし [まあ気にする必要はないのかもしれませんけど(黙認でも事後承諾でも著作権的にはOKでしょうし)、うるさい人が入っていたりすると厄介だなあと。]
■
すぎむし%いやあ、やっぱりアノ人でしたか。 [MLログは、心情的には、Webからとるようにしてほしいっす。
とくにUSENETを絡ませると厄介が…]
ぐおっ。なんだとお。GIF に続き JPEG までも特許攻撃とは……。 本当にアメリカの特許制度ってどうかしてない? なんなんだよこれは。 自分が儲かればそれでいいのか?
Crusoe の次バージョン開発断念か……。いいのになあ、Crusoe。 もう速度速度言う時代じゃねえだろ。他の CPU で作ったノート なんて一時間程度しか保たないじゃん。画面もモノクロでいいし、 ウィンドウすらいらねえよ。どうせ画面小さいんだから。それで しっかりキーがのってて余分なキーはなくて十時間保つノートが 欲しい。
ああ、おれも修行がたりないな。あんなダメダメな提案が 採用されるわけないんだから放置すべきだった。激しく後悔。
SKK のかなモードで z + lkjh を押すと →↑↓← が出せるということにいま始めて気付いた。 ついでにいろいろ試してみたところ z. で「…」 z, で「‥」 z/ で「・」 z- で「〜」などなどいろいろあるということがわかった。ショックだ。 これまで一生懸命変換で出してきた苦労はいったい……
わたなべさんとこから。
ふっ、家はイマドキのマシンだしー、当然デフォルトで ON だよっ♪
と思ってたのだけど……
# hdparm /dev/hda /dev/hda: multcount = 0 (off) I/O support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 3737/255/63, sectors = 60036480, start = 0
ぐはァッ
信じてたのに……。
そういうわけで DMA をオンにしてみよう。
# hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 32 MB in 7.62 seconds = 4.20 MB/sec # hdparm -d1 /dev/hda /dev/hda: setting using_dma to 1 (on) using_dma = 1 (on) # hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 32 MB in 0.90 seconds =35.56 MB/sec
なっ……いままで 1/8 のスピードで使ってたってことですか? ドラゴンボールの重し付き道着じゃねえぞちくしょー!
※ 二回目の天下一武闘会で悟空が天津飯と戦ったときに脱いだやつね。 「あ……あわせて 100 キロはある」(だっけ?)
% bison parse.y parse.y の中身は4 シフト/還元衝突 および 13 還元/還元衝突.
って、あの……。 ボランティアで訳してくださってるのに一方的に文句言うのはあれですが、 「の中身は」ってなんだぁぁぁ (笑)
原文だと parse.y contains 4 shift/reduce conflicts, 13 reduce/reduce conflicts. これは当然 「parse.yにはシフト・還元衝突4個と還元・還元衝突13個が含まれています。」 と訳すべきでしょう。訳した人はパーサジェネレータには疎かったのかな。
もうちょっと意訳すると 「parse.yの文法は衝突しています (shift/reduce: 4, reduce/reduce: 13)」 だな。
ヤバめの刺身は味噌汁……。今度入れてみるです。でもできればヤヴァくなる 前に食べたいです。
ついにヤバめの魚すらなくなりました。たんぱく質が足りなそうなのでとりあ えず味噌汁に卵を落としてごまかします。アレを思いだしますね、あれ。ほら、 小学校の家庭科で習った、栄養素が六つに分かれてるやつ。たんぱく質、炭水 化物、脂肪、ビタミン C、カロチン、ミネラル。子供心にも「ミネラル」って くくりがあまりに適当すぎると感じられたものです。かわいそうじゃないですか 各種ミネラルたちが。
久しぶりに「ほむら」を食べました。ねばりにねばった公共料金の支払いを 期日ギリギリにしたんですが、コンビニで払うとなんとなく他のものも 買ってしまうのです。ああ、コンビニの「ついで買い」戦略にハマってるなあ、 自分でも散々ハンコ押したんだから公共料金だけでもいいじゃないか、と思うのですが、 ついつい買ってしまうのです。弱気だ……。
「ついで買い」で思いだしました。セブンイレブンのマニュアルには 「公共料金はついで買いが期待できます」……と書いてあります。 実にわかりやすいです。
ちなみにファミマのマニュアルには書いてませんでした。 そんなことだから万年三位なんですね。 実にわかりやすいです。
■ ただただし [でも、マニュアルにそんなこと書いてもあんまり意味ないような……]
アルバイト向けのマニュアルにまでそういう「内部向けの」話を書くってことは、 バイトだろうとなんだろうと確固とした戦力としてとらえてるということ じゃないでしょうか。また教育効果としても 「こういう効果があるからやっているのだ」と言うのと、 「とにかくこれ全部やるのが君らの仕事だから、やって」と言うのとでは 前者のほうが明らかに説得的だし、当然士気も上がるでしょう。
いまから 36 時間はイーサネットケーブルを抜いて外部との接触を断ち 死ぬ気で原稿を書きます。
2002-07-23 12:00:00 +0900
こんなどーでもいいときですら唯一性が気になって ISO フォーマットを使ってしまうのはプログラマの性だろうか。
昼御飯たべてるあいだにアイデアを思いついたんですが 実装する余裕がなっしんぐなのでここにメモ。
現実的なスキャナを書くためのクラス。
lex = StringScanner::Lex.new # 状態付きスキャナの場合、状態を定義する # 最初に全部定義しとかないとローカル変数スコープの罠にはまる # けどこのくらいは問題ないか。状態集合の定義にもなっててよいことだ。 st_word = lex.new_state st_space = lex.new_state # lex 自体に定義したアクションは全状態で通用する # (ただし各状態のパターンのほうが優先) lex.on_match(/\w+/) {|s| # s = マッチした文字列 lex.goto st_word # 状態遷移 break :IDENTIFIER, s # 記号とその値 } # 読み飛ばされる lex.skip(/\s+/) lex.skip(/\#.*/) # stateに定義すると状態固有アクション st_word.on_match(re1, re2) {|s| # 二つ以上の正規表現を渡すと or になる # (アクションの共有) } st_space.on_match(/\(/) {|s| .... } # クライアント (バイト列から記号列を得る) lex.foreach_pair(str) do |sym, tok| .... end
StringScanner に正規表現を複数連続で試すメソッドを C で定義すれば Lex クラスを Ruby で書いてもネイティブ Ruby コード並に早くなるんでは なかろうか。
ls みたく出力を縦横に並べたくて tabulate ってコマンドを 書いたんですが、column というコマンドがあるのですね。くそう。 でも Ruby ライブラリとしても使えるし、 一緒に書いた untabulate (tabulate の逆) はなかったからいいとしよう。
ちなみに columns というコマンドも発見したんですが、 シンボリックリンクでも張ってあるのかと思ったら こっちはゲームのコラムスでした。 どうやら cvsup を入れるときに入れた Module-3 にくっついてた模様。 補完効かなくなるもん入れるんじゃないよ。うざいので抹殺。
不覚でした。
まさかそんなものの賞味期限が切れるなんて思わないじゃないですか。
ソース、賞味期限 2002 年 1 月 21 日。
冷蔵庫をさらったら 7/1 賞味期限のヨーグルトも発見しましたよ。 なんなんだこの家は……
■
なかだ [うむむ、よく分かんなかったんすけど、こういうもの?
class Lex
class State
def initialize
@rules = []
end
def on_match(pattern, action = proc)
@rules << [pattern, action]
end
def match(src)
pattern, action, m = nil
@rules.each do |pattern, action|
return action.call(m) if m = src.match(pattern)
end
nil
end
end
def initialize
@current = @default = new_state
@stack = []
end
def goto(state)
@current = state
end
def push(state)
@stack.push(@current)
goto state
end
def pop
goto @stack.pop
end
def new_state
State.new(self)
end
def on_match(pattern, action = proc)
@default.on_match(pattern, action)
end
def foreach_pair(str)
src = StringScanner.new(str)
while t = @current.match(src)
yield t
end
end
end]
■ さく [一瞬、sauceじゃなくてsourceかと思ってしまいました。]
■ ただただし [それを狙って書いたのではないかと思ったのだが]
■ arton [そう言えば、賞味期限3ヶ月じゃなかったけな?(とっくに切れてる)]
■ woods [まあ、賞味期限切れみたいなソースって銀行とかだとごろごろしてるみたいですけどね。]
■ arton [銀行といえば、1999年12月31日が賞味期限ってのを大量に抱えてたとこですね。]
本当は sauce なのか source code だったのか、 本人はどっちのつもりで書いたんでしょうね。もはや今となっては闇の中です。
ところで、賞味期限を過ぎたソースコードはやっぱり食べるとくだすんでしょうね。 コンパイラさんたちもそんなものは食べたくないだろうなあ。
そういえば 2ch に「コンパイラになりたい」っていうスレがあったなあ。 「リストラされそうなのでコンパイラに転職を考えているのですが、 どうすればなれるでしょうか」というやつ。
素早い…… (^^;;;
そういうものです。それだけだと手で書いたほうが短かくなりそうですけど、 「速そう」というとこがポイントでして。正規表現を併合しちゃえば多少は 速くなると思うんですけどね。本当に速くなるかなあ。うーん。
ブロック呼び出しのオーバーヘッドのほうがデカいような気がしてきました。 もうちょっと考えよ。
これから 34 時間 30 分イーサネット切ります。
end_request: I/O error, dev 03:07, sector 917599
メインマシンのハードディスクがクラッシュ
どうしたらいいんだ…どうしたらいいんだーーーーー
li 10 10 10 10 10 10 10 10 10lo........
レスキューフロッピーまでいかれてるよ!!!
unexpected EOF.
Debianのディスクも死んでいるー!
ブートできない!
どうにかして原稿のレポジトリだけは救出しないと…
いや…これはクラッシュじゃなくてセクタ不良か?!
/dev/hda7だけ死んでる! これなら原稿は救出できる可能性が…
よしゃ/home生きてる
レポジトリは救出。これから原稿かいてるディレクトリを丸ごとコピーします。コピー終了。
これをどこに持っていくかだよなー、問題は。当面Windows2000をつぶしてLinuxいれとくしかないだろうか。
22日にフルバックアップしたとこなのが不幸中の幸いだった。
ケーブルつなぎ換えてhdaをhdbにして、生きてる領域を丸ごとコピーして…
あー、なんで原稿がテンパってるときにこういうことが起きるんだああああ
最近のBIOSってハードディスクチェックついてないの? 「不良クラスタの検出」とか言うのがあったような気がしたんだけどなあ…
ようやくほとんどの環境が完全復活。 /home と /etc が生きてたのが運が良かったすね。 ついでに mozilla を 1.0 に上げたらいままで表示が変だったサイトが 全部直ってかなり嬉しい。
しかし、まいった。あの HDD は確か買って一年くらいなので、寿命短かすぎ。 めちゃ弱いと噂の DTLA なのがヤバかったのだろうか。今度のは評判のいい新 型の IC シリーズなのでもうちょっとがんばってほしい。
つうか、もう IBM はやめて Seagate にしようかなあ……。 IBMって妙に高いし。
なんと LaTeX が入っていないということにいまさら気付く。 信じられない。どうやって原稿書く気だあっ。
■ たかはし [こんなのもあります:
Java言語規定 第2版
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
SICPも原書ならWebで読めますね。
http://mitpress.mit.edu/sicp/full-text/book/book.html]