> 結城浩の日記 > 2006年4月 | 検索 |
プロフィール | 日記一覧 | 日記ダイジェスト | Twitter | RSS |
|
これまで「るびこの日記」でRubyの勉強を100日ほど続けてきました。 Rubyのコードも多少読めるようになり、とてもうれしいですが、 いったんここで一区切りとします。
今度は巷で流行のSICPを読んでみようかと思います。 といっても、SICPを順番に読んでいくと何となく飽きそうな気もするので、 「Schemeの勉強の一環としてSICPも読む」という方向で進もうと思います。
なお「結城浩のSICP日記」は、はてなグループを利用していますが、 単に結城の日記代わりに使うつもりですので、 グループに参加したいというお申し込みはお受けできません。 どうぞご理解ください。 もちろん、日記へのコメントやツッコミ、トラックバックなどは大歓迎です。 よろしくお願いします。
Danさんご推薦の『Perl Best Practices』のはじめの3章ほどをばりばりと読む。 「良いコードの例」と「悪いコードの例」を読んでいくだけでも、ふむふむと楽しい。
あ、誤植発見。
『The Art of Computer Programming Volume 3 Sorting and Searching Second Edition 日本語版』のp.39。「有向数字」は「有効数字」の誤植。
ところで余談ですが、 いまATOKで変換していて気がついたこと。 「ゆうこうぐらふ」だと「有向グラフ」が一番目に表示され、 「ゆうこうすうじ」だと「有効数字」が一番目に表示されます。 さすがATOKですね。
本がアマゾンさんから届いた。 Danさんご推薦の『Perl Best Practices』に、 洋書は第二版になっていた『Concrete Mathematics』と、 充実しているという評判の『WEB+DB PRESS VOL 32』など10数冊。
今日も遅く家に着く。
家内の隣で眠っている次男に「はい、お父さんだっこだよ…」と声を掛け、 かかえて子供部屋に運ぶ。
「ゆっくり、おやすみね」といって長男の隣に寝せようとすると、 次男は、半分ねむったまま私の首にきゅっ、と腕を回して、私を抱きしめて離さない。
私は、愛しくも切ない気持ちで胸がいっぱいになる。
ほんとに、ゆっくり、おやすみね。
読者さんから 「permutationというのは順列というよりも置換では?」 というご質問をいただきました。
訳語としては両方あるようです。 日本の学校では「順列と組み合わせ」と教えていると思います (少なくとも私の時代にはそうでした。いまはどうでしょうか>中・高校生のみなさま)。 ただ、permutation groupと書いたときには「順列群」よりも「置換群」という場合が多いでしょうかね。
結城個人は、 置換はsubstitutionとしてnPnを意味し、 順列はpermutationでnPkを意味する。 という感覚を持っています。 つまり、並べ替えるものが全部揃っていると置換。 暗号の世界だとS-boxというのはまさに置換ですよね。
追記
リアル高校生の
Renzaiさんから、
「順列と組み合わせ」とフォローをいただきました。
ありがとうございます。
それから…進学おめでとうございます (^_^)
。
あ、ちょうど今学校でやっている分野です。 「順列と組み合わせ」、 permutation と combination でやっています。 そろそろ授業は二項定理の話題。 『ミルカさんとコンボリューション』を 読み返そうかなと思っています。
あ、誤植発見。
『The Art of Computer Programming Volume 3 Sorting and Searching Second Edition 日本語版』のp.21の脚注。「順列(permutaion)」は「順列(permutation)」の誤植(訳書のみ)。
夜おそく、家に帰ると、次男はもう眠っている。
少し前に塾から帰ってきた長男も、 彼に夕食をあてがった家内も、 すっかり眠そうな顔をしている。
私は、二人の話を聞きながら、台所を少し片付ける。
家内は、もう寝なさいと長男にいいながら、自分もあくびをかみ殺す。
長男が布団に入る。
私のベッドで寝ていた次男を、長男の隣の布団に移動する(もうすっかり重たくなった)。
長男の頭に手を置いて「おやすみなさい、大好きだよ」というと、長男はにっかりと笑顔を見せる。
いつのまにかベッドにもぐりこんで眠る体勢になっている家内の頭に手を置いて 「おやすみなさい、きょうもお疲れさま」というと、 家内は目を閉じたままで ふふっと笑みを見せる。
戸締まりをし、家の電気を消し、 机の上のライトをつけて、ノートパソコンを開いて、 日記を書く。
特別な何かが起きるわけではないのだけれど、 なぜか、とても幸せな夜。
なおやさんが「認証API周り」というエントリで、 結城が描いたシーケンス図を使いたいという要望を出していらっしゃいました。
答え:どうぞどうぞ。 クレジット不要です。 いくら描きかえてもOKです。
おまけとして、秘密鍵とapi_keyからURLを作るスクリプトも以下で公開しました(単にMD5ハッシュを取るだけですけれどね)。
「はてな認証APIのモックアップサーバ」があるとアプリの試験に便利そうですね。 具体的には:
まちゅダイアリーのはてなの認証 API リリースの記事を見て、 自分でもシーケンス図が描きたくなってしまいました。 というわけでCGIのスクリプトといっしょに「はてな認証APIのシーケンス図」を以下で公開しました。
はてな認証APIというものが公開されていたので、 ためしにテストアプリを作ってみました(Perl)。 以下のリンクでスクリプトを公開しています。 単にはてな認証サーバからのレスポンスを表示するだけですけれど、 実際に作ってみると感覚がよくわかりますね。
月曜日は淡々と仕事。
結城のサイトwww.hyuki.comで今月、よく売れた本をご紹介します。 www.hyuki.comに来ている方はこんな本を買っているのだなあ、 というご参考にどうぞ。
以下、結城が書いた本を除いたトップ7(冊数が多い順)です。
いずれにしましても、みなさま、ご購入ありがとうございます。
[WT]の原稿を(いちおう)仕上げて編集部へ送信。
[WT]のプログラムは完成。図版と記事を書き始める。
『プログラマの数学』の読者さんから素敵な感想メールをいただきました。 ご本人の許可を得て、ご紹介いたします。
こんにちは。いつも楽しみに、日記などを拝見させていただいています。
「プログラマの数学」、とてもこの本に出会えてよかったです。 数学の中でも特に苦手だった分野が、すごくわかりやすく書かれていて、 読むたびに「そうだったのか!」と感動しています。
基本情報技術者試験を受けようと、参考書などを読んでいたのですが、 「プログラマの数学」を読んでやっと理解できる、ということが多く、 なくてはならないものになりました。試験は、わたしの勉強不足でたぶんだめなのですが(笑)、 次回もこの本を片手にちゃんと勉強して受けれるようにしたいです。
結城さんの日記などを読んでいると、心が温かくなります。本も同様です。 本の中で、授業の風景が浮かんで来た、という感じです。 わたしは今までプログラマなどとは全く縁のない世界にいましたが、 楽しさを知る事ができました。ありがとうございます。
これからも、感動を与えてくれる本や文章をつくりだしてください。 応援しています!
(二十代女性)
結城から
大きな励ましのメッセージを感謝します。 拙著『プログラマの数学』が少しでもお役に立てたようで、 著者としてうれしい限りです。
基本情報技術者試験にチャレンジなさっているとのこと、 勉強は大変でしょうが、がんばってくださいね。 応援しております!
月曜日は淡々と仕事。[WT]のプログラムを書く。
復活祭おめでとうございます!
結城のサイト www.hyuki.com には2002年から「他の人はどこ見てる?」というページを設置してあります。 文字通り、いま www.hyuki.com を訪問している人がどのページを見ているかを一覧にしたものです。 もちろん、見ているページの一覧であって、誰がそのページを見ているかはわかりません。 でもその「他の人はどこ見てる?」のページを見ていると、 「ああ、いろんな人がこのサイトに来てくださっているのだなあ」 ということが実感できます。
…見ているのは人間ではなく検索エンジンのクローラかもしれませんけれどね。(^_^)
Danさんのところで紹介されていた コマネチ大学を聴講してみたの問題に答えてみました。
問題:
15段の階段があります。階段を一段づつ上ってもOK、一段飛ばしで上ってもOKとして、この階段の上り方が何通りあるか答えなさい。
(注意:自分で解きたい方は以下を読まないように)
解答:
N段の階段を上ることにします(Nは1以上の整数)。
したがって、N段の上り方をF(N)で表すと、以下の漸化式が導かれます。
求める場合の数はF(15)に等しいので、 順番にF(3), F(4), ...を計算していきます。 すると、F(15)=987が得られます。
答え:987通り
補足と宣伝:
0段の場合を1通りと考えてもよいですね。
F(N)はフィボナッチ数列。 フィボナッチ数列と言えば… 「ミルカさんとフィボナッチ数列」ですね。
上記の(a)と(b)は「排他的で網羅的」な場合分けになっています。 また、階段の上り方の漸化式は再帰的な式になります。 こういう話題が好きな方は… 『プログラマの数学』をどうぞ。
淡々とお仕事。 新連載の準備[WT]と新しい本[EF]の目次作り。
[EF] 以前Excelで作っておいた表を眺めてからテキストファイルに落とす。 そして本全体のストーリーというか流れを心に描きながら、 章の順番を考える。各章に盛り込む内容を検討して、 あーでもない、こーでもない、といじり回す。 小さな関係を見つけたらそれをメモ。 そうしているうちに文章の断片(フラグメント)がつながり合って、 大きなクラスタを作り出していく。 それを待つ。 自分から枠を決めて無理矢理あてはめるのではなく、 章の項目が自然に結合し、かたまりになっていくのを忍耐強く待つ感じ。
「ねえ、きみは、どの節のおともだちなのかな?」
「あなたは、どの章に行きたいと思っているの?」
「彼は、この章の一節で収まるかな。それとも一つの章を治めるだけのリーダーシップがあるかな?」
そんな対話をフラグメントたちとお話しているのは楽しい。
テキスト上である程度かたちになってきたら、 Perlを使ってLaTeXに変換し、さらにPDFへ落とす。 そしてそれを眺めてまた考え直す。
至福のひととき。
昨晩は、 『増補改訂版Java言語で学ぶデザインパターン入門マルチスレッド編』 の打ち上げと、今年度の出版計画打ち合わせでした。
今回のスレッド本改訂はなかなか大変な作業でした。 私だけではなく、編集者にとっても。 もちろん改訂ですから、ベースになるテキストはあります。 でも、大量の修正テキスト、追加プログラム、 それに読みやすくするための山ほどの参照ページ入れなど、 編集者泣かせの作業指示が無慈悲な著者から飛びました。
無慈悲な著者?
わたしです σ(^_^;
それにも関わらず編集部では、適切な対処をしてくださり、 素晴らしい仕上がりの本になりました。 おかげさまで、あちこちの書店やアマゾンでもよい売れ行きになっているとのこと。 出版社のみなさま、書店の方々、それにもちろん読者のみなさんに感謝します。
ありがとうございます!
で。
今年度の出版計画。楽しい企画がたくさん進行中です。 随時アナウンスいたしますので、お楽しみにお待ちください。
いつも初心を忘れずに、 一冊一冊をていねいに作っていきたいと思います。
また、本を書く機会を与えてくださり、 私の心と体を支えてくださる主なる神さまへの感謝を忘れずに歩んでいきたいです。
武田圭史さんの 「匿名P2Pファイル共有のある社会に生きるということ」を読んで…。
結城が以前から考えていたプラクティカルな情報漏洩対策を書いておきます。 といっても、たった一行。
「情報漏洩が起きたら、ダミーの内容を持つ同種の情報を大量に流す」
というのはいかがでしょう。 つまり、情報を入手した人に「どれが本物の情報なのかわからない」という状況を作り出すのです。
もちろん、技術的な問題はありますけれど。
きっとどこかですでに誰かが考えていることだと思いますが、書いておきます。 どうでしょうね。
ちなみに、このアイディアは 「暗号化を行わずに機密性を得るChaffing and Winnowing」 および「Crowds」からヒントを得ています。
追記:読者さんから「ポイゾニングと呼ぶそうです」というコメントをいただきました。ありがとうございます。以下参照。
追記:株式会社Whizzy R&Dでは実際に「コンテンツシェルタ」というソリューションとして提供しているとのこと。 情報提供感謝です。
追記:はてなブックマークによい表現がありました。
『結城浩のWiki入門』の【PDF版】ができました。 現在インプレスダイレクトさんから購入できます。 どうぞご利用ください。
書名:結城浩のWiki入門 PDF版 仕様:PDF+ZIP形式添付ファイル(約34MB) 価格:1,680円(税込)
Knuth先生の『The Art of Computer Programming Volume 3 日本語版』が刊行されました。 以下、すでに日本語版が刊行されているVolume 1, 2と並べてリンクします。
なお、Volume 1を改訂したものとVolume 4の一部が、Fascicle(ファスィクル, 分冊)として刊行されていますので、そちらもリンクします。 日本語版と書かれていないものは英語です。
Fascicleになる前のPre-Fascicleは、Knuth先生のページからダウンロードできます。
淡々と仕事。
打ち合わせのための準備をする。 打ち合わせそのものも大事だけれど、 打ち合わせのために行う準備も大事だね。 以前考えたことを思い出したり、昔のメールを読み返したり。 そして現在の頭の状態をスナップショットしておく。
…というような日記を書くと、 読者さんから 「結城さんはどんな風にして打ち合わせの準備をするのですか?」 という質問がやってくる。 そこで、先回りしてリンクを張っておきましょう。
こんな風に準備します。
神さまは子供のように繰り返しを喜ぶ。 喜びながら繰り返す。もっと繰り返す。
しかし、その繰り返しは完全に同じ繰り返しではない。 海の波は繰り返し打ち寄せるが、一つとして同じ波はない。 毎日昇る朝日は同じ繰り返しのように見えるが、 少しずつ変化していき、やがて季節の繰り返しに移る。 そしてまた季節の繰り返しは、より大きな繰り返しへ移る。 新しさと共に懐かしさを感じさせながら。
神さまは繰り返しをおそれない。繰り返しをいとわない。
しかし、ナルニアに始まりと終わりがあるように、 この世にも始まりと終わりがある。 私たちのすべてに誕生と死があるのと同じだ。
深い安らぎと喜びがそこにある。
ほんの少しの悲しみと共に。
This entry is inspired by G. K. Chesterton and Dan Kogai.
結城のスレッド本の読者さん(初版+増補改訂版の両方)からお便りをいただきました。 許可を得てご紹介いたします。
読者さんから
マルチスレッド本は、初版も読ませて頂きましたが、 改訂版はかなり書き足されているようなので楽しみです。
初版のマルチスレッド本を初めて読んだのは2年半ほど前で、 ある測定装置を制御するソフトウェアの開発を始めたばかりの頃でした。 この装置はパソコンに大量のデータを連続して転送するので、 データを取りこぼさないために速いスレッドで受信するように設計しました。
それまでマルチスレッドを使った経験が無かったので うまくいくか心配だったのですが、 マルチスレッド本のおかげで問題無く開発を進めることができました。 現在そのソフトウェアでは全部で4つのスレッドが走っていますが、 おかげさまでスレッド周りは何の不具合もなく動作しています。 (他の箇所には結構バグがありますが(^_^;)
結城から
お便りありがとうございます。
マルチスレッドは難しいもので、 本当に「理解」してプログラミングしないとまずいですよね。 拙著がお仕事のお役に立ったとのこと、ほんとうにうれしいです。 本を書いていて、こういうフィードバックは言葉にならないほどありがたいです。
増補改訂版は、全体的な構成などは変わらないのですが、 変わったところはすごく変わっています。 加筆もかなりありますので、 ゆっくりお楽しみいただければと思います。
感謝します!
次男「ねえ、お父さん。どろぼうっているの?」
私「ああ、いるねえ。世の中にはどろぼう、いるよ」
次男「どろぼうって、おうちはあるの?」
私「ああ、うん。あると思うよ」
次男「どろぼうのおうちを探せばいいんじゃないかな。つかまえた!って」
私「うん、きっとお巡りさんはどろぼうのおうちを探していると思うよ」
次男「ふーん」
私「どろぼうのお家にも、どろぼうが入ることがあるかもね…」
と私が言ったとたん、黙って聞いていた家内が急に大声で笑い出した。 次男もけらけら笑い出し、私の「…そういうのはメタどろぼう、って言うんだよ」という言葉は かき消されてしまった。
ミルカさんシリーズ第6作、 「テトラちゃんとハーモニック・ナンバー」 を公開しました。
ぜひ、ご感想をお寄せください。
また、日記やブログでの感想も、もちろん大歓迎です。 (^_^)
。
みなさんのご感想やWebでの言及が励みになっています。
これまでのミルカさんシリーズは「数学ガール」のページからどうぞ。
『プログラマの数学』の読者さんからメッセージをいただきました。
『プログラマの数学』は1周年ですね。おめでとうございます。 いまぼくは毎日少しずつ、この本を読んでいます。 この本に出会えたことに感謝いたします。
結城から
すてきなお祝いのメッセージをありがとうございます。 確かに、昨年(2005年)の3月に出版ですから…早いものです。 『プログラマの数学』も、あなたという読者に出会えて幸せですね。 私からも心からの感謝をお送りいたします。
また『プログラマの数学』の数多くの読者さんにも感謝いたします。
Thank you!
『増補改訂版Java言語で学ぶデザインパターン入門マルチスレッド編』 のCD-ROMに含まれているサンプルプログラムを公開しました。
Perlish Magazineの最新号が出ているようです。 Perlish Magazineは、今月号もなかなか盛りだくさんです。 今回は、ささださん@日本Perlの会による、結城浩のインタビューも掲載されています。 また『結城浩のPerlクイズ』のプレゼント企画も。
先日行われたYAPC::Asia 2006 Tokyoレポートも非常に充実してますね〜。
それに、著名なPerlの使い手であるMatzさんがRubyという言語を紹介しています。
みなさん、ぜひお楽しみください。
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。