> 結城浩の日記 > 2004年12月 | 検索 |
プロフィール | 日記一覧 | 日記ダイジェスト | Twitter | RSS |
|
今年ももうすぐ終わりですね。みなさんはいかがお過ごしでしょうか。
みなさんの新年が、神さまの祝福に満ちあふれたものになりますようにとお祈りいたします。
なお、最近、掲示板への宣伝書き込みが多くなっているようですので、 年末年始はいくつかの掲示板をお休みさせていただきます。 新年3日ころから再開する予定です。 ご不便をおかけしますが、ご理解お願いいたします。
編集部から来た疑問点への回答がやっとできた。送信。
これで今年の「お仕事」はおしまいかな。
あ、朝焼けがきれい。
寒くなったので帰る。
家に「あったかいもの食べたい」とメールしたら「スープ (^O^)
」という返事が帰ってきた。
Le Creusetが活躍している。
たくさんの出来事であふれそうになったときの工夫。
ポイントは、 まわりからやってくる出来事は、実は自分を支配しているわけではない、 ということを自覚するところにある。
目を閉じることができる。数えることができる。目を開けることができる。 どんな出来事がやってきても、自分はそれに振り回されることはない。
イエスさまが、いつも共におられるしね!
何だか雪がたくさん。
一つ一つていねいに校正。 まるで、世界に存在するのは、 現在目の前にある問題たった一つであるかのような気持ちで、 1個1個ていねいに考えていく。
自分が一度にできるのは、たった一つだけ。
あわてない、あせらない。
第7章が何とか終わった。第8章もじわじわと進めていく。
結城はいつも、すでに本がたくさん出ている分野であっても、 「新しいひと味」が何かしら加わっている本を書こうと思っています。 自分が過去に書いた本とも「何かが違う」というものにしようと思っています。 ほんのちょっとでもいいから、毎回「新しいチャレンジ」があるように心がけています。
そのため、ときどき不安になってしまうこともあります。 たとえば 「暗号本」。これは結城がはじめて書いたプログラミング以外の本です。 書いている私は楽しんだのですけれど、 読者の方々が楽しんでくださるかどうか、ドキドキものでした。
幸い、予想をはるかにはるかに上回る読者が楽しみつつ読んでくださったようで、 ほんとうに感謝です。
いま書いている本は、来年の春ごろに出版になると思います。 この本が、この本を必要としている読者のところに届けられますようにと、 神さまにお祈りいたします。
今日は雪。
降っても照っても(by マドレーヌ)淡々と校正。 第6章と第9章が終わり、第7章の図版を一点入れ替え。 残りは第7章と第8章。
複数のレビューアさんから、非常に関連性の高い指摘があったので、それを参考にして加筆と修正を行う。 なんと、先日から趣味(?)でやっていたHaskellの練習がここで役立ったことに驚く。
レビューアさんたちに、謝辞に関する確認のメールを出す。
レビューアさんからの「感想」の部分を元にして、 「読者の声」のページの準備をはじめる。
読者さんからの質問
結城さんは奥様のことを「家内」とよばれるようになったのでしょうか? いままでの「おくさん」という呼び方がのんびりした感じで好きだったのですが、 なにか変化があったのでしょうか。
結城からのお返事
いえ、とくに変化はありません。
検索してみますと、2002年から2004年の範囲で「家内」は約200回、「奥さん」は約100回使っています。
回数からいえば「家内」が多いですね。
恐らく、語呂のよいほうをその都度使っているのだと思います。
コメントありがとうございます (^_^)
。
昨日は、来年から始まるWeb関連の新しいお仕事の打ち合わせをしてきました。 おもしろいお仕事になるとよいなあ。
今日も淡々と校正。 今日は第6章の前半(約21個)と、第9章の前半(約10個)。 それから、図版の修正3点。
今日も淡々と校正。 今日は第5章の分、約50個。 それから、レビューアさんからの意見を加味した修正などを追加。
ここまでで、 編集部からやってきた「はじめに」から「第5章」までの疑問点への返事ができたので、 いったん送信する。
気分を変えて、第8章の校正を半分ほど行う。
これからの予定は、以下の通り。
学生さん(22歳)から
論文執筆で悩んでいました。 これを見て本当に気分が晴れました。 ありがとうございます。 がんばって論文を書き上げるつもりです。
結城から
何だか私のほうが励まされました。 寒い時期ですが、風邪など引かずに論文に取り組んでください。 お祈りしております。
このたびは「よかった探し」リース / 2004年バージョンにご参加いただき、 ありがとうございました。心から感謝します。
(^_^)ノシ
今日は家族みんなで、子供向けのお芝居を見てきました。 和田誠さんの「パイがいっぱい スパイもいっぱい」という公演です。 言葉遊びがいっぱいの不思議なお芝居で、たのしいひとときを過ごしました。 以前から我が家で読んでいた『ことばのこばこ』の愉快なフレーズもたくさん劇中に登場して、面白かったです。
今晩、mkさんという方が、ねとらじで結城の翻訳を朗読なさってくださいました。 23:00からは「マッチ売りの少女」、24:00までで「賢者の贈り物」も朗読されました。 結城も聞いていましたけれど、 自分の翻訳した文章が朗読されるというのは不思議にうれしくなりますね。
編集部から後半の疑問点約190個がやってきた。
家内は、朝食が終わった後、 次男と一緒に「神経衰弱ゲーム」と「百人一首」で遊ぶようにしている。
神経衰弱ゲームはトランプではなく、小さなかわいい絵がついたカードでやっている。
百人一首は5枚くらいからはじめて、いまは8枚くらいに増えたようだ。 1つの遊び方は、机に札を並べず、はじめの部分を家内が読んで、 残りを次男に暗唱させ、うまく言えたら札をあげるというもの。 それから、取り札を並べて、 家内が読んだ札を取るという遊び方も(こちらは普通の遊び方に近い)。
家内は、絵本を読む時間や、いっしょにお絵かきをする時間もこまめにとっている。 無理をせず自分も楽しみながら、 ちょっとした時間で、でも毎日やるのがよいみたい。
今日も淡々と校正。 今日は第4章の分、約38個。 それから、レビューアさんからの意見を加味した修正などを追加。
まあ、何とか、形になったか。文章を書くって、難しいなあ。
この日記を読んでいるあなたが、現在どこにいて、どんな状況にあろうとも、 イエスさまがすぐそばにおられ、あなたを助け導いてくださいますように。 あなたの毎日が実り多く、豊かなものとなりますように。
イエスさまのお名前でお祈りいたします。
クリスマスおめでとうございます。
今日も淡々と校正。 今日は第3章の分、約32個。 それから、レビューアさんからの意見を加味した修正などを追加。
Haskellの練習は日記状態になっている。 いつまで続くかわからないけれど、勉強って楽しいですね。
今日も淡々と校正。 今日は第2章の分、約65個。 それから、レビューアさんからの意見を加味した修正などを追加。
ソースコードをCVSで管理していて思うのは、 ブランチを使いこなすのはとても、とても難しいということ。 頻繁にソースをいじっているときならまだしも、 たまにしかいじらないソースをブランチさせると、 自分ひとりでやっているのに混乱してしまう。 ブランチの「ポリシー」みたいなものが自分の中で固まっていないからかもしれないけれど。
編集部からやってきた疑問点約300個と戦う。 今日は第1章の分、約45個。
最近Wikiのスパムが多いので、適宜アクセス制限を行っている。 IPアドレス単位ではじいたり、特定のキーワード(たとえば宣伝URL)では書き込みができないようにしたり。 悪質な書き込みは、結城も見つけ次第削っているのだけれど、 善意のユーザさんが先取りして編集してくださることも多い。感謝します。 Wikiもあらされるようになったのは、それだけメジャーになってきたからかな。
Wikiスパム、トラックバックスパム、それにコメントスパム。 Webサイトで「誰でも書ける」というスペースには必ずスパムがやってくる。 TypeKeyのような「認証」の仕組みはこれからますます重要になってくるだろう (この後に『暗号技術入門』のCMがはさまるところですね)。
textfile.orgでも、以前はトラックバックやWikiをつけていたけれど、もうやめちゃった。 何となく「もう情報過剰なんだから、これ以上増やさなくてもよいよ」と感じたため。 ニュースサイトでも、ポータルサイトでも、リンクや情報がびっしりあるというのは読んでいてちょっと苦しい。 それよりも、もっと品質の高い情報が厳選されているようなのがいいなあ。 かといって、アマゾンの「お勧め」みたいに、 あまりにも自分の購買傾向が「見抜かれて」いるのもいやだけれどね。
こんなのはどうだろう。 紹介するリンクは一日に3サイトだけ。 それぞれには、一行のサマリと一行のコメントがついている。 サマリはリンク先の要約であり、コメントというのはそのページに対する紹介者の意見。
ふむ。
追記
3サイトと言わず、ここはやはり厳選した1サイトに絞ってというご意見をいただく。なるほど。それはよいかも。 来年のtextfile.orgはそれでいこうかな。 1日1サイト、厳選リンク。
今日はクリスマス礼拝。 イエスさまがこの世に来られたことに感謝。 そして私の内にも来てくださったことに感謝。
多くの教会では、24日のクリスマスイブにも礼拝が予定されていると思います。
クリスマスはぜひお近くの教会へ!
今日は家族みんなで、映画「ポーラー・エクスプレス」を観てきました。 とっても楽しかった! ココアのダンスシーンが最高でした。 原作の絵本も読みましたが、どちらもそれぞれによかったです。 帰ってきてから子供たちに絵本をもう一度読んであげました。
みなさんは「ユニセフ」をご存知ですか。
ユニセフ(国連児童基金)は世界の子供たちのために活動している国連の機関です。
ユニセフの資料「今、できること」によれば、 いま、開発途上国では、1年間に1100万人の子供が5歳になる前に死んでいるんだそうです。 その原因は「かぜをこじらせた肺炎」「下痢による脱水症状」「予防接種で防げる病気」によるもの。 1100万人が死んでいる…。東京都民の人口なみ…。
ユニセフの活動を支えているのは世界中の募金。 募金はWeb経由ですぐに行うことができます。
なお、結城はユニセフとは直接関係はありません。 子供の親として、ユニセフの活動を個人的に応援しているだけです。 1000円あれば、失明を防ぐビタミンAのカプセルが416錠も買えるのだそうです…。
ファイルを整理していたら、 今年の夏の「仮想キャンプ」の記録が1つ出てきたので 「オリザさんとラジアンさん」として追加。
よかった探しリースの参加者は、現在66人(サイト)になりました。 みなさんご参加ありがとうございます。 またリースを巡ってくださるみなさんにも感謝します。
このまま日記にHaskellの練習コードを書くのも忍びないので、 別ページを作ることにしよう。
関数。
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の練習。
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年2月)を更新しました。 どうぞお読みください。
いろいろと調べ物をしているうちに、 気がついたらHaskellというプログラミング言語で遊んでいました。 まだよちよち歩きなのですが、何だか楽しいです。
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のところにいろいろサンプルがあるかも…。
leptonさんの「新・闘わないプログラマ」にも「n進数」の話題が。
日記を更新していなかったことに気がついた。 多忙です。のど痛いし。ふみー。 ぜろ、いち、いち、に、さん、ご、はち。
私は午前中の原稿書きを終えて、 お昼を食べようとデパートに入った。
中央の吹き抜けには大きなツリーがある。 ヒイラギの緑と赤。白い雪。 通りかかる買い物客はみなツリーを見上げる。 私も見上げる。てっぺんには大きな金色の星。
もうすぐ、クリスマスだ。
かたわらに小さな女の子が立っていて、私と同じようにクリスマスツリーを見上げている。 小学生だろうか。賢そうな横顔。やわらかなピンク色のセーターにスカート。 ポニーテールにはプラスチックの髪留めが1つ。これもピンクだ。 足元には大きな布バッグ。 顔を上に向け、まっすぐにツリーの星を見つめている。
私の視線を感じたのか、彼女はゆっくりとこちらを見る。 一回まばたきをして、にこっと微笑む。 思わず私も微笑みを返す。
彼女は私のほうに向き、軽く握った右手を前に突き出す。 そして「れい」と言う。 少なくとも、そのような形に口が動く。でも声は聞こえない。
れい? 私は首をかしげる。この子は何をしているんだろう。
右手に並べるように左手を前に出し、左手の人差し指をぴんと立てる。 そして「いち」と言う。やはり声は聞こえない。
数を数えているのかな。 「零」そして「一」。
次に彼女は、右手で左手に触れる。そして右手も人差し指を立てる。 「いち」と彼女は言う。
続いて彼女は、左手で右手に触れ、今度は左手でヴイ・サインをする。「に」
彼女の手の動きが少し早くなる。右手の人差し指で左手のヴイに触れると、右手の指を三本立てる。「さん」
左手のヴイで右手に触れ、左手の指を全部ひらく。 「ご」
そして彼女は、右手で左手に触れ…そこで動きを止める。 左手は指を全部ひらいている。 右手は指を三本立てて左手に重ねている。 彼女はそのままの姿勢で、私の顔を見、ちょっと悲しそうな顔をする。
もちろん、私は、右手の指を全部広げて、彼女に向かって手を伸ばす。 そして「はち」と言う。
彼女は顔をぱっと輝かせ、 足元のバッグを持ち、私のそばに走り寄ってくる。
私がしゃがむと、彼女は私の耳に口を寄せる。
「n回くりかえしたら、指は何本必要?」
彼女はそう言って、くすくすっと笑う。 彼女がバッグを抱えあげたとき、こんなししゅうが見えた。
Where is the truth?
いまは本を脱稿してゆっくり過ごしています。 ……うそです。いまは来年書こうと思っている本の下書きを書いています。 個人的に「パイロット記事」と呼んでいる文章です。
とにかくその本に少しでも関係があることを、すべて頭と心の中から引き出し&吐き出して書く文章です。 何でもいいからとにかく書きます。構成やバランスなどは考えず、とにかく心に浮かんだままに書いていきます。 心に浮かんだままといっても文章が持っている「内在律」が働きますから、ひとりでに何らかのフォルムにはなるのですけれど。
自分がその分野の初心者だとして、素朴に感じるであろう疑問も書き留めます。 もっとも知りたいことも書きます。調べたいことも書きます。 思いついたジョークも書きます。とにかく何でもよいから書きます。 「出発点は、頭の中にあるのではない」 のですから、 とにかく全部、ぜーんぶ書き出します。繰り返しがあってもかまわない。どんどん書きます。 そのうちに刈り込んだり編集したりして、章立てを考えるのだけれど、いまはそのときではない。 ひたすら書く。無駄は承知。いま書く文章は全部捨てる。だから、何を書いてもよい。
とにかく、書く。
今日は青空が広がるよい天気です。
先日脱稿した原稿は編集長さんが今ごろ一生懸命読んでいらっしゃることでしょう。 おそらく数日すると、山ほどの疑問点と確認事項などがやってくるに違いないと踏んでいます。
それと並行して、結城が個人的にお願いしているレビューアさんからは、 ときどきレビューが送られてきます。 結城はそれをていねいに読みながら、改善点をメモにまとめています。 直接原稿ファイルを直してしまうと、 編集部に送ったバージョンとのマージが難しくなるので 章ファイルの末尾に書き足す形式にしています。
今回レビューアさんは特に公募をしませんでした。 以前レビューをお願いした方の中から数人を選び、 メールで「引き受けていただけませんか?」という打診をしたのです。 いつものように報酬なしのボランティアなのですが、 多くの方が快く引き受けてくださって感謝しています。 また都合が悪くてできないという方からも、応援のメールをいただきました。
レビューアさんからのレビューを読んでいると、 ものすごい間違いを指摘されて愕然としたり、 楽しんで読んでいただけてうれしくなったり、 ある先生から「この部分、授業でちょっと使わせてもらいました」といわれて光栄に感じたり…と、 なかなかエキサイティングです。
ものすごい間違いの例: 「見落とさない」という主旨の文章のところで、 「見落とし忘れが起きないように」と書いていました。 「見落とし忘れ」って何だよ > 自分。
奥村先生のWikiに 2進数というページがあり、以下のように書かれている。
「2進数を10進数に変換する」などと言う。数が変換されるみたいで気持ちが悪い。 2進法とか2進表現のほうがいいのではないか。 同じ数を2進法で表したり10進法で表したりしても, 変わるのは表現であって,数そのものは同じ,というわけ。
これを読んで少し考えた。
加筆
ある方から、以下のようなコメントをいただきました。 なるほど。無理に対称な表現をする必要はなかったのか…。おもしろいです。
結城さんこんにちは。「2進数を10進法で表現する」ではいかがでしょうか?
さらに加筆
「2進数を10進展開する」というのはいかがでしょうか?
KissReaderは2004-12-02(つまり4日前)から開発・公開しているが、 さきほど調べたところ、ダウンロード数は140だった。 こまめに複数回リリースしているから、 同じ人が何回もダウンロードしているはず。 同一IPを1回とカウントすると、ダウンロード数は106だった。 想像したより多い。
ブログの普及の影響なのか、 今年の「よかった探しリース」は、 いつもと少し顔ぶれが違うような気がいたします。 みなさんの参加を感謝します。
奥村先生の記事にもあるWikiスパムがうちにも来た。 親切な方がすでに対処してくださった模様、ありがとうございます。 CGIのほうにもrejectの仕掛けを暫定的に入れた。
次男が風邪を引いていて、朝方眠り続けているため、 朝食の時間は恐ろしいほどに静かだった。 朝食後、奥さんはソファでアマゾンから届いた国語教育の本を熱心に読んでいる。 私は食卓で白いA4の紙を広げ、来年書こうと思っている本のアイディアを思いつくまま書き留める。
午前中はレビューアさんからのメールを何点か検討して、 各章の原稿ファイルの末尾にメモとして付記。 校正の段階でここにメモしておいたことを反映する予定。
土日を過ぎると、レビューアさんからのメールが増える。 お休みの日にわざわざ結城の原稿を読んでくださることに感謝。
今回は、レビューアさんの人数が少ないことと、 すでに原稿書きを終えていることもあって、 レビューアさんには比較的多くお返事を書くことができている。
KissReaderの0.2.0をリリース。
ユーザーズマニュアルを配布アーカイブに同梱したり、 サンプルバッチファイルを入れたり。 バグや使いにくい点はいろいろあるけれど、 私が使う分にはこれでほとんど問題ないなあ。
今週一週間くらい使ってみて、気になるバグを直したら、 1.0.0にしちゃおっと。
クリスマスの季節.
今年も『賢者の贈り物』をお読みください。
KissReaderの0.1.0をリリース。
記事ごとの修正に対応したので、かなり実用的になったと思います。 結城は現在70サイト以上の巡回をこれで行っています。 過去の更新履歴が自動的にHTMLとして残るのでたいへん便利です。
RSSといえば、神崎さんの解説記事。 改めて読み返してみましたが、非常に素晴らしいまとめですね。
過剰巡回に対する注意、セキュリティに関する配慮まで書かれているのが特に。
追記
神崎さんからメールをいただきました。ありがとうございます。
お話の中で、結城の日記のRSSの誤りまでご指摘いただきました。
恐縮です (^_^;
。
神崎さんといえば、もうすぐ『RDF/OWL入門』の出版ですね。
この本も要チェックですよね > アルファ・ギークのみなさま。
KissReaderの0.0.4をリリース。
デバッグしていて「Web & Internet」が役に立った。 &の部分でエラーになるRSSがあちこちにあったため。 …というか、エラーになるRSSって意外に多い…。
KissReaderの0.0.3をリリース。 結局XML::Parserを使うようにした。 モジュールは便利だ。
はてダラのときもそうだったけれど、 自分で使うツールを作るのはとてもたのしい。 まだ使いにくいところが多々あるけれど、RSSの巡回はこれでやっている。 もうSharpReaderは使わなくなっちゃった。
原稿は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
これを見ると、
ということが見えてきます。 いえ、だからどうというわけではないんですが。
大雑把な皮算用をすると… たとえば「月に2000行増加を半年」「月に1500行増加を10ヶ月」「月に1000行増加を1年」 という感じで本が1冊できる勘定になるでしょうか。
ひと月20日で計算したとして、 月に1000〜2000行なら一日50行〜100行か。 ふむふむ。それは体感と何となく一致している。 それから、最終原稿(Inc)以上の量を、書いた(Add)後で削除(Del)しているというのも、感覚的に理解できる。 まあ、いずれにしても、気の長い話ですわね、奥様。
よく考えてみると、 プログラムだってそのくらいですよね(「書く行数」ではなく「デバッグ後の結果の行数」)。 月に1000行〜2000行。
以下は、過去の執筆ログに関するリンク。 厚さがいろいろだから直接比較はできないけれど。
このところずっと書いていた本の執筆が一段落し、 編集部に原稿と図版ファイルを送りました。 みなさまの応援とお祈りを感謝します。
レビューアさんから届き始めたレビューは、 これから校正をする途中で織り込んでいく予定です。
よかった探しリースの参加者は早くも39人(サイト)になりました。 みなさんご参加ありがとうございます。 またリースを巡り歩いてくださるみなさんにも感謝します。
多くのリース参加者が 「期間内、すこしずつ書き足していく」 という設置方法をとっていらっしゃいます。 こういう設置は無理がなくてよいですね。 また、リースをめぐる人にとっても、 リースの変化を楽しめますね。
リース参加者のいろんな「よかったこと」を読んでいるうちに、 何だか自分までしあわせな気持ちになってきます。
というわけで、とりあえずVersion 0.0.0ができました。
シンプルなRSSリーダーです。
Perlでちょっとしたツールを作ろうと思ったら、 妙に楽しくてはまる。 もうちょっとがんばれば公開してもよいツールに育ってくれるかも。 でも、どこかにすでにある車輪の再発明のような気がする。 まあ、楽しいからいいんだけれど。
Webの巡回。 i-know.jpを試し、Bloglinesを試したけれど、 結局現在はローカルで動かしているRSS Readerで巡回している。 RSSで巡回できないものだけははてなアンテナを使用。
本を書いています。
もう、私の校正も飽和状態になってきているので、 脱稿直前なのだとわかります。 今日は図版を再整理して全部のページのPDFを作成し直し、 「更新版」としてレビューアさんに送りました。
読み返しながら(読み返すのはもう何十回目だろうか)、 私はすごく幸せな気持ちになりました。 この本、とっても面白いです。 当たり前のように思える題材なんだけれど、 読んでいるうちに妙に心や頭が活性化して、 新しい目が開かれるような気分。 何だか仕事を離れて、ついつい読み返してしまいます。
(例によってライターズ・ハイ(?)です)
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。