history

青木日記 RSS

<前月 | 最新 | 次月>

2005-06-01

TMailの変なエラー (1)

ximapd でなんか変なエラーが出てるなあ。

http://www.mikihoshi.com/d/2005-06-01.html#200506010111000

エラーが起こること自体は想定内だけども、 パースエラーは全部 rescue して揉み消してるはずだ。 なんでエラーになるんだろ。

いろいろ pending

TMail も HEAD では何気にでかい変更が入ってたりする。iconv 対応とか。 ちゃんとリリースしたいんだけど例によって時間がない。

setup.rb に関してもいろいろあるんだけど絶賛放置中です。 すんまそん。

ほかにも忘れてることが死ぬほどありそうだなー。

(21:26)

TMailの変なエラー (2)

……と思ったらすでに前田さんが反応してくれていた

http://shugo.net/jit/20050601.html#p04

なんにしてもやっぱり例外は出てるのね。 現象はよくわかってないけど、とりあえず TMail のバグと認定 (しかし直る時期は未定)。

(21:53)

ruby-dev summary

うう……でう゛さまようやく出せた。 御迷惑おかけしました > 各氏

(01:32)

えんたーぷらいず 3500 だとう?!

今ごろ気付いた

http://mput.dip.jp/mput/?date=20050511#p02

僕は UltraSPARC が欲しいとかあんまし思わないんですが、 なんで世の殿方は Sun とか IBM とかを珍重するのでしょうか。鉄じゃん。 わかんない。ファイバーチャネルとかもわかんない。得るものが少ないと思います。 したがって Sun World に載ってる Sun をメインテーマにした導入事例というか えんたーぷらいずストーリーもよくわかりません。鉄です。

さらにそもそもサーバマシンはなぜ鉄の塊が見え隱れするようなケースなのですか。 あまつさえ 19" ラックに入れたりするのですか。僕は賛成ですが。 いや賛成なのは重厚長大だからじゃないです。なんとなくいいからです。 僕はかっこいい匡体とかそういうものは大好きです。

いや問題なのは匡体ではなくて CPU です。 CPU がいくつ載っていてもかまいませんが、鉄だと思います。

いやそうではなくて、なぜ CPU 数に比例して 重厚長大匡体になるのかということです。僕は賛成ですが。

すいません。まちがいました。もういいです。

などというコピペは置いとくとして、 スペックと買値がとても気になる。 いや、俺は買いませんが。 最近はラック萌えなので 420R がいいです。鉄ですが。

(01:55)

TMailの変なエラー (3)

http://shugo.net/jit/20050602.html#p01

そうなんです。意図的じゃないんです。変だなあ……。

~ % ruby -rtmail -e 'p TMail::Mail.parse("From: (a").from'
nil

あれ? 落ちない。なんでだろう。

わかったー!

parser.y:366:in `scan': unterminated quoted-word (SyntaxError)
                                                  ^^^^^^^^^^^

これだ。TMail::SyntaxError じゃなくて SyntaxError を投げてるからだ。 それはなぜかと言うと……。

これ?

--- ext/tmail/scanner_c/scanner_c.c     20 Feb 2004 00:35:01 -0000      1.45
+++ ext/tmail/scanner_c/scanner_c.c     1 Jun 2005 19:09:39 -0000       1.46
@@ -537,7 +537,7 @@
     rb_define_method(MailScanner, "debug=", mails_debug_set, 1);
 
     if (rb_const_defined(TMail, rb_intern("SyntaxError"))) {
-        ScanError = rb_const_get(rb_cObject, rb_intern("SyntaxError"));
+        ScanError = rb_const_get(TMail, rb_intern("SyntaxError"));
     }
     else {
         ScanError = rb_define_class_under(TMail, "SyntaxError", rb_eStandardError);

(04:18)

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

takaBSD [420Rは重いですよ。2人で持っても重いです。見た目ホントに鉄です。
奥行きが長いのでラックいっぱいになります。
電源ケーブルの差し込みが甘いので、抜けやすいです。Enterpriseなのに。
何が頭くるって、あんなデカイのに HDDが2個しかのらないこと。
すみません、愚痴でした。]

青木 [いやあ、重さだったら AlphaServer DS20E もたいがい重いですし。
ルミナス (のパチモン) に載せたときには腰がいきそうになりました。
あの凶悪な重さがまた萌 (ry]

mput [スペックと買値...UltraSPARCII 250MHzが8基, 32MB DIMMが64枚(=2GB),
なぜか13W3のカード付き, HDDマウンタは一個しか付けてくれなかったけど
36GBのCheetah(懐かしい)が載ってました。値段は数万円。]

青木 [うお、8way ですか! それはうらやますぃ。
4way 以上のマシンはまだ持ってないんだよなあ。]


2005-06-04

ふつうの Linux プログラミング

前半の初校が来たので読む。

(23:49)

Athlon64 X2

俺は Opteron のコヒーレント HyperTransport 萌えっていうか ccNUMA 萌え〜なのでデュアルコアにはあんまり注目してなかったんだけど、 Athlon64 X2 のレポートを見てたら急激にデュアルコアが欲しくなってきた。 どうしよ。Athlon ならメモリも 4GB とか積め……あれ? 積めるんだっけ? BIOS が 4GB で限界か。そんなにあっても使わないけどさ。

あと Athlon だとイケてるマザーボードがほとんどないというのも問題だ。

(00:01)

ruby-dev summary

ruby-talk に投げた。 そのついでに ruby-dev summary index も更新した。

(01:48)

対抗策を練る

ちくしょー Enterprise 3500 いいなあ。 対抗して俺も ES40 買おうかなあ。 あれならデカさでも重さでも消費電力でも Enterprise 3500 に劣るまい。 しかし、あんなもん置いて床が抜けないだろうか。

(02:15)


2005-06-07

Mac

まじで? まじで Intel に移行すんの? ノートは Pentium M でいいとしても デスクトップは Opteron にしてくれ。 HyperTransport つながりで。

しかし、これでまたパソコンがつまらなくなるなあ。 前におぎのさんが「結局 OS は全部 UNIX になっちゃったからなあ」と言っていたけど、 このままだとハードもみんな x86 になっちゃいそうだ。

(13:21)

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

mput [そこでsparcですよ。]

ef [Naiagara (ボソ)]

青木 [最近のSPARCマシンは匡体がかっこわるいのでイマイチ
(そういう問題なのか)。

SPARCってけっこう速くてスケーラブルでマルチコアなのに
なぜか萌えないんすよ。なんでかよくわかんないけど。
もう何台か買ってあれこれいじらないとだめなのかもしれない。]


2005-06-15

OpenSolaris

http://www.opensolaris.org/os/

Solaris のソースコード再公開キタ――――――――! しかも今度は OSI 準拠ライセンスらしい。

(03:30)

「Monadがないなら、Longhornにする意味はない」ITmedia

http://www.itmedia.co.jp/enterprise/articles/0506/15/news070.html

記事はどうでもよい、重要なのはこの段落だ。

>  それは、システム管理者やパワーユーザーがやっつけのプログラミングに重
> 宝するPython、Ruby、PHP、Perlといった高度なスクリプト言語の、さらに一
> 歩上を行くスクリプト言語になるはずだった。

Ruby が Perl より前にある!

(03:31)

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

pyてょn使い [> Ruby が Perl より前にある!
4大スクリプト言語を、日本で人気のない(使われていない、かも知れない)順番に並べてあるだけだと思います。]

安達 [それでは余りに淋しいじゃありませんか。一喜してたのにー。]

青木 [いや、でもこの記事、英語の訳なんですよ。
まあ、単に著者が Python/Ruby 好きというのもありえますけど。]


2005-06-19

るびま! 7 号

http://jp.rubyist.net/magazine/?0007

Rubyist Magazine 第 7 号が公開されました。

(02:33)

予定通りだ

6 月いっぱいは徹夜つづきだなこりゃ……。

(02:34)

RHG 翻訳リクエスト、とか言われても

[ruby-core:05215] Hackers Guide Translation Request!

思うところはいくつかあるんだがとりあえず、

おまいらはいつになったら正しい名前を覚えるんだ!

で本題だけど、公式にやるのはまず無理でしょ。 日本の出版社はやらないし、むこうのだとコネないし、 誰が翻訳するんだって話になるし。

個人的に英語のダイジェストを出そうという計画は昔からあるんだけど、 どうもこの調子だとそんなことやってる暇もなさそうだ。 いまそういう気分じゃないし。

(03:43)


2005-06-23

[ruby-core:05266] Ruby Hackers Guide - English Translation

自動翻訳したのを公開していい? と聞かれたんで別にいいよーと答えてみた。 そして相変わらず題名が間違っている。 もう知らん。

(23:56)

ファミマには飽き飽きです。

今度ファミマのユニフォームが変わるらしい。 ネクタイ着用だってさ。 だいたい最近のファミマときたら……

ああ、もういいや。 バイトごときが何言っても無駄だ。 早急にバイト辞めます。

(00:43)

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

zunda [RHGの題名はこの辺 http://hitchhikers.movies.go.com/ の影響を受けてるのでしょうか?]

青木 [いや、"Linux Hacking Guide" という本を見た覚えがあったので、
そこからです。が、いま検索してみるとみつからないなあ。
なんでだろう。あれは幻覚だったのだろうか。]

zunda [なるほど。"Linux Hackers Guide" の検索結果 約 483 件?]

KM [そういえばたしかに KHG は Linux Kernel Hackers' Guide でした
http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
zunda さんの04:22のツッコミは[ruby-core:05266]中の
"A Hackers Guide to Ruby" についてのような]

青木 [カーネルとは違うんですよー。なんか日本語の本。
やっぱり幻だったんだろうか。一回しか見たことがないし。]


2005-06-24

『ふつうの Linux プログラミング』

やーっと初校直し大会が終わったよ。 出版は 7 月の、いつだったかな……。20 日台です。 今回は異様に長かったなあ。

そして次回の RHG 読書会には間に合わないことが確定。

(00:14)

Athlon64 X2

双核 (フタコア) オルタナティブ……って……ちょ (笑)

(01:15)

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

  [着たい上げ]


2005-06-26

パッチの送りかた

Wiki にパッチだけ書き込まれてもなあ……。 まあ、取り込みますが。

それにしても、Base64 のエンコード・デコードに pack を使うというのはやっぱ間違ってると思った。

マンション理事会

マンション理事会うざすぎ……

(13:03)

Rubyガール

http://akiba.ascii24.com/akiba/news/2005/06/25/656621-000.html

Rubyガール……らしい。

(00:41)

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

nahi [いろいろやりとりがめんどくさいじゃん。嫌なら技術的に禁止しとくとか。]

青木 [ぼくが言いたかったのは「パッチを貼るな」ではなくて
「そのパッチを貼った意図を一言でも書いてほしかった」
ということです。パッチをいただけるのはありがたいの
ですが、「バグ報告」の四文字くらいないと判断に困ります。
ちょうど公告ポストがあったあとだったので、「これは
新手の荒らしか?」と思ってしまいました。

繰り返しますが、Wiki だから嫌だというのではありません。
たとえばこれが ML とか BTS であっても、パッチだけ
投げるというのは純粋にコミュニケーションの手段として
適切でないと思います。

とはいえ、バグ報告がしにくいのは確かなので、BitChannel
上に TMailBugReport というページを作っておきました。]

しぎたに [私も理事にさせられたので今日行ってきました
まじうざいです
いっそのこと、理事長になって好き勝手やろうかとも思ってしまいました]

nahi [だから「めんどくさい」と。 > 「適切でないと思います」
self descriptiveなコードにコメント追加するの嫌いなんだよねー。]


2005-06-29

JOJO の奇妙なコンビニ

http://2log.blog9.fc2.com/blog-entry-51.html

> 3 名前:いい気分さん[] 投稿日:2001/01/16(火) 16:22
> 君が立ち読みを止めるまで、僕はポリッシャーをやめないぃぃぃ!

身に覚えがありすぎ。

「(その 1 円玉は) 無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄―――ッッッ!!」

ということも、ないことはない。

コンビニにおける最適化

それで思い出したが、 「コンビニで最適化を説明する」というネタをいつかやろうと思っていたんだ。

  • 命令数の削減

出された金額がちょうどのときは レジで金額を打たずに「客層」ボタンだけでトランザクションを終了できる。

  • 低コスト命令への変換

お客さんが低速な場合、できる限り早い段階で荷物を受け取ってしまうほうが高速。

  • 投機実行

値段が 705 円とすると、500 円玉と 10 円玉を出された時点で 合理的な支払い候補は 710 円に限定される。 したがって、すべての小銭を出し終わる前に値段を打ってもよい。

  • 投機実行の失敗

前項の例において、「あ、すみませんやっぱり 1000 円で」例外により 予測が外れる場合がある。このときは金額を打ち直すか自分で暗算する必要がある。

  • I/O バッファ

品出しのとき、毎回バックヤードまで取りにいっているとレイテンシが許容できなくなる。 かごやパレットを使ってまとめて運ぶのがよい。

  • 誤った最適化技法 (早すぎる最適化)

1. ときどき、一生懸命バーコードを上にして出そうとするお客さんがいるのだが、 店員はバーコードの位置なんてわかっているのでやるだけ時間の無駄である。

2. お金を出すのが遅い人の場合、がんばって小銭を探すより 店員に小銭をたくさん出させたほうが速い。

  • 並列処理とタイムシェアリング

1. 弁当を温めているあいだに次のトランザクションを処理できる。 また、弁当が 2 個以上の場合は複数の電子レンジを使ってよい。 ただし電子レンジは共有リソースなので、排他処理をしておかないと そそっかしい店員がフタを開けてしまって何秒温めたかわからなくなることがある。

2. 品出しとレジ対応はより細かい時間単位に分割して処理できる。 しかし、ゴミのかたづけやジュース補充はコンテキストスイッチの オーバーヘッドが大きいので、できるだけアトミックに処理すべきである。

3. なんらかの理由により支払いの途中で客がレジを離れた場合、 レジの「保留」機能により次のトランザクションを先に処理できる。 しかし一方に宅急便や Fami ポート、クレジットカード支払いなどが含まれる場合は適用できない。 またネストは一段に限定されるので、並列処理できるのは高々 2 トランザクションである。

4. ある程度経験を積んだ店員ならば、 新聞やジュース一本で釣銭が発生しないような単純なトランザクションでは レジ入力を遅延処理できる (別トランザクション中に処理できる → スループット向上)。

5. 宅急便の伝票を書いてもらっている間に次のトランザクションを処理できる。 なお、3 項を考慮すると、 混んでいるときは宅急便の入力をできるかぎり遅延したほうがよいことがわかる。

6. 逆に、店が空いているときは郵便番号と市がわかった時点で入力を開始すると トランザクションを最短時間で処理できる。

  • リアルタイム処理

引き継ぎ処理 (レジのお金を数えること) のときには手順を工夫して レジが完全に塞がる時間を短かくしないとレジのスループットが有意に低下する。 店が混んでいるときにはレジ打ちを リアルタイムプロセス扱いにしたほうがよい (レジが塞がる時間の最長時間を保証するという意味)。

  • 80:20 の原則 (ボトルネックを探そう)

以上のようにせせこましく最適化しても、 トラブルが一発起こるだけでチャラになる。 また、レジ対応はトランザクション数も多く優先度も高いので目立ってしまうが、 トータルで見たときに削減できる時間は少ない。 それよりも、品出しやジュース補充のピーク速度を上げたり、 そのスケジューリングを熟考するほうがよい。

(02:07)

RubyConf

実はいまだに前登録してなかった。 遅ればせながら登録しよう。

(02:39)

逃避活動中 (1)

こんな夜中にネタを書き込めるのもレポートで徹夜中だからでして……。 なんでこう五月雨式に次々とレポートを出すんですか。

……いや、全部同時のほうがキツいよな。

(02:41)

Sun、初のノート型コンピュータを発表

Sun がノートで UltraSPARC III かよ。Solaris かよ。 どうしよう、すげえ欲しくなってきた。

とーぜん RS232-C もついてるし。

ていうか HDD が SCSI ですかっ?! やべーこれはもう笑うしかない。

いくらくらいなんだろうなあ。 UltraSPARC III モデルだと 50 越えちゃう感じですか?

(04:31)

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

woods [小銭を出すのが遅い人の場合、最適化オプションがOptimize for size(客のサイフの)になってる場合があります。]

ささだ [そこでマルチスレッド化技術デスヨ!(処理資源のボトルネック(人間)があるため意味が無い)]

青木 [レジの小銭に関して -Os やられる場合もありますね。
駐車場の金が払えないとか言われてもー。]

青木 [分身するのか > スレッド]

青木 [もういっこ考えついた

ベクトル演算

ジュースなどを詰めるとき、二本以上同時に詰めることができる。]


2005-06-30

[ruby-core:05294]

返信する ML を間違えた…… orz

よーするに、個人宛じゃなくて ML に送ってほしいと言いたかったのね。

(18:06)

AlphaServer 24h 稼働をめざして

ウェブサーバを dual Pen2 300MHz で動かすのは さすがにきつくなってきたので AlphaServer DS20E (21264 500MHz 2way) に切り替えようと思う。 YARV の件もあるしな。

問題は熱と電気代だ。庶民らしくエコワットで電気代を計測する。

……は?

1 時間 10 円

ということは

24 時間で 240 円

30 日で

ななせんにひゃくえん―――――――――――ッ?!

ちょ……待って……過去の記録によると

メインマシン [P4 2.4GHz, 1GB, P-ATA 10GB + 60GB]
計測時間  10 時間 2 分
消費電力  0.78kWh
電気代    19 円 (月間 1400 円)

これに対して

AlphaServer DS20E [Alpha 21264 (EV6) 500MHz 2way, 1.5GB, Ultra160 SCSI 18.3GB * 2]
計測時間   7 時間 16 分
消費電力   2.81KW
電気代     70 円 (月間 7200 円)

うーむ……。実は冗長電源がまずかったりしないかな。 一個 650W × 2 みたいなんだが、どう考えてもそんなに使ってねえし。

と思って一個外したら無惨にも起動中にいきなり停止してくれた。 これはだめだ。ちゃんと使ってるのね。

ううう、Pen3 サーバとかに日和っていいですか? → だめです (自分で言うな)

よし、しょうがない。 しばらくは覚悟を決めて AlphaServer にして、アレにつなごう。

(20:31)

[ruby-dev:26421] Subversion

Subversion に移行か……。ま、時代の流れだよな。 レポジトリ管理するのは俺じゃないし、 管理する人がいいと言ってるなら反対する理由はない。

あえて言うなら、Tru64UNIX と Solaris と AIX にインストールすんのがめんどくさい。

あえて言うなら、cvsup 相当がないと不便。

svk というのがそれっぽい?

へー、Perl で書いてあるんだ。これは小さくていいなあ。

(02:01)

これだから libtool は……

/d/src/subversi