目次

2004年12月30日(木) 今年ももうすぐ終わりですね / 第7章の校正
2004年12月29日(水) 寒い / あふれそうになったときの工夫 / 第7章の校正 / 本を書きながら思うこと / 第6章と第9章の校正
2004年12月28日(火) 妻の呼び方 / 新しい仕事 / 第6章の校正(前半)
2004年12月27日(月) 第5章の校正 / 文章を書く心がけ
2004年12月26日(日) 「よかった探しリース」終了しました
2004年12月25日(土) パイがいっぱい スパイもいっぱい
2004年12月24日(金) 朗読 / 疑問点 / 次男と遊ぶ / 第4章の校正 / クリスマス・イブ
2004年12月22日(水) 第3章の校正
2004年12月21日(火) Haskell日記 / 第2章の校正
2004年12月20日(月) CVSとブランチ / 第1章の校正
2004年12月19日(日) フィルタ / クリスマス礼拝
2004年12月18日(土) ポーラー・エクスプレス
2004年12月17日(金) ユニセフ / オリザさん / よかった探しリース
2004年12月16日(木) Haskellの練習ページ
2004年12月15日(水) Haskell Lesson 4 / Haskell Lesson 3
2004年12月14日(火) 日記ダイジェスト / Haskell Lesson 1, 2
2004年12月13日(月) n進数
2004年12月12日(日) 多忙
2004年12月8日(水) 指の数 / パイロット記事 / よい天気
2004年12月7日(火) 2進数と2進法
2004年12月6日(月) KissReaderのダウンロード数 / ブロガーのよかった探し / Wikiスパム / レビュー
2004年12月5日(日) KissReader / 賢者の贈り物 / KissReader
2004年12月4日(土) RSS / KissReader / KissReader
2004年12月3日(金) 執筆作業のログ分析 / 本書き、一段落しました / よかった探しリース
2004年12月2日(木) KissReader (キス・リーダー) / Perlで遊ぶ
2004年12月1日(水) アンテナ事情 / 本を書いています
日記一覧

2004年12月30日(木)

今年ももうすぐ終わりですね

2004年12月30日(木) 19:17

今年ももうすぐ終わりですね。みなさんはいかがお過ごしでしょうか。

みなさんの新年が、神さまの祝福に満ちあふれたものになりますようにとお祈りいたします。

なお、最近、掲示板への宣伝書き込みが多くなっているようですので、 年末年始はいくつかの掲示板をお休みさせていただきます。 新年3日ころから再開する予定です。 ご不便をおかけしますが、ご理解お願いいたします。

2004年12月29日(水)

あふれそうになったときの工夫

2004年12月29日(水) 14:32

たくさんの出来事であふれそうになったときの工夫。

  • 1. 目を閉じる
  • 2. 1から10までゆっくり数える
  • 3. 目を開ける

ポイントは、 まわりからやってくる出来事は、実は自分を支配しているわけではない、 ということを自覚するところにある。

目を閉じることができる。数えることができる。目を開けることができる。 どんな出来事がやってきても、自分はそれに振り回されることはない。

イエスさまが、いつも共におられるしね!

第7章の校正

2004年12月29日(水) 14:28

何だか雪がたくさん。

一つ一つていねいに校正。 まるで、世界に存在するのは、 現在目の前にある問題たった一つであるかのような気持ちで、 1個1個ていねいに考えていく。

自分が一度にできるのは、たった一つだけ。

あわてない、あせらない。

第7章が何とか終わった。第8章もじわじわと進めていく。

本を書きながら思うこと

2004年12月29日(水) 11:38

結城はいつも、すでに本がたくさん出ている分野であっても、 「新しいひと味」が何かしら加わっている本を書こうと思っています。 自分が過去に書いた本とも「何かが違う」というものにしようと思っています。 ほんのちょっとでもいいから、毎回「新しいチャレンジ」があるように心がけています。

そのため、ときどき不安になってしまうこともあります。 たとえば 「暗号本」。これは結城がはじめて書いたプログラミング以外の本です。 書いている私は楽しんだのですけれど、 読者の方々が楽しんでくださるかどうか、ドキドキものでした。

幸い、予想をはるかにはるかに上回る読者が楽しみつつ読んでくださったようで、 ほんとうに感謝です。

いま書いている本は、来年の春ごろに出版になると思います。 この本が、この本を必要としている読者のところに届けられますようにと、 神さまにお祈りいたします。

第6章と第9章の校正

2004年12月29日(水) 11:19

今日は雪。

降っても照っても(by マドレーヌ)淡々と校正。 第6章と第9章が終わり、第7章の図版を一点入れ替え。 残りは第7章と第8章。

複数のレビューアさんから、非常に関連性の高い指摘があったので、それを参考にして加筆と修正を行う。 なんと、先日から趣味(?)でやっていたHaskellの練習がここで役立ったことに驚く。

レビューアさんたちに、謝辞に関する確認のメールを出す。

レビューアさんからの「感想」の部分を元にして、 「読者の声」のページの準備をはじめる。

2004年12月28日(火)

妻の呼び方

2004年12月28日(火) 13:25

読者さんからの質問

結城さんは奥様のことを「家内」とよばれるようになったのでしょうか? いままでの「おくさん」という呼び方がのんびりした感じで好きだったのですが、 なにか変化があったのでしょうか。

結城からのお返事

いえ、とくに変化はありません。 検索してみますと、2002年から2004年の範囲で「家内」は約200回、「奥さん」は約100回使っています。 回数からいえば「家内」が多いですね。 恐らく、語呂のよいほうをその都度使っているのだと思います。 コメントありがとうございます (^_^)

2004年12月27日(月)

第5章の校正

2004年12月27日(月) 09:48

今日も淡々と校正。 今日は第5章の分、約50個。 それから、レビューアさんからの意見を加味した修正などを追加。

ここまでで、 編集部からやってきた「はじめに」から「第5章」までの疑問点への返事ができたので、 いったん送信する。

気分を変えて、第8章の校正を半分ほど行う。

これからの予定は、以下の通り。

  • 28日(火) - 第6章の校正
  • 29日(水) - 第7章の校正
  • 3日(月) - 第8章の校正の残り
  • 4日(火) - 第9章の校正、編集部へ後半送信

文章を書く心がけ

2004年12月27日(月) 06:27

学生さん(22歳)から

論文執筆で悩んでいました。 これを見て本当に気分が晴れました。 ありがとうございます。 がんばって論文を書き上げるつもりです。

結城から

何だか私のほうが励まされました。 寒い時期ですが、風邪など引かずに論文に取り組んでください。 お祈りしております。

2004年12月26日(日)

2004年12月25日(土)

パイがいっぱい スパイもいっぱい

2004年12月25日(土) 15:29

今日は家族みんなで、子供向けのお芝居を見てきました。 和田誠さんの「パイがいっぱい スパイもいっぱい」という公演です。 言葉遊びがいっぱいの不思議なお芝居で、たのしいひとときを過ごしました。 以前から我が家で読んでいた『ことばのこばこ』の愉快なフレーズもたくさん劇中に登場して、面白かったです。

2004年12月24日(金)

次男と遊ぶ

2004年12月24日(金) 10:31

家内は、朝食が終わった後、 次男と一緒に「神経衰弱ゲーム」と「百人一首」で遊ぶようにしている。

神経衰弱ゲームはトランプではなく、小さなかわいい絵がついたカードでやっている。

百人一首は5枚くらいからはじめて、いまは8枚くらいに増えたようだ。 1つの遊び方は、机に札を並べず、はじめの部分を家内が読んで、 残りを次男に暗唱させ、うまく言えたら札をあげるというもの。 それから、取り札を並べて、 家内が読んだ札を取るという遊び方も(こちらは普通の遊び方に近い)。

家内は、絵本を読む時間や、いっしょにお絵かきをする時間もこまめにとっている。 無理をせず自分も楽しみながら、 ちょっとした時間で、でも毎日やるのがよいみたい。

第4章の校正

2004年12月24日(金) 10:30

今日も淡々と校正。 今日は第4章の分、約38個。 それから、レビューアさんからの意見を加味した修正などを追加。

まあ、何とか、形になったか。文章を書くって、難しいなあ。

クリスマス・イブ

2004年12月24日(金) 09:06

この日記を読んでいるあなたが、現在どこにいて、どんな状況にあろうとも、 イエスさまがすぐそばにおられ、あなたを助け導いてくださいますように。 あなたの毎日が実り多く、豊かなものとなりますように。

イエスさまのお名前でお祈りいたします。

クリスマスおめでとうございます。

2004年12月22日(水)

2004年12月21日(火)

2004年12月20日(月)

CVSとブランチ

2004年12月20日(月) 09:54

ソースコードをCVSで管理していて思うのは、 ブランチを使いこなすのはとても、とても難しいということ。 頻繁にソースをいじっているときならまだしも、 たまにしかいじらないソースをブランチさせると、 自分ひとりでやっているのに混乱してしまう。 ブランチの「ポリシー」みたいなものが自分の中で固まっていないからかもしれないけれど。

2004年12月19日(日)

フィルタ

2004年12月19日(日) 16:41

最近Wikiのスパムが多いので、適宜アクセス制限を行っている。 IPアドレス単位ではじいたり、特定のキーワード(たとえば宣伝URL)では書き込みができないようにしたり。 悪質な書き込みは、結城も見つけ次第削っているのだけれど、 善意のユーザさんが先取りして編集してくださることも多い。感謝します。 Wikiもあらされるようになったのは、それだけメジャーになってきたからかな。

Wikiスパム、トラックバックスパム、それにコメントスパム。 Webサイトで「誰でも書ける」というスペースには必ずスパムがやってくる。 TypeKeyのような「認証」の仕組みはこれからますます重要になってくるだろう (この後に『暗号技術入門』のCMがはさまるところですね)。

textfile.orgでも、以前はトラックバックやWikiをつけていたけれど、もうやめちゃった。 何となく「もう情報過剰なんだから、これ以上増やさなくてもよいよ」と感じたため。 ニュースサイトでも、ポータルサイトでも、リンクや情報がびっしりあるというのは読んでいてちょっと苦しい。 それよりも、もっと品質の高い情報が厳選されているようなのがいいなあ。 かといって、アマゾンの「お勧め」みたいに、 あまりにも自分の購買傾向が「見抜かれて」いるのもいやだけれどね。

こんなのはどうだろう。 紹介するリンクは一日に3サイトだけ。 それぞれには、一行のサマリと一行のコメントがついている。 サマリはリンク先の要約であり、コメントというのはそのページに対する紹介者の意見。

ふむ。

追記

3サイトと言わず、ここはやはり厳選した1サイトに絞ってというご意見をいただく。なるほど。それはよいかも。 来年のtextfile.orgはそれでいこうかな。 1日1サイト、厳選リンク。

クリスマス礼拝

2004年12月19日(日) 16:30

今日はクリスマス礼拝。 イエスさまがこの世に来られたことに感謝。 そして私の内にも来てくださったことに感謝。

多くの教会では、24日のクリスマスイブにも礼拝が予定されていると思います。

クリスマスはぜひお近くの教会へ!

2004年12月18日(土)

ポーラー・エクスプレス

2004年12月18日(土) 23:04

今日は家族みんなで、映画「ポーラー・エクスプレス」を観てきました。 とっても楽しかった! ココアのダンスシーンが最高でした。 原作の絵本も読みましたが、どちらもそれぞれによかったです。 帰ってきてから子供たちに絵本をもう一度読んであげました。

2004年12月17日(金)

ユニセフ

2004年12月17日(金) 22:37

みなさんは「ユニセフ」をご存知ですか。

ユニセフ(国連児童基金)は世界の子供たちのために活動している国連の機関です。

ユニセフの資料「今、できること」によれば、 いま、開発途上国では、1年間に1100万人の子供が5歳になる前に死んでいるんだそうです。 その原因は「かぜをこじらせた肺炎」「下痢による脱水症状」「予防接種で防げる病気」によるもの。 1100万人が死んでいる…。東京都民の人口なみ…。

ユニセフの活動を支えているのは世界中の募金。 募金はWeb経由ですぐに行うことができます。

なお、結城はユニセフとは直接関係はありません。 子供の親として、ユニセフの活動を個人的に応援しているだけです。 1000円あれば、失明を防ぐビタミンAのカプセルが416錠も買えるのだそうです…。

2004年12月16日(木)

2004年12月15日(水)

Haskell Lesson 4

2004年12月15日(水) 10:27

関数。

module Sample4 where

-- A function is a first class value.
-- Lambda Calculus

f1 = \x -> x+1
f2 = \x -> x^2
f3 = \x -> sqrt(x)
f4 = \x -> map f2 x
f5 = \x -> map (f1 . f2) x

{-
    f1 5 -- 6
    f2 5 -- 25
    f3 5 -- 2.23606797749979
    f4 [1..5] -- [1,4,9,16,25]
    f5 [1..5] -- [2,5,10,17,26]
-}

g1 = \x y -> x + y
g2 = \x -> map (g1 1) x
g3 = \f -> map f [1..5]         -- functional argument

{-
    g1 2 3 -- 5
    g2 [1..5] -- [2,3,4,5,6]
    g3 (g1 1) -- [2,3,4,5,6]
-}

h1 = [f1,f2]
h2 [] as = []
h2 (f:fs) as = map f as : h2 fs as

{-
    h2 h1 [1..5] -- [[2,3,4,5,6],[1,4,9,16,25]]
-}
  • 関数が簡単なせいもあるけれど、長い名前がだんだん無粋に感じられてきた。
  • 「変数に値を入れる」ではなく「名前を付ける」という感覚になり、プログラム全体が「堅い」印象になる。面白い。

Haskell Lesson 3

2004年12月15日(水) 09:46

Haskellの練習。

module Sample3 where

f_distance1 x1 y1 x2 y2 = sqrt((x2-x1)^2 + (y2-y1)^2)

f_distance2 x1 y1 x2 y2 =
    let xdiff = x2 - x1
        ydiff = y2 - y1
    in  sqrt(xdiff^2 + ydiff^2)

f_fact1 n =
    if n <= 0
        then 1
        else f_fact1 (n-1) * n

f_fact2 0 = 1
f_fact2 n = f_fact2 (n-1) * n

f_count1 lst =
    if null lst
        then 0
        else 1 + f_count1 (tail lst)

f_count2 [] = 0
f_count2 (first:rest) = 1 + f_count2 rest

f_filter1 pred list =
    if null list
        then []
        else if pred (head list)
            then (head list) : f_filter1 pred (tail list)
            else f_filter1 pred (tail list)

f_positive n =
    if n > 0
        then True
        else False

-- f_filter1 f_positive [0,1,-1,2,-2,3,-3]      -- [1,2,3]

f_filter2 pred [] = []
f_filter2 pred (a:as) =
    if pred a
        then a:f_filter2 pred as
        else f_filter2 pred as

-- f_filter2 f_positive [0,1,-1,2,-2,3,-3]      -- [1,2,3]

f_filter3 pred [] = []
f_filter3 pred (a:as) =
    if pred a then a:f_filter3 pred as
    else f_filter3 pred as

-- f_filter3 f_positive [0,1,-1,2,-2,3,-3]      -- [1,2,3]

f_fib1 n =
    if n <= 0 then 0
    else if n == 1 then 1
    else f_fib1 (n-1) + f_fib1 (n-2)

-- f_fib1 5
-- map f_fib1 [0..20]
-- [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765]

f_fib2 0 = 0
f_fib2 1 = 1
f_fib2 n = f_fib2 (n-1) + f_fib2 (n-2)

これ、素敵ですね。

C:\WORK> type hugs.bat
@echo off
"C:\Program Files\Hugs98\Hugs"

C:\WORK> type Fib.hs
module Fib where

fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)

C:\WORK> hugs
__   __ __  __  ____   ___      _________________________________________
|   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
|___|| ||__|| ||__||  __||     Copyright (c) 1994-2003
|---||         ___||           World Wide Web: http://haskell.org/hugs
|   ||                         Report bugs to: hugs-bugs@haskell.org
|   || Version: Nov 2003       _________________________________________

Haskell 98 mode: Restart with command line option -98 to enable extensions

Type :? for help
Prelude> :load Fib
Fib> fib 0
0
Fib> fib 1
1
Fib> fib 2
1
Fib> map fib [0,1,2]
[0,1,1]
Fib> map fib [0..10]
[0,1,1,2,3,5,8,13,21,34,55]
Fib> :quit
[Leaving Hugs]

C:\WORK>

2004年12月14日(火)

Haskell Lesson 1, 2

2004年12月14日(火) 21:36

いろいろと調べ物をしているうちに、 気がついたらHaskellというプログラミング言語で遊んでいました。 まだよちよち歩きなのですが、何だか楽しいです。

  • 何はともあれ、haskell.orgにいってHugsという処理系を入手してインストール。
  • いろいろとドキュメントを読む。読みやすいのはYet Another Haskell Tutorialという文書。

Sample1.hsを作って遊ぶ。

module Sample1 where
test1 = 1 + 2
test2 = 1 + 2 * 3
test3 = 2^3
test4 = (+) 3 4
test5 = []
test6 = "Hello"
test7 = 'H':'e':'l':'l':'o':[]
test8 = [1,2,3]
test9 = 1:[2,3]
test10 = ('x', 123)
test11 = fst ('x', 123)
test12 = snd ('x', 123)
test13 = head [1,2,3,4,5]
test14 = tail [1,2,3,4,5]
test15 = head (tail [1,2,3,4,5])
test16 = (head . tail) [1,2,3,4,5]
test17 = [1,2,3,4,5] ++ [6,7,8,9,10]
test18 = show (1 + 2 * 3)
test19 = 0 + read "7"
test20 x = x + 1
test21 = test20 123

モナドへの道は遠いな :-)

今度はSample2.hsで条件を。

module Sample2 where
f_addone x = x + 1
f_square n = n * n
f_abs x =
    if x > 0
        then x
        else if x < 0
            then -x
            else 0
f_isZero0 x =
    if x == 0
        then True
        else False
f_isZero1 x =
    if x /= 0
        then False
        else True
f_isZero2 x =
    case x of
        0 -> True
        _ -> False
f_isZero3 0 = True
f_isZero3 _ = False
f_isZero4 x = case x of { 0 -> True; _ -> False }
f_isBigger x y =
    if x > y
        then True
        else False

Haskellといえば、nobsunのところにいろいろサンプルがあるかも…。

2004年12月12日(日)

2004年12月8日(水)

指の数

2004年12月8日(水) 18:39

私は午前中の原稿書きを終えて、 お昼を食べようとデパートに入った。

中央の吹き抜けには大きなツリーがある。 ヒイラギの緑と赤。白い雪。 通りかかる買い物客はみなツリーを見上げる。 私も見上げる。てっぺんには大きな金色の星。

もうすぐ、クリスマスだ。

かたわらに小さな女の子が立っていて、私と同じようにクリスマスツリーを見上げている。 小学生だろうか。賢そうな横顔。やわらかなピンク色のセーターにスカート。 ポニーテールにはプラスチックの髪留めが1つ。これもピンクだ。 足元には大きな布バッグ。 顔を上に向け、まっすぐにツリーの星を見つめている。

私の視線を感じたのか、彼女はゆっくりとこちらを見る。 一回まばたきをして、にこっと微笑む。 思わず私も微笑みを返す。

彼女は私のほうに向き、軽く握った右手を前に突き出す。 そして「れい」と言う。 少なくとも、そのような形に口が動く。でも声は聞こえない。

れい? 私は首をかしげる。この子は何をしているんだろう。

右手に並べるように左手を前に出し、左手の人差し指をぴんと立てる。 そして「いち」と言う。やはり声は聞こえない。

数を数えているのかな。 「零」そして「一」。

次に彼女は、右手で左手に触れる。そして右手も人差し指を立てる。 「いち」と彼女は言う。

続いて彼女は、左手で右手に触れ、今度は左手でヴイ・サインをする。「

彼女の手の動きが少し早くなる。右手の人差し指で左手のヴイに触れると、右手の指を三本立てる。「さん

左手のヴイで右手に触れ、左手の指を全部ひらく。 「

そして彼女は、右手で左手に触れ…そこで動きを止める。 左手は指を全部ひらいている。 右手は指を三本立てて左手に重ねている。 彼女はそのままの姿勢で、私の顔を見、ちょっと悲しそうな顔をする。

もちろん、私は、右手の指を全部広げて、彼女に向かって手を伸ばす。 そして「はち」と言う。

彼女は顔をぱっと輝かせ、 足元のバッグを持ち、私のそばに走り寄ってくる。

私がしゃがむと、彼女は私の耳に口を寄せる。

「n回くりかえしたら、指は何本必要?」

彼女はそう言って、くすくすっと笑う。 彼女がバッグを抱えあげたとき、こんなししゅうが見えた。

Where is the truth?

パイロット記事

2004年12月8日(水) 10:46

いまは本を脱稿してゆっくり過ごしています。 ……うそです。いまは来年書こうと思っている本の下書きを書いています。 個人的に「パイロット記事」と呼んでいる文章です。

とにかくその本に少しでも関係があることを、すべて頭と心の中から引き出し&吐き出して書く文章です。 何でもいいからとにかく書きます。構成やバランスなどは考えず、とにかく心に浮かんだままに書いていきます。 心に浮かんだままといっても文章が持っている「内在律」が働きますから、ひとりでに何らかのフォルムにはなるのですけれど。

自分がその分野の初心者だとして、素朴に感じるであろう疑問も書き留めます。 もっとも知りたいことも書きます。調べたいことも書きます。 思いついたジョークも書きます。とにかく何でもよいから書きます。 「出発点は、頭の中にあるのではない」 のですから、 とにかく全部、ぜーんぶ書き出します。繰り返しがあってもかまわない。どんどん書きます。 そのうちに刈り込んだり編集したりして、章立てを考えるのだけれど、いまはそのときではない。 ひたすら書く。無駄は承知。いま書く文章は全部捨てる。だから、何を書いてもよい。

とにかく、書く。

よい天気

2004年12月8日(水) 10:09

今日は青空が広がるよい天気です。

先日脱稿した原稿は編集長さんが今ごろ一生懸命読んでいらっしゃることでしょう。 おそらく数日すると、山ほどの疑問点と確認事項などがやってくるに違いないと踏んでいます。

それと並行して、結城が個人的にお願いしているレビューアさんからは、 ときどきレビューが送られてきます。 結城はそれをていねいに読みながら、改善点をメモにまとめています。 直接原稿ファイルを直してしまうと、 編集部に送ったバージョンとのマージが難しくなるので 章ファイルの末尾に書き足す形式にしています。

今回レビューアさんは特に公募をしませんでした。 以前レビューをお願いした方の中から数人を選び、 メールで「引き受けていただけませんか?」という打診をしたのです。 いつものように報酬なしのボランティアなのですが、 多くの方が快く引き受けてくださって感謝しています。 また都合が悪くてできないという方からも、応援のメールをいただきました。

レビューアさんからのレビューを読んでいると、 ものすごい間違いを指摘されて愕然としたり、 楽しんで読んでいただけてうれしくなったり、 ある先生から「この部分、授業でちょっと使わせてもらいました」といわれて光栄に感じたり…と、 なかなかエキサイティングです。

ものすごい間違いの例: 「見落とさない」という主旨の文章のところで、 「見落とし忘れが起きないように」と書いていました。 「見落とし忘れ」って何だよ > 自分。

2004年12月7日(火)

2進数と2進法

2004年12月7日(火) 14:23

奥村先生のWikiに 2進数というページがあり、以下のように書かれている。

「2進数を10進数に変換する」などと言う。数が変換されるみたいで気持ちが悪い。 2進法とか2進表現のほうがいいのではないか。 同じ数を2進法で表したり10進法で表したりしても, 変わるのは表現であって,数そのものは同じ,というわけ。

これを読んで少し考えた。

  • 「2進数を10進数に変換する」と書くと数が変換されるみたいで気持ちが悪いのは確か。でも使っちゃうなあ…。
  • でも「2進法を10進法に変換する」だと、今度は言葉足らずに感じる。1つの数のinstanceの変換が話題になっているのに、表現方法そのものを変換しているようだから。
  • 「2進法による表現を10進法による表現に変換する」のほうがよいかもしれないが、まどろっこしい。
  • 「2進表現を10進表現に変換する」がいちばん妥当だろうか。

加筆

ある方から、以下のようなコメントをいただきました。 なるほど。無理に対称な表現をする必要はなかったのか…。おもしろいです。

結城さんこんにちは。「2進数を10進法で表現する」ではいかがでしょうか?

さらに加筆

「2進数を10進展開する」というのはいかがでしょうか?

2004年12月6日(月)

KissReaderのダウンロード数

2004年12月6日(月) 23:27

KissReaderは2004-12-02(つまり4日前)から開発・公開しているが、 さきほど調べたところ、ダウンロード数は140だった。 こまめに複数回リリースしているから、 同じ人が何回もダウンロードしているはず。 同一IPを1回とカウントすると、ダウンロード数は106だった。 想像したより多い。

レビュー

2004年12月6日(月) 10:02

次男が風邪を引いていて、朝方眠り続けているため、 朝食の時間は恐ろしいほどに静かだった。 朝食後、奥さんはソファでアマゾンから届いた国語教育の本を熱心に読んでいる。 私は食卓で白いA4の紙を広げ、来年書こうと思っている本のアイディアを思いつくまま書き留める。

午前中はレビューアさんからのメールを何点か検討して、 各章の原稿ファイルの末尾にメモとして付記。 校正の段階でここにメモしておいたことを反映する予定。

土日を過ぎると、レビューアさんからのメールが増える。 お休みの日にわざわざ結城の原稿を読んでくださることに感謝。

今回は、レビューアさんの人数が少ないことと、 すでに原稿書きを終えていることもあって、 レビューアさんには比較的多くお返事を書くことができている。

2004年12月5日(日)

KissReader

2004年12月5日(日) 22:53

KissReaderの0.2.0をリリース。

ユーザーズマニュアルを配布アーカイブに同梱したり、 サンプルバッチファイルを入れたり。 バグや使いにくい点はいろいろあるけれど、 私が使う分にはこれでほとんど問題ないなあ。

今週一週間くらい使ってみて、気になるバグを直したら、 1.0.0にしちゃおっと。

2004年12月4日(土)

RSS

2004年12月4日(土) 16:12

RSSといえば、神崎さんの解説記事。 改めて読み返してみましたが、非常に素晴らしいまとめですね。

過剰巡回に対する注意、セキュリティに関する配慮まで書かれているのが特に。

追記

神崎さんからメールをいただきました。ありがとうございます。 お話の中で、結城の日記のRSSの誤りまでご指摘いただきました。 恐縮です (^_^; 。 神崎さんといえば、もうすぐ『RDF/OWL入門』の出版ですね。 この本も要チェックですよね > アルファ・ギークのみなさま。

KissReader

2004年12月4日(土) 09:26

KissReaderの0.0.3をリリース。 結局XML::Parserを使うようにした。 モジュールは便利だ。

はてダラのときもそうだったけれど、 自分で使うツールを作るのはとてもたのしい。 まだ使いにくいところが多々あるけれど、RSSの巡回はこれでやっている。 もうSharpReaderは使わなくなっちゃった。

2004年12月3日(金)

執筆作業のログ分析

2004年12月3日(金) 09:26

原稿はCVSで管理しているので、 作業ログを元にして月ごとの作業量を調べることができる。

# cvs logの出力から月ごとの作業量を調べる
use strict;
my %ins_count;
my %del_count;
my %all_count;
my %inc_count;
my %total;
while (<DATA>) {
    chomp;
    if (m|^date: (\d\d\d\d)/(\d\d)/(\d\d).*lines: \+(\d+) \-(\d+)|) {
        my ($year, $mon, $day, $ins, $del) = ($1, $2, $3, $4, $5);
        my $key = "$year-$mon";
        # my $key = "$year-$mon-$day"; # 日ごと
        $ins_count{$key} += $ins; # 追加行数
        $del_count{$key} += $del; # 削除行数
        $all_count{$key} += $ins + $del; # 変化行数
        $inc_count{$key} += $ins - $del; # 増加行数
        $total{ins} += $ins;
        $total{del} += $del;
        $total{all} += $ins + $del;
        $total{inc} += $ins - $del;
    }
}
printf("%7s: %8s %8s %8s %8s\n", 'Month', 'All', 'Ins', 'Del', 'Inc');
foreach my $key (sort keys %ins_count) {
    printf("%7s: %8d %8d %8d %8d\n", $key, $all_count{$key}, $ins_count{$key}, $del_count{$key}, $inc_count{$key});
}
printf("%7s: %8s %8s %8s %8s\n", 'Total', $total{all}, $total{ins}, $total{del}, $total{inc});
__DATA__
(以下、cvs log *.txtの出力をそのまま貼り付ける)

実行結果は次の通り。

  Month:      All      Ins      Del      Inc
2004-02:      474      456       18      438
2004-03:      918      914        4      910
2004-04:      232      161       71       90
2004-05:     2709     1822      887      935
2004-06:     2634     1649      985      664
2004-07:     2967     2464      503     1961
2004-08:    10505     6014     4491     1523
2004-09:     3156     1809     1347      462
2004-10:    13199     7999     5200     2799
2004-11:    13306     8092     5214     2878
2004-12:      735      392      343       49
  Total:    50835    31772    19063    12709

これを見ると、

  • 全体で11ヶ月(2-12)
  • 実質は7ヶ月(5-11)
  • がんばっているのは3ヶ月(8, 10, 11)
  • 変化量(All)は月に2500〜13000行程度。
  • 増加量(Inc)は月に1000〜2000行程度。

ということが見えてきます。 いえ、だからどうというわけではないんですが。

大雑把な皮算用をすると… たとえば「月に2000行増加を半年」「月に1500行増加を10ヶ月」「月に1000行増加を1年」 という感じで本が1冊できる勘定になるでしょうか。

ひと月20日で計算したとして、 月に1000〜2000行なら一日50行〜100行か。 ふむふむ。それは体感と何となく一致している。 それから、最終原稿(Inc)以上の量を、書いた(Add)後で削除(Del)しているというのも、感覚的に理解できる。 まあ、いずれにしても、気の長い話ですわね、奥様。

よく考えてみると、 プログラムだってそのくらいですよね(「書く行数」ではなく「デバッグ後の結果の行数」)。 月に1000行〜2000行。

以下は、過去の執筆ログに関するリンク。 厚さがいろいろだから直接比較はできないけれど。

本書き、一段落しました

2004年12月3日(金) 09:19

このところずっと書いていた本の執筆が一段落し、 編集部に原稿と図版ファイルを送りました。 みなさまの応援とお祈りを感謝します。

レビューアさんから届き始めたレビューは、 これから校正をする途中で織り込んでいく予定です。

よかった探しリース

2004年12月3日(金) 00:02

よかった探しリースの参加者は早くも39人(サイト)になりました。 みなさんご参加ありがとうございます。 またリースを巡り歩いてくださるみなさんにも感謝します。

多くのリース参加者が 「期間内、すこしずつ書き足していく」 という設置方法をとっていらっしゃいます。 こういう設置は無理がなくてよいですね。 また、リースをめぐる人にとっても、 リースの変化を楽しめますね。

リース参加者のいろんな「よかったこと」を読んでいるうちに、 何だか自分までしあわせな気持ちになってきます。

2004年12月2日(木)

Perlで遊ぶ

2004年12月2日(木) 00:22

Perlでちょっとしたツールを作ろうと思ったら、 妙に楽しくてはまる。 もうちょっとがんばれば公開してもよいツールに育ってくれるかも。 でも、どこかにすでにある車輪の再発明のような気がする。 まあ、楽しいからいいんだけれど。

2004年12月1日(水)

アンテナ事情

2004年12月1日(水) 22:06

Webの巡回。 i-know.jpを試し、Bloglinesを試したけれど、 結局現在はローカルで動かしているRSS Readerで巡回している。 RSSで巡回できないものだけははてなアンテナを使用。

本を書いています

2004年12月1日(水) 20:06

本を書いています。

もう、私の校正も飽和状態になってきているので、 脱稿直前なのだとわかります。 今日は図版を再整理して全部のページのPDFを作成し直し、 「更新版」としてレビューアさんに送りました。

読み返しながら(読み返すのはもう何十回目だろうか)、 私はすごく幸せな気持ちになりました。 この本、とっても面白いです。 当たり前のように思える題材なんだけれど、 読んでいるうちに妙に心や頭が活性化して、 新しい目が開かれるような気分。 何だか仕事を離れて、ついつい読み返してしまいます。

(例によってライターズ・ハイ(?)です)

日記一覧

2025年 010203040506070809101112
1999年 010203040506070809101112
[icon]
結城浩(ゆうき・ひろし) @hyuki

『数学ガール』作者。 結城メルマガWeb連載を毎週書いてます。 文章書きとプログラミングが好きなクリスチャン。2014年日本数学会出版賞受賞。

Twitter note 結城メルマガ Mastodon Bluesky Threads Home