今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
マスタ・プログラマはかく言われた:
「良く書かれたプログラムはそれ自身、天国である。 まずく書かれたプログラムはそれ自身、地獄である。」
「プログラミングのタオ」 第4の書「コーディング」、4-0章
--- Silent Life of Dr. Hara, II
``The initial mystery that attends each journey is:
how could the traveller reach his starting point
in the first place."
(「全ての旅にまつわる最初の謎:
その旅人はそもそもどうやって出発点に辿りついたのか」)
ルイーズ・ボーガン(詩人)、訳文は原による。
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
マスタ・プログラマはかく言われた:
「良く書かれたプログラムはそれ自身、天国である。 まずく書かれたプログラムはそれ自身、地獄である。」
「プログラミングのタオ」 第4の書「コーディング」、4-0章
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
あるときウー督軍の宮廷に勤めるプログラマがいた。 督軍はプログラマに尋ねた。 「会計ソフトとOSのどちらを設計するのが簡単だろうか?」
「OSです」とプログラマは答えた。
督軍は疑念の声を上げた。 「当然、会計ソフトはOSの複雑さに及ばないことは 明らかじゃないかね」
「そうではありません」とプログラマは答えた。 「会計ソフトを設計するときには、 プログラマはそのソフトがどう動くべきで、 どう報告書があるべきで、どう税制を守るべきか、 異なるアイデアを持つ人々の間の仲立ちとして働かねばなりません。 対照的に、OSは表面上の見かけには制限されません。 OSを設計するときには、 プログラマは機械とアイデアの間の最も単純な調和を探します。 これがOSを設計する方が易しい理由です」
督軍はうなづいて微笑み、 「なるほどもっともだ」と言った。 「しかし、どちらがデバグし易いかな?」
プログラマは答えなかった。
「プログラミングのタオ」 第3の書「デザイン」、3-3章
京大での関西確率論セミナに出席のついでに、 知恩寺の境内を散歩。 作務衣を着たお坊さんらしき人たちが、 提灯を片付けていた。何かイベントがあったのだろうか。 セミナまで時間があったので、 「進々堂」で珈琲を飲みながら数学を考える。 落ち着いた雰囲気で、テーブルも大きくどっしりとしているせいか、 勉強している人が常にいる名物喫茶店。 私の印象では、どちらかと言えば文系の人が多いかな…。 以前、もう少し北白川寄りの数理研の近くに「アルファ」 と言う喫茶店があって、そこは数学者密度が高かった。 「進々堂」もそうだが、珈琲の他にカレーライスがあった。 そういや京大に長期滞在経験のある、 日本語の非常に達者なイギリス人数学者が、 「あるふぁでよくかれえらいすを食べました」 と正確な日本語発音で言っていた。
今週も数値計算でデータを取っていた。 そのデータから S 君が補題を作ってくれた。 今まであまり数値実験をしたことがなかったので、 こういう数値実験と理論の結びつきは面白いなと思った。 来週はプログラミングの一方、S 君のノートを真面目に読んで考えてみようかな、と。 ラフパス方面も勘が鈍らないように、 M ゼミ以外でもちょっとは考えないとな…
4月19日(土曜)。ディスカバー・キョート第二回、哲学の道周辺。 (第0回:八坂の塔、「イル・ギオットーネ」。 第一回:高台寺。) 銀閣寺(東山慈照寺)。 銀閣寺はいままでに何回か訪れているはず。 現在、銀閣寺自体は修復中。骨組とカバーに覆われて、 その中で大工さんが作業している。 庭を歩いていると、苔の標本が置いてあって、 これはいい苔、これはちょっと邪魔な苔、 これはとても邪魔な苔、と示されている。 見た目には大差ないような気がするのだが… そしてこの邪魔な苔たちをまめに取り除いたりしているのだろうか。 次は哲学の道を歩いて、法然院へ。 谷崎潤一郎の墓などがあることで有名。 このあたりは銀閣寺よりはひっそりと静かでいい感じ。 でも時間がなかったので、入って出ただけ。 「カフェ・テラッツァ」で休憩。 ここは犬を連れてくることのできるドッグ・カフェで、 実際、テラスにはダックスフンドを連れた客がいた。 以前にピアノと弦楽四重奏のコンサートがここで開かれたときに、 訪れたことがあるので、来たのは二度目。 次は、橋本関雪記念館へ。 橋本関雪は画家。このあたりが田圃しかないような田舎だったときに引っ越してきて、 その後、三十年かけて庭を整え、徐々に周囲の土地を買って拡大し、 今の姿にまでなったらしい。 敷地内に記念館もあって、絵などがいくつか保存されている。 正直に言って、私にはどれもぴんと来ない絵だ。 庭はなかなか雰囲気も良く、特に池に迫り出した茶室などいい感じ。 やや無駄に巨大な灯籠とかがあちこちにあって、 何でも詰め込み過ぎのような。私ならもっと地味に、 できるだけ自然以外に何もおかない庭にするだろうなあ、と思いつつ、 庭をまわる。
哲学の道の周辺で行くべきところは、あと…「なかひがし」?
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
主任がプログラマに、 今やっているプログラムができるのにいつまでかかるのか、 と尋ねた。
「明日、終わるでしょう」と、プログラマは即座に答えた。
「それは非現実的じゃないかね」と主任は言った。 「本当のところ、どれくらいかかるんだ?」
プログラマはしばらく考えてからようやく、 「追加したい機能がいくつかあります。 それには少なくとも二週間かかるでしょう」と答えた。
「それでも期待し過ぎだろう」と主任は食い下がった。 「本当にプログラムが完成するのがいつか、 シンプルに、答えてくれるとありがたいんだが」。
プログラマは同意した。
数年後のこと、主任は定年を迎えた。 定年祝いのランチに向かう途中、 主任はそのプログラマが端末で眠り込んでいるのを見かけた。 彼は徹夜でプログラミングをしていたのだ。
「プログラミングのタオ」 第5の書「メンテナンス」、5-2章
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
新米が師にこう尋ねた。 「ここに自分のプログラムのデザインも、ドキュメント書きも、 テストもしないプログラマがいます。 しかし、彼を知る者は皆、彼を世界で一番優れたプログラマだと考えています。 何故でしょうか?」
師が答えられるには、 「そのプログラマはタオをマスタしたのだ。 彼はデザインの必要を越えたのである。 彼はシステムがクラッシュしたときにも怒らず、 不安を持つことなく世界を受け入れる。 彼はドキュメントの必要を越えたのである。 彼は誰かが彼のコードを見ようが最早、気にしない。 彼はテストの必要を越えたのである。 彼のプログラムはそれ自身で完全で、澄みわたり、エレガントで、 自ずから明らか」。
「まさに彼はタオの神秘に入ったのですね」
「プログラミングのタオ」 第2の書「古の師たち」、2-4章
今週は主に、S 君から聞いた離散ウォルシュ変換に関係した問題の、 数値計算用プログラムを書いていた。 ruby であっさり書いたものでまあまあのことが分かってきたのだが、 やはり遅過ぎるので、C に書きかえることにした。 これで現実的に計算できる最後のレヴェルの全検は可能になったし、 次の段階のランダムテストもかなり深いところまで出来そう。
夏までにと思って考えているラフパス関係の問題あれこれはあまり進まず。 この春までに考えて良く分からなかった問題の一つを、 ひょっとしたらと思って、M2 の院生にふってみた。 ゼミでの議論で少しは頭をそっちの方に持っていけるし、 何か出てくれば修論に出来るだろう。
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
賢明なプログラマはタオについて聞くとそれに従う。 平均的なプログラマはタオについて聞くとそれを探す。 愚かなプログラマはタオについて聞くとそれを笑う。
もし笑われることがなければ、それはタオではない。
最も高い音は最も聞きとり難い。
前に進むことは引き返す道である。
偉大な才能は遅咲きだ。
完璧なプログラムにすらまだバグがある。タオは全ての理解を越えたところに隠されている。
「プログラミングのタオ」 第1の書「静かなる空虚」、1-4章
束ねておいた書類ゴミを引き取ってもらい、 新たに 4 つ紙束を作った。 細々したものを捨て、書架を整理しなおして、 まるごと一つの書架を空にした。 本を二冊持ち帰る。
M1 のゼミは Stroock の "an Analytic View" を読み始めることにした。 M2 のゼミは前年の続きで、rough path theory の Lecture Note。 まだ第一章も終わっていないくらいなのだが… 今日の午後はウォルシュ変換のプログラムのバグ取り。 短いのにかなり手間取った。 次は、モンテカルロ式に予想をチェックするプログラムを書く予定。
本を 4 冊、数ファ研に移し、 椅子 4 脚を片付けて、キーボード三つを捨て、 本棚の中の書類を移動し、かなりすっきりした。 これで気分良く春を迎えられそうだ。 今年は忙しそうなので、学生たちがすぐに私の居場所が分かるように、 研究室のドアの前に「今、〇〇にいます」「10 分で戻ります」 などとマグネットで表示するメモを張り出すことにした。 今日は三冊、本を持ち帰った。
S 君から聞いた予想の不等式をチェックするプログラムを書くために、 今日は Walsh 変換のメソドを書いた。 参照したテキストのアルゴリズムに誤植があって、 あれこれ手間取ったが、正味一時間ほどで書けた。 バタフライ法を使った高速変換実装なので、 ruby とは言え、まあまあの速度は出ているだろう。 正しく変換されているかはこれからチェック。 Walsh 関数の番号付けが適切かどうかも要チェック。
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
東に一匹の鮫がいて、他のどんな魚よりも大きい。 それは鳥に変身し、その翼は空を埋める雲ほどもある。 この鳥が陸を横切り、企業本部からのメッセージを運んでくる。 鳥は浜辺に足跡をつけるカモメのように、 このメッセージをプログラマたちの中に落とす。 すると鳥は風の上に舞い上がり、青い海を背中にして、 帰っていく。
新米プログラマは不思議に思ってその鳥を見つめる。 なぜなら、彼はそれを理解できないからである。 平均的プログラマはその鳥がやって来るのを恐れる。 なぜなら、彼はそのメッセージを恐れるからである。 マスタ・プログラマは彼の端末で働き続ける。 なぜなら、彼はその鳥がやって来て去ったのを知らないから。
「プログラミングのタオ」 第7の書「企業の知恵」、7-2章
春の研究室整理メモ。 また書類を 2 束ほど処分して、 不要になった PC 2 台を書架の中に移動。 これで随分と部屋が片付いた。 ハードウェア類を書架で整理しただけだが… 巨大(ブラウン管)モニタ 2 台も無駄にあまっているが、 重過ぎて移動できない。 いずれ PC とまとめて廃棄したい。 ハードウェアの廃棄の仕方を誰かに訊いておかないと。
今日は本を 7 冊、数ファ研に持っていき、 書類の束を 6 つ処分し、本を二冊、自宅に持ち帰った。 図書館で借りたウォルシュ変換関連の本は、 「ウォルシュ解析」(遠藤靖/東京電機大学出版局)。 一冊まるごとウォルシュ変換の話で、中身も分かり易そう。 単に S 君から訊かれた数値計算のプログラミング用に、 アルゴリズムさえ分かれば良かったのだが、 なかなか面白そうだ。確率論とも深い関係がありそう。
今日の "The Tao of Programming"(G.James/InfoBooks)。原による試訳。
どうしてプログラマたちが非生産的なのか?
それは彼等の時間が会議に浪費されているから。どうしてプログラマたちが反抗的なのか?
それはマネジメントが邪魔をし過ぎるから。どうしてプログラマたちが一人また一人と辞めていくのか?
それは彼等が燃え尽きたから。プアなマネジメントで働かされると、 彼等はもはや自分の仕事に価値を見出せなくなる。
「プログラミングのタオ」 第6の書「マネジメント」、6-2章
タオ投稿用の html ファイルに翻訳するスクリプトを書いた。 (おっと横幅が入り切らない…)
#!/usr/bin/ruby filename = ARGV[0] /([0-9])-[0-9]/ =~ filename section = $1 sectiontitle = ["静かなる空虚", "古の師たち", "デザイン", "コーディング", "メンテナンス", "マネジメント", "企業の知恵", "ハードウェアとソフトウェア", "結語"] wfile = open(filename + ".html", "w") wfile.print("<P>\n今日の \"The Tao of Programming\"(G.James/InfoBooks)。", "原による試訳。\n</P>\n<BLOCKQUOTE>\n<P>\n") rfile = open(filename) while line = rfile.gets do if /^PP$/ =~ line then wfile.puts("</P>\n<P>") else wfile.print(line) end end rfile.close wfile.print("</P>\n</BLOCKQUOTE>\n<P>\n「プログラミングのタオ」") wfile.print(" 第", section, "の書") wfile.print("「", sectiontitle[section.to_i - 1], "」、", filename, "章\n</P>") wfile.close
こちらではしばらく、 表の blog には細かいことやテクニカルなことのメモもして行こうかな、と。
今日のプレ卒研ゼミ。 Garling "Inequalities (A journey into Linear Analysis)" より、単調収束定理、Fatou の補題、優収束定理、 フビニの定理など。積分論のまとめになっている第一章を終了。 次からは不等式の中身に入る。 来週、卒研ゼミの打ち合わせをするが、 この実解析ゼミに他の参加者が加わるかどうか。
今日は研究室の本を 6 冊、数ファ研で処分。 京大からゼミを見に来てもらっている院生の方に、 アグモンの偏微分方程式論の本を譲った。 書類は 3 束処分。