だだもれ

2013年10月29日

入院してきます。 twitterしか見えません。

アマゾンの順位が急降下。増刷しないまま終わる可能性がちらつく。

elseは入れるかすごく悩んだ。 まず、紹介するほどページ数がなかった。 11章以降で登場させたとして、使いこなすに至らない。 そして、各段階のコード中に1つか2つしか入らない。 大しておいしくないのだ。 ふたつめの否定条件を間違う危険は、 「もう実行したフラグ」を使うことで回避できる。 さらに、「ループの構文糖ですよ」と言えなくなる。 「中で勝手にフラグ用意して一回で抜けてるだけです」 と説明できなくなる。これが一番まずい。 制御構文はループしかないというのが建前なのである。 関数はインライン展開でしかない建前だから制御構文に入らないし。 再帰は可能だが、普通は使えないだろう。

というか、「道具は便利な時に導入される」ので、 よほど不便にならない限り登場しない。 この本の範囲ではさして不便にならなかったのである。

2013年10月28日

本を売るには、目立つ必要がある。 数出す、いいものを出す、は最低条件で、それだけでは足りない。 このサイトは目立つための種としてはいいが、広がりはない。 こういう文章を読む気になる人間の数は知れているからだ。 twitterは多少は広げる効果があるにしても、足りない。 万単位の人に読まれるようになることはない。 講演でもして画期的に面白かったりすればいいんだろうが、 ネタがなさすぎる。今年もCEDECは応募できんなあ。 もう一冊本が出るはずだが、しゃべるネタにはならない。

しかしまあ、有名になる人間には、有名になるだけの理由があるものだ。 ひつじこが録画していた齊藤孝氏のインタビュー番組を見て、 こんだけ変な人ならそりゃ有名になるわと思った。 タモリ倶楽部に出てきた山登りガイドの人も相当だし。

まあ、やれることをやろう。大事なことを見失うまい。

まず専門分野で秀でる。そしてその経験を他の分野に応用する。 これが黄金パターンだ。最低限、金を稼げるレベルの専門が 何かしらないと軸が定まらない。 何かを見た時に、「つまりこういうことか?」と最初の仮説を立てられると、 理解が早いが、その「つまりこういうことか?」は軸がないと出てこないのだ。 仮説は仮説だが、専門分野を通して見識が深 まっていれば、仮説の精度は高くなる。 そうやって手を出した専門外の分野で才能が花開くことは多い。

専門外のことで本書いて売れるようになれば一流だな。 数学者がエッセイ書いて売る、みたいなやつ。 夏井氏の糖質制限本もそれに近い。

前もって何が当たるかはわからない。ただ、経験したことは 他の経験とつなげておくべきだ。孤立した経験はつかえない。 そして、新しい経験をする機会は大事にすべきだ。 しかしそれでいて、自分の軸は見失わないようにしないといけない。

アニメを見るとか、ゲームをやるとかいうのも経験なのであって、 つながるようにしておかないともったいない。 優秀な人でも、そういうもののつながりが悪い人は多い。 仕事と遊びを区別する態度は有害だ。 知識は棚に整理しておくよりも、 鍋の中に放りこんでぐつぐつと煮て溶かしてしまった方がいい。 そうすると、思いがけないタイミングでつながる。 教養ってそういうことだと思うんだがなあ。

mac版を作る理由が湧いた。即座に着手する。 macを買わない方法でやることを優先するが、 うまく行かなければ買わざるをえない。 あまり時間がかかると厄介だし、中古でも買った方が いいかもしれんなあ。

中古macを買う算段。

Sunaba131028リリース。「な限り」と、BEなUnicodeが読めなかった問題。

こんなに恵まれた条件で本を書く人間はそうはいまい。 この機を活かして市場を荒してやろう。 私は印税は受け取らないし、会社もこんな微々たる儲けに興味はない。 もうけねばならないのは出版社だけだ。 そこの条件さえ満たせば、いくらコストをつっこんでもいいし、 いくら安く売ってもいい。

印税を受け取らなくていいのかと聞かれることがあるが、 給料の方がよほど期待値が大きいのでいらない。 著作権が会社に行くのは気にならないのかと聞かれることもあるが、 書き終えた過去の本の権利などどうでもいいので問題ない。 必要とあればもっといいものを書けばいいだけのことだ。 それに、著作権なんて 誰かが自炊して流せば無意味になる程度のもので、 そんなはかないものに興味はない。

2013年10月26日

池田信夫が夏井本の書評を書いていた。売れてるんだなあ。

有名な人が書評を書いている場合、たいていは献本らしい。 つまり、出版社なり著者なりが送りつけている。 送られた方はブログにその本のアフィを貼るので、 結果として売れれば双方に利益がある。 秀和システムはそういう付き合いがなく献本はやってないらしいが、 私もそれでいいと思う。本を送りつけることに道理を感じられない。 それに、大した影響もないだろう。 加速することはあっても、最終的な数はそう変わるまい。 私は10年売りたいのだ。

風邪だ。37度ある。オタマにうつされたか。 マスクさせてたのになあ。 あるいは単に疲労の蓄積かもしれない。

2013年10月25日

オタマ風邪ひどい。機嫌が悪くなるので困る。 ウィルスをもらう機会が多い上に、 いまいち体力がない。運動量が足りん。 最近は食べないし。パンを量産すれば少しは変わるだろうか。

子育て難易度たかいなあ。せめて骨折がなければなあ。

耳痛い。これは、リンパ腫れてる。 もう風邪もらったか。目の疲れ感も風邪だ。 首に巻いてマスクして寝る。

手術遠い。火曜日ってだいぶ先じゃないか。 いまいち文章を打つ効率も悪いので、 コンセプトから練り直し。 そして企画をもうひとつ思いついた。 CG本も根本的に練り直さないと。 玄人向けは書かない。潜在的に2万冊売れる可能性がないものは書かない。

ガンダム見た。ちゃんとおもろいのだが、続けて見るほどの好奇心が 湧くかはわからない。ネタ満載なあたりがかえって乗れない。

弱虫ペダル見た。これは漫画の方がいいだろうな。

ログ・ホライズン見た。普通に見られる。原作読んでる人間が見るほどのものか はなんとも言えない。

増刷しそうな気配。 でも、本は返品がありうるので、増刷は慎重さが求められる。 品切れがもう少し増えてきてからだろうなあ。

なんにせよ、最悪の展開はなさそうだ。 私の中ではラインが4本あって、 1年間での増刷の有無、1年間で増刷2回、1年間で2万冊、 10年間で5万冊、となっている。 数字に根拠はない。増刷されない場合「破滅的失敗」。 増刷が2回に満たない場合「大失敗」。 1年で2万冊に届かなかった場合「失敗」。 ここまでクリアして「成功」。 10年で5万冊に届けば「大成功」。 そして、夢なのが、「英語に翻訳」。 今回の本はこのまま行けば、悪くとも「失敗」で済みそうだ。 成功に持っていくには。次の本を売る必要があるだろう。 私が有名にならねばならない。講演とかもできるといいんだろうなあ。

増刷されない場合、それは「普通の売れない本」だ。 増刷1回だと返品がドッと来る可能性が残り、黒字を保証できない。 2回増刷すればだいたいヒットと言えるレベルにはなり、 出版社にとってはおいしい商材になるが、私の人件費を償却できない。 2万くらい売ると滅多にないヒットになり私の株が上がるし、 人件費の元を取る可能性が出てくる。値段にもよるが。

もう一冊出たらCEDECでなんか話すネタができるかなあ。

2013年10月24日

本もチームでちゃんと作れればもうすこしマシな気もするが、 それをするとコストがはねあがるので、実験的なことができなくなる。 私のなんてどう見ても実験だからな。著者が一人で書いて、 ほぼ完成するまで次の工程に行かない、というやり方は、 なにせ低コストだ。実験には最高である。

電子化がおおよそ終わるまでは、しんどさは増す一方なのだろうな。 社会やら市場やら技術やらが、紙の本の商売に合わなくなりつつあるのだろう。 もっと本の数が減れば落ちつくのかもしれないし、 そうなるんだろうが。

ゲームもかわらん気がする。

もしまだ本を書くのであれば、大失敗も経験することになるんだろう。 客がいると思ってたらいなかったという経験をするだろうし、 客が望んでると思ってたことが望まれてなかったりもするだろう。 つうか、今回のだって増刷2回という出版社にとっての成功 ラインを越せるかはまだわからない。

「なんだかんだ言って何十万人も買って楽しんでくれてるんだから、失敗 なんて言うのは良くない」とかいうのは負け犬の台詞だろう。 目的を達したかどうかだ。赤字は常に失敗だし、黒字であっても、 黒字幅が足りなければ失敗だ。今回はコストをかけすぎたので、 たぶんその意味での成功はないなあ。

病院。火曜日入院、水曜日手術、木曜日退院。 ピンで内固定6週間。週二回消毒。 ピンが皮膚から出ているため、消毒は必須とのこと。 面倒くさいが、傷がでかいことを後で後悔したくないので、 ピン固定にした。ポリ乳酸か何かの抜かなくていい板でも 固定できるらしいが、傷口がセンチ単位になる。

痛くてもいいなら局部麻酔でもいいと言われたが、 それでズレでもしたら困る。ひつじこには悪いが 全身麻酔にすることにした。入院せねばならない。

ピンを抜くのは麻酔なしらしい。 そもそも皮膚からピンがはみ出しっぱなしって 怖すぎる。私は痛みに弱いので、ドキドキだ。 痛みに弱い人間があんなことをして骨折するのも 変な話ではあるのだが。 なお、原因はここには書けない。

5万部売りたいと編集さんに言ったら、 不特定多数に売るビジネス書とか参考にしてはと言われた。 それもいいかもしれない。 つうか、5万部は言いすぎた。2万でいいや。 1年で1万、5年で2万くらいでもよしとしよう。 出版の現実を考えれば贅沢すぎる話で、「よしとしよう」 なんて言うのは馬鹿まるだしなんだが。

さて、そもそもの目的は 日本人のプログラミングスキルの値段を下げることで、 本は手段でしかない。部数も当然手段だ。 目標は複数立てろとドラッカ−は言った。 部数だけを優先するわけにも行かない。だが、到底無視できない。 値段にもよるが、デカイ本を作らず、 スキルの低い人に届けるのであれば、 値段は下がる。勝利ラインは2万部くらいだろう。 確実にそれだけ売るなんてのは無理にしても、 2万人以上客がいないとわかっているものは作らない。 むろん例外はあってよく、例えば技術的に高いものを書けば、 会社に名誉をもたらせるかもしれず、 その分売れなくてもいいという判断はありうる。 しかし、私は技術力そのものは大したことはない。 そこで勝負するのは不利だ。 そもそも技術力は製品で示す方が効率がいいし、健全だ。 それに結局のところ、売れ続けない本は絶版になって 消えるのであって、名声も一時のもので終わる。 会社の名を高める上でも、 5年10年本屋に置かれ続ける本である方が良い。 その累計で5万部売れれば完全な勝利だ。

プログラマに売る本より、プログラマ未満に売る本の方が 母数は大きく取れる。本に金を出す気になる 人の率が低いのが問題になるわけだが、 プログラミングを全く本を買わずに勉強する 人間もまれなはずで、彼らが買う数少ない本の一冊を 占めれば良い。定番の入門書を追い出せばいいのだ。 野心的すぎるが、それくらいでなくてはいかん。 むろん、定番の本とかぶるものを作っても意味がないのだから、 「ありそうでなかった本で、定番の本の地位を奪う」 というのが理想の展開だろう。

もう一つ、レベルを下げると玄人にとって役立たずになり、 評価されないという問題がある。 玄人に評価されないと素人には届かないのだ。 しかしこれに関しては多分解決できる。 思想や姿勢、物の見方のようなものは、玄人にも素人にも 意義がある形で書けるはずだ。 玄人が知っている技術であっても、 それをどのように扱うか、どのように捉えるか、 というところは玄人にも届く。 前の本を「知ってることしか書いてない」 と評した人もいたが、それ以上に 「知ってはいたが勉強になった」と言ってくれた 人もいた。また、人に教える立場の玄人はそれなりに いるのであって、そこに響くものを作ればいい。

2013年10月23日

「炭水化物が人類を滅ぼす」を読んだ。 風呂敷の広げ方が激しすぎて惚れる。 これくらいやると単純に面白い。 議論が粗いのは面白さを優先したためだろう。 「牛は草だけで生きられるからゼロカロリー」 的なくだりは、正確とはいえまい。 セルロースを自前では吸収できないとしても、 微生物に消化してもらっているのであれば、 それはつまりセルロースもエネルギーになるということで、 カロリーはあるのである。 「青汁だけで生きる人がいて、 青汁はカロリーがないので、 カロリーはなくても生きられる」、 と短絡的に読めてしまうのはたぶんよくない。

体を動かすエネルギー消費と、発熱分のエネルギー消費は 確かにある。それはなにかしらの方法で取り入れねばならない。 食料と酸素からもらうのがメインだと思うが、 もしかしたら回生エネルギー的なしくみもあるかもしれないし、 昼夜の温度差や、外界と体温の温度差、風、音、振動、光 なども使っているかもしれない。 でも、普通に考えれば、それらでそれほどの供給はできないだろう。 やはり、食ってるんだと思うなあ。 そして化学エネルギーの供給源としては、 酸化以上のものがあるとも思えない。 酸素は無尽蔵にあるからな。 酸素に電子をくれてやる原子さえ入ってくればいいのだ。 人体の仕組みの限界があるのでそれらすべてを酸化できるわけではないが、 食料を燃やして得られるカロリーは、 人体が得られるカロリーの最大値ではある。

だいぶ売れてる部類であることは間違いないので、 それに関しては安心してはいる。 しかし、発売一ヶ月でアマゾンの順位が万単位に落ちるようなものと比べても 意味がない。「売れる本はわずかしかない」 とよく言うが、それに大した意味はない。 受験の倍率がなんぼ高くても、つまりはボーダーラインを 超えればいいのである。点を取れない奴が何万人いたとしても、 自分が受かるかどうかにさしたる影響は与えない。 下を見るようでは戦う前に負けている。 そもそもトップ付近だけを見ることが許される土俵にしか 上がってはいけないのだ。 仮に失敗したとすれば、それは上がる土俵を間違えたことが 失敗なのであって、相撲の取り方の問題ではない。

成功の度合いは絶対評価で測るべきだ。 他がどうあれ、自分の設定した目標に届かなければ負けである。 書いた目的を達しなければ、なんの意味もないからだ。 相対評価に意味があるのは市場シェアくらいだが、 書籍に関しては市場シェアという考え方自体がそぐわない。

もっとも、出版社にとっての著者の重要性は、 相対評価であり、これは意識しておいていいかもしれない。 どれくらい真面目に話を聞いてくれるかということだからだ。 なんてこともあって、同時期に発売した本が アマゾンで何位かを見てみたのだが、 大半の本は本当に大変なことになっている。 数万どころか、数十万位まで落ちている。 何が売れるかはわからんものだが、 これはそういう問題ですらないのではないのか。 ちゃんと「誰に何を提供するか」を考えているのかを疑いたくなる。 ごくわずかな人にであってもちゃんと良いものを提供できているなら ありだと思うんだが、レビューがメタメタだったりするからなあ。

2013年10月21日

いろいろあって、右第五中手骨を折った。要するに小指の手に埋まってる部分。 噂には聞いていたが、単に痛いだけでなく、吐き気、めまい、寒気、発汗、がドカッときた。 新鮮すぎる体験。それらが引いたあとは、そこそこの痛みだけ。

夜中かつ外出中だったので、とりあえず自力でおおよそあるべき位置になおし、 痛くなく動かせる範囲を探る。ピアノで小指を使う時の手首の角度ならある程度旋回できる。 小指以外はそこそこ動かせる。小指も畳もうとすると痛いが、ミリ単位なら動かせる。

今日になって病院。折れていることを確認。手術すべきとのことだが、そこではできないので、 紹介状。簡易的に固定してもらったが、あまり意味を感じない。 結局板だかネジだかを入れるんだろし。 そもそも中手骨の手先側が内側にずれているわけで、巻いて圧迫したら ズレが大きくならんか?痛いので、今は取ってしまっている。 角度に気をつければ痛くない。

東京労災病院。さっきの病院で撮ったレントゲンをCDに入れて持って行ったのだが、 なんの言及もなく撮り直し。さっきのでよくね?という写真。

クロスフィンガー予防のために手術が望ましいこと、 手術は局部麻酔が効かなくて痛いので入院して全身麻酔によること などを説明された。傷跡どうなるの?と聞いたら、 人によって違うから一概に言えないとの答え。記録もないらしい。 1センチとか3センチとかいうが、1と3はだいぶ違うだろ。 板入れるか針金かすらわからんらしい。 切る医者が決めるから言えないということらしいが、 いいから「あんたならどうするか言えよ」といいたくなる。 げんなりしてきたので、放置しても一週間かそこらで変なつき方 はしないことを確認して、一旦帰ってきた。

いやでも、レントゲンでは折れた指の骨がずれて指が短くなってたんだが、 今見ると普通なんだよな。 レントゲン撮る時に無理に手を開かされたが、 そのせいなんじゃないの? しかし変なふうにくっついて楽器に影響しても嫌だし、 手術は受けるんだろう。 もっとも、へんなふうにくっついたあとで 折り直して手術ということもできるので焦る必要はないのだが、 不便な期間をあまり伸ばすわけにもいかない。 明日手術予約かなあ。 webでもあまり情報出ないし。

全身麻酔になるのは、医者が落ち着いてやるためらしい。 局所麻酔より時間もかけられるらしいし。 そう言えばいいとおもうんだがなあ。

2013年10月18日

ポインタって何なの?メモリって何なの? ということはわかってもらう必要がある。 それがわからないとアルゴリズムもクソもない。 アルゴリズムの抽象的な理解だけで足りるほど 上等な言語はまずないのであって、 コンピュータで実行可能な形に翻訳することまでセットなのだ。 抽象度の高い言語では、そもそも高速化のために アルゴリズムを自力実装する必要自体がない。 perlでソート書いたことなんてないからな。

しかし、C言語の本を一冊読みましたという程度では、 メモリの概念は持っていないと考えて間違いない。 ポインタが整数であることすら知らんだろう。 妙な矢印のイメージは有害だ。 Sunabaを体験済みであれば話が早いが、 もちろんそんな前提は置けない。

いっそC言語入門とアルゴリズム入門を一緒にやれないかなあ。 でも、C言語入門と言うなら標準ライブラリの使い方を避けて通るわけにも 行かないし、ある程度の機能を網羅する必要がある。 やはりそれは無理だ。 だから、やはりこれはC言語を使っているだけで、 あくまでアルゴリズム入門として売る必要がある。 ただ、C言語が怪しい人のために復習的なものがたくさんついているし、 これを読み終えた人間が単にアルゴリズムを理解する以上のものを 身につけなくては私の目的は達しない。

なんか何もかもダメな気がしてきたぞ。ネガティブがやってきた。

twitterにて貴重なご意見をいただいた。

そうなんだよ...これが問題なんだよ...。

私自身は、perlでプログラミングを始めた。CGIとか作ってみたかったのだ。 次はデータの統計処理にエクセルのVBAだったが、 速度がありえなかったのでC++に移った。 その後会社に入ったらCだったので、Cになった。 そしてPS2はアセンブラが書けないと性能が出せない、 というか絵すら出なかったのでアセンブラになった。 つまり、抽象度が高くて便利な環境から次第に下りてきている。 今回の本にしても前回の本にしても、 そして今書いている本にしても、 私は自分が辿ってきたのと逆の道を示している。 理由があってやっていることではあるが、 自分と同じ道の方が効率が良いのではないかと思うことはある。 そもそも自分がやってないことを人に勧めていいのかという問題もあるし。

ゲームであれば、とりあえずUnityなり何なりで動くものが作れる。 それで足りないと思えば中にもぐるだろう。 それは必要があってのことだから、進歩は速い。 自分の欲求を80%満たすものを使い、 満たされない20%を埋めるべき下にもぐる。これを繰り返すのは効率的だ。 急速に世界が広がり、上から下までの知識が得られる。

しかし、まずこれは本にできない。本にできないということは、 カリキュラム化できない、自習化できない、ということを意味する。 実地でしか学べない。 それに20%の不満をきちんと感じられるかどうかが賭けになる。 自分の欲求を80%かなえてくれる環境から逸脱する勇気が 出ない人はいる。 さらに、その途中でプログラミングを体系的に理解するという 幸運に恵まれるかどうかはわからない。 コピペと写経から始めても、年単位で実務をしていれば アルゴリズムや計算機科学ソフトウェア工学の知識がわかるようになるだろ? なんて言えるか?言えない。多くの人間は、 実務経験が豊富になるほど学習能力が落ちるのだ。 だいたい、それで給料もらえてりゃ、それ以上勉強しようなんて 思わないのが普通だろ。

どうやって自発的に勉強する人間を作るかなのだ。 学び続ける人間を作るための確実性の高い方法が欲しいのだ。 学びは常に手段だから、目的が必要だ。 何か問題があってどうにかしたい、あるいは、もっと良くしたい、 と頻繁に思えば、その人間は学ぶ公算が大きい。 それには問題を直したり改善したりせねばならない圧力、 問題を直したり良くしたりすることで得をする仕組み、 といったものがなくてはならず、しかしそれは難しい。

私は、「面白いから学ぶ」を信用していない。 そりゃ面白くなればいいと思うし、面白い方がいいに決まっているし、 面白くならなければ上達もなければ継続もない。 しかし、「面白くすれば学ぶ」は、たぶん違う。 scratchやunityをプログラミングの教育手段として見ることは 私にはできない。それらは楽しいおもちゃであったり、 素晴らしい創作の手段だったりはするが、 それをプログラミング教育の道具として使うことには確実性が足りない。 おぼろげに期待しておく程度がせいぜいだ。 レゴやピアノで賢い子に育つといいなあ、という程度である。 学校教育はともかくも読み書きと算数、それに一応の常識を 植えつけることには成功している。 非効率でつまらないという質の問題はあるにせよ、 それが全くない状況と比べれば機能していることは明らかだ。 面白くすることは必要だし取り組むべきだが、 それを第一にすれば、たまたま面白いと思った人間以外を捨てることになる。

前提知識レべルが定まらない。ポインタわかってる奴だけを 相手にして大丈夫なのか? それと、アルゴリズムのコアと、実装の問題を一緒に教えることは 本当に正しいのか?アルゴリズムを極力純粋な形のまま 扱える言語でアルゴリズムのみを学び、 計算機で実行可能な形に落としこむところは別途分けた方が いいのではないのか? 例えばhaskellみたいな抽象度の高い言語なら それができるんじゃないのか?

今回の本は感想なんて書かない人に向けて書いてるんだから、 感想が出てこないのは当たり前だ。こうなると数で判断するしかない。 そして、もう1ヶ月も経つのに まだ増刷の知らせがないということは、失敗ということなのか。

結城浩という人はキリスト教徒なのか。 すげえな。教会に行くレベルってのはなかなかいないぞ。 私は「気味」くらいだからな。聖書はだいぶ読んだし、 世界観に一神教的なところがある気はする。 しかし、宗教にコミュニティを求めていないので、 教会に行こうなんてさらさら思わない。 まあ単純にキリスト教徒じゃないんで行くわけがないんだが。

まあそれはそれとして、これくらい有名な人にならんと やろうと思っていることはできないんだろうなとは思う。 とりあえずあと2冊書こう。そこまでやってから 成功失敗を論じるべきだ。でも気になって仕方ない。心の弱さだ。

ThinkpadX240が買えるようになったが、解像度が1366x768。 X201sの代わりにはならない。重くなるのも嫌だし。 201sを退役させられる日は来るのだろうか。 頑丈さとトラックポイントをあきらめればvaioでもいいんだが、 その二つはあきらめられない。頑丈さはあと10年も経てば あきらめてもいいかもしれんけど。

windows8.1に入れかえるか。SSD買って。東芝のにしよう。 ここ2年くらい全然安くならんなあ。128GBで1万以上するじゃないか。

2013年10月17日

ifが9章なのは、ifなしで10章に突入した時のコーディング難度が 耐え難いものになるからで、その問題さえなければもっと先延ばしした かったりはする。

「1 なかぎり」的な書き方を9章より前にやってるとしたら由々しき問題だ。 コード中でうっかり使っているだけなら修正できるので修正しよう。

クッキーが160Gcpsとかになってるが、ここが限界のようだ。 累積クッキー数が倍になる度にリセットする、というやり方を考えると、 その度にヘブンリーチップが1.41倍になるので、効率は最大で1.41倍になる。 しかし、リセットの度に累積クッキー数を倍にするのに必要なクッキー数は 当たり前だが倍になる。つまり、リセット間隔は最低でも1.41倍づつ大きくなり、 発散する。

なでしこを知ってる人は素人じゃないし、あれとは主旨が違う。 あんなにライブラリを整備してる段階で私とは根本的に思想が違う。

韓国って本当に中国と結ぶんだろうなあ。 それがどれくらい困ったことなのか、あるいは困らないのかは、 私にはよくわからない。

今回の本は、アフィリエイトで600円ほど稼いでくれた。 うん。こんなもんだよな。普通に考えて。 まあこれから出す本がバカ売れして過去のものも売れるようになる、 という展開を期待しよう。

対象が「C言語の本1冊読みましたよ!エヘッ!」程度だと仮定しながら 2章を書き直した所、今まで書いていたような説明では 飛躍が大きすぎてとても理解させられないことに気づいた。 例えば、「1万回mallocして、それぞれで、すでに確保した領域と 重なっていないことを確認する」という処理を、 数分で書けるだろうか? 「N回繰り返すループを呼吸するように書ける」 とみなしていいだろうか? 二重ループを難なく書けるとみなしていいだろうか? 内側のループの終了条件は、内側のカウンタが外側のカウンタに 等しくなった時、ということを説明なしで理解するだろうか? mallocが返すポインタが何なのかは理解しているだろうか? ポインタがアドレスであること、アドレスが整数であることは 理解しているだろうか? 全て怪しい。こういうレベルで不安があると考えれば、 説明は言語がCなだけでテトリス本並の丁寧さにせねばダメだろう。 ページが足りなくなれば、到達高度を下げて対処する。 根本的に、mallocは説明のための題材とし、 まともなものを作ろうとするのはやめる。

2013年10月16日

あー、思い出しました。参照を名詞扱いしたこと、ありましたね。 すみません。訂正します。 それを覚えていないくらい、「参照」を専門用語だと思ってなかったようです。 要するに、考えてなかった、ってことですね。 考えてみれば、 普段専門用語としての「参照」という言葉は全くと言っていいほど 使っていないのです。

Sunabaはコンピュータをおかしくするような機能がついてないのがいい、 みたいなレビューをもらったが、私の考える「安全」は、 コンピュータを壊さないことではなく、 言語上不正なことはそもそもできないか、やればすぐ文句を言われる、 ということの方だ。 コンピュータを壊す機能がないのは、単に作ってないだけだ。 しかし、確かにファイル書きこみをつくる予定は最初からなかったので、 仮に時間があってもコンピュータを壊すような機能はつかなかっただろう。

インクルードも作らない方が良かったかもしれんけど、 そうするとおもちゃとしての可能性を著しく狭めてしまう。

「仏様の掌みたいなことでしょ?メタって」。ひつじこの理解の仕方が素晴らしい。 とにかく仏。何かと仏。

シノンは体重増加が遅い。オタマに邪魔されて寝られないせいだよなあこれ。 早く大きくなってくれた方が安心なのだが。

そのまま実用になるmallocを作ることと、 アルゴリズムの入門書であることは両立不可能という結論。 前者は捨てる。ヒープの拡張、マルチスレッド対応、デバグ支援機能、 については扱わない。余裕あればzipに実装と追加文書くらいは入れるが。 玄人ホイホイとして。

今日は24時間通して アマゾンランキングが「プログラミング」の「その他」カテゴリで 1位だった。本全体だと450-700位。 「その他」で1位なら、プログラミング全体でもおおよそ1位なので、 まあおおよそ「プログラミング」カテゴリで1位と考えてよかろう。 これがうどんの効果か。 いやでもあれで買う奴はいないよなあ普通に考えて。

結城浩の本はどうやら数学ガールしか読んだことがないようだ。 説明が優れていると評判なので、参考にした方がいいんだろう。 そう思って、会社にあるデザインパターンの本を読もうとしたのだが、 デザインパターンに興味がなさすぎて読めなかった。 しかし、「良さげ」な感じはある。まず、印象が柔らかい。 丁寧そうに見える。Cの本とかなら読めるだろうし、読もう。

今日は保健所から人が来て、うちでおかしなことが起こっていないかを 探りにきた。ひつじこはそれが不快だったみたいで、 人が帰った後に腹痛を起こして寝こんでしまった。 そういうわけで、午後はほぼ家にいた。 夜になってからこうして出社している。

ひつじこは繊細な子なので、精神と身体のリンクが強い。 嫌なことがあると身体も悪くなる。 よく30年以上も生きてこれたものである。 しかも教師なんていう精神負荷の高い仕事で。

各家庭の不幸を探り出す仕事、なんてものがあることは確かに不快だが、 その不快な仕事は何か理由があって作られたのだし、 そのような仕事を忠実に果たしている人には敬意を払うべきだろう。 しかしそれはそれとして、「そう言うけど、 あんたの家庭も何か問題あるんでしょ?言えよ」 的な態度をべっとりと親しみを装ってやられると、 こっちとしては甚だ不快である。 「問題ないレベルなのは明らかだろ。さっさと本題を済ませて帰れ」 と言いたいわけだ。

家庭内暴力や育児放棄は珍しいものではなく、 それを探り出して改善提案をすることには意義がある。 ただ、ほとんどのケースでは介入が正当化できず、 単に不快なだけで終わるだろう。 実際問題どうやって介入し、どうやって改善するのか? 虐待を見つけたとしても、一体どうするんだ? もし、単に虐待その他の件数を知りたいだけだ、 というなら、それはそれで意味があるのかもしれんが。 いや、むしろそれが最大の目的か。 制度変更によってそれが顕著に変わるかを見たりすることができ、 いいデータになりうる。

シノンは4640g。30g/日で、今までに比べてかなり 遅くなっている。 オタマに睡眠を妨げられるせいだろうか。眠りが浅いと 消化の前に吐いてしまう確率も上がるし。 睡眠時間と成長の相関関係についてはデータが見つからなかったが、 寝ないと発育が悪くなると言う人はたくさんいる。 しかし、眠れないのは良くないだろう。

私の体重が58kgと成人後の新記録になった。体脂肪率8.7%。 ちょっと無理してでも食わんといかんな。 炭水化物を食えば太るのは一瞬だが、それで太っても意味ないしなあ。

環八沿いにある二郎っぽい店は結構二郎欲を満足させてくれるので また行きたいんだが。夜中やってるのでいつでも行ける。

母乳のカロリー比率は、糖質:脂質:蛋白質が7:9:1。糖質制限 と言うには糖質が多いが、いわゆる「バランスの取れた食事」 に比べると脂質がずっと多い。また、蛋白質が少ない。 10gの蛋白質を取るのに1リットルの母乳が必要だ。 しかし人類は成長が遅いのでそれでいいんだろう。

糖質制限に対する反論で、 「1万年あれば糖質メインで生きるようにDNAが適応できる」 というものがある。 確かに適応はしてるんだろう。アミラーゼがこんなに出るわけだから。 しかし、高血糖への対処経路がインスリン一択であることに 変わりはなく、根本的なところでの適当が行われているわけではない。

2013年10月14日

ひつじこが面白がっていた、今田という芸人の家系の話を見た。 確かに面白かった。 本当、2、3代前の日本人は苦労したんだなと思う。

戦争をやらかしたのが良かったのか悪かったのかはわからん。 周りの国に迷惑もかけているんだろうが、 もし迷惑をかけないと滅亡するような状況だったのであれば、 うちらは周りに迷惑をかけて戦争した先祖に感謝すべきだということになる。 歴史の上に生きるというのはそういうことだろう。 そりゃジパングみたいに早々にアメリカと講和できたのかもしれんし、 そもそも朝鮮を併合しないとか、中華民国と戦争をしないとかいう 選択肢もあったのかもしれないが、今更言っても仕方ないことだ。

しかしそれはそれとして、本当無茶したんだな。 そして、無茶とは言え、そして一時的とは言え、 あれだけの範囲を占領し、移民をするだけの力が当時の日本にはあったわけだ。 それ自体は大したものだと思う。

私は漠然と、そのうち海外に移住したりすることもあるのかなあ、 と思っていたりはする。ひつじこは日本を出た方がたぶん生きやすい。 うちで日本に囚われているのは私だけだ。

いなばタイカレーのイエローは砂糖が塩より先に来る。避ける。 グリーンはチキンよりツナの方がうまい気がする。 デルモンテの朝サラダという野菜ジュースは、人工甘味料を入れている。論外。 買う前にちゃんと見ないといけないわけだが、 そんなもん入れると思わないよ普通。野菜ジュースだぞ?

ダンガンロンパのアニメを見た。すごいダイジェスト。推理も人間性も よくわからない。ただ、おおまかな筋と、ポップな雰囲気はわかる。 それにしてもトリックがポップすぎる気がするがなあ。 まあ西尾あたりの新本格を意識してるんだろうから、これでいいんだろけど。 そして、そのテレビ、一体誰が見てるんだよ。世界滅んだとか言ってなかったか?

ひつじこの絵がうますぎるので貼っておいた。 写真記憶的な能力があるらしく、プロポーションがそこそこ正しい絵を 下書きなしで描ける。これもクレヨン一発描きだ。 そして何よりも、38歳が描いたとは思えない 邪気のなさ。のびのび感。

たいていのかぶれは、湯で洗ってワセリン、で治ると見ている。 外的要因なので、ワセリンで覆うことで中から何かが出てくるのを妨げることはない。 単なる傷と考えれば良く、保湿すればいいわけだ。 問題は外的要因でない湿疹で、 ワセリンを塗って保湿すべきでないことも多い。 何か良からぬものが血の中にあって、やむをえず皮膚から排出している、 と解釈すべきなのかもしれないからだ。 この場合は、そこそこ頻繁に湯で洗う以外にやれることはない。 石鹸など使おうものなら刺激で悪化するし、 ステロイド剤はその「出したいもの」の排出を止めてしまうので、 その場では改善しても全体として良くなるかが怪しい。

別にクッキーの世話をするためじゃないが会社。

感想探してて見つけた疑問点その他に関するレスは、Sunabaページに Q&Aとしてまとめておくか。まとまってきたら追加パッケージに入れてもいい。

アマゾンレビューが増えた。

参照、そんなに気になるかなあ。「参照する」と動詞形でしか使ってないはずで、 「参照」という名詞は使っていないはずだ。 専門用語としての参照を匂わせてはいないはずなのだが。

もっとくだけた日本語で書いた方がいいのかと思ったが、 前2冊とあまりノリが変わるとキャラがブレる。 私の本は著者というキャラを表現すべきであり、 そこはあまりブレさせない方がいい。 口調を変えるのであれば、何かしら実験的な試みとして別途やった方がいい。 ただし、言葉の選び方には気を使おう。 「重要」よりは「大切」の方がいいし、 周囲の漢字密度次第では「だいじ」と書いてもいい。 漢字二文字で書けることが利点になる場所ではそうすべきだが、 全てがそうというわけでもない。

106Gcpsにて240カーソルを達成。全実績、全アイテムを網羅。 ヘブンリーチップ467枚。試しにリセットしたら、 18分で反物質。すごい加速感だなこれ。

左を押した状態でプログラムを起動しても、 左が認識されないケースがあるという話。 試した所、ドロップ時にウィンドウにフォーカスがなく、 キーリピートが始まる前に起動するとダメだった。 そりゃそうだ。KeyDownイベントが来ない。 その時のキー状態を取らないとダメである。

.netでもKeyStateを取れる。ただし、.netが3なら。 SunabaはXPを捨てないようにするために2で 作っているので無理だ。あきらめてもらおうこれは。 フォーカスが必ずあるような状態で起動できる手順を示せば いいんだがなあ。 とりあえず、ドラッグオーバーでフォーカスが合うようにしておくか。

2013年10月11日

眠すぎるので、逆らわずに寝ている。会社だが。 合理的に考えれば、昼間の寸断された時間は寝た方がいいのだ。 まして今はカゼだ。夜に力を集中投入すべきだろう。 家で寝ろよと自分でも思うが、寝られないのだから仕方ない。 いつ働くかなんてどうでもいいのだ。 諸処の制約の中でモノが最速かつ最高の出来で完成 するような働き方をすればいい。そうすると常識はガン無視することになる。 幸いにして、そうしても怒られない状況は手に入れたわけだし。

2周も3周も読んでくださる方がいる。売れないまま終わったとしても、 意義はあったと言えるだろう。しかしそれはそれとして、 売れなければ敗北だ。 なお、前の本は1年後には1.5万冊刷っていた。 値段から言って、その倍売れないと商業的な成功度では 前に及ばないことになる。アマゾンのランキングは上昇傾向なので、 ちょっと期待していたりはする。

ここを見ている人で本に間違いを見つけた方がいらっしゃいましたら、 私までtwitterかメールで連絡もらえるとうれしいです。 私が確認してから出版社側で作業するので、 確認する私が最初に知る方がパスが減ります。 それに、twitterとかだと気楽ですよね。

あと、Sunabaは単項符号反転演算子を持ってます。a → -a と書けるということですな。

あーでも、今にして思えば、なくても良かったかもしれない。 代わりの書き方はあるし(-1をかけるか、0から引く)。 Sunabaは他に単項演算子は存在せず、 そんな例外的な文法要素を考えなしに足すのはダメだ。 ゼロから何もかも検討して作ったつもりでいたが、 先入観でなんとなく作ってしまった部分もあったということが悔やしい。 a--bと書いても通るのがいいかどうかという問題もあるし。

代入演算子の→は未だに迷う。まあ、これだけ迷うということは、 たぶんどっちでも良かったということなんだろう。 ただ=にはならなかった。1つの記号が2つの意味を持つのは許せない。 その意味で符号反転の-は余計に許し難い。 Cみたいに「-4」が単項演算子と4の組み合わせなのであれば 単項演算子が必要だが、普通に考えて-5で1つのトークンとすれば そんなものはいらない。

つうかCのリテラルの仕様は理解できない。 「-0x80000000」はヤバいのだ。マイナスはあくまで演算子なので、 0x80000000をまず解釈するが、これがintに入らないのである。 ここで実装依存だ。だから、真面目にやるなら 「-0x7fffffff-1」と書かねばならない。 なぜマイナス込みでリテラルとして扱わないのかわからない。 もっとも、単に-0x80000000と書いても知る限りのコンパイラでは 思ったように動くようだ。

顔の筋肉の緊張を取ろう。ハゲのためにも、ハゲ以外のためにも。 関与する筋肉は、まず後頭筋と前頭筋。前頭筋はまゆげを上げる筋肉で ひつじこはこれを動かすと頭皮が丸ごと動く。前頭筋が縮めば、 そこより前の皮膚は上に上がるので眉毛が上がり、そこより後ろの皮膚、 つまり頭皮は丸ごと前に来る。 しかし、私の場合頭皮が全然動かない。これが動くようになることが一つの 目標だろう。その頃には顔がしょっちゅう緊張して痛くなるのが治るに違いない。 マッサージ、ストレッチ、自分で動かす、の3つをがんばる。

前頭筋と拮抗するものはもう一つあって、鼻根筋というのがある。 これは顔をしかめる筋肉だ。これも一緒にやっておこう。

それにしても、耳の上あたりの筋肉が痛い。ここにあるのは側頭筋と 側頭頭頂筋で、前者は噛んだり顎を後ろに動かす筋肉で、 後者は耳を上に上げる筋肉だが人間ではほぼ退化している。 要するに、下顎をモリモリ動かせば このあたりの筋肉がそこそこ使われるのだろう。

まずは前頭筋、後頭筋、鼻根筋、側頭筋だな。 まゆげを動かすと頭皮が動く身体を手に入れるぞ。 でも一回プロのマッサージでも受けてきた方がいいかもしれない。 やり方を学べる。

1章をおよそ書き終えた。週明けには風邪も治るだろう。集中して2章を書ける。 2章まで書けば道が見えてくるはずだ。

2013年10月10日

こういう言葉遣いが良くわからない。 言ってる内容はまっとうなはずだが、この言葉で届くとは思えない。 バリューチェインとかswot分析とか パワポに書いてあるのを見るとすげー嫌な気分になる。 技術屋や絵描きがそういう言葉を解すると思っているなら見当違いだ。 現場に嫌われたいとしか思えない。

だいたい「客の立場で考えろ」にいきなり反してる。ブログの客は読者だろ? 誰に読ませるつもりだ?読ませたい相手は「アハ体験」とかいう言葉を 当然のように知っているような相手なのか?つうか、 それ一時の流行語じゃないの?5年後に見たら顔から火が出るんじゃないか?

客の立場で考えろ。客に何を提供するのかを一言で言えるように努めろ。 金を払う気になるもので金を取れ。客は合理的に行動していると仮定し、馬鹿にするな。 メンバーに自分で考えている実感を持たせろ。 さっさと試してさっさと失敗しろ。仮説にこだわらず客に出して反応をちゃんと見ろ。 閉じこもってないで客を見に行け。

翻訳してみたらこうなると思う。 これは全部ドラッカーが言っている。それもマネジメント一冊に書いてある。 もっと心に届く言葉で。いや、 こういう用語を使う方が心に届く人もいるのかもしれんから、 それは否定すべきではないか。

ハゲについて考える。

ハゲの原因は、男性ホルモンの代謝物と、血流阻害っぽい。 うち、男性ホルモンの代謝物がどれくらい効くかは、遺伝で決まる。 X染色体で遺伝するため、母方にハゲがいれば高確率でハズレだ。 私には残念ながらこれが当てはまる。 ハゲるかどうかはほぼこれで決まり、男性ホルモン代謝物への感受性が 高ければあきらめる他ない。 ただし、感受性がそれほど高くないのであれば、 これだけでは決定打にはならないことが多い。血流阻害がなければ、 それほどには進行しない。かなり若い頃からどうしようもなくハゲ始めたのでなければ、 生活習慣による血流阻害を軽減することでマシになる可能性がある。

血流を妨げる原因はいろいろあるが、血管の糖化、 頭蓋骨の変形による皮膚の圧迫、界面活性剤や薬剤による皮膚刺激、 といったものが疑われる。男性ホルモン代謝物が頭皮に溜まっているのが 原因なので洗うべし、と言う人もいるが、私の主観としては信用し難い。 そう言っている人に医学的生物学的な知識がありそうな気がしないからだ。

血管の糖化に対しては、理屈の上では糖質制限が効くはずである。 血流が良くなって全体的に調子が良くなることはすでに確認できており、 今更やめる理由はない。やるとすれば、強度を上げることくらいだろう。 週一回は同僚との外食で豪快に糖質を取っているし、 たまに菓子を買うこともあるわけだが、 これをやめれば糖質制限の強度が上がる。 外食の次の日は頭皮ににきびができる率が高く、何かしらの影響があるのは明らかだ。 ちなみに、糖質を日常的に食べていた頃は、 当たり前のように頭皮ににきびができていた。 石鹸で毎日洗っていてもである。今は石鹸を使う必要もない程度にしか皮脂が出ない。 そういうわけで糖質制限はいいと思うのだが、 今のところ劇的にハゲを回復させるような効果はない。 糖質制限で悪化したということも考えられなくはないが、 仮にそうでも今更やめる気はしない。他のメリットが大きすぎるからだ。

もっとも、ここ数年カゼをひく率は高い気はする。 これが糖質制限のマイナス面だという 可能性がないとは言えない。しかし、オタマのおかげで睡眠時間は 猛烈に減っており、また、オタマが外でウィルスをもらってくる率も増えた。 なので糖質制限の影響だけを抜き出すことはできない。

あとは頭蓋骨の変形の問題がある。変形は明らかにあって、 ここ数年で頭頂部がとがってきている。これが何なのかの説明で「これだ」 というものはないのだが、頭蓋周囲の筋肉の緊張によって頭蓋骨が締めつけられ、 年単位の時間をかけてゆっくりと変形していくという記述があった。 ありそうなことではある。実際、側頭部を揉むと痛く、 このあたりが凝っていることは間違いない。緊張の原因はおおよそストレスらしいが、 これも思いあたるフシはある。 子育ては大変だし、本を書くのは精神的にしんどい。それが年単位で続いている。 これは原因の一つとしてあるのかもしれない。 仮にハゲに関係なくても、取り除けるならその方がいいだろう。

というわけで、試しに側頭部と後頭部を揉みまくってみたのだが、 なんかえらく気持ちいい。 そして妙にスッキリした。最近何かと顔が凝るのだが、これか。 ハゲ関係なく揉む。

あとは界面活性剤や薬剤の影響だが、私はもう身体に洗剤を使うのをやめたので、 これはない。

アマゾンランキング定期便がヤバい。こんなので一喜一憂してたら人として終わりだ。 しかし、このデータを取っておいて後で統計処理するのは面白そうなので、 止めずに置いておこう。

テトリス本は600-1200位くらい。前のは4000-10000位くらい。 頼むから次の面談までに増刷かかってくれ... まあ増刷しても何も変わらないんだけどな。 次の本が劇的な売れ方をする、という現実をがんばって作ろう。 なんか「アルゴリズムを発明する」というコンセプトを 活かしていい題名作れないかなあ。 とりあえず2章までをそこそこ真面目に書いて評価してもらわねば。 まだ前書きで止まってる。

2013年10月09日

1章で問題の定義と、いくつかのC/C++の差異、それから私のスタイルの説明、 なんかの瑣末なことを済ませ、2章からが本番。2章はソート。 挿入ソートとシェルソートを発明してもらう。選択ソートは なくても滑らかに話がつながるならいらんだろう。 あった方が段階を踏めてわかりやすいと思えば入れる。

入れた方がいいか。「頭の悪い奴がやるソート」として価値がある。 なお、現実世界においては線形リストに対して内挿検索的なことができるため、 バブルソートはとりわけ非効率である。挿入ソートは逆に極めて高速で、 それ以上速い手法を必要とすることは稀だ。 そのあたりを説明する。

でもこのへんは編集さんと相談してからにしたいな...

関数プログラミング気になる。でも今はすべきことがある。

アマゾンのランキングは変動が激しい。 売れないでいる時間が長いとみるみるうちに順位が下がる。 なので、売れる時刻に偏りがあれば、変動も激しくなる。 そもそもランキングの値そのものに意味はなく、 こちらが知りたいのは実数だ。 ランキング値から実数への変換関数があれば、その変換結果を 平均するなり積分するなりすることができるが、 もちろんのことそんなものはない。

つうか、まあナンボ売れたかは最終的には出版社の倉庫からナンボ 出ていったかでわかるわけで、別に焦らず待てばいいんだけどな。

2013年10月08日

言語どうしよう。Cか、C++か。 Cしか知らないという前提で始めて、 徐々にC++に行く方が後半の難易度が下がる気がする。 Cだけだと変な制約がたくさんついて、後半の難易度が上がる。 単純に文字数が多くなって見辛い。

といっても、使う要素は限られている。メンバ関数。 必要になった所で変数定義。voidの省略。 for文の変数スコープ。

笑いが足りんか。いや、別に笑わせるために書いてないしなあ、 とは思うが、読んでてつまらんのは問題だ。 これに本筋を損ねないように娯楽的な意味での面白さを足すには どうしたらいいだろうか。クッソ真面目に書く方向性自体は 変える気がないのだから、クッソ真面目であることが笑いにつながるような 書き方ができれば良い。しかし、 それ意図してやってどうにかなるものかなあ。 前の本と違って話題があっちこっちに飛ばないので無駄話がしにくい、 というのはあるか。体験談みたいなものを散りばめるのは今回は 難しかった。それでも普通の本よりよほど多いと思うんだが。

「プログラマでなくプログラマになる気がない人にも 役に立つ」ように書ければもっといいんだろうが、 役に立つかどうかは役に立てる気があるかどうかに大きく左右される。 それに関係なく斜め読みする人に何かしらの 「役に立った感」「考えが広がった感」 を与えようとするならば、 根本的にこんなに丁寧にプログラミングの過程を書いてはいけない。 だってその読者はプログラミングする気ないんだから。 プログラミングの過程を描かずにプログラミングの考え方だけを イメージで伝えるような本の方が向く。

結論から言えば「そんなこと言われても、この本の対象読者じゃないから 仕方ないよ」だが、「プログラムはこうして作られる」 という題名からは、プログラムってこんな感じにつくってるんですよー ということがチョチョイと読めて「へー」と思える本の 臭いが濃厚にするわけで、その意味ではそういうものを 求める読者がいるのは当然のことだ。 そして、読んでみて「思ったのと違う」と言われるのは ああだこうだ言ってみても結局は私の罪である。 題名つけたのは私じゃないけどな。

うん。やっぱり仕方ないな。根本的に何か対策を考えるというよりは、 単純に面白い文章を書くスキルを向上させることによって症状を緩和する 方がいい。それなら副作用が出ない。

でも、「文章を書くときにこれを心がけておけば、 副作用やコストが小さいままでおもしろくなる」 というようなことってないかな。細かくニヤリとするユーモアを 折り混ぜて行ければいいんだろうが、それに手間がかかりすぎたり、 それのために分量が増えすぎたりしてはダメだ。

CPUの創りかた、という本があるのを知った。 というか、昔見たことがあるなどこかで。表紙が表紙だけに 中を見ようとは思わなかったが、どうやら本気の本らしい。 萌え絵を使うのは作者の意図ではなかったらしいし。 そして、10年経っても相当な数売れている。 中身を少し見てみると、なるほど文章が軽い。 こういう感じにした方がいいのか? でもまあ、重要なのは内容だろう。萌え絵であることに さしたる効果もなさそうだし。

一回もっと壊れた文体で技術書を書くことも試してみていいのかもしれんなあ。 いきなり数百ページとか辛すぎるので、 何らかの低コストな実験をしたいところだが。 CEDECの講演とかがあれば、その内容を数十ページのpdfにして 公開することになるわけで、それくらいの分量が丁度いい。 でも講演する予定はない。仕事してないし。

売れる売れないはともかく、著者がどれくらいの本気でそれを書いたのか、 ということは本に如実に現れる。 私はそこに関してみくびられるような本は書きたくない。 本気があふれ出るような本しか書かないと誓おう。 そうしないと未来がない。 必要なのは、「平山尚」というブランドを作ることだ。 出す物出す物全部本気、ということが客に伝われば 新しい本を出すこと自体が古い本の広告になる。 今回の本がイマイチ売れない状況に陥ったとしても、 次の本の出来が良ければ遡って売れるかもしれん。

買える状態にしておけば勝手に売れるのが理想のマーケティング、 とドラッカーは言った。今はそれが実現できる時代だ。 いいものを作れば、広告は人が勝手にやってくれる。 とにかくいいものを作ることに集中し、 ジワ売れして何かのきっかけでブレイク、的なことを期待して待つ、 ということが現実的な戦略として成り立つということだ。 もちろん、何が求められているかは前もって考えないといけないが、 結局は「この世界を良くするにはこういう本が必要だ」 と私が強い信念を持って書けるかどうかである。 客が欲しいというものは、客が想像できる範囲に限られる。 私が考える商品が客の想像外にある場合、そんなものは なんぼ市場調査をしてもわからない。 そして、そういうものこそ、ベラボウに売れる可能性を持っているのである。

正直ちょっと前までmalloc本は 「すぐ書けるし、本業にも近くて言い訳しやすいし」 みたいなヌルい心で取り組んでいた。前の本も終わってなかったしな。 しかし、そんなヌルい気持ちで本を書けばブランドを損ねる。 私の強みは、コスト度外視で本気を投入できる立場にあることだ。 2ヶ月かそこらで次から次へと書かないと生活が成り立たない人達とは違うし、 まっとうに本業をやりながら放課後に時間を捻出する努力を 強いられる人達とも違う。 「もしかしてリストラ候補なんじゃねえの?」と思うような不安の中、 本を書くことだけをやっていられることは私の強みだ。

本気で不安なんだけどな...面談で自己アピールしろとか言われても、 「本出ましたけど売れるかわかりません」しか言いようがないわけで。 「反省点はありますか」と言われて、「時間かかりすぎましたごめんなさい」 しか言いようがない。「いや、いいものはできたと思うんです!」 「アマゾンで誉められてます!」 とか言ってると、できない人の言い訳みたいでヘコむ。 いや、実際業績だけ見たらできない人なわけだが。 つうか、「反省点はありますか」って、辛い質問だよな。 あると答えてもないと答えても不正解っぽいあたりが辛い。 前の部署の面談は、単に上司と雑談するだけの場で、 チームとか部署の問題点の指摘や改善提案をしたりもした。 しかし今はそういう雰囲気じゃない。採用面接と同じ臭いを感じる。 給料を決めるための面談と考えればそりゃそうなんだろうが。

なんか今回の面談は仮らしくて、後で下期の目標について ガッツリ面談するらしいのだが、今から激しく気が重い。 最低5個書けとか言われるわけだが、「アルゴリズム本を出す」 以外に言いようがない。埋めようと適当なことを書けば、 半年後に「達成できませんでしたごめんなさい」と言う破目になる。 せめてその面談までに増刷が決まってくれればなあと思うが、 残念ながらそんなに売れてはいないようだ。 アマゾンで1000位台というのはそこそこらしいのだが、 残念ながらそこそこではダメなのである。 「すげえ売れて会社の名前が世界に轟きました! 優秀な人材がたくさん応募してきてます!」みたいなのが期待されてるんだろうし。 死力を尽して書いたつもりで、本の出来や意義に関しては そこそこ自信があるのだが、それが商売としてどうかは全く別の事だ。 ゲームで言えば「全世界1000万本!でも赤字!」 みたいな超大作と同じ構造である。 前の本だって2万とか売れたが、かかっているコストのべらぼうさを 思えば、商業的に大成功とは言い難い。出版社は大もうけっぽいが。

でもまあ、この高コスト体質を変える気はない。 今回べらぼうな時間がかかったわけだが、結局それは必要な時間だった。 家事その他で書けずにいる時間が長かったわけだが、 そういう時間こそ本のことばかり考える。 「誰に売るの?」「客はなぜこれを買うの?」 「他の本じゃダメなの?」みたいな、全体の書き直しにつながりやすい 厳しい問いを出せるのは、書いていない時だけである。 書きながらこんな疑問を頭に浮かべることはできない。 そういう問いかけを執拗にやったからこそ、 アホみたいな回数書き直せたのであり、 それは家事その他で時間がロクに取れないという状況があったからだ。 まあ家にいても本のことばっかり考えててひつじこを何度となく 怒らせたわけだが、本を書くことに関してはそれは必要なことだったのだと思う。 書いている最中こそ、むしろ考えない。

これからひつじこが回復し、シノンの連続睡眠時間が伸びていけば、 多少は状況がマシになる。しかし、だからといって 「集中して取り組んでバーンと完成」というわけには行かないし、 そうすればたぶんクソな出来になるだろう。 別に非効率なままにしておこうとか言うつもりはなく、 実際早く書かないと立場がヤバいわけだが、それはそれだ。 2冊書いてよくわかった。5回やそこらは全体を書き直さないと まともな本はできないのであって、5回かそこら書き直すには 「ひょっとして、これじゃダメじゃね?」と気づくだけの時間が必要なのである。 私は「既存の初心者向けアルゴリズム本を駆逐する」というくらいの 意気込みで書くのだから、それに見合うだけの本気を投入しなくてはならない。

まあ、具体的にC言語を使う段階で、既存本を駆逐はできないんだけどな。 フローチャートレベルでの説明しかしないような本とは正面からの競合はしない。 それにPHPやらrubyやらを使ってる人は、 C言語で実際にコードを書く本は読まんだろ。 そもそもアルゴリズムに興味ないだろし。 今回のテトリス本が「コードを書く気がない人」に アピールしないのと同じ構図だ。 コードを書く気がない人にプログラミングとは何かを説明する本は 別途必要だろうし、同様に、コードを書く気がない人やCから程遠い言語 しかやっていない人に対してアルゴリズムを説明する本は別途必要だろう。 需要もある。ただ、それを私が書くべきかどうかは別問題だ。 私は「教養になる本」を書く気はあまりない。 具体的に何かが出来るようになる本を書きたい。 そうすると、動くコードなしでアルゴリズムを説明するなんてことは 到底やる気にならないのである。そんなの、せいぜい面白いだけだろ。 徹底して実用書を書きたいのであって、面白さは二の次だ。 結果的に教養を求める人にばかり売れるとしてもである。 テトリス本、どれくらい初心者が買ってるんだろうな...全然わからねえ。

前書きと1章は完全に書き直す。1章の書き直し中。 C言語しか知らない前提とし、C++でしかできない書き方をする際には その都度説明することとした。場所は食うし、 わかっている人にとっては邪魔だが、 ずっとCで行くよりは後半の理解がしやすくなるはずだし、 ハナッからC++がわからない人を切り捨てるよりは客を増やせる。 このへんが落とし所だろう。あまり邪魔なら注釈に飛ばすなどして 場所を空けることもできるだろうし。

あと、対象レベルを下げた関係で、序盤はコードの書き方や言語に関する ことも多少詳しくした。なので1章の分量はかなり増える。 ここだけ見ればまるでアルゴリズムの本には見えない。 まあ本番は3章からだ。レベルを下げる分、特に序盤の説明は 丁寧にしないといけない。テトリス本のように変えた行を全部説明する ようなマネはできないにしても、それに近い状態にはなるだろう。 そんな状態から始めて、treapを応用したmallocを書ける レベルまで滑らかに辿り着けるのかはわからんが、やってみる他ない。 それができれば、既存のアルゴリズム本とは違った価値が出るはずだ。

大抵のアルゴリズム本は、わかった気になって終わりの本か、 事典的に使われる本かだ。その間がない。 「わかった気になって終わり」と言うと言いすぎかもしれんが、 アルゴリズムという奴は理屈がわかっても、それだけではダメなのである。 実際にコードにして動く状態にする方がはるかに大変だからだ。 もちろん、確かにクイックソートやマージソートを鉛筆やじゃがいもでやれる ようになることには価値があるし、それは必要なことだ。 そこまでを担当する本はあっていいし、実際ある。 しかし、初心者はそれをコードにできないのである。 事典的な本ならコードも載っているが、それはそれで問題で、 初心者はそのコードを自力で書けないのでコピペしてしまう。 大抵はそれで動くので、それでおしまいにしてしまうのだ。

10年前の私はそうだった。あの時にコードにするまでの過程を 説明する本があったなら、私はあんなに苦労せずに済んだだろう。 アルゴリズムはコピペするもんだ、という間違ったイメージを 拭うのにどれだけ時間がかかったことか。 まあ、読んだ本がnumerical recipesで凄まじくコードが読みにくかった、 というのも原因なんだが。学者の書くCコードは本当に嫌だ。 密度と抽象度が高すぎて解読するのにえらい手間がかかる。 世の中には学者でも素人でもない人間が書いたアルゴリズムの本が 必要だと私は思うのである。

次はちょっと文章にも気を使おうかな。テトリス本は愚直すぎたかもしれん。

おう、もう5時だ。みやげを買って帰って、ゴミを出そう。 10時まで寝かせてもらえるといいなあ。

2013年10月07日

プログラミング入門を漫画でやったらどうなんだろうと考える。 まともなクォリティの漫画である前提で、 かつ、本質をきちんと理解させ、 さらに学ぶ気になるような代物は作れないだろうか。 そして、そんなものがあったら多少は売れないだろうか。

しかしこれは猛烈に難しい。 まず、この手の論理情報に関する漫画の効率の悪さから言って、 説明する事は極限まで絞りこまねばならない。 何か一つ「わかったぞ!」と思わせられればそれで十分だ、 というくらいに絞りこまねばならない。 それで何かができるようになる、というようなものは不可能だ。 無理にやろうと思えば、章の間に2ページ漫画が挟まってて 後は普通に文章、というような代物にせねばならなくなる。

そして能力の問題がある。まともに読んで面白い漫画を描くことは 希少なスキルだ。そして、最大限に漫画であることを活かすなら、 作画担当は内容を理解して描かねばならない。 それでいて、今の読者に受け入れられる表現のセンスと質が必要だ。 条件が厳しすぎる。

しかも金の問題もある。普通の技術書は大して売れない。 つまり大してもうからない。その少ないもうけを複数人で分けねばならない。 作画が一人でなければなお分け前が減る。まあ複数人とかありえんが。

仮に2000円の本が1万冊売れるとする。10%で200円だから、 総収入は200万円だ。全く話にならない。5万は売れるという確信がないと 始めることすらできない。

やっぱり漫画にしないと読めない層は私の客じゃないってことだろう。 プログラマを増やすために それくらいのことはやってもいいんじゃないかと思うし、 ゲームで言うシリアスゲーム(教育用途とか)のように、 漫画でも「単なる娯楽ではない、実益を目指す何か」 に挑戦することには商業上の価値もあると思うんだが、 単純にリスクが大きすぎる。人を巻きこめるレベルじゃない。 私に共同作業ができるのか、というところにも大きな不安がある。 私が商品クォリティの漫画を描ければ可能かもしれんが、それも無理。

やるならまずはキャラ対談形式を試すべきだな。ずっと低コストだし、 それで面白くならんようでは漫画のネームも書けん。 まあそのうちな。そのうち。

2013年10月06日

GDI使うように直した。案外簡単だった。これからはこれで行く。 レイトレも最初はこれでいい。

線が二重の矢印も通すようにしておこう。意味は同じだ。 こんなの名前に使うやつおらんだろ。

感想を書いてくださった方がいるので、それに対してレス。 10/5や、 10/4

代入を=にしなかったのは、数学の=という記号が そもそも使いこなすのが難しい代物だからだ。 「等しい」という関係を表すこともあれば、 定義であることもあれば、代入であることもある。 このわかりにくさがそのまま入ってくるのは避けたい。 また、定義や代入の意味で使う場合、左右の辺は同格ではない。 意味が異なる。であれば、見かけとしても左右非対称な記号であるべきだ。 打つのが面倒くさいデメリットは、初心者に対しては大したものではないと 判断した。ただし、そもそもIMEを使って日本語を打つことが できないレベルの人がいることは想定外だったので、 そこは考えが足りなかったと思う。

矢印の向きは、プログラミングに毒されていない視点で見れば妥当と考える。 なぜなら、「a→b」と書かれた時、「右辺のbのみを、それが覚えている値に 置換する」という行為は不自然だからだ。 bに5が入っていれば、この式は「a→5」となる。だが、それは「右辺だけを」 置換したときだ。 今aに2が入っているとすれば「2→5」と両辺をその中身に 置換するのが自然だろう。そして、そのように置換しても、 「2から5になる」と読める。だが矢印が逆であれば、 「2←5」となり、少々不自然な読み方をせねばならなくなる。 まして=であれば「2=5」で、なお悪い。

「参照」その他の用語の問題に関しては、 Sunabaが終わった後の困難は完全に無視している。 Sunabaで変なクセがついたり、変な用語で覚えたりしたせいで 後で困ったとしても、それでもなおSunabaの経験がないよりはずっと 良いだろうと考える。 Sunabaを抜けられた段階で、プログラミングの最も厄介な所は抜けている。 その後多少苦労したとしても、プログラミングという行為が おおよそわかっているのであれば、それで良かろう。 混乱するようであればそれも仕方ない。私がそのことで責められるなら、 それも仕方ない。何も犠牲にしないというわけには行くまい。 受験勉強はできるだけその後に生きるやり方をすべきだが、 受験に受からないことには大学生活は送れないのだ。 要領が良い学生なら大学数学をいきなり教えればそれで受験も通るだろうが、 要領が悪い学生向けの参考書でそれはできない。 もっといい手があったかもしれんし、あるかもしれんが、 それは私には浮かばなかった。 未来の私がやるかもしれんし、他の誰かがやるかもしれんが、 今はここまでだ。

もっとも参照に関しては日常語と考えていたので、 そういう問題が起こるとは夢にも思っていなかったのだが。 心配したのは「メモリ」の方だ。 いずれオブジェクトの世界へ行けば、メモリの具体的すぎるイメージ が後々害をなす可能性はある。いや、確実になすだろう。 しかしまあ、それもやはり仕方ない としか言えない。責められるかもしれんが、それも仕方ない。

有害図書として叩かれることはどんなに辛くても覚悟せねばならない。 叩かれないということは大したものを書けなかったということであり、 それは悲しむべきことであって喜ぶべきことではない。 私は当然のことながら、既存の本を否定し、ケンカを売らねばならない。 そうでないなら書く意味がないし、そうでなければ書く意欲も出ない。 これからも、私が本を書くということは、 既存のものにケンカを売るということを意味する。 衝突するジャンルの本は駆逐するつもりで書く。 そして当然のことながら、私が書いたものが後々誰かに駆逐されることも前提だ。 そうでなければ、戦いを始める意味がない。 私は次から次へと良い本が現れて古いものを駆逐していくループを 回したいのである。

Sunabaは、「ダメなことをやればダメと言われる」作りを心がけた。 なにせ砂場だ。 いきなり正式な許可もなく0番メモリに値をつっこんでいるのは、 「やってみて動くならそれは合法」というSunabaの作りゆえであり、 それを良しとする私の思想ゆえである。 極力「先にルールが与えられる」という話の仕方を避けたかった。 しかし、これは保護された世界だから許されることで、 実世界の保護されていないプログラミングにおいて こういうマネをすると致命傷になりかねない。 仕事のプログラミングにおいては 「やっていいと書いていないことはやってはいけない」 と思ってやらねばならないからだ。 マニュアルにスレッドセーフと書いていなければ 他のスレッドで呼んではならない、というのは最も良くある例である。 しかし、これは実際に痛い目に遭わずに覚えられることではなく、 Sunabaの体験がどうであるかに関係なく、 仕事の中で必ず失敗するだろう。それは必要な過程だ。 「やっていいと言われていること以外をやってはならない」 ということを学ぶのに、私は5年はかかった。 PS2をいじっていた時代には、おそらくやってはいけないことを 相当やっていただろう。型番違いのPS2でもちゃんと動くと 自信を持って言えない。

ちなみに私の知る限り、やっていいと書いていないことを平気でやる 奴はプロの中にもたくさんいる。 その関数マニュアルにスレッドセーフなんて書いてねえよ。 そして案の定バグってる。 もっとも、「こんなもんスレッドセーフに作らないとダメだろ」 というような物なので、作り手にこそより大きな罪があるわけだが。

ヤマト最後まで見た。ユキなんで生き返るの?艦長の死に積極的な意味を持たせた のはうまいと思う。

進撃の巨人最後まで見た。やっぱりここからが問題だよ。 ここまですることを正当化するような説明ができるのか?

Sunabaの移植か...mac買うのしんどいなあ。 できるだけ移植しやすく作るつもりだったが、 だんだん適当になっていったおかげでひどいことになっている。 コンパイラ部はまんま動くだろう。機種依存なのはGUI部とグラフィクスと音だ。 グラフィクスをGUI側に動かして、毎フレームのビットマップ を作るところまでは機種非依存にすれば、GUIと音だけになる。 音は後回しとすれば、GUIだけだ。あとGUIとマシンの通信部がひどいな... うん。どう考えても面倒くさい。私は本を書いた方がいいよきっと。 誰か移植してくれるよねきっと。

というか、移植するならブラウザだろう。マシンを丸ごと移植すると 絶対に速度が足りないので、Sunabaから直接javascriptに変換して 実行することになる。ピクセル単位の処理をやれるほど javascriptが速いのかどうかは知らんが。

でもなあ。来年も授業に呼ばれるなら、mac版はあった方がいいんだよな。 芸術系の学生だけにmac率が高いのだ。たぶん始めてしまえば三日で 終わると思うんだが、やる気しない。いや、三日は無理か。一週間 くらいかかりそうな気もする。なにせOSの使い方からだからな。

ThinkpadE145が出たが、Sunabaに関してはGPUが問題ではなくなったので ラデオン入りのものを買う理由はもうない。 今後GPUが問題になる本を買えばわからんが、 それはその時でいいだろう。 1.5kgもあってTN液晶なマシンは予備であっても嫌だ。

2013年10月04日

GMA950+vistaでまともに動かないという報告。 スクリーンショットをもらったが、本来100x100のはずのピクチャーボックスが 100x80になっている。2xの時には200x180。20小さい。 欠けた場所は黒でも白でもなく灰色。 ピクチャボックスそのものが小さいようにしか見えない。 なんだよ20って。さらに3x以上だと灰色のまま。つまりOpenGLの出力が そもそも描画されていない。ただしprint screenすると黒くなる。何それ。 ドライバのバグだろこれ...

毎回真赤にクリアしているはずなので、 クリアごとしくじっていない限りは、 描画されていない可能性はない。 windows form側でピクチャボックスのサイズがおかしくなる可能性は 普通に考えて低い。常に縦が20ピクセル欠けるとか意味わからなすぎる。 GLがpictureboxに書きこむところでおかしいと考えるのが自然だ。 そして書かれない場所は灰色のままと考えるとしっくり来る。 とすると、ビューポートではないな。ビューポートなら 黒なり赤なりが出てくるはずだ。灰色のままとか普通に考えてありえん。 あーでも3x以上で真っ黒になるってことはビューポートの可能性もあるのか?

ドライバのバグなんだろうが、それにしたってバグをつつきにくいコードに 変えることはできるはずだ。ケアしようがないようなバグでなければだが。例えば メモリ破壊とか言われるとさすがにどうにもならん。

とりあえずピクチャボックスの背景色塗りつぶしを入れた。 これを実行してもらえればどっちの問題かわかる。 真っ白でないならテクスチャではないだろうし。 ピクチャボックスにGLが書きこむところがバグってる臭いが濃厚にするなあ。

「明解C言語」という本が10万部以上売れているそうだ。 私も「ボクが考えた理想のC言語入門書」を書いたら万単位で売れたりしないかなあ。 しかし私はその道の専門家ではないわけで、細かいところで間違ってるとかで 叩かれるのが目に浮かぶ。 しかしこれ、他に選択肢がないから売れてるのもあると思うんだよな 改訂でより説明が厳密になって内容が増えたらしいが、 そんなの初心者にとっては余計なお世話だろう。 素人向けと玄人向けははっきり分けた方がいいと私は思う。 正確さや厳密さは玄人向けに取っておけ。 「初心者のうちから厳密な仕様をちゃんと知るべきだ」と言う人のことが どうにもわからん。

情報が揃ってきた。GLのフレームバッファからピクチャボックスに書きこむ 描画開始位置が下に20画素ずれてる。上20画素がピクチャボックスに 指定した背景色のままだ。こんなのどう考えてもドライバのバグだろ。 しかしそれはそれとして、バグったドライバでも極力動くようにしたいのである。 GLの初期化周りを見直してみよう。起きたら。

GLのコンテキストに、 古いピクチャボックスの情報が残ってて更新されてないんだろうなきっと。 最初一旦1x1のピクチャボックスで仮初期化してるのがマズいんだろう。 で、内部的にはwin32APIでGDIやら何やらを使って ピクチャコントロールに矩形を描きこんでいるわけだが、 そこの原点がおかしくなると。 何もかも複数回初期化する作りのせいだ。これどうにかならんかなあ。 ピクチャボックスにGLのフレームバッファをどう貼りつけるかを コントロールする方法があれば再初期化する必要はないんだが、 そんな方法なさそうだし。あるとすればwglから始まる関数だろうが。

2013年10月03日

「レゴで遊ばせると頭が良くなる」みたいなのは私は信じない。 レゴより良い手段があるかもしれないし、 レゴで遊ぶにしてもいろいろな遊び方があり、 それによって効果は異なるだろう。 同様に、おもちゃみたいなプログラミング言語を 小学生に渡して、その教育効果を期待する、 みたいなのも私は信じていない。

とすると同様に、Sunabaでプログラムを書かせることで プログラミングで飯を食える人間に育つ、ということを期待する のもおかしい、という話になる。 そうかもしれない。 ただ、私はSunabaでテトリスを書けることが、 他の言語でプログラムを書けるための必要条件になるように Sunabaを作ったつもりでいる。 C++なりJavaなりで書ける人間は、潜在的にはSunabaでも書けるだろう。 Sunabaで書けない奴がC++やJavaで書けるとは思えない。 HaskellやLispはわからんが。 したがって、Sunabaで書ければプロになれるとは言えず 十分条件ではないが、必要条件を一つ満たすことは意味する。

一方、「頭がいい奴はレゴで楽しく遊べる」は真ではないから、 レゴで遊べることは頭が良いための必要条件ではない。 そもそも「遊ぶ」の内容が曖昧すぎるし、 「頭がいい」も曖昧すぎる。 マウスでいじるおもちゃみたいなプログラミング言語が 実用言語の必要条件になるように設計されているのであれば、 それによる教育の効果はある程度期待できることになる。 しかし、たぶんそうではない。 例えばscratchは楽しいおもちゃであったり、 創造力を発揮する場であったりする方を重視して設計されているだろう。 そういうものは、私が良いと思うかどうかでしか判断しない。 私がいいと思うことは勧めるだろう。 ヴァイオリンやピアノ、レゴも同じだ。

そのへん運動はいいんだけどな。 テニスが上手ければ、運動能力は高かろう。 最低でもスタミナはあるはずだ。 得られる効果がわかりやすい。 「○○のために○○をやらせる」と言いやすい。 拳法をやらせることは、ピアノをやらせることよりも 効果を期待するのであれば割がいい。 もっとも、コストや副作用の問題もあるわけで、 必要でもないスキルを教育的効果を期待して教える、 ということは結局は趣味の領域だと思っている。

ヴァイオリンやるとかなりの確率で音感はつくと思うけどな。 しかし音感があれば幸せかとか、音感があると何かで有利か、 みたいな話になると、さっぱりわからなくなる。 その時間無益に過ごすなら音感がついてきた方がマシだろうが、 何をもって無益とするかも完全に主観だ。 要するに、親が何をさせたいかという趣味の問題でしかない。 もう少しマイルドに言っても、 親が何を良いと思っているかという価値観の問題でしかない。 今のところオタマに何かをさせようとか、 教育を目的として何かを与えようとか、そういう気にならない。 私が教えたいものを教えるだろう。 今回の本も、オタマが12年後くらいに読んでくれたらうれしいが、 その頃に別の何かに道を見出しているのであればそれで良いと思う。

というわけで、私は高校以下で必修としてプログラミングを教えることには反対だ。 というか、実際問題無理だろ。 使い道も見えていないものを、ロクにできもしない人間が教えるなんて 悪夢としか思えない。実のところ数学や物理も同じといえば同じなのだが、 一応そっちは時間という試練は通ってきている。 新興宗教と伝統宗教の差みたいなもんだ。どっちの施設の隣に住みたいか、 というのと同程度の意味しかないが、しかしそれは妥当な判断基準だろう。

ただし、数学や物理などの学習を効率化するために うまくプログラミング的なものを利用する方法を入れていくというなら賛成だし、 是非とも進めるべきだと思う。 その方向性ならば、馬鹿げたテストなどの諸々の問題を回避できる。 つうか、数学や英語、国語といった伝統的な教科の教え方を どうするかから考え直す方が先だろ。特に数学。

電動鼻水吸い機(メルシーポット)を買った。出すのと洗うのが面倒だが、 一日の終わりに洗えばいいやと思えばそれほど問題ではない。 ズルズル鼻が出るタイプの風邪をひいてみないとどれくらい有効かはわからないのだが。

本当幼稚園好きになったなあ。これはこの遠い幼稚園で決まりだろう。

2013年10月02日

「なかぎり」が「な限り」のことであることがわからない、 という意見を二人の方からいただいた。 手を打とう。プログラム側も「な限り」で通るように直すか。 キーワードを増やすのは簡単だからすぐだ。字句解析段で済むからな。

レビューが4つになった。アマゾン外にもいくつか。誉めてくださってうれしい。 うれしいが、あまり誉められると頭がおかしくなる。 批判レビューも欲しい。改善提案とか要望とかは超ありがたいが、 それに匹敵するくらい、心ない感じの批判レビューが欲しい。

というか、単純に前ほど売れてない。だからそもそも話題にならない。 前は発売数日で増刷が決まり、一ヶ月後にもう一度増刷した。 増刷を2回やるまでアマゾンに十分量回らなかったというくらいの 売れ方だった。かなりの間アマゾンで100位台だったからな。 ありゃ完全に会社の力だ。私の力じゃない。 今回は社名を出して売ることをほとんどしていないので、 今回の方が今後の参考になる。 出足が悪くても長期的にダラダラ売れれば目的は果たせるし、 その売れ方が私の目的から行って正しい。10年売り続けてナンボだ。 5年で消えれば失敗である。 そうなるべく尖ったものを書いたが、そうなるかはまだ全くわからない。

「なかぎり」問題に引っかかった人をさらに見つけた。 追記する方向だが、増刷されなければそれまで。

「→」は「みぎ」と書いて変換できれば行ける、とは書いてある。 でもまあ不十分か。半角版の記号をここで紹介しておくべきなんだろう。 だが脚注を足すとレイアウトがズレるので本文中だな。 (半角で->と書いてもいい)、と足すか。しかし悩み所だ。 読者の大半が日本語変換を伴う言葉で書いていくと仮定すれば、 「みぎ」と書いて変換する手間はほぼ問題にならない。 問題になるのは、読者が半角文字主体でプログラムを書く場合だけだ。 しかしそれをやるのは玄人だろう。玄人向けには英語文法手引きを 用意している。メインターゲットに不要な文字列を見せるべきではない。 脚注でやれるならやるが、もはや脚注は足せまい。ここは捨てるべきな 気がする。

参照という言葉の問題。参照という言葉はプログラミング言語用語としてすでに 存在しているので、それを使うのはマズいんじゃないかという指摘。 言われて気づいた。私は参照を日常語としてしか使ってないつもりでいた。 「157p参照」の参照。 Sunaba用に「参照」という言葉を再定義した覚えはない。 「呼ぶ」という専門用語のかわりに使ってはいるが、 「Sunabaでは"関数を呼ぶこと"を"部分プログラムを参照する"と言う」 と定義した覚えはなかったわけだ。 たぶん、ここに違和感を感じる方は玄人だと思う。 素人さんは専門用語だと思わず普通に日常語として読んでくださるだろう。 でも、「聞きかじった程度の素人」 のことを考えると確かに危ないかもしれない。 この指摘はもうちょっと考える価値がある。

フォントかっこわるいとのご指摘。言われてみると確かにそうだな... でもまあ若干のポップ感を出したくてこのフォントなんだろう。 一応「素人さんに怖がられない紙面」を心がけて デザインされてるはずだし。 私が「かっちょいい」と思うデザインにしたら、たぶん売れない。 そこは秀和システムという会社を信頼する。せざるを得ないし、 今のところは問題なさそうに思える。

次の本の目的は、「性能を気にするプログラミングの基本」を 「できるだけたくさんの人に」身につけてもらうことだ。 性能にもいろいろあるのでそのトレードオフを学ばねばならないし、 性能を追求して犠牲になる諸々のことともバランスを取らなくてはならない。 また、「できるだけたくさんの人に」となれば、 極力前提技術レベルは下げたい。 何々を知っていないと読めない、的なことは極力減らす。 玄人向けの本ではないのだから、安くなければならない。 テトリス本よりレベルが上がるのは当然かつ仕方ないとしても、 前の本よりは安くなければならないし、そのレベル向けの相場の範囲に 収めねばならない。

私の客は二種類いる。出版社と読者だ。出版社には商材を売る。 読者にはコンテンツを売る。出版社と客の両方に満足してもらわねばならない。 より重要なのは読者だから、まず出版社に十分な満足を提供する算段をし、 余力を全部読者の満足につっこむ、という流れになる。 単純に内容が良くて売れるものを作ればどちらも満足してくれるのだが、 売ってみるまでわからない要素のケアはしないといけない。 読者は出たものを見て決められるが、出版社は売れそうかどうか という期待で判断するので、多少ズレる。 つまり、モノそのものの前に、まずは期待を提供しないといけない。

アマゾンでアルゴリズムで売れてる本を並べてみると、3000円を超えている本は どれも「怖い本」である。売れているが、 買っている人は怖くても気にしない人であり、 私が相手にする対象ではない。 いや、そういう人達にも読んでもらえたらうれしいし、 読めばきっと得る所があると 私は思っているが、そこは第一ではない。 つうか、それが読める奴はセジウィック読んで、 あとは実際に仕事の中で学べばいい。 アルゴリズムそのものに関してはあれ以上のものを私は知らん。 したがって、私はセジウィックを読めない人、読む気にならない人に セジウィックを読むためのスキルと、読む動機を与えられればそれで良い。 さて税込3000円は死守ラインであり、それでも相場からすれば高目だ。 税込2500円に落としたい。税込2000円はコスト的に厳しすぎるので、 一応2500円をラインとする。出版社がその値段をつける気になるような 物として提示しないといけない。 具体的に言えば、初心者向けにしない限りその値段はつかない。

高くても買う人達向けと営業の人に思われてしまえば、高くされてしまう。 出版社は利益を最大化する動機があるのでこれは当然である。 前の本は「税込3000円がいいです」とお願いしていたが、 税込5000円近くになった。 もちろんこれは、高くても売れそうだから、というだけでなく、 紙代や印刷代、倉庫代などの「本のデカさに比例するコスト」を私が理解せず、 アホみたいに分厚い本を作ったことの結果でもある。あれは私が悪い。 もっともあの分厚さによって本気度を伝えて話題になったという側面もあるので 失敗とは言い切れないのだが。 ともかく、出版社が価格をつけるロジックを理解し、 また、できるだけコミュニケーションを取って一緒に本を企画していかなくてはならない。 でないと、「本出来ました」「じゃあ題名と値段決めて売ります」 で終わりになってしまう。 もっとも出版社側としては、本が完成する前にあまりコストをかけると、 著者が途中で放り出した時に損害を負う。 そして現実に多くの著者は著しく遅延したり放り出したりしている。 だから、私はそれとは違うということを示さねばならない。 出版社側に、早くから一緒に考えて本を作ることが得になる人間であるという 印象を持ってもらう必要がある。 結局、真面目に働いて信用を高めることはいつでも大切だということだ。

税込2500円(2270円以下)にするための物理的な制約は何か。 まず、小さい本であること。 紙代印刷代が高くついては値段を下げようがない。 情報重量密度の高いA5が良い。今回と同じレベルに売り、 同じ数が見込めるなら500ページで1800円をつけてもらえることはわかった。 単純に原価率だけで言えば700ページくらいまでは耐えそうだが、 ページが増えること自体で上級者向けにシフトするわけで、 原価以上に価格が上がる可能性が高い。ページ数は気を使った方が良かろう。 500ページに収まれば良し、収まらないならよほどの理由がいるし、 zip内のpdfに飛ばすなどして印刷する ページ数を落とす工夫は存分にやる必要がある。 暑くなってもいいやと思っていたが、改める。500ページをまずは想定する。

で、私がやろうとしてることをやってる本がすでにないか調べる必要がある。 メモリ管理に関する本は調べた限りない。 メモリ管理本として売ることの利点はそこだが、 私は別にmallocの作り方を説明したいわけではない。メモリ管理の本となれば 値段が上がることは避け難く、本当に届けたいレベルの人は避けるだろう。 アルゴリズムに関する本で印象がやわらかい本がいくつかあるので、 本屋に行って見てこよう。編集さんにも意見を聞こう。 きっと知ってるだろうし。

アルゴリズムとデータ構造と言う。 この二つを分けて話をする意味が私にはよくわからん。 また、配列がリストよりも原始的なデータ構造である、ということが 絶対の前提と思われている気がするが、そんなこともない。 生身で漫画本をソートする時の計算量は、挿入ソートであってもNlogN以下だ。 これは現実世界において一定以下の量の漫画本が 「二分検索可能な線形リスト」あるいは「複数要素をまとめてずらせる配列」 をなしているからである。 30冊くらいならそのどこにでもはさめるわけで、 配列ベースの挿入ソートで必要な 内側のずらしループが消えるのだ。生身の感覚から出発するのであれば、 「番号でアクセスする配列」がすでにして不自然なデータ構造なのである。 「アルゴリズムを、はじめよう」はデータ構造の話をしないことで わかりやすくしたらしい。なるほどこれはこれでいい。しかし、 根本的に、「それ何に使うの?」が 抜けた状態でわかりやすさをなんぼ追求しても、 結局読む気にならなくて終わりなんじゃね?そもそも読者は何をしたいの?

フローチャートはわかりやすいのだろうか。 わかりやすい人がいるのは間違いない。

言語Cでいいのかもしれんなあ。 でもそうするとほとんどあらゆる関数で引数が一個増える。 そしてprintfという素人には著しく使いにくい関数が そこら中に出てくることになる。 しかしメンバ変数なんてグローバル変数と一緒なわけで、 このレベルならメンバ関数を使わない方がいいんじゃね?という疑念はあるな... そうすれば、引数でもらったものしかいじらないことがはっきりする。 そうすればconstがなくてもさほど困らない。

オタマが風邪でがっつり昼寝をした。そのせいで夜全く寝ない。 シノンは仮に寝ても1時間かそこらで起きて乳を要求するため、 とにかくシノンが泣かないようにしつつ、オタマをまず寝かせる、 というのが普段の基本戦略である。シノンがオタマを起こすことはまずない。 オタマが寝ている状況であれば、乳にせよウンチにせよ 早々に対処できるので泣くところまでは行かないのだ。 だが、オタマはシノンを起こしまくる。だから、 とにかくオタマを寝かす他なく、それまでは シノンを私がだっこするなりして静めねばならない。 今日は日が変わるくらいまでかかった。 加えて、オタマが寝たあたりでひつじこも寝てしまい、 シノンを渡せなくなった。シノンも今日はなかなか寝てくれず、 ずっとだっこである。

シノンの泣く理由リスト。乳。ウンチ。ゲップ。だっこ。 乳を欲しがっているかどうかは、私がだっこした時に 上腕を吸おうとするかどうかでほぼ判別できるし、 飲ませてからどれだけ経ったかでもおおよそわかる。 ウンチは、出てしまって気持ちが悪くて泣くよりも、 出したいがうまく出ず泣くケースの方が多い。 ちょっと出たかな、というくらいで開けて尻を拭くと、 その刺激でドバッと出る。数十センチは飛ぶ威力なので、 かなり注意せねばならない。ゲップは厄介だが、 飲んだ直後に泣く場合は大抵これなので間違えることは少ない。 ただ、縦にだっこして背中を叩いてもそう簡単にゲップが出るとは 限らず、一緒に吐いてしまうことも多い。 そしてこれらのどれでもない場合はだっこ要求と考えられる。 これが厄介だ。

部屋がいくつかあって、音があまり届かないのであれば、 私とオタマ、ひつじことシノン、のペアが別の部屋で寝るようにすることで かなり難易度は下がるだろう。 どちらかが起きて泣けばもう片方も確実に起きる、 というのが今のしんどさの原因だからだ。 しかし、うちはそんな金持ちではない。 それに、昼間私がオタマを遊ばせたりする関係で、 仕事の本番は夜だ。オタマが寝てからが勝負であり、 そもそもペアで寝るという策は取れない。

2013年10月01日

レビューが3つになった。

ひつじこの誕生月間だ。去年はちょうどケンカ気味で 大したことはしていないのだが、 今年は多少のお祝いをできるといいなあと思う。

今回の本を誉めてくださる方がちらほらいる。 売れるといいなあ。 あと、叩く人募集中。 叩かれないと客観視できない。 今後の進路を決める上でも、今叩かれておくことは有益だ。 ってここに書いたから叩いてくれるものでもなかろうが。

ヤマト25まで見た。デスラーがショボすぎる。 古いのの記憶はあまりないが、 相当おかしかった気がするわけで、 それに比べればいろいろと整合性が取れていて、演出もいい気がする。 しかしなんか感動するという所には至らない。 単に私が老いたということなのだろうか。

進撃の巨人24話まで見た。良く出来てるなあ。 問題は原作がこのアニメの出来に見合うだけの 展開をこの先用意できるのかだな。 気になるので漫画を追いかけるか。

次の本のコンセプトが決まらない。500ページ書いておいてなんだが、 まあそういう予備調査的な作業はいつもあるものだ。 これが丸々無駄になっても驚かない。

目的はなんだ?それを果たすために絶対に必要な条件はなんだ? また、このプロジェクトというかビジネスというかを 実行し、継続するための条件はなんだ? このビジネスを私がやる意味はなんだ? 私以外にはやれないのか? 客に同じ満足を与える他者の商品は何だ?つまり競合は何だ? まあそのくらいになってくると枝葉末節なので、 何よりも目的と、それに直結して必要な条件をまず考えねばならん。 ドラッカー一冊読み直すか。瞑想みたいなもんだ。


もどる