青木日記

<前月 | 最新 | 次月>

2005-01-01

def 2005

来ちゃいましたよ 1 月が。

ruby-dev summary

年始にぐったりしつつやった。 きっちり 12/31 分まで。

(18:41)

本日のツッコミ (全2件)

noritada [あれ? 2005じゃないのでしょうか?]

青木 [_| ̄|○]


2005-01-02

Linux プログラミング本 (15)

やばい……。 うっかり M17N の泥沼に足を踏み入れてしまった

(14:28)

L(ry

意外に泥沼は浅かった。

(14:46)

Linux プログラミング本レビュー (16)

ようやく 7 章を送付。まだ 10 章もあるのか。 冬休みの間にせめて原稿を送ってしまいたかったんだけどなあ。 しかも今日からバイト 3 連発だ。

(16:20)


2005-01-08

サイトの簡易表記

家の Firefox (+ タブ拡張) ではタイトルの末尾を 表示するように設定してるんですが、 そんなのは少数派ですかそうですか。

(01:38)

休日

1/10 休みか! やった! やったー!

原稿ガンバリマス _| ̄|○

(02:01)

Linux プログラミング本 (17)

なんとか半分の 9 章まで送った。 修正後の 1〜3 章も送付。 今日 (今夜) のうちに 7 章までは直しを完了したい。

で、問題は 10 章「プロセスとメモリ」だが……。

(02:39)

Opteron

おぷてろん欲しいなあ

……Hyper Transport がたくさんついてくる デュアル Opteron マシンが欲しいなあ。

最初はなぜか 1U サーバがいい感じがしたんだが、 よくよく考えると Opteron をメインマシンにして 今のメインマシンを Windows にまわすのがよさそうだ。 タワー型を狙うことにする。

しかしワークステーションになると、 ビデオカードのせいかメーカ製はバカみたいに高い。 そうなると組み立てしかない。

マザーボードは Tyan の K8W あたりか。 メモリは 2GB (512MB × 4) だと高いのでけちって 256MB × 4 にする。 Opteron はデュアルチャネルなので、 2way で最高性能にするなら DIMM は 4 本必要だ。 NIC はオンボードのを使い、 ビデオカードと HDD と光学ドライブは使いまわせばいいだろう。

げ。20 万……高い。

てか、そもそも金ないし。

(04:56)


2005-01-10

Ruby のドキュメント

ああ、また ruby-talk で 「Ruby のドキュメントは日本語ばっかりで読めねえんだよバカヤロー (意訳)」 とか言われてるよ。頼むからいいかげんにしてくれ。 もうドキュメントの分量で言や英語のほうが圧倒的に多いんだよ。 でもって ruby-list は要約して流すほど量もないし実もないでしょうが、 ruby-dev は ruby-dev summary やってるでしょうが。

(16:27)

Ruby のバグ勝手にトラッカー

http://mput.dip.jp/rubybugs/

すみません、 ruby-dev:125733 とかいう妙な番号を登録してしまいました。 ruby-talk の間違いです。 正しいほうで登録しなおして fix しました。

……というようなことは、どこに書けばよかったのだろう。

(03:28)

本日のツッコミ (全2件)

mput [消しておきました。(伝わりさえすればどこに書いていただいてもOKですよ]

青木 [対応ありがとうございます。
次はもうちょっと目のつきやすいところにします……]


2005-01-11

夜食

永谷園のお茶漬けウマー。

鮭茶漬けは高いからって梅茶漬けにしてしまうのは、 やっぱり生協で買うからだろうな。

(06:07)

Linux プログラミング本レビュー (18)

スレッド表示のできるメーラが必要だ……

(06:59)

本日のツッコミ (全6件)

桑島 [ちなみにメーラは何使ってるんですか?]

青木 [古いMewです。スレッド表示も未読管理もできないやつ。]

桑島 [BSDユーザなんでしたっけ。
Linuxでしたっけ。
どちらにせよOSが最近のバージョンならSylpheed入れてとりあえずスレッドビューアとして使ってみるのもいいんじゃないでしょうか。]

makoto [多分 mew を新しくするだけでいいのだと思うけれど、
そこはやはり Wanderlust]

zunda(レビューはYahooのヘタレ) [muttに移ってviでメールを書くのだ!(なんちて]

青木 [真面目に乗り換える余裕がないので
とりあえず Sylpheed をコンパイルしてみました。
意外にもあっさり動いてくれて驚きです。
けっこういいですねえ Sylpheed。]


2005-01-12

Linux プログラミング本レビュー (18)

10 章、書きすぎた……。 いつのまにか 26KB になってる。

いやー、ちょっとね、 malloc の話の枕としてメモリの話を書いてたら、 知らないうちに仮想メモリの実装から mmap までいってた。

(04:25)

本日のツッコミ (全2件)

noritada [しょうもないツッコミですみませんが、
『Linux プログラミング本レビュー』の通し番号が前日のと同じようです……。]

青木 [ああ……
それは、

なんていうか

たしか (13) あたりでも間違って
たような気がしますし

あきらめてください。]


2005-01-15

れぽーつ

うう……やっと今週のレポート終わた。

(13:12)

小刻み更新

ここ一ヶ月くらい、実に日記らしい日記になってるなあ。

(13:13)

noop ping

ネットでは日記を書いてないと生きてるかどうか確認できないからなあ。

(13:17)

今年の抱負

Ruby のドキュメントを整備する。

食費に困らない。

(13:19)

小刻み更新の理由

深い意味はない。

(13:20)

文学的 / 哲学的表現

ネットは本質的にパッシヴソナーなのだ。

というフレーズが頭にあるんだが、 どうしてそういうことになったのかは忘れた。

(13:21)


2005-01-16

Linux プログラミング本レビュー (20)

今日はプロセスの章と、できればシグナルの章も送ってしまいたい。 もしかしたらプロセスの章を二分割して三章同時に送るかもしんない。

このへんは直すところが少ないから楽だなあ……。 というか 10 章が多すぎだったのだ。 加筆訂正どころじゃないっての。

それにしても、やっぱりレビューしてもらうと書きやすい。 具体的な意見があると迷ってたところを決断するのが非常に楽だ。

(09:04)

うなぎ

昼は冷凍うなぎにしよう。 ついでに梅干しつけよっと。

あれ? うなぎと梅干しって食い合わせが悪いんだっけ。 調べてみると、そうでもないようだ。

「うなぎの梅しそ寿司」なんてレシピもあるな。

結論だけ言うと何も問題はないらしいので食おう。うなぎと梅干し。

そういえば、うなぎってどこでとれるんだろ。 川? 海? 湖?

海で生まれて川で育ってまた海に戻るらしい。

(14:28)

本日のツッコミ (全2件)

babie [>迷ってたところを決断するのが非常に楽だ。
「占い」みたいですね。]

青木 [どちらかというと、潜水艦のソナーのような感覚を受けます。]


2005-01-22

OS 開発

http://www.ipa.go.jp/jinzai/esp/2004mito2/gaiyou/6-6.html
CLIを実装する次世代オペレーティングシステムの開発
(笹田さんの日記より)

やられた。 まさに同じことを考えてたよ。こっちは Ruby だけど。 こないだから飲み会に出るたびに OODB とかスレッドとか言ってたのも、 Alpha のアドレス空間を調べてたのも実は全部それがらみ。 NetBSD と ruby をひっつけてストレージは全部 OODB、 プロセスなしで全部スレッド、という感じにしたかった。 見れば見るほどよく似てるなあ。

たぶんちょっと違うことを考えてたのは次のような点か。

  • Knoppix みたく CD-ROM 1 枚で実装してブートできるようにしたい
  • サポートするデバイスはストレージ・ネットワーク・シリアルのみ
  • サポートするネットワークプロトコルは IP/ethernet のみ

前者は手軽に試せるようにするため。 後者は単に手間を減らすため。 もともとの動機は「Alpha で動く OS 書きたい」で、 そのときはスクラッチから書こうと思っていたので、 とにかく手数を減らしたかった。 それでもシリアルが入ってるのはもちろんシリアルコンソールのためだ。 本当は telnet のみってのも考えたんだけど。

ちなみに、最初はストレージすら使わず、 すべてオンメモリにしようかと思っていた。 必然的にメモリ容量がそれなりに必要になるから、 まともに使うには 64 ビット環境が必須だ。 しかし手軽に試せるようにするためには IA-32 は切れないので、 メンテの手間も考えた結果 IA-32, AMD64, Alpha にしぼった (それでもやっぱり Alpha は入る)。 Opteron 欲しいなーとか言いだしたのも実はそのせいだ。

あと最近考えてたのは、 どーせすぐに流行ったりしないんだから YARV とか M17N とかの不安定な部分をドカドカ放り込んで Ruby の仕様実験場みたいにしようかってこと。 もはや最初のアイデアからはどんどん離れる一方だな。

くそー、名前も決まったし、 テスト専用の Alpha と IA-32 も用意してたのに……。 俺は作ると言って作らなかったものが多すぎるので、 今年一年かけて形にしてから表に出そうと思ってたんだけど、 甘かったか。

まあ、こういうアイデア自体は昔っからあるけどさ、 Lisp machine とか Smalltalk machine とか。 GUI とファイルシステムを捨てて、 マシン全体を強制的にオブジェクトの塊に しちゃうっていうところがちょっと独特なところかな。

あ、まだ作るとは決まってないですからね。 Ruby OS キター! とか叫ばないでくださいね?

(00:11)

13章

strftime(3) の解説に戻るです……

(00:13)

本日のツッコミ (全5件)

さかい [Ruby OS キター! (お約束)]

ささだ [メモリ管理誰がどうするつもりでした? 物理=仮想で突っ走るのかな。デバドラも ruby で書きますか。]

shiro [OSKit + PLT Schemeってのがありましたね。5時間で作れたそうです。ファイルシステムはオンメモリのみとか言ってますが。
http://lists.tunes.org/archives/lispos/1998-December/002514.html
OSのディテイルに時間をかけたくないのなら、こういう手もありなんじゃないでしょうか。]

ささだ [あー、いいっすねー>Scheme Machine の記事。私も OSKit 使ってほげほげしてみようと考えてました。]

青木 [5 時間は凄いですね。
これはお手軽そうでいいなあ。]


2005-01-23

OS 構想

つっこみより。長くなったので本文で書きます。

> メモリ管理誰がどうするつもりでした?
> 物理=仮想で突っ走るのかな。
> デバドラも ruby で書きますか。

そりゃ普通に C で。 Ruby でなんでもやる気はないんで、ドライバも C で書きます。 じゃないとドライバが再利用できないですから。 Ruby ではアプリケーションだけ書ければ十分でしょう。

仮想アドレスも使います。 というか Alpha だと仮想アドレス必須なので動かすしかありません。 それに OODB を実装するには仮想メモリ機構がないときっとやりにくいだろうし。 ユーザモードに移行せず、 全プロセスのアドレス空間が共有される UNIX、 と言ったらイメージが伝わるかなあ。 で、全プロセスでシングルスレッドの ruby が動いてる。

まあ、あるていどやってみないことには、 うまく融合できるかどうかはよくわかんないね。 とりあえず現状では実戦経験がゼロに近いので、 細かいところをつっこまれてもなんとも言えません。 この企画はもともとアーキテクチャの勉強をしようってところから 始まってるので、失敗してもいいです。うまく動いたらめっけもん。

まあでも、どうせなら実用になってくれるほうが嬉しいので、 実装コストはできるだけ下げて、 うんざりする前に version 0.1 が出せるように考えてます。

ただ、どっちかというと問題はカーネルよか ライブラリじゃないかと思うんですけどね……。 アプリケーションをまともに作るとしたら画像処理ライブラリなんかも必要だから、 libpng とか libjpeg とか、その他もろもろを全部移植しないとならない。 特にファイルシステムがないことで いろいろひっかかりそうな予感がします。

(05:09)

Ruby のドキュメント

あー、ちなみに、「Ruby 言語仕様」を作ったのは俺です。 従ってあれが中途半端になってるのも俺の責任です。 それだけははっきりさせておこう。

放置されている理由はいくつかありますが、挙げておくとこんな感じかな。

  • 「Rubyの文法」との違いがわからんと言われて意気消沈
  • Wiki で長文を書くのにウンザリした
  • 書いてみて、動作仕様の細かいところを厳密に 書けるほど理解してないことに気付いた (RHG 以前のものなので)
  • RHG を書き終わったころには存在を忘れてた。 ReFe もできたし、本体はもう読むことがなくなってしまったので気付かないまま

が、他のどこにも行きようのないセキュリティレベルの話とかがあるので、 全部消すわけにもいかず放置されているというわけです。

今年はバッサリとドキュメント全部書き直すのが目標なので、 そのついでに「Ruby言語仕様」も変更されるでしょう。

(04:29)


2005-01-25

Linux プログラミング本レビュー (x+1)

しまった! 寝過ごした! 02:00 くらいに流す予定だったのに。

うーむ、httpd の章は確か微妙にコードが同期してないんだよな。 しかたない、流すのは午後にしよう。

つくづく思うんだが、 レビューやるなら全部完成してからにするか、 もっと時間に余裕のあるときにすべきだった。 この日程はあまりにレビュアーに申し訳ない。

(09:14)


2005-01-26

Linux プログラミング本レビュー (x+3)

httpd の章を 2 つまとめて送付。 ちからつきた。ねる。

(05:50)


2005-01-29

賽の河原という単語を思い出した。

期限切れ生活

冷蔵庫の中でさりげなく餅がカビていた。捨てる。

(11:51)

Alpha 生活

やはり Alpha はいいね。暖房には欠かせないよ。

Alpha と言えば、 メモリの空きを MB 単位で表示するコマンドを書いたんだが、

tunami:~ % free
Total    1536.0
Managed  1480.0
Free     1248.2
Used      231.8
UBC        80.7
Wired      94.4

メモリ 1.5GB のうち 1.2GB は空いていることが明らかになったのであった。 無駄すぎ〜。

(12:22)

炭化生活

うう……また鮭が焦げた……

(12:27)

部分的高級生活

なんと手作りのハムをせしめたので貪り食う。 ちゃんと燻されたにおいがするし、 「はあ? 健康? なんですかそれ?」な感じの強烈な塩味がうみゃい。

原稿が追い込みにかかってるせいで 話題が食べ物ばっかりだな。 食ってるとき以外は原稿を見てるということか。

(20:47)

本日のツッコミ (全6件)

ただただし [期限切れになったものはすべて食べてみるんじゃないのか……]

青木 [明らかにカビてるとちょっとねー。
「目に見える変化がないけどこれはやばいかも……」
っていうドキドキ感が重要なんですよ!]

kjana [「何かこの大根、黒っぽくなってきたけど味は大して変わらないからいいや」とか「ちょっと毛が生えたこともあったし微妙にぬめぬめしてるけど、生姜なんて大量に食べるわけじゃないしね」とかで食べてしまうものではないんですか?]

はら [カビの生えた餅は、削って食べるものです。]

dan5 [うちも餅の青いカビは包丁で軽く削って食べてましたね]

青木 [未熟者ゆえいまだ期限切れ道を
極められていないようです。反省。]


2005-01-30

Linux プログラミング本レビュー (x+4) where x=20

気合いだ。最後は気合いだ。

とりあえず 11 章まで返信あんどとりこみ完了。

(03:23)

コアメモリ

http://kenkou-se.co.jp/kensyoku/esakikoamemorypiro.htm

コアメモリ・ピロー

だそうな。

(04:24)


2005-01-31

Linux プログラミング本レビュー (25)

みなさんのご支援のおかげをもちましてとりあえず脱稿できました。 ありがとうございました。

……ま、作業はまだまだ続くんですけど! なーんか忘れてるような気がするしな。 最後にあせっていろいろ追加したからきっとバグってるだろうし。 これまでの経験と勘がそう言っている。

(00:22)

本日のツッコミ (全8件)

一読者 [おめでとうございます!お疲れ様です]

ささだ [お疲れ様です.]

ksaito [レビューアに立候補したくせに何もコメントしませんでしたが(ごめんなさい)、内容の濃さとそれを引っ張る文章に感服しつつ、とても勉強になりました。発売を楽しみにしています。]

結城浩 [お疲れ様です(^_^)。]

安達 [ご苦労様でした。今度はもう1本Rubyの本をお願いします。]

noritada [お疲れ様でした。
最後に色々と突っ込んでごめんなさい。]

makoto [参加して良かったです。予想通り、教わること多し。
お役に立てなかった分、本を買って埋め合せ :-)]

青木 [どうもありがとうございます。
おかげさまで、なかなか面白い本になりそうです。

レビューでは意外なところに対する意見も多くて、
こちらも勉強になりました。レビューについて
ノウハウとか意見もできたので、どこかでまとめて
いきたいと思ってます。]


<前月 | 最新 | 次月>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|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|04|05|06|09|10|
2009|07|
2010|09|