だだもれ

2013年05月31日

法なんて現実に合わせてなんぼでも変わるんだから、 表現の自由とか言う前に人に嫌われない努力をしておけば良かったんだろう。 ワラジムシはワラジムシらしく地底にいればいい。 太陽の下で権利を主張しようとすれば、規制されもするだろう。 太陽の下の人達もワラジムシをいちいち掘り出して殺そうとはしないものだ。

ゲームやアニメならまだ脱ワラジムシを試みることもできるだろうが、 エロや暴力は無理だと思うなあ。

昨日はオタマを六郷幼稚園に連れて行った。いきなり親と離す方針で、 「親はこっそり出てけ」と言う。すごい罪悪感に駆られつつこっそり出て、 2時間ドキドキしていたわけだが、 迎えに行ったらあっさりしたものだった。 何かにつけて、「でもとーちゃん、帰ってこなかったのねー」とか言われたので、 その度にあやまっていたが。

しかし、今日はひつじこにべったり。座ってだっこを要求して激泣き。 昨日のだましうちの影響がないとも言えない。 単に体調が悪いだけかもしれないが。やっぱりおやつ食うと調子狂うよなあ。 幼児が20人もいれば風邪っぴきがいるはずで、当然もらってきたりもするだろうし。 健康上のことから言えば保育園や幼稚園は害としか言いようがない。 親に余力があってちゃんと遊ばせられるなら、そんなもんはいらんのだろう。 私は幼稚園は親が楽をするためのサービスだとしか思っていない。

私も夜中チョコレート食べたら猛烈に眠くなって2時から5時くらいまで机の 上で落ちていた。糖質40gであれだ。 たぶん、糖質制限をしていると解糖系が鈍るんだろう。 その結果、たまに入ってくると血糖値の変動が 激しくなって変調を来すのではないかと思われる。 オタマはこれから澱粉で満ちた世界に入っていくわけだから、 できれば早いうちに澱粉耐性をつけてほしい。 しかし今は食えば湿疹が出る。 どうにか5歳くらいまでに、毎日100g澱粉を食っても耐えられる体になってくれると いいのだが。

マカダミアナッツは酸化が速い。皿に出しておくと数時間で黄色くなる。 なるほど1kg袋がないわけだ。まったく贅沢な代物である。 まあ今は仕方ない。これならオタマも結構食べる。

幼稚園待ちの間六郷図書館で仕事をしようと思ったが、 凄まじく設備が古くて辛い。しかも入口が3階で階段を登るのがかったるい。 そして3階には座れる場所が2席しかなく、 4階に登ってもコンピュータをいじっていい椅子は2つしかない。それも窓際で暑い。 そもそも空調がない。 つうか、「パソコン席以外でパソコンを使わないでください」って意味がわからない。 5階には立派な勉強室があって、何十も席があるのだ。 なぜそこでコンピュータを使ってはいけないのかまるでわからない。 職員に理由を聞いても無駄なんだろうしなあ。

六郷幼稚園はとにかく遠く、自転車で15分以上かかる。私でそうだ。 ひつじこは当分無理である。 だが、一回入園してしまえば、バスが来る。 ひつじこ的には六郷が一番マシに見えるとのことなので、できればここに入れたい。 そうなると、毎週二回あるプレ幼稚園の送迎は私がやるしかない。 まあ、がんばろう。仕事の都合上どうしてもだめな日は休ませるだけのことだ。

本当社会人としてはダメだな...まあ、今は仕方ない。 結婚するまではアホみたいに働いてたんだし、多少は許してもらう他ないな。

Unityが全然うらやましく見えない。ロード時間ごときで そんな苦労せなアカン段階で嫌だけどなあ。 要するに、もうプログラマになっちゃって、それなりに自分で書ける気がしてる人間には 不要な代物なんだろう。自分一人で作るわけでないなら話も違ってくるが、 でも規模が大きくなるほどUnityの優位性も薄れるわけで、微妙。 もっとも、いずれロード時間がどうでも良くなるくらいマシンが速くなれば、 その時は本当に私のような人間はお役御免となるわけで、 今からUnityに行っておいた方が賢い選択ではある。

まあだから教育に逃げてるんだけどな。モノを直接作る立場から外れる気はないが、 そこだけに軸足を置くのは危険すぎる。

でも、今は完全に外れてるよね...さっさと本終わらせて現場に戻らないとマズい。

サウンドと物理シミュレーションも本にしたいのだが。 どちらもちゃんと勉強したい。 私はもう開き直っていて、本を書くのは私が勉強するためだ。 本来なら本は専門家が書くべきものだが、 専門家が書くからああなるという現実は確かにある。 書き始めた時には何もできてない人間が書く方が、問題がはっきりしやすい。 もちろん、本を書いてる間に実用レベルのものが作れるところまで上達する、 ということが前提としてあるわけだが、 私は楽天的なのでそこは疑ってない。やればできるだろう。 別に一流になろうってわけじゃない。その要素がさして重要でないような製品に とりあえず組み込める程度でいいのだ。中身が完全に把握でき、 安定して運用できることが重要で、性能はそこそこでいい。 malloc本も完全にそれである。 でも次は本当にCGだな...やらないといけない理由ができた。

私、すごい本書いてるんじゃないか?とか読み直しながらしょっちゅう思うわけだが、 次の日には「こんなの誰が買うんだよ」とどうしようもなくへこんだりもして、 よくわからない。

見たことがない、ということは言える。 しかし、見たことがないということは、この路線に目がないからだとも言える。 需要があるものは供給されるものだ。需要があって供給されていないものを 見つけるというのは一部の極めて優れた人間にだけ許される事であって、 それこそジョブズみたいな人間がやることである。私じゃないだろ。 そういうこともあって、正直私は需要があるかどうかはあんまり考えてない。 私が必要だと思うものを、私が書きたいように書く。 そりゃ企画通すにあたってはいろいろと美辞麗句を並べるし、 それを信じていないわけではないが、 根本的に需要なんてものは読めないわけで、全ての商売は程度の差こそあれ賭けなのだ。 私にとってこの賭けは私の人生の何割かを賭けた結構大きなものなのだが、 そのわりには周到さがない。周到だったら書けんだろうし、 これでいいんだろうが。

それにしても久しぶりに読み直すと文章おかしいところがいくらでも見つかるな。 敢えてあまり読まないようにしておいて良かった。 校正が来るまでmalloc本を進めよう。こっちは文章書くよりコード書く方が時間が かかるくらいに書くのが簡単だ。

乱数で適当に散らす二分ヒープが案外速く、最適に詰める場合と大差ない。 O2つけると30%くらい差がつくが、コードと理屈のややこしさを考えると お得とは言い難いな。

2013年05月29日

二分ヒープが速い。感動だ。乱数で散らす適当実装ですらすごく速い。

ディスクを3枚入れた2.5HDDが出てきたが、それって密度向上が止まってる ってことだろうか。

正直断片化のことがよくわかってない。 ある確保パターンを複数のアルゴリズムでやった時に、 その時点での確保余力が変わってくるのは事実だ。 しかし、アルゴリズムが断片化に強いというのは、どう定義できるんだろうか。 確保パターン空間なるものを考えた時に、 それぞれのパターンでの確保余力を何らかの基準で統合して一つの評価値を作り、 それが優れていることが「断片化に強い」ということだろう。 しかし全てのパターンは試せないし、 あるパターンが他のパターンよりも重要であることもある。 「断片化に強い」は客観的に言えることじゃない気がするな。 そういうアルゴリズムが裏目に出る局面がないとは言えないのではないのか。 それとも、あらゆる局面で確保余力が大きくなるようなアルゴリズムがあるのか。 まあこれからいろいろ試していけばわかるだろう。

2013年05月28日

七五三って何なの?と思ってwikipedia。由来と意図はわかった。 しかし私にとっての現実と、その由来はほとんど関係がない。 とりあえず、3及び7歳の11/15に神社に行くらしい。

うん。よくわからん。この手のことに関して私の考えは役に立たん。 ただ、11月の行事なんだし、せめて10月になってから考えればいいだろう。 それまでは出産その他に集中した方がいい。ただでも大変なんだから。

おむつ問題。時期を逸したのは間違いない。しかし今更焦っても仕方ない。 なにせオタマは気合が入った子だ。嫌なものは全力で抵抗する。 ひつじこの体調が良ければまだどうにかなるんだろうが、 ひつじこはオタマと遊ぶのに手を抜かないのですぐ疲弊して何もできなくなる。 手を抜けと言っても性格的に無理となると、 どうにか私がオタマを外に連れ出して休ませるしかない。 最低限朝は私が連れ出さんとダメだなあ。 しかし萩中公園の施設は9時からで、9時なんてこれからの季節暑いし日差しも強い。 萩中は使えないと見るべきだ。どこか他の遊び場を探さないと。 でもオタマは何かと文化的な遊びを好むので、 公園の遊具はイマイチだし、ボールもそれほど盛り上がらない。 私がそうだったからその気持ちはわかるんだが、 家の中ではひつじこを休ませられん。 そして朝7時とかに外出したら当然屋内施設は使えない。 さてどうしたものかな。

いかん4時だ。帰ろう。おとついとか昨日は途中寝落ちしてたので 朝6時まで起きていたといっても睡眠時間が多少はあったが、 今日はちゃんと起きて仕事をしての4時だ。 まあ最後の1時間は七五三とトイレトレーニングの調べ物なんだが。 これで8時に起きてオタマを連れ出すのか。そしてそのまま丸一日仕事をして、 また夜中に朝まで働くと。 なんつうか、無茶だよなあ。せめて朝までの数時間の睡眠の質を上げたいわけだが、 打てる手もない。まあいい。この調子でとにかく本を4冊書いてしまう。 途中で止められるかもしれんが、それはそれでいい。その覚悟で行く。

2013年05月27日

線形リストベースのアロケータをいろいろと試して、 案外性能が悪くないことを発見して面白かった。 よほど枯渇してこない限り、たまに空きリストをなめて遅くなっても すぐ大きな領域が前の方にきて速くなる。 断片化のことはあるが、それを気にしない用途においては 実装の簡単さと動きの読みやすさから言ってそう悪くないんじゃないかと思う。

実はスタックの奴を複数賢く使い分けるのが一番いい気はしてるんだがな。 普段多少面倒でも、そうやってコストを払っておけば、 開発終盤でメモリ関連で爆発するリスクはほとんどなくなる。 予期せぬ断片化が絶対に起こらないというのはものすごい安心感なのである。 しかし大抵の場合、「開発序盤にそんな面倒なことしたくない。 ゲームを確立するのが先だ」という話になってコードは恐ろしく適当な状態になる。 そして結局ゲームが確立する日なんて来ないまま量産を始めてどんどん規模が 膨れ上がるのだ。そして客に出す日が近づいてきてはたと気づくのである。 メモリが足りない。速度が足りない。安定しない。

災厄が訪れた時のコストを正しく把握すること。災厄が訪れる確率を正しく見積ること。 保険料を極力安くすること。この3点だろう。 「後でヤバいよそれ」と言われた時に、どれくらいヤバいのかを見積れないと 保険を買う気になれない。「後でヤバいよそれ」と言われた時に、 そうなる確率は低いと思えば保険は買わない。 保険料が高いと、保険は買わない。 保険をどうやって買わせるかと全く同じ問題だ。

どう二分ヒープを導入するか。 いきなり「二分ヒープというデータ構造があって、最大がO(1)で取れます」 とか言いたくない。ウソでいいから読者に二分ヒープを発明する体験を与えたい。 そのためにはストーリーが必要だ。発明する筋書を書く必要がある。 この道の先達はプラトンだろう。奴隷の子に幾何学の問題を解かせるシーンがあって、 あれがたまらなかった。 「いや、おまえそれヒントってレベルじゃねえよ」 とツッコみたくなるのは確かだが、それでもあのコンセプト自体は素晴らしい。 ウソでもいいから、「こう考えればあれが発明できる」というプロセスを 見せないと、結局記憶も固着しないし、応用もできないのだ。

まあ、そう思ってるのは私だけな気もするけどな。 でなかったら、そういうコンセプトの本が世界に満ち満ちているはずだ。

malloc本、超楽しい。生メモリをガリガリいじってデータ構造を作り上げる コードを書くのが楽しい。アルゴリズムが楽しい。 アルゴリズムが必要になるストーリーを考えるのが楽しい。 アルゴリズムを思いつく筋書を練るのが楽しい。 作ったものの速度を測るのが楽しい。 作ったものの弱点を突くようなテストを考えるのが楽しい。 5章のスタックはメモリをガリガリいじるプログラムの書き方を説明するのが 楽しい章だ。読者の大半なことな原始的なプログラムは書いたことがないだろう。 そして、こんな馬鹿げた方法が案外使えるということを 現場の経験を交えて話すのが面白い。 6章の線形リストの醍醐味は、ちょっとしたひらめきでメモリ効率が改善する驚きと、 単純なようでいて案外動いてしまう驚き、 そしてそれの裏をかくテストをどう作り上げるかというとんちの楽しみにある。 7章の二分ヒープ導入の醍醐味は、 「最初が最大であることが保証されたリストが欲しい」 という要求から始まって、いかにして二分ヒープという素晴らしい データ構造を思いつくに至るか、というストーリーにある。 正直、凄まじくおもろい。まあ、書いてておもろいだけで、 読んでおもろいかどうかは知らん。

テトリス本は本当に苦行だった。今でも苦行だ。まだ終わらん。 しかし、大切なのはテトリス本の方だ。malloc本は、正直これが読める人間なら 自力でこの本に書かれたことを身につけられるはずで、 できる人間向けの娯楽にすぎない。 まあもちろん新しい視点は提供できるだろうし、 いろんなアルゴリズムをストーリーの中に位置付けて理解できるはずだから、 有益なものになるだろう。そう思うから書いている。 しかし、それでもなお 「まともなプログラマが掃いて捨てるほどいる世界を作る」 という私の遠大な目標への貢献度で言えば雲泥の差がある。

なお、もう一冊CG本を予定していて、レイトレから始めて理屈を理解し、 それをGLES2世代のGPUに落としこんでそれなりなものを作る、 というストーリーにするつもりでいる。 しかしこっちはmalloc本よりもさらに重要度が劣る。 つうかそもそもCGって狭すぎるだろ。ゲーム屋にしか売れないじゃん。 何をどうやっても5000部しか出ないとしたら、 書く意味は私の勉強以外にはあまりない。利益も出ないだろうし。 むしろ数値計算本とか物理シミュ本とかの方がまだマシな気もするが、 今度は私の数学力がついてこないので売れる水準に至るかがわからん。 でもまあ、ここ10年断続的に取り組んできたCGというネタに 自分なりのけじめをつけるためにも、やっておきたいところではある。 cedecその他で五反田さんとか川瀬さんの話を聞く度に 自分が本質を理解していないことをまざまざと思い知るのだ。 しかし本質を理解してないのは私だけではない。 私だけならよかったんだがな。

なんつうか、覚悟が決まった。止められない限り本書く。

岡田英弘の本がおもろいので何冊か読んでいる。 ネトウヨって言うんだろうな今なら。 中国人と韓国人を悪く言いすぎだろこの人。まあ、左翼が支配的だった時代に ずっとネトウヨをやっていた、というのを考えればわかるんだが。

資料があっても書いた人間の立場とか目的を考えたら鵜呑みにはできない、 という当たり前のことが新鮮だったし、 日本の建国が700年かそこらでそれより前のことは捏造じゃね?と言っていたり するのも面白いし、清も元も中国を植民地にしてただけで中国じゃねえよ、 と言ってたりするのも面白い。 今までどうにも中国の歴史に興味が湧かなかったが、 こういうふうに語られると面白く読める。 にしても、中国語ってそんなに不便なんだろうか。 中国の人は否定するよなあきっと。 今はきっとみんな北京語わかるんだろうし。

700年より前の日本は昔のイタリアみたいなもんだったんだろうな。 紀元前のイタリアにはギリシャ人の植民都市が多くあり、 またローマを含めた土着民は多数バラバラに国を作っていた。 それと同じで日本にも中国人の植民都市が多くあり、 土着民の国もバラバラにあったわけだ。 天皇家が土着民の国だったか中国人の国だったかも もはやわからないんだろうな。 歴史の教科書には渡来人とか書かれてて、日本人の中に外国人がちらほらいるような イメージだったが、こうなると話が根本的に違ってくる。 ちょうど700年ごろに中国が朝鮮を侵略して日本も大陸から撤退し、 「ヤベエ、中国人が攻めてくるぞ!団結しないと!」と いうことで、天皇家の国をコアとして寄り集まってできたのが日本という国なのだ、 という話である。 ローマ史並にその頃の資料が残ってれば良かったのにと思うが、ないものは仕方ない。 もしあったら、奈良vs京都とか、大阪vs神戸みたいな戦国時代だったんだろう。 神戸の中国人国家と戦争だ!みたいな。 当時の天皇家を織田家みたいなもんだと思って想像すると、かなり熱い。 残ってないのが惜しいなあ。たぶん日本書紀にそういう時代の断片は見えるんだろうが。 荒山先生あたりにそのあたりの古代戦国時代ものを妄想で書いてほしいものである。

二分ヒープは、「先頭を二列で共有する」という考え方をつきつめたものだ。 そういうストーリーにすると素直に理解できる。 そして、最初は完全二分ヒープは難しいので、 乱数を使ったアルゴリズムとして導入すると楽だ。 それでもそれなりな性能にはなる。

難しいことを考える気力が尽きたので、今日は26時でmalloc本作業は終了。 本来の仕事に戻る。もう107ページも書いたのか。説明めちゃくちゃ はしょってるんだがな。 しかし二分ヒープが出てくる7章は前半の山場で、 ここで一応実用になるものが完成する。そこまでに100ページしか書いてないと 考えると明らかに説明が足りない。もっとも、図がアホみたいに足されるので 相当増えるのは間違いないが。

27時。頂いたご意見に対応。そろそろ自分でちゃんと読み直さないとダメだな。 でもまあ、編集さんからの指摘を待とう。それまではmalloc本をどんどん進める。 そろそろ寝よう。

2013年05月26日

レベルが上がるとか難易度が下がるとかいうのを金で買えることが悪いとは言わない。 しかしゲームに時間と知力をつっこんでいることを侮辱されたようには感じる。 他人に「ゲームとかやっててバカじゃねえの?」と言われるのはかまわんが、 作った人間に言われているように感じるのはきついな。 でもまあ、たぶん実際に買ってやったら気にしないだろう。 そもそも携帯機のロープレの類であればネットにはつながんだろう。 つなげる場所で遊ばないだろうし。

任天堂のIR資料とか見て思ったが、 かっけえなあ。ああいう人の下で仕事するってどんなだろと思う。

オタマの体重は17.65kg。前に量った時増えてないなあと思ったが、 あれは間違いっぽい。もういけるだろと思って一人で体重計に乗せたが、 20kg未満だとあまり正確に出ないようだ。 一人で乗せると15.5kgくらいになる。 以前と同じように、私がだっこして乗って差で出した。 というわけで、100人中1位か2位になるくらいの体重。 身長も伸びてると思うんだが測定が難しく、98cmくらいか?ということしか言えない。

糖質制限でもちゃんと大きくなるように見える。 アトピーとか言ってる人は1ヶ月くらい試してみてはどうだろう。 米と麦と芋と果物をやめてしまう。肉!卵!魚!乳! オタマはそれで劇的に改善した。改善というより、直ったと言った方が近い。 まだ顔の皮膚が薄いので半年くらいは油断しないようにしたいが、 しかしもう治癒後3ヶ月くらいは経っているので2、3層はできている。 ちょっとやそっとでは壊れない。 腋の近くに弱いところがあって、幼稚園で煎餅を食ったりすると ポツンと出てかゆくなるのだが、これに関してはやむを得ないとして許容している。 出たらキンダベート。運悪く掻いてしまったらハイドロコロイド2日。

今日はひつじこが疲れ果てていたので、 午前中から連れ出して河原。しかし自転車を降りたがらず「かわさきいく!」 と言うので、川崎へ。しかし冷凍ブルーベリーの在庫は山ほどあるので用事はない。 とりあえずあてもないのでカルディ川崎店。 せっかくなのでダージリン茶とピーナツバター、炭酸ミネラル水を買う。 時間を稼ぐべきだと思ったので、ヨドバシの隣の駐輪場に自転車を置いて、 ルフロンへ。8階にタダでいられる子供の遊び場があるのでそこへ行った。 飛ぶは転がるわで大興奮。クッションがしきつめてあるのでやりたい放題なのだ。 三角のクッションを投げて遊んだり、丸い椅子状の何かを転がしたりした。 オタマに三角クッションを投げると、「ああっ」とか言って倒れる。 キャッチして遊ぶよりも、ぶつけられて転んでしまう演技をするのに燃えるらしい。

このままとがった成長をしてほしい。 公正であり続ける勇気と自信があれば、 半分くらいの人間には一目置かれるだろうし、 深くつきあえる人間も出てくるだろう。 今のところはそうとしか言えない。 まあ私はできるだけのことはするが、しかし所詮はオタマの人生だ。

私は「自分がした苦労はさせたくない」などとは全く思わない。 そう思う人間は自分の人生を肯定できていないのではないのか。 子供を使って今更自分の人生を肯定できるものにしよう、 なんて思うのは虫が良すぎる。

オタマが大きくなる前にオタマが通りそうな道の掃除くらいはするけどな。 私が持っているスキルはオタマに伝えやすい形に整理するし、 自分自身のスキルも高めておきたい。 プログラミングは一番簡単なので手始めにやる。 今書いている本はその一環だ。 いずれは数学や物理、化学、体の用法、料理あたりについてもまとめたい。 これらはプロではないので本を書いても出版はできんな。 電子書籍をepubで作ってwebに置いときゃいいだろ。 もちろん、オタマが私と関係ない道を行くならそれはそれでいい。 それでも一緒に勉強できることはたくさんあるだろう。 まあ芝居をやる、とか言われるとさすがにきついが。

2013年05月24日

なんか出世してる同期と話した。いろいろ刺激を受けたが、 いずれにせよ本を片づけねばならないし、 今のところ本を書くのが一番貢献になる気がするのでそうする。 あと、いろんな所に授業行きたい。 呼んでもらえたら、たぶん行けると思う。 でもまあ、本が出て絶賛の嵐が吹き荒れてからの話だな。 そうならなければそっちの路線は消える。 大人しく現場でデスマーチに参加しよう。 あれはあれで楽しいし、そこでも貢献はできると思う。 というか、その方がこの会社のもうけには貢献できるだろう。

malloc本6章の途中。双方向線形リストによる実装。 いわゆるK&Rなんだろうが、K&Rなんてもう何年も 見てないからこんなのかどうかは知らない。いちいち見なくてもいいだろう。 線形リストの単純探索は本当遅いなあ。 明日中に6章と7章くらいまではどうにかしたい。 7章は優先度付きキュー。これが入るとようやく実用になる。

2013年05月23日

つまり糖質制限しろってことじゃないのか。 血に糖を入れなければインスリンが出ようが出まいが関係ない気がするのだが。 まあそのへんはwebで見かける糖質制限人を良く観察していよう。

実家で糖質食いまくったら調子が悪くなった。 しかし以前は当然のように糖質を食っていたわけで、 今更調子が悪くなるというのはおかしい。 これにはいくつかの解釈がありうる。 一つは、昔も調子が悪くなっていたのだがそれが当たり前で気づかなかった、 という解釈。 もう一つは、糖質を食わないでいる間に健康を損ねており、 久しぶりに糖質を取ったことによるショック、 あるいは単純な移動の疲れで体調が悪くなっている、という解釈。 また別の解釈としては、糖質を食わないことで健康にはなっているのだが、 それはそれとして糖質への耐性が減じている、というものもある。 そういうわけで、「だから糖質はダメなんだよ」と単純に考えてはいけない。 自分にとって都合のいい解釈だけをしてはいけないということである。

でも、この胃に物が入ったままになる不快な感覚は前からあった。 あと今となっては異常に感じられる空腹感と、眠気。 これらがないだけでもマシだ。

さて、これから数日糖質を断って体調がどうなるか観察しよう。 とりあえず、この微妙な頭痛と、目の疲れ、それから胃の不快感だな。 この三つの症状について見る。

糖質。うな重、おはぎ、くず餅、砂糖多いヨーグルト、メロン。 田舎は糖質で満ち満ちている。 あと、福島行く前だが、すごく気になって正麺を買って食べてみた、というのもあるか。 あれも調子が悪くなった。しかも、大してうまくない。というか、何かゴム臭かったぞ。 塩がダメだったのか。

犬はキシリトールでインスリンが出て低血糖に陥るらしい。 アセスルファムKとかどうなんだろう。 人でもインスリン出そうなもんだがなあ。

福島に行く日の朝、オタマがPCにゲロを吐いた。 時間がなかったのでとりあえず拭ったが、 帰ってきていじってみたらトラックポイントが動かない。 ひつじこによればどうもゲロ直後から動かなかったようだ。 仕方ないのでlenovoに修理依頼。拡張保証なのでタダだ。 十分元は取っている。

X220の保証期限はまだ2年以上残っている。その間は更新しなくていいかもなあ。 タッチパネル付きのいい機種が出れば別だが。

X201sはスリープから起きる度にほぼ確実に青画面になる。 さすがにマズくないかこれは。 でも、スリープしなければ死なないのだから、まだいいか。 起動も速いし。

AMDの新型が発表。で、マザーボードはいつかな。

株価がすごく落ちている。この上げ下げの速さを見ていると、 やはり日本に偏った資産構成はいかんなあと思うわけだ。 それにしても何があったんだろうか。とりあえず国債の金利は上がっている。

2013年05月20日

スタック式アロケータの章を書いているが、 この程度でもそれなりに説明は難しい。 まず、生メモリに無理矢理データを埋めるということ自体に慣れてもらわねばならぬ。 void*をunsigned char*にstatic_castしてintから取り出したバイトを書き込む、 みたいなことをそもそもしてないよな普通のプログラマは。

これ、アルゴリズムの本というより、メモリに肉薄したプログラミングを 学ぶ本なんじゃなかろうか。だとすると対象狭いなあ。 ダメかも。まあ売れるものにならないならないで、使い道はある。

もしかしてこれ、序盤ではint*を返したらいいんじゃね? そうすれば一つ気を使うことが減るぞ。 1バイト32bit、みたいな感じならいろんなことが簡単になる。 と思ったが、ポインタが64bitとか言い出すと嫌なことになる。 C++である以上そういうケースを完全無視というわけにも行かない。 結局バイト単位でやる他ないか。

intをcharにキャストしたらどうなるか。 Cの仕様を調べた感じ、 サイズが小さくなる場合で両方とも符号付きだと、 値が収まればそのままだが、収まらなければ処理系依存、 と書いてあるサイトがある。え、それ、マズくないか? intをバラして1バイトづつcharに書きこむ時、 intをバラした結果が200だったとしたらどうなるか。 収まらないんだから処理系依存ということになる。 下位ビットをそのまま入れてくれればいいわけだが、 負の数をどう表現するかがCPU依存、ということもありうるわけだ。 つまり、ビットとしては同じになっても、 それがいくつなのかは依存性がありうる、ということなんだろう。 大人しくunsigned charで書きこめということだなこれは。

明日から会社休んで祖母にオタマを見せてくる。連休。

今年中に本を3冊くらい完成させたいが、 最初に出るはずの初心者本が盛大に爆死したら立ち直れないかもしれない。 また、普通に仕事が入って中断する可能性も高い。 というか、そうならない方がヤバいだろ普通に考えて。 なんなんだろうこの不安定な立場は。 まあ、このmalloc本が無事片づくようなら、 今度こそ真面目にCGの勉強をしよう。 とか言ってるうちに初心者本が馬鹿売れして、 続編のオブジェクト指向編を出せ、と言われる理想の展開を希望。

2013年05月19日

やっぱり自分で説明通りにプログラムを書けるかチェックしないとダメだ。 ありがたいことに協力してくださる方が現れたわけだが、 自分でやってりゃ人に手間かけさせることもないようなことを指摘して くださっている。つうか、まだ校正の段階じゃないんだよこれ。 内容を見るべき段階だ。 漫画で言えばネームチェックが必要な段階である。 しかし、どうもこの手の出版では出版社側はそういうチェックはしないっぽいし、 そもそもそこを人に任せようというのがダメなのだ。

こうなると絵を自分で描かないのはプラスだ。 時間をそっちに振れる。

献本という文化があるらしい。 妻に捧げるとか、恩師に捧げる、 とかいうのならまあいいが、 影響力の強い人を選んで会ったこともないのにいきなり送りつけるなんて、 どう考えたって売名目的でしかないわけで、 ウザがられて終わりだろ普通、としか思えなかった。 私なんてどこの馬の骨とも知れないゲーム屋のプログラマにすぎんし、 CEDECで新技術の講演とかする人達に比べれば私の技術力はゴミ同然である。 できるかそんなこと。そう思っていた。 しかし、もらう側の人にとってもメリットがあるのであれば、 お互いに利益がある行為として成立しうる、ということに今日気づいた。 今の世界にはアフィリエイトというものがあるのである。 本をもらって読んで、書評を書くことでアフィリエイト収入が得られるならば、 双方にプラスとなりうる。 これは一種の商取引であり、そう考えてみればちゃんと真剣勝負である。 本を書く側は半端なものを書けない。下手なものを書いて酷評されれば 大変なダメージを負う。その覚悟を持って本気で書くのであれば、 有名な人に本を送って宣伝してもらえることを期待する、 というのは案外悪くないのではなかろうか。誰も損してない。

みたいなことを、有名な人から@つきツイートをいただいて考えた。 しかし、全ては本が本当に出版され、 しかもそれが優れていなければ始まらない。

ガベージコレクションの本は結構売れたらしいが、 正直それと比べられても困る。そういう本気で技術を語れる人に対しては、 私は劣等感しかない。2chにさんざん書かれている通り、 私は技術においてそう優れているわけではない。 まあ正直劣っているつもりもないのだが、私は技術で勝負することを自分に禁じている。 だから、そもそも技術力の土俵に乗らない。 「必要条件を満たす以上に高度な技術は害」というのが私のここ数年の信条であり、 要求を満たす技術の中で最も単純で原始的で 実装が容易く運用コストが低いものを私は選ぶ。

私が考えているのは、並のプログラマが、 とりあえず使えなくもないがとても優れているとは言えない程度の メモリアロケータをゼロから自力で作り上げ、 隅から隅まで理解して得意も不得意も知りつくした状態で使える状態になる、 というだけの内容だ。 正直、現存するシステムの中のmallocの実装など見るつもりもない。 まあある程度は知っているが、敢えて改めては調べない。 ゼロから、そのへんで手に入る当たり前の知識を使って、 素直に思いつける範囲の工夫しかしない。 また、アルゴリズムや実装そのものよりも、それを必要とするに至る経緯、 それを選ぶにあたっての判断基準、それを選んだ後の運用の問題、 などを重視する。だから到達点は極めて低い。大したものはできない。 なので、そのガベコレの本と対になるメモリアロケータの本が欲しいなあ、 とか言われている現状は知っているが、 そういうものとして書く気はないし、私には書けん。 CTLSとか入れないよ。「この路線で考えを進めればCTLSに至る」 というような「考え方の路線」は詳しく説明するが、 CTLSそのものを扱う気はない。 だいたい実装したこともないし、する気もない。

現実逃避に4章まで書いた。おや、案外ページ少ないな。 標準丸投げ、確保も解放もしないダミー、 解放しない、全部解放された時だけ解放する、の順。 現状アルゴリズムのアの字もない。次の章からが本番で、 キュー、スタック、線形リスト、優先度付きキュー、 二分検索木、なんちゃって平衡化、スキップリスト、サイズ別分類リストと ハッシュ、二段構造化、マルチスレッド、デバグ支援、 という具合に章が分かれる予定。 どこかにソート配列と二分検索が入るなたぶん。 そしてたぶん赤黒木は扱わないで終わると思う。 私が「しんどいなあ」と思うようなアルゴリズムは、たぶんこの本にはそぐわない。 そんなのを書ける人は私が書く本なんていらんだろ。

二分木の平衡化って多少遅かったりしてもいいから 思いつきやすくて実装しやすい方法はないもんだろうか。 一回素の二分木を自分で書いて何が問題なのかを理解した後なら わかってくるかもしれん。とにかくいろんな平衡化の方法を考える。 そこをしっかりやらないと、それを思いつく方法を説明できない。 答えを説明するなんて下策だ。そうやって書かれた本はなんぼ読んでも ピンと来ないのである。

適当に回す、がうまく行かないもんかなあ。一番深いところに追加してしまったら、 根に向かって戻りつつ適当なところで回転して一段上げる。 なんてことができれば確率的にそこそこマシな感じになりそうな気がするんだが。 試してみるしかないなこれは。

知られているアルゴリズムは完成形であり、 それを確立する段階で存在したであろう適当でショボい状態が見えなくなっている。 しかし、思いつく過程を辿るためには、その適当でショボイ状態が必要だ。 だがそれを知り得ないというのであれば、自力で再発明するしかない。 木の平衡化は少々がんばってみよう。 それで素直な筋道で平衡化できる方法に辿りつかないようであれば、 平衡化に関することは一切扱わない方向で考える。 どうせスキップリストがあるんだから、平衡化はうまく行かなくてもいいのだ。 とりあえず今思いつく範囲では、 挿入遅延バッファを用意して挿入順を散らすのと、ランダム回転。 ランダム回転の方が筋がいいと思うんだが、どうランダムにするのかが かなり難しい。また、ランダムに頼らない方法があれば それに越したことがないというのも事実。

Treapかなあ。問題はこれを思いつく納得の行くストーリーをどう作るかと、 実際問題この程度でもそこそこ実装は面倒ということをどうするかだな。 まあ後者は説明の質の問題で、がんばるしかないのだが。

ランダム回転のアプローチに工夫を加えてTreapを編み出す、 というストーリーはそれほど無理がないな。 下から上へ登る過程で適当な確率で回転する、というのは確実性に難がある。 何らかの基準を使って回転する場所を決める方が楽だし、 毎度サイコロを振るのも嫌だ。 回転の所に乱数を入れたくない。もっと前に乱数をつっこんでおきたいわけだ。 そう考えるとTreapのアプローチはすごくいい。 とりあえずノードに乱数つっこんどいて、その乱数を使って、 何らかの条件を満たすまで回す。それがヒープ条件なわけだ。 そこでヒープ条件を使うと思いつくストーリーが欲しいなあ。 なんでもいいんだよ。理解する助けになる納得の行くストーリーであれば、 ウソでかまわない。どうせTreapを発明した人の頭の中なんてわからないんだから、 ウソにしかなりようがないのだ。

結果だけ考えるなら、いきなりスキップリストで良くね?という気もしてくるな... それが自然じゃなかろうか...木を使う類のアルゴリズムは とにかくややこしくなりがちだ。 そもそも素の二分木ですら削除はかなりしんどいのである。

いかん、5時だ。帰ろう。

2013年05月17日

C++のエイリアシング問題のことを今更知った。 いや、intにshortとして書いちゃダメ、みたいなのは知ってたし、 そもそもやらないんだが、 「書く時にchar*以外の別物にしちゃダメ」というほど厳しい規則とは知らなかった。 uint32_t*をfloat*にキャストして書くとか平気でやってたぞ。 unionもダメらしい。

しかしだ。これは最適化が理由だろう? 一旦どこぞの変数に読んでしまった物が知らんうちにいじられてるかもしれないが 条件揃えばリロードしないよ?とか、実行順をいじっちゃうよ? とかいうことにすぎない。

ああでも関数をまたいで実行順の入れ換えが起こるとマズいのか。 foo(char*)みたいな関数でint*にして書きこむ前に、 呼び出し元の後ろにあるchar*からの読み出しコードが走りかねない。 まずそこまではやらんだろうが、絶対にやらないという保証はない。 読む方は大丈夫だと思うんだが。

やっぱりこのcrusialのm4は壊れてるな。 win7の頃はプチフリが頻発していたし、 win8にしたらスリープからの復帰時に青画面になることが頻発する。 hddに戻すか、別のを買ってくるか、このまま我慢するか。 最後だな。一日一回青画面なら問題ない。正直プチフリよりはマシ。 haswell積んだthinkpadが出たら買い換えるから、 そう長く我慢することはない。しかしもし次のthinkpadXが X201sよりも解像度が低いとかいうならまた先延ばしになるわけで、 その場合はssdをとりかえることになるだろう。

Sunabaのjavascript移植だが、VMをjavascriptで書くのはどう考えても遅すぎるので、 Sunabaからjavascriptに翻訳するプログラムを書くことにする。来年までに。 そうすれば来年の授業はchromeにテキストファイルをドロップして実行する 環境になるわけだ。

javascriptにgotoあれば翻訳も簡単になるんだがなあ。VMのマシン語列から 素直に直せる。gotoがない以上、コード生成段でjavascript化せんといかんな。 構文解析までは共通でいい。これならIO以外はそれなりな速度で動くだろう。 問題はIOで、ピクセルを1個づつ塗れるこの仕様がどれくらいキツいかは やってみないとわからない。あとたぶん音は無理。

300dpiのRGBなjpegだった仮絵を、1200dpiの1bitモノクロpngに置き換えつつある。 こっちの方が容量小さいのな。 dpiが4倍ということはピクセルサイズが同じなら無圧縮容量は16倍だ。 ピクセルサイズは24bitから1bitになるので1/24だ。 というわけで、無圧縮容量でも2/3になる。 しかしそれを上回る減り方をしている。だいたいjpegはロシーでpngはロスレスだ。 だが、単調な1bit画像は連長圧縮で猛烈に減るわけで、 その効果が大きいということだろう。

後で1200dpiはデカすぎるから縮小して回った方がいいんだろうなあ。 ゴミ掃除を後でまとめてやると思うが、 その時に表示サイズから言って妥当な解像度に削ろう。 横10cmを超える絵はなく、600dpiで十分と仮定するなら、 10/2.54*600=2362。これよりデカい画像は無駄だ。

やっと5章まで来た。

やっと7章まで来た。今日中に9章までは片づけ、 土日に泣きながら10、11、12、13にある大量の四角を片づける。 あわよくばコードの背景色指定も全部片づける。 さすがに来週でおおよそ終わるんじゃね? もし本当に校正待ちになったら、 一回時間置こうかな。 読まないで時間を置くと間違いが見つかりやすくなる。 その間に次の本書いちまえ。

「づつ」にしたい。すげえ違和感。元ネタの内閣告示も納得行かねえ。 まあダメなら一括置換して終わりだが、一応聞いてみよ。 前も一括置換したが、誤爆はなかった気がする。 「づつ」を含む語なんて他にないだろうし。

100以上あるなあ。これは編集さんによる校正が始まる前に片づけておかないと。 でないと「づつ」の数だけエクセルの行が増える事になる。

こんなもん好みの問題だと言ってしまえばそれまでだ。 また、コーディング規約同様、根拠なんてどうでも良く統一されることに意味がある、 という意見もある。 しかし、コーディング規約同様、悪いルールよりは良いルールの方がいいと 私は思う。こういう機会がある度に毎度元ネタの内閣告示を見るが、 どうにも納得がいかん。いっそ「ぢとづは抹殺する」くらい言っちゃえば良かったのに。 実際みんな「じめん」で違和感ないんだろ? 一回抹殺しちゃえば案外すぐ慣れるんじゃね? 案外「僕わ元気です」とかも無理矢理ルール化して20年も経てば 慣れるんじゃないかという気すらしている。もし昭和21年にそうしていたら 案外その方がスッキリしてたんじゃなかろうか。

例の内閣告示に「づつでもいい」と書いてあるのに、 「許容されてるだけで間違ってんだよ」「ルールに逆らうとか意味わからねえ」 「づつは間違ってる、と思ってる人に叩かれるから、ずつにしておいた方が無難だよ」 等々の意見が数多く見られるのが、 これSTLとかコーディング規約とか言語仕様の話をする時と同じノリに感じられて なんとも言えない気分である。 ルールだから云々、という考え方そのものがどうにも好かん。 「正しい」とか「間違い」とか、よくそんな軽々しく言えるな。自然言語だぞ?これ。

それに、ルールであること、標準であること等々は 選択する際に考慮すべき一つの要素であり、 100%守るべきと私は思わん。まあ99%くらいは守るのが妥当なので、 その意味では「ずつ」も守ればいいじゃん、というのはその通りなのだが。

まあ、編集さんがダメと言ったら即座に置換しておしまい。その程度のことだ。 売り物の日本語を書くというのはそういうことなんだろう。 しかし「本当にそうしないと売れない」というわけでもないなら、 これくらいの違いは許容してくれてもいいじゃんと思ったりはする。 ラノベの斬新な文字配置とか見てると、あれをやってる一方で「づつ」を「ずつ」 に直してたりしたら滑稽だなあとか思ってしまう。

つまらんところで叩かれても嫌だろ?と言うかもしれんが、私は叩かれても構わない。 それで売上が落ちたり学習効果が落ちたりしなければ、だが。 それに、私が「づつ」と書くことで、 これに関して違う考え方があって揉めてたりすることを 知る人が増えたり、日本語について考えたりする人が増えるなら、 それはプラスだとすら思う。 でもまあ、売上や学習効果が落ちない、なんて思うのは甘いかな。

たまたま見つけてちょっと感動した。そうか、「ちち」が「ぢぢ」に濁ったんだ。 「はは」は「ばば」だもんな。そりゃ「ちち」は「ぢぢ」だよ。 だから「おぢいさん」なわけだ。

こんなことも知らんで「づつ」がいいとか言うな、と言うかもしれない。 「全部歴史的仮名遣いにするわけでもないのに一個だけとか変じゃん」 と言う人もいる。 でも、いいじゃん。自分が生きてきた感覚ゆえに、今更「おぢいさん」とは書けん。 しかし、知ってしまった今となっては、私は「おぢいさん」と書く方が 理屈に合うと思う。しかし、理屈に合うことを全部実行できるわけでもない。 だから私は一生「理屈としてはおぢいさんと書きたいし、それがいいと思うけど、 ちょっとなー」と思いながら「おじいさん」と書いて生きて行くのだろう。 それで良くね?そういうもんじゃね? 「C++の規格上_から名前を始めたらダメだけど、みんなやってるし、 問題起きたこともないし、間違ってると知りつつもオレは続けてやるぜ」 というのと一緒だろう。 しかし「づつ」に関しては感覚と私が良いと思う理屈が一致しているのだから、 それを使っても良くね? 幸いにしてルールにも「アリ」と書いてあるわけだし。

yafoo知恵袋の「ずつが正しいです」的な返答を見てると、 どうにも嫌な気分になる。みんな政治家も官僚も尊敬してないじゃん? みんな何かとバカにするし信頼してないし敵視する。 なのに、なぜ政治家だか官僚だかが決めたルールをそんなに尊重する? 意味がわからない。だったら女性手帳でも子供手当でもエコポイントでも 決まったこととして尊重すればいいんじゃないの?

自然言語に対して「正しい」と言うためには、それこそ相当な 根拠を出す必要がある。誰も「なんで?」とそれ以上聞けないような根拠だ。 そこまで行けば異論は出ないだろう。 ルールだから、はそこには程遠い。 そこまで行かないなら「正しい」ではなく、「妥当」と言うべきだろう。 そもそも元ネタにしても「よりどころ」としか言っておらず、 ルールではない。ルールにしているのはそれを見た連中であり、 決めた連中ではないのだ。

進撃の巨人のアニメはすごく良く出来ている。しかし、 先に原作を中途半端に読んでしまったために、その出来の良さが憎らしい。 とにかく巨人側の目的が知りたい。そればかりが気になって、 映像を味わう気持ちになれない。 でももしそれがわかってショボかったらすごいガッカリするだろうなあ。 にしても、なぜミカサはこんなに美人キャラになってんだ?

ガルガンティアちゃんと面白いぞ。

自分で絵を描く路線はダメっぽいので、 やっぱ描いてもらうことにしよう。そして、それならばすることが激減する。 コードの背景色指定をさっさとやって、その後は別の仕事をしながら校正を待とう。 2日くらい読まずに寝かした方が間違いが良く見つかるだろう。 つうか、もう次の本書き始めようぜ。

2013年05月15日

早く本出そう。でないとどうにもならん。 ただし、本が出たとしても売れなければ やはりどうにもならない。

次はアルゴリズムかCGか。アルゴリズムを先に片づけておいた方が いい気はするなあ。根本から先にやらんと上が安定しない。 そして何より、困難が少ないから楽に完成させられる。

九州大学講義レポートみたいなのをfacebookにでも上げとこう。 誰かの目について、別のところからも依頼が来るかもしれん。

VS2012移植先にやっちまえ。いろいろ面倒が多すぎる。 というか、昼間は集中できん。 プログラミング程度ならやれるが、それ以上集中を必要とする作業は とてもできん。集中を要するプログラミングもないわけではないが、 今となってはそういう機会は稀だ。 いや、プログラミングの場合集中することが容易い、と言うべきか。 嫌いじゃないからな。文章を書くとか、絵を書くとかは 単純に苦行なので、私の意識は全身全霊で逃げたがる。 だから些細なことでも集中を妨げてしまうのだ。 プログラミングは楽なので、そういうことがない。

橋下氏の自由主義的な考え方は好きだ。 政治にもリスク分散とアジャイル的な思想を多少は混ぜないといけない。 理性的な面では賛同できる。 しかし、少なくとも今現在において、政治家には人間的度量とか、 品格とか、そういうものが求められる。 もっと政治家の仕事が細分されてしまった後の時代であれば あれでいいだろうが、まだ無理だよなあ。 あのダメっぷりは麻生の比じゃないだろう。 嫌いじゃないんだけどなあ。

政治に限らず、権限を持った人が何かを決めるということは、 誰かに割を食わせるということだ。 割を食わせる人に向かい合う覚悟をした上で、 なおその選択をできるか、ということは絶対的に重要になる。 それをしないと怨念が溜まって禍根となるし、 そこを適当にするような浅さの思考で行った決断がうまく行くはずがない。 それを嫌がって何も決めないのもダメで、 それなら考えなしな決断の方がまだマシかと思うこともあるが、 うまく行かないということにかけては大差ない。

プロジェクトというのは、炎上が自然状態であり、宇宙の法則通りに 推移すれば必ず炎上する。プロジェクトを成功させるというのは、 宇宙の法則をねじ曲げる行為だ。何かしらの異常さが必要とされる。 異常な努力、異常な技術、異常な人材、異常な士気。 かなりの度合いでそれらに恵まれた場合にのみ成功する。

「うまく行かせるにはどうしたらいいか」という問いは 出発点ではあるが、これ自体は役に立たない。 聞き心地が良く都合のいい答えを出していい気になるだけの結果 しかもたらさない。「アジャイルにすればいい」 「仕様をしっかり決めればいい」等々、本当に効果があるか 怪しいがそれらしい答えがいくらでも出てくる。 だから、問い方を変えるべきだ。まず二つ。 「どうなったらうまく行ったと言えるか」と、 「どうなったら失敗したと言えるか」。 これで成功と失敗を定義できる。 「いくら売れたら成功」「人が病まなかったら成功」 「いつまでに完成したら成功」「バグがこれくらい出たら失敗」 みたいなものをどれだけ挙げられるかということになる。 制約条件あるいは目標の列挙だ。 それがたくさん出てくれば、それらそれぞれについて、 「どうしたらそうなるか」と「どうしたらそうならないか」 を問える。「どうしたら」だけでなく「何が起きたら」 も考えるべきだ。自分にコントロールできない出来事についても、 挙げられる範囲で挙げておくべきで、 「使う予定のミドルウェアがバグッてたらヤバい」 みたいなことも挙げるだけ挙げたらいい。 そして、こんなもんだろと思うくらい挙げたら、 それを影響の大きさと起こる確率に基いて並べ、 順に対策を立てる。 そして、それで終わりではなく、 毎日「こんなことが起こったらヤバい」を想像しては ビクビクすることも大切だ。 本気で成功させるってのはそういうことだろう。 しかしそんなに本気の人がゴロゴロいるはずもなく、 また、仮に本気だったとしてもその本気を伝える能力が必要だし、 説明する能力も必要だし、正しい推論をする能力も必要だ。 そんな人はそれこそ滅多にいない。 だからうまく行かないのである。 そして、それがわかったところで、それはそれこそ第一歩だ。 うまく行かせる条件はそうそう揃わない。 「そうか!こうすればうまく行くんだ!」という答えは、 100%間違いである。そんな簡単なわけがないだろ。

今回の本の最大のリスクは「出ない」だ。 私の心が折れて完成しない、というのが一番ありそうなシナリオだった。 しかし、さんざん遅れた末ではあるが、どうやらその危険は去りつつある。 イラストまで自力で書くつもりだが、 よしんばここで折れてもイラストは誰かが書いてくれて本が出るだろう。

次のリスクは「売れない」だ。 まず玄人が買ってくれて、アマゾンに絶賛レビューを書き連ね、 学校の先生が生徒に買わせたり、レビューに連られて買う人が増えたり して売れる、というのが今回のシナリオだが、 この連鎖の一箇所でもほころびれば終わる。 まず玄人が買ってくれなければ終わる。 なにせ初心者向けで、玄人にとって勉強になると断言できるわけではない。 私は玄人にとっても足元を見直すいい機会になると思って書いているが、 それが伝わるとは限らない。 また、読んでくれた玄人がアマゾンにレビューを書くほど マメじゃなかったり、先生じゃなかったりすれば、 次の段階へ行かない。 また、ターゲットとしている人々が魅力を感じなければそれまでだ。 分厚いので初心者向けに見えないとか、 独自言語と言われると初心者ほど萎えるとか、 そういう問題点がある。前回の本が独自ライブラリで文句を 言われながらも売れたので行けるだろと踏んでいるが、 保証は全くない。

他にも盛大なリスクがあって、「出来が悪い」というのもある。 私の考え方が根本的に間違っていたり、 説明の質が悪かったりすれば、当然ダメである。 絶賛レビューが出てナンボなのだ。

また、他にも細かいリスクは大量にある。 windowsでしか動かないこのプログラムがそもそもアウトで 最初からmac版を用意しておかないことが致命傷とか、 そもそもブラウザ実行にしとけよとか、 みんなもうタブレットや電話でPCなんて持ってねえよとか、 そういうリスクもある。まだ大丈夫だろうと思っているが、 保証の限りではない。特に若い人の生態を私は何も知らないのだ。 本が出てしまってから慌ててブラウザ実行可能にしても、 おそらく手遅れだろう。万全を期すなら、 今すぐにでもSunaba→HTML5翻訳エンジンを作って ブラウザで実行可能にすべきなのである。 しかしそれを始めると今度は「完成しないリスク」が上がりすぎる。 私はそんなに自分の意志力を信用できない。 「もうなんでもいいから発売して終わりにしたい」と 常に思っているのだ。

あとは値段の問題もある。今回は1500円で行けると思うから、 前回のように「高くて買う気がしない」という人はそれほど出てこないと思うが、 これが別の効果を引き起こすかもしれない。 会社に入る印税が減るため、私の穀潰し感が増して会社での立場が ヤバくなる、というシナリオはそれなりにありうる。 誰もこんなものの収益に期待はしていなかろうが、 それでも「人件費分も稼げない」というのはイメージが悪い。 また、出版社側の利益が少なければ、次につながらなくなる可能性も出てくる。 そう考えると売れゆきに影響しない範囲で値段を上げるべきではないか、 という話にもなってくるわけだ。税込2000円なら良くね? みたいなことを言い出すとキリがないわけで、 これに関しては「可能な範囲で最安」と決めている。 たぶん1500円だろう。しかしそれを決める権限は私にはない。

VS2012移植はやめる。 Update2を入れるとv110_xpというXP向けのコンパイルができるようになるのだが、 そうすると.netが4.0固定になる。 XPでも4.0は入れられるのだが、4.0はwindows7には標準では入っていない。 2.0にしておけば、素のwindows7でも動くのだ。 であるならば、2010で良かろう。 今回は読者がソースを見ることはまずないんだから、 ここを最新にしておかないと厄介、ということはない。

メモリアロケータを作りながら学ぶアルゴリズムとデータ構造入門、 みたいな本どうかなあ。あれ丁度いいと思うんだよな。 メモリアロケータは検索のお化けみたいなもんだ。 データ構造もアルゴリズムも基本は検索である。 アルゴリズムといえばソートだが、ヒープと検索木を扱えば、 その過程で自然にソートは導入できるし、扱わなくてもいい。 実アプリでソートするのなんて検索のための準備がほとんどなのであって、 ソートそのものは比較的どうでもいいのだ。 また、キャッシュの乗り具合とか、マルチスレッドの問題とか、 デバグの問題とかも広く扱える。 もし書くならコンパイラはminGWで良く、 それなら将来のバージョンアップに対応せずに済む。 VisualStudioでやりたい奴は勝手にやればいいからな。 「g++ main.cpp」と書くだけでできる範囲で作れば、 gccやコマンドラインについて勉強することも最小で済む。 そして、このネタなら今丁度私が興味を持っている。 自分自身が基礎を固めたいからここをガッツリやりたいと思っている。 また、話が具体的だし、読者のスキルレベルも具体的に想像できるから迷走しにくい。 今書いてるものみたいに辛い思いはせずに済むし時間もかからんだろう。 入門とすれば、私が届かないほど高い技術を扱わなくてもいいし、 現実問題丁寧に書けば基本だけで1000ページくらいは消費してしまうはずだから、 入れる余地もない。まあTLSFくらいは入れられんこともないだろうが。

texのlistingsは良く出来ているが、コメント開始文字の次に半角文字を 1個以上おかないと続く全角文字がコメント扱いされないというバグがある。 知られているようなのだが、誰も直さず、スペースを一個入れて使っている。 調べれば直せるんだろうが面倒くさいのでやらない。 コメントの書体を変えようと思ったんだがなあ。

コードの特定の行だけ網かけしたかったりするんだが、これはtexではできんなあ。 出版社に何らかの方法で指示するか...

さんま塩焼の缶詰。おいしいとは言えないが、 サバに飽きたらこれかな。若干量の割に高いが。 最近料理してもほぼひつじこが食べ尽すので私はあまり食べてない。 といっても理由があって、私は外で買ったりできるが、ひつじこはできないというのと、 ひつじこの旺盛な食欲を鑑みるに、私も食えるだけの量を作るとなると 手間が半端ないということ。余裕がある時ならいいが、今は無理だ。 それに最近多い炒め物には火力及びフライパンのサイズから適正な量があり、 それを超えて作ることはそもそもできないのである。 リバーライトの30cm炒め鍋は、一般家庭のフライパンに比べればかなり大きいはずだが、 この程度ではひつじこ一人分しか作れない。 もう一品作るとか、ひつじこが豆腐や納豆のようなものを食べられればいいんだが、 今のひつじこはまだつわり気味で、どうも豆腐や納豆を単体では食えないのである。 結果炒め物をドカドカ食うことになるわけだ。 昔なら飯を炊いていたのでおかずは少なくて済んだが、 今は主食なんてものがそもそもない。 強いて言えば肉である。 糖質制限の実際上の問題点はとにかく「おかずが多い」という一点に尽きる。 食費は増えるが、それはさほどでもない。 食う絶対量は減るし、事前にわかっていれば大量購入で補えるからだ。 しかし、調理の手間に関してはなかなか軽減は難しい。 炒め物のように毎度作らざるをえないものは 量が増えればダイレクトに手間が増すのである。 煮物の類はまだ楽だが、 これにしても6L鍋ギリギリまで作ってようやく2日もつという程度だ。 これ、娘二人が10代とかになったら一体どうなるんだ? 蒸し大豆とか蒸しピーナッツとか、その手の「ごはんがわり」のものは 何かしら用意しないとキツいだろうなあ。

ひつじこは赤ちゃんに胃を圧迫されており、量を食えない。 したがって、栄養密度の高い食糧が必要とされる。 100gあたり400kcalレベルの食糧が望ましいと考えると、 チーズ、ナッツ、焼いて水を抜いた肉や魚、となる。 豆腐、野菜などはそう増やせない。 納豆や、水の抜けていない肉魚、卵あたりは次点だ。 そして、栄養密度が重要なのはオタマに関しても同じだ。 満腹するまで食べたい、という感覚がオタマにはない。 最近のオタマはかなり食べる量が少ないのだ。 しかし、たぶんこれは正常なんだろう。 一気に大きくなる時期ではないのではなかろうか。 炭水化物をたくさん食べさせる方が大きくなるのかもしれんが、 オタマは十分デカいし、栄養の偏りも心配するほどではないだろう。 周りの子達の方がよほど偏ってるからな。どう考えても。 それでも育っているわけで、オタマが多少遺伝子で不利だったとしても どうこうなるレベルとは思えない。

なお、私も満腹が不快になって久しい。苦痛と言っていい。 極力少ない体積で必要な栄養を取れるに越したことはない。 すなわち、基本はナッツとチーズである。 空腹感が来ないだけ食っていれば、たぶんそれでいいのだろう。 この年になると食う量は不足気味くらいの方がいいのだ。 一日70gかそこらの蛋白質と、ビタミンミネラル類が取れていれば、 カロリーはそんなにいらん。 実際1500kcal以下で生活してると思うんだが、 最近は全く体重が減らない。61kg以下にならなくなった。

久しぶりにつけペンで絵を描いている。図だが。 ミリペンの方が楽なんだが、 味が出んかなあと思ってとりあえずつけペンにしてみている。 線が汚ないということになればプロが清書してくれるだろうし、 気楽にやろう。

7章の変数のスコープ問題。やっぱり指摘された。 そうなんだよ。コンセプトから外れてるんだよここ。 今の状態は苦渋の選択で、妥協の産物だ。 何か突破口はないか。

とりあえず文法を変えるのはなしにしよう。全部グローバル変数の言語とか 私が耐えられない。 とすると、極力説明を短くして脱線の害を減らすことと、 その説明がある理由を読者に納得させることの二つの努力が必要だ。 前者はそこそこやったが後者が足りん。 そこを考えよう。 たぶん今この本で一番ダメな箇所はこの7章だ。 あと4章も若干不安。もうちょっと配慮すべきか。 あるいは説明の質を高めて同レベルの説明をより短い文章で やれるように工夫すべきか。

なぜ変数のスコープを説明するかといえば、 スコープという概念を入れないとバグって挫折ポイントになりかねないという 危険のためだ。しかし、関数から変数が出られないし入れないのには 積極的な理由もある。「ある関数を書いている時には、 他の関数にどんな変数があるか気にしなくていい」ということだ。 この動機については多少述べておいてもいいかもしれない。

さらに説明を短くした。上に、何故そんなルールを作ったかを先に説明した。

また5時か...

反対や妨害よりもタチが悪いのはスルーだ。反対や妨害に対しては議論ができる。 スルーに対しては議論ができない。 さらにタチが悪いのは、賛成しつつ進めないことだ。 議論は済み、決着している。ゆえにこれ以上議論できない。 だが、進まないのである。時間が経てば温度が下がる。あらゆる決定には旬があり、 旬を過ぎれば事実上終わりだ。こうした消極的抵抗は意識的になされることよりも、 無意識的になされることが多い。心情的に賛成できなかったり、 心情的に面倒くさかったりすると、理性で賛成していてもこういうことになりやすい。 だから、決定は本気になれる担当者と期限を決めねば効果がないのだ。 もっとも、それらを決めてすらうまく行くことは稀なのだが。

一番足りないのは、「絶対にうまく行かせるという覚悟」なんだけどな。 その思いが絶えることなく燃えさかっていれば、 最後の最後まで努力をやめないだろう。 しかし、その手の消極的抵抗によって一番ダメージを受けるのが、この覚悟なのである。 それを理解した上で意識的に消極的抵抗を戦術として選ぶような人がいたら、 その人は相当なものだ。しかし、大抵はそうではない。 ただなんとなく時間がかかり、温度が下がり、覚悟が消えていく。 やっぱり、「失敗したら路頭に迷う」くらいのことがないと覚悟なんて 出ないんだろうなあ。そんな覚悟を会社員が持てるのは一体どんな時だろうか。

とりあえず、本に関しては、失敗した時のダメージが半端ないので 本気にならざるを得ない。何ヶ月か前までなら、 売れないものが出るダメージよりも、そもそも完成しない方が傷が浅かった。 だがもはやそうではない。これだけ時間をかけて完成しないということは もはや許されない。だが、売れないものが出るダメージもまた半端なく大きく、 それで「本を出す」という路線が永遠に終わりかねない。 人生の選択肢を大きく削ってしまうことになるだろう。 何事も打率だから、百発百中というわけには行かないが、 今回失敗すると回復には相当な苦労をする必要がある。

本当、なんで私はこんなアホなことをやってるんだろう。 そもそも前みたいにバカ売れしたとしても、私の立場は 何一つ良くならないし、給料が増えるわけでもない。 でもまあ、仕方ないよなあ。やりたいんだから。

失敗したら本当どうしようかな...とりあえず現場に戻って馬車馬のように働いて 心の何かを回復させないとダメだろうな...何かそれなりに自信が持てる製品が 出ないとたぶん無理。

そもそも「成功ライン」がどこかも考えていないので意味もない思考なわけだが。 5万部で絶賛レビューが相次ぐ、とかにならんと成功とは言えんわけだが、 失敗と言えるのはどれくらいか、と言われると判断しがたい。

つうか初版何冊刷ってもらえるんだろうか...そこからして不安だ。そこで少ないと 機会損失が発生する。しかし出版社的には機会損失よりも帳簿上の損害を重く見る らしく、かなり少な目に見積るのが普通らしい。 まあゲームみたいに最初の一月で大半売れる、みたいなわけでもないから 「どうせ買う人は後になっても買うだろ」という判断は正しいんだろうし、 出版社にはもうリスクを取る体力がないので、それが合理的なのは間違いない。 仕方ないってことだ。 それに、初版が少ないことは、バグが入った冊数が少なくなるという意味では プラスでもある。初版は絶対バグ入りだからだ。 バグは2回目でかなり取れるので、初版はどうしても品質が落ちる。 まあ前の本で直すところがほとんどなくなって落ちついたのは8回目とかだったわけだが。

でも今回は初版のバグを減らすべく、前回やらなかったことをちゃんとやることにした。 一つは、「全体を脳内音読すること」。これでかなり取れる。 目で読んでるとどうしても 脳にダマされてしまうのだ。最終段階では 「一旦全部紙に印刷してから脳内音読」という究極に面倒くさいこともやる。 今回は文章量がたかだか500KBしかないので、気合を入れればできるはずだ。

もう一つは、 「コードのうち実行可能なものは全部テキスト からファイルにコピペして実行してみること」。 または、コード断片である場合は、今回は元のファイルがあるケースが大半であるため、 全箇所動作するファイルから該当箇所をコピペしなおす。 これでコード側のバグの大半が取れる。 あとありがちなのは表の中が間違ってるとかだが、 今回は検証すべき表はさほどなく、13章に若干ある程度だ。 この程度は気合でどうにかなる。 前回の経験を経て、どういうところにバグが出るかはおおよそわかった。 だから今回は初版のバグ率はかなり下がるはずである。あくまで目論見にすぎんのだが。

2013年05月14日

真メガテン4か。結婚してなければ絶対買うだろう。 だが私は3で結構ガッカリしているわけで、 さてどうしたものか。3はゲームとしては面白かったのだが、物語が好かん。 でも何が好かんのか自分でも良くわからない。 ポリゴン芝居がイマイチなのが大きな要因ではあったが、さて。 なんにせよ、本が出ないとそれどころじゃない。買えん。

本が出たとしてもなあ、次にすべきことはなんぼでも詰まっている。 現場にいない今となっては、ゲームで遊んでないと感覚が狂う、 みたいなのもさして重要ではないしなあ。

表現とか説明の中身とかを云々する前に、「この路線でいいの?最初に話したコンセプトと、今の内容は合ってるの?」 みたいな大きな話を何もしないまま校正に突入しつつある。 おもろいかおもろくないかを一切見ないまま完成寸前まで作ってしまってバグ探し、みたいな、 良くないゲーム開発の典型みたいなことになっている気がするのだが、大丈夫なのか。 まあ大丈夫か大丈夫じゃないかは、つまるところ私次第ということだ。 誰のせいにもできん。もし私が自分を信用できないなら、第三者を確保するのも私の責任だ。 本当協力してくださる方がいるのはありがたい。

なお、ひつじこも協力したそうなのだが、オタマの相手の方が大切なので、まあ無理だ。 読むことくらいはできるだろうが、結局はコードを書かん限り本当のところはわからない。 まあ読んでくれるだけでも相当うれしいんだけどな。

結婚してから、ただでも適当だった服がさらに適当になっている。 普通に見えればいいや、と前は思っていたが、今は普通に見えなくてもいいと思っている。 いわゆる「清潔感」くらいはあった方がいいと今でも思うわけだが、 オタマのワセリン祭のせいでそれすら困難になり、実現は困難だ。 一緒に洗えばワセリンまみれになり、白い服は根こそぎ灰色になってしまうのである。

でもまあ、最近はワセリンの使用量も減ったし、そろそろメンズ伊勢丹あたりで高いのを ドンと買っておいてもいいのかもしれんけどなあ。 あそこで買った7000円もするシャツは数年にわたってボロくならずに保った。 捨てたのはつい最近だ。オタマのワセリン攻勢がなければ今でも耐えていたかもしれん。

なお、私はシャツ1枚7000円を「べらぼうに高い」と感じる人間である。 今着ている服で一番高いのはビブラムの靴だ。1.3万。 あとは全部ユニクロと西友であり、それも3000円未満である。 最近は西友のおかげでユニクロすら高く見える。 というかモノも西友の方がいい気がするのだが。 ユニクロのズボンは尻でまっぷたつになるというありえない裂け方をしたからな。 同時期に買ったもう一つのズボンもすでに色褪せてすごいことになっている。

メンズ伊勢丹のシャツは今にして考えると高くはなかったな。 2007年のCEDEC以降、去年まで外でしゃべる時は全部それを着ていた。 オタマがもうちょっと頑丈になって皮膚が悪化しない確信ができたらまた買いに行くか。 CEDECか何かで講演する、とかいうことになればすぐにでも買うが、今年は出してないし、 たぶん来年も出さんだろう。現場から離れて本とか書いてると、講演するネタなんてない。 今回のが仮に前回並にバカ売れしたとしても、 CEDEC向きのネタにはなるまい。

XAudio2の件の情報源

とりあえず、DirectX使うならD3DXとか使うな、ということだろう。 私はあれは嫌いなので仕事ですら極力使わない。シェーダのコンパイルだけは仕方ないが、 隔離していつでも切れるように作る。シェーダのコンパイルなんてコンシューマではオフラインが基本だからな。 ランタイムコンパイルは開発用の機能と考えるべきだ。 ただし、性能より手間が重要だったりでランタイムコンパイルのままで売りたい場合もあり、 そういう時は使わざるをえない。OpenGLを使えばその手の問題はなくなるが、 そうできないこともあるだろう。だからせめて隔離できるように作るべきなのである。 そこを手抜きしてあれに頼り切ってしまうと、 後で移植する時が来たりした時にひどい目にあうわけだ。 テクスチャのロードをあれに頼るとか最悪。

私は今後仕事外のプログラムはOpenGL+DirectSoundで行くことにする。 本を改訂するなら中身をGLに置き換えねばな。

余裕が出たのでDirectSound化を済ませてみた。これでwin8でも止まらないはずだ。 バッファ長33ms(1600サンプル)で、5msごとにチェックして再生した分だけ充填。 バッファ長をこれ以上短くするとチェック頻度をいくら上げてもブツブツする。 5msごとで間に合わないケースとか、スレッドが回ってこないケースとかがあると面倒だな。 優先度は上げてあるが性能とコア数次第では保証の限りではない。 でもまあたぶん大丈夫だろうし、大丈夫じゃなくても気にしなくていい。

いかん7章直すの忘れてた。余裕でもなんでもねえよ! というわけで、変数のスコープに関するルールが長くて退屈だったので、 ごっそり削った。また、その説明だけで節を分けて隔離し、 「読まなくてもいいよ」と書いた。 これでなんぼかマシだろう。完全に消すわけにも行かないので、 できるだけ分量を削って害を薄める他ない。 というわけで4ページくらい減ったんじゃなかろうか。

TG-2が出ている。TG-1からの改善は主に起動時間と操作の応答速度らしい。 そういう演算速度に関する所はこれからいくらでも改善するだろう。 しかし、カメラの基本に関する所はそうそう変わらない。 次に買うのは何年後かな。

DirectSoundにしたらノイズが出る。ノイズって何なのそもそも。 さしあたりあの「ブツン」という音は、 エネルギーの大きな音が不意に鳴っているっぽく、 エネルギーが大きいというのは波形がとがっているということだろう。 それまでなだらかだったのに急にとがった形になるからマズいわけだ。 綺麗な正弦波でおおよそできてるのに、 急にパルスを与えて尖るからそうなる。 もっとなだらかにエネルギーを与えればいいんだろう。 あと、起動時にブツンと鳴るのは、前の終了時にスピーカーの紙が 変なところで止まっているせいだとwebで読んだ。 落ちつくまで止めるのを待ってやらないといけないらしい。 スピーカーって電気止めたら勝手に元に戻るわけじゃないんだな。 電圧と位置が連動してて、バッファの中の数と電圧が連動しているのであれば、 なるほどそうなりそうな気はする。 物理的にどういうものなのか知らないと、こういう時に困る。

2013年05月13日

日曜、公園にオタマを連れていくと、馬鹿な中学生が 幼児用ブランコに乗ったり投げたりして遊んでいた。 煙草も吸っていた。 オタマがブランコに乗りたがったので、 最初は「お兄ちゃん達が終わったらね」と言っていた。 注意して後で面倒なことになっても嫌だなと思ったのだ。 なにせ家が近い。特定されて嫌がらせを受けても面倒だ。 私だけなら後で卑劣な手段に出られてもかまわないが、 家族がいるとそのあたりは慎重にならざるを得ない。 しかし、我慢しきれなくなったので言うことにした。 とりあえず連中がブランコに飽きた頃に、 「ブランコ空いたよね?使うよ」 といって連中の中に割り込んでオタマを乗せた。 煙草を吸ってる奴は「くせーよ。俺の大事な娘に毒流すんじゃねえよ。外行けよ。 あと、ゴミは持って帰れよ。掃除するの面倒くさいんだよ」と言って外に追い出した。 ばつが悪かろうし、居心地が悪くなって公園を出ていくだろうと思ったのだ。

しかし、奴等が何故かブランコの周りから離れない。 誰かが「行こう」と言えばゾロゾロとどこかへ去っていたのだろうが、 その最初の一言が言えなかったのだろう。 他に行く場所がなかったのかもしれない。

そのうち女の子が「かわいいねえ」とか言い出した。オタマのことだ。 「かわいいだろ」と返した。「そのうち反抗期とかになったら大変だね」 とか言い出した。「どうなるかわからんけど、そうなったらなったでがんばるよ。 わかってもらえるように」と返した。その後もいくらか会話をした。 なんとなく「おまえら、数学とか好きか?」と聞いてみた。 「嫌い」と言う。そらそうだろう。「中学二年生の今を大事にしたい」 みたいなことを言い出す。それで言ってやった。 「中二とか最悪につまらない時期じゃねえか。今勉強して準備しとけば後がバラ色だぞ。 オレとか今が最高。娘かわいいし、結婚いいし。おまえらわかってないね」。 「周りの大人は子供に戻りたいとか言ってるよ」と返すので、 「そりゃその大人がつまらねえ馬鹿なんだよ。毎日つまらないことしかしてないんだろ? つまらないことしか言わないんだろ?そんなのとオレを一緒にすんな」と言ってやった。 ひつじこが前に言っていたことも混ぜはしたが、私は本心からそう思える人間でありたい。 今がつまらん奴は、根本的に不幸の才能があるタイプの人間であって、 つまらないことを人のせいにし続けて、そのまま死ぬのである。 私は一歩間違えばそっちに落ちる人間だから、これは自分に向かって言うべき言葉だ。 私がひつじこと結婚できたことはその点からも幸運だ。 ひつじこは絶対にそっちには落ちない人間である。

「お金が欲しい。100万円くらい」とか言う。 「100万?小せーな。クソみたいな額じゃねえか。 オレらがいくら稼ぐか知ってるか?年500万だぞ?20年で1億だぞ? おまえら、そんなのが大金だと思ってんのか?」と言ってやった。 本当に不憫だった。

でその後、たまたま気が向いて、 「数学とか教えてやろうか? 学校の授業なんてつまんねえしわからんだろ?それよりはマシだと思うが」 とつけ加えた。「ありがとうございます」とか言われた。 拒絶の返事としてのありがとうだろうが、口調は柔らかかった。 こいつは馬鹿だけど人間は腐ってない。こいつをこれ以上腐らせたくないと思ったが、 それ以上は言えない。 なおそんな話をしている間、周りの男3人は馬鹿みたいな顔をしてニヤニヤしながら つっ立っていた。こっちはダメかもわからんな。

そのあとオタマがブランコに飽きたので、降ろして滑り台で遊んだり、 走り回ったりしていた。たまにチラリと奴等を見ると、 ピクリとも動かずにこっちを見ている。 オタマがゲラゲラ笑いながら私と遊んでいるのを、ひたすら見ている。 不憫でならない。奴等に聞けば否定するだろうが、 奴等は心中ではそういうものを欲しているのだろう。 でなければ、何故日曜の昼間に中学生5人が 幼児用ブランコに座って、幼児とオッサンが公園で遊んでいるのをバカみたいな顔をして 眺めているだろうか。

そのうちブランコをねじったりからまらせたりする遊びを始めたので、 「やるのは構わねえが、戻せよ。毎度オレが戻してて面倒くさいんだ。 そのへんのママさん達じゃ直せねえんだよ」と言った。 オタマが帰りたがったので、「オレらはこれから帰るが、 その前に直したことを見届ける。だから今すぐに直せ。今すぐにだ」 と言って、待った。奴等は直した。実にかっこ悪い。 これ一回ではやめないかもしれないが、こういうことが続けば やらなくなるだろう。「かっこ悪い」はああいう子供にとっては 最大のマイナスだからだ。不良たるもの、大人に言われたことに 黙って従うようでは話にならんのである。 それにしても、前からブランコがからまる件には困っていたので、 犯人がわかったのはありがたい。 夜中でなく白昼堂々とやっていることもわかったし、 たまにこの時間に公園を見るようにしよう。

不憫だ。あいつらに勉強を教えたい。やってできないとも思えん。 少なくとも話した女の子の知能は高い。 下手をすると、小器用に言われたことを丸暗記している並の奴よりずっとマシだ。 最初の引っ掛かりを外してやれば伸びるだろう。 少なくともその方が、日曜の昼間に幼児用ブランコをからまらせるよりは よほど面白いはずだ。それ自体が面白いことを伝えたいし、 それがもっと面白いことにつながっていることを伝えたいし、 さらにはそれで金を稼いだり、それを人に役立てられることも伝えたい。 しかし、さすがにその機会はあるまい。奴等はドキュンのまま生き、 ドキュンのまま死ぬのだろう。これからの時代、どれだけそれが過酷か、 想像するだに恐ろしい。しかし私にできることはここまでだ。 本にその思いを込めるとしよう。

本業と思っていたことが潰えたっぽい。まあごっこ遊びは終わりにするか。 本の改訂の許可も取ったので、今の本を片づけたらそっちに全力をつっこむ。 その際に中のライブラリをごっそり更新して、そのついでにいろいろやったことを 別の本にする。あと3冊は連続で片づけよう。 あと1年くらいは穀潰しを続けるとしようか。もう覚悟を決めて穀潰しをすべきだ。 キャリア中断して大学行ってる、くらいに思えばいいんだろたぶん。

Windows8の使い勝手がいまいちわからんな。 この上でプログラム開発するとか苦行じゃね? しかしそうも言っていられん。とりあえずVS2012Expressを入れたので、 この上でプロジェクトを作り直す。

すらりん氏から二つの情報を得た。一つは、DXSDKは入れんでもいいということ。 VS2012に入ってる。入れたけど消そう。 もう一つは、XAudio2がwin8とwin7の両方で動くバイナリは現状作れんらしい ということ。古いDXSDKをリンクしたものを作れば、 win7では動くが生のwin8では動かない、ってことか? とりあえずDirectSoundなら動くらしいので、そっちに変える。 馬鹿馬鹿しい限りだが仕方ない。 つうかMS直せよ。XAudio2を使ってるゲームなんて山ほどあるだろうに。 それをDirectインストールなしでwin8で動かすとかザラだろう。 そのためにD3DXを使わずに作っているというのに。

九州大学の講義をレポートにしろとのことだが、さてどうしたものかな。 知りたいのは授業の模様とかでなくて、それが会社の業務とどう関係があって おいしいか、ってことだろ? であるならば前書いたパワポで足りる気がするなあ。 A4一枚で、というくらいのことであれば、とりあえずはそれでまとめるか。

去年までは業務じゃなかったからそういう面倒がなかったが、今年は業務だからいろいろある。 しかし公式であることのメリットもあるし、まあいいか。 有給なんてどうせ半分以上余るわけで有給に関してのメリットはないんだが。 こいつを会社の中でちゃんと役立てる、ってのは研修と採用くらいしか思い浮かばんしなあ。 どちらもそうそうどうにかなるもんじゃないだろう。人事部の人なんて 新人研修終わってからは話したこともない。 新人の時期を過ぎた人間にSunabaで勉強させる時間なんてあるわけないし、 本人も嫌がるだろう。どれくらいプログラマとしてできるのかは これで何か作らせれば一発ではっきりするだろうが、だからこそ導入できない。

変数のスコープの問題。全部グローバルの方が簡単は簡単だ。 しかし、これがもたらすバグの凶悪さは、Sunabaを使うような初心者に対しても 十分に脅威になる。そう思ってスコープの概念は入れたわけだが、 やはりわかりにくいようだ。 ルールの複雑性をもっと緩和できんかなあ。

基本グローバルだが何かつけるとローカルになる、というのは 確かに最初は良かろうが、これが害になるのはあっという間だ。 初期化を経なくても使えるようにすると、スコープのルールがかなり単純化されるが、 名前の書き間違いを検出できなくなる。 でもまあ、その方がいいのかなあ。 「最初の代入が行われるまでは使用不能」というpythonルールは、 初心者向けとしては固すぎたか。 変数の名前空間が関数に限定されていさえすれば、 「宣言不要でデフォルト0」というルールの方がいいのかもしれない。 あるいは、単にルールを説明しないという手もある。 複雑なルールがあったとしても、それを知る必要が出てくるとは限らない。 知らなくていいルールは、大半のケースではないのと同じだ。 また、そういったルールに違反したとしても、コンパイルエラーが 十分に親切であれば本で説明する必要がない。

分岐範囲で定義した変数が分岐範囲を出ても存在していいように作ることはできるか。

協力してくださる人が見つかったので、google docsのスプレッドシートを使って やりとりをしている。 悩ましいのがページ番号だ。箇所を特定するツールとしては、 そこの文章が一番役に立つ。文字列検索できるからだ。 これで見つからない場合はページ番号を使うことになるわけだが、 指摘してもらった時からすでにページ番号がずれていることがままある。 また、対応して直した後、どう直したかをお知らせする際にも、 ページがずれていて困ることがある。 章番号を節や項まで含めることで探しやすくはなるし、 ページもそれほどずれていないだろうと思えば前後を探せばいいので致命的という わけではない。ただ面倒だ。もっと小さな単位で段落にまで番号が振ってあれば いいのかもしれんなあ。校正時にのみ段落にまで番号が振られて 段落の横に小さく横に印字されている、みたいなことってできないかなあ。 12章3節2項第5段落、なら12.3.2.5みたいな。

やらないといけないこと。windows8でのスクリーンショットにとりかえる。 smartscreenの解除方法を追記する。 VS2012Expressでプロジェクトを作り直して、 windows8で正常終了しないという現象が起こるか見てもらう。 うちではwindows8でも再現しなかった。なんかいじったかなあ。

わかった。バッファ追加コールバックから終了完了イベントを立てる処理が、 初期化で失敗した時に走らない。無限待ちになる。これだ。 windows8でも止まらないようにはできるな。だが音は鳴らない。 根本解決は後でやろう。今は止まらないバージョンを渡しておかねば。

windows8で終了できない問題はたぶん解決したので、 VS2012への移植は校正が終わった後でいい。 今はとにかく校正を片づけることだ。13章と14章をごっそり直そう。あと後書きどうすっかな。

宣言不要にするかなあ。変数。またごっそり直す破目になるが、 そうすることで7章の変数のスコープについての説明がごっそり減る。 それによるデメリットは何だ? まず、変数名を書き間違えた時に、それをコンパイラが検出できなくなる。 あと、未初期化の0を使ってしまうケースがかなり増える。 あーこのデメリットはデカいな。そういう間違いは見つけるのが難しい。 初心者がそれが原因で頓挫する可能性はかなりある。

やっぱり説明しない、というのが一番いいんじゃないか? コンパイルエラーに任せる。 しかしその前に、説明の質を高める努力はしよう。 より短い説明で同等以上にわかりやすい説明ができないか。 半分くらいの分量で同等の説明ができないか検討してみる。5周目で。

2013年05月10日

起きたら九州行く。

スキップリストでmultimap作るとそれなりに気をつけないとひどいことになる。 ノードごとに容量が違うと、アロケータによってはノードサイズごとに 領域が分類されてしまい、アドレスとサイズに相関が出てランダム性が 壊れることがある。キーが同じならアドレスで比べればいいや、 と単純に考えるとマズい。アドレスからハッシュ値を作るとか、 別にサイズと相関のない値を補助キーにするとかしないといけない。 しかしまあ、そういう欠点があってもなお十分使える方法だと思う。

今年の学生は進度が悪い。教え方を何かしらしくじったのだ。 去年より説明を丁寧にしたことが裏目に出ている可能性があるのと、 下手にモノを充実させたのが裏目に出ている可能性がある。 とりわけ後者。 何も説明してないのにzipの中からデータを漁って使える部分をコピペする。 できる奴向けのおもちゃとして入れたものが普通に使われていて、 実にまずい。来年まだ誘ってくださるようなら、 いらんもんは削ろう。そのかわり本体の完成度を上げる。 文書も一切入れない。専用のパッケージを作らないとダメだ。 つうか、不要機能を殺したexeを別に作るくらいはしてもいい。 4年目にして激しい大失敗だ。 しかし、このまま大失敗で終わらせるわけにも行かん。 明日はやれるだけのことをやる。

サンプルライブラリの長方形を描く関数とかがわざわざ使われてるのには おどろいた。丸や三角なら難しいからわかるが、長方形なんて ループ二重にして終わりだろうに。 下手にいろいろ入れたせいで、zipの中を漁るのに時間を使われてしまい、 頭を使うという一番大切なことに時間が回らなかったのが敗因だろう。

本の配布データも、いらんものは全部隔離することにした。 普通の人向けzipと、玄人向け追加zipは分ける。 普通zipには本の範囲で必要ない情報は何一つ入れない。

調べることのコストが下がったことで、考えることよりも調べることを 優先するように行動が組み立てられてるんだろうなきっと。 調べる対象がある限り、考えることよりも調べることを優先するのだろう。 それは完全に合理的で、責めるべきことじゃない。 であればこそ、調べられない状況を徹底的に作らねばならんのだ。 そこの認識が甘かった。反省する。

今年の授業終了。

3週経ってもゲームらしいものがロクに出来ておらず、ヤベエと思っていたが、 不思議とどうにかなった。全員発表させる気になるくらいにはなった。 一体どんな魔法だ? コピペの跡もさして見えないし、がんばったってことでいいんだろう。

しかしそれはそれとして、去年ほどの理解度ではないかな。 やはりzipにいらんものをつっこんで集中を妨げたのが 良くなかった気はする。 次があれば、ギリギリまで絞ってみよう。 おもちゃを欲しがる人には個別に与えればいい。 講義なんだからそれができる。

来年があるなら、その時には本が出ているはずだ。 となると、それをそのまま使うとあまりよろしくない。 すでに読んでる奴がいたりすると差がつくし、webにサンプルコードが 存在している恐れもある。「調べられない」という条件が崩れてしまう。 講義用に若干のカスタマイズを施したバージョンを用意すべきだろう。 文法若干いじるくらいしてもいい。 また、用語は「変数」「関数」と標準的なものを使うようにした専用の マニュアルを用意しておくのが良かろう。 一応プログラミング経験がある人間を相手にするわけだから、 用語から独自だと非効率になりすぎる。 あとは英語だよなあ。留学生に対して、 許容できる範囲でサポートする方法を何かしら考えたい。申しわけなさすぎる。

ゲームっぽいものが出来てる方がタチが悪いケースはちらほらある。 関数にもロクに分けず、出てくる敵の数だけコードブロックがコピペ されていて数値だけ違う、みたいなクソ長いプログラムを書いた奴が 何人かいた。あとはマリオのドット絵とか描いてる場合じゃねえだろ、 みたいなのもある。

私は怠惰だ。だから、データ入力の手間があるようなものをこのクソ言語で 作ろうとは絶対に思わない。 しかし、学生の中には怠惰じゃない奴がいる。 単純作業をひたすらやってフォントを作ったり、 ドット絵を描いたり、コピペを繰り返したりできる奴がいる。 配列の初期化構文がないこのクソ言語で、良くやると思う。信じられない。

だが、ここで「あいつらおかしい」と言うのでは話が進まない。 考えるべきは、こういうことをする奴等にとっての合理性はどのようなものか、だ。 それだけ面倒くさい入力作業をしてでも、 関数の作り方を覚えたり、コードの整理をしたりせずに済ませる方が 彼等にとってはコストが安いのである。 もちろん単純に近視眼だ、ということは間違いなくあるだろう。 「後で困るから最初に準備しとけ」と言ってもそうしない、 というのは学生だけの話ではなく、 日常さんざん目にしていることだ。「だから言ったじゃん!!」 と何度叫んだか知れない。これは人類の基本的な精神性なのであって、 むしろ準備をする気になる人間の方がおかしい、と言うべきなのだろう。 だがそれならそれで、そのおかしな行動をどうやったらさせられるか、という話になる。 「選択肢を前もって提示すれば、長期的に合理的な方を取りやすい」 というのは良く知られているわけで、 ダメな書き方とまともな書き方を比較できる状況を意図的に 作ってやらないとダメなんだろう。 「面倒くさい」という感覚がそもそも出てこないのであれば、 「面倒くさい」を利用できないから、理性に訴える他ない。

プログラマにとって「面倒くさい」ほど信頼できる感覚もないんだがなあ。 まあこれが向き不向きという奴なんだろうが、 それで終わりにしては申しわけないし、そんな余裕はない。 どんな奴でもできるようにせねば、人間が足りんのだ。

でも考えてみりゃ情報処理の研究室に行くような学生でもクソみたいなコード書く 例はあるんだよな。良月の卒論手伝った時に、 先輩から受けついだとかいうプログラムがありえないひどさだった。 100行級のコードブロックがelse ifで8通り分岐、みたいな。 もちろん100行×8のほとんどは同じ。明らかにコピペ。 そういう奴がもしプロのプログラマの中にもいるとしたら、 どうにかせねばならぬ。 そういう奴をどうにかするのは難しかろうが、 そういう奴が軽蔑される世の中にすることはできるだろう。 後から後からできるプログラマが量産されるような世界にしたい。

twitterで学生めっけ。こいつがあれ作ったあいつな。 で、こいつが他の学生のために何か作ってやったと。 「自分のより誰々用のが先に完成した」とかツイートしとる。 コードの特徴から、作ってもらった側は特定可能だな。 なぜそんなことをツイートする... 昔と違って今のtwitterは検索性も高いし、 ちょっと探せば案外簡単に見つかるんだぞ...

それにしても大学生のtwitterはまぶしいなあ。これが若さか...

終わった後、一人にサインを求められて、本にサインした。 オレ有名人みたいだな。ひゃっほう。 あと、べらべらしゃべってきた。飛行機を早目に設定してたので あまり時間はなかったが、何かが伝わったならうれしい。

授業を改善するのは、本を書いて有名になるためなので、私利私欲だ。 学生の皆さんは実験台であり、サンプルである。 私はできるだけ他人も幸せになるような私利私欲を追求したい とは思っているが、基本、私利私欲だ。 自分が割を食うようなことは、私は基本しない。 それが私にとってもうれしくない限りはしないことにしている。

「最底辺のポートフォリオ」という本を読んだ。大変勉強になった。

貧乏な人は、単に収入が少ないだけでなく、不安定である。 なので、彼らの行動は一見非合理に見えても、 実はこの不安定に対する対処として見ると合理的であることが多い。 また、人間心理上の合理性であることも多い。

例えば、貯金があるのに借金する人がいる。 金利から言えば非合理的だが、「借金をしているという自覚と、 返済への圧力がないと金を無駄使いしてしまう」 という自分に関する観察がそこにあるのであれば、これは合理的だ。 そういや、うちの親、金借りてたなあ。金はあったはずなのに。 そして、「借金してないと金がある気になるから良くない。うちは貧乏」 みたいなことを言っていた気がする。子供だったからよく覚えてないが。 これは立派な戦略だ。返済までの時間が短ければ、 マイナスは大した額ではない。借金をすることでコンビニでシュークリームを 買わずに済むなら、案外それだけで元が取れるかもしれない、 という程度の額にもなりうる。

借金と貯蓄はほとんど同じ、というのも頭にガツンと来る洞察だった。 金利を無視すれば、 まとまった金が得られるのが先か後かの違いしかない。 そして、「借りて返して借りて返して」とループすることを考えれば、 これは「溜めて使って溜めて使って」とループするのとほとんど等価である。 金を得て、金を払って、金を得て、金を払って、のループだ。 もちろん、先進国においては金利の問題が無視できないし、 無視しなくていいくらいに豊かなので借金と貯蓄は別物として扱われる。 しかし、国によっては金を預けることの金利がマイナスのこともある。 家に安全に金を保管できないような国であれば、 銀行その他で安全にあずかってもらうことに手数料を払うことは合理的なのだ。 また、借金にしても、身内から借りたり、10人くらいで共同組合的なものを 作るならば、金利はゼロにすることもできる。 金の保管や移動に余計な手間やリスクがない先進国においてのみ、 借金と貯蓄は別物扱いできるのである。 そして、先進国においても、「借金をして返すことをくりかえしてこそ信用がつく」 ということは言えるわけで、借金をすることは必ずしもマイナスではない。 社会的な結びつきや信用の面からも欠くことができないものなわけだ。

借金して家買って、でも銀行に貯蓄してる、みたいな行動パターンは 合理的ではないと思っていたが、心理的側面まで入れれば 合理的になりうるのか。また、リスクを考えてもそうだ。 がんばって繰り上げ返済することは、 家が燃えたり壊れたりするようなケースでは不利になる。 多少の手数料を払って資産を分散させる、と考えれば、 住宅ローンを毎月払いながらも貯蓄する、という行動は合理的だ。

でも日本で借金が合理的なケースは限られるよなあ。 事業のための借金と、住宅のための借金、 あとはさっきの心理的理由による借金は合理的でありうる。 しかしそれ以外はどうだ?

サラ金の利用はどのように合理的なのだろうか。 私の目にはどう見ても合理的に見えないが、 これが合理的でありうるような理がない、ということはありえない。 もしそうなら普及していないからだ。

サラ金は、 すぐ使える貯蓄がゼロ付近であるような状況下で、 不意に金が必要になり、 かつそれを短期間で返すあてがあるような場合には合理的だ。 例えば、1週間後に給料が入るとわかっていて、急に葬式を出さねばならなくなった、 みたいな場合だろう。資産があっても土地だったりすれば使えない。 金利によるダメージが、 その時に金を出せないことのダメージを下回るならば、利用される。 もっと金利が低い借金もあるが、審査が面倒だったりして不便なので、 それと比較した時の便利さに金を払っているとも言える。 高い金利はサービスに対する手数料として見るべきものだ。 短期間で返す前提であれば、ここに何ら問題はない。

一番大事な条件は、「サラ金で借りる程度の額の貯蓄がない」 という条件だ。貯蓄があるならそれで済む。 もちろん、貯蓄があってもなお心理的理由から借金を好むという可能性はあって、 それは本にもそういう例はあったが、 日本でそれをサラ金を使ってやる合理性ってのはよくわからない。 とすると、単純に貯蓄がないケースが多いんだろう。 うーんよくわからんなあ。

家賃払えないからサラ金、みたいなところまで追い込まれてくると、 それはもう無理だ。生活コストのギリギリまでの低減をして、 それなお好転しないなら生活保護、というレベルだろうそれは。 日本ではどういう人が何に使うお金をサラ金から借りてるんだろうなあ。

「セントールの悩み」を読んだ。こりゃ独特だ。馬かわいい。 不釣り合いにハードな設定も面白い。 すごく面白い、というわけではないが、抑揚のなさもまた魅力だろう。 ただ、第一話のインパクトがありすぎて、その後はそれほどびっくりしなかった、 というのはある。

2013年05月07日

がんばろう。がんばらないとダメだ。

引っ越すつもりは全くないが、津久井浜あたりの家賃がどれくらいなのか 気になって調べてみた。2DKで5.5万くらいからあるものの、 相場は7万くらいだ。1.5万しか安くない。 ともかくも、そういうところに引っ越せば毎日海に行けるわけだ。 そのかわり私が家にいられる時間は毎日3時間短くなる。ありえない。 家族が一緒にいる時間よりも住環境を重視する価値観は別に珍しくもないが、 今のところうちらはそうではない。しかし、オタマが暮らす環境が 悪すぎることが問題だというならいつでもそっちに切り替えよう。 でも理想的には家で仕事できる状況を作ってどこに引っ越しても かまわない状況にすべきなんだと思う。 とにかくひつじこは都市生活に向かない。

9章の論理展開に致命的ミスを見つけた。大改造を入れないといけない。 「こんな適当なやり方じゃダメでしょ?新しい道具を勉強しようね」 という展開だったのに、適当なやり方で全く問題なかった。 道具を出す理由が消えた。

配布。とりあえずは出版社公式にzipを置くが、 バグへの対処、質問への対処等々考えると こっちに流せる状態にはしておかないといけない。 とりあえずサイトは外のサービス使うか。 うちのサーバ開けるのはマズすぎる。 無料webサーバを探すか。でもそれも下手なところを選ぶと危ないしなあ。 脱稿してから考えよう。

9章に大改造を入れてみたが、まだ言い訳臭いな。 ここでif文を出す必然性が薄い。 でも、if文なしで10章に突入すると説明がえらいことになるので、 ここでif文を出すことは絶対だ。 もしそこからやり直せば週単位で遅延するし、それこそまとまらなくなる危険もある。 しかし、それでもなお最優先は説明の品質なわけで、 本当にそれが必要だというならやらざるを得ない。 とりあえず読み直しながら微調整をしてどうなるか見よう。

異常に眠くて、2時半くらいまではロクに進まなかった。外食の炭水化物のせいか。 ようやく目が覚めて4時までかかって9章を形にした。まだ不足気味。 明日は一旦10章以降をやって、終わってから戻ってこよう。 なにせ朝はひつじこが病院に行く間オタマと遊んでないといけない。 多少は寝なくては。

2013年05月06日

14章に手を入れ、後書きをごっそり短くし、 索引ワードを探す。そして、 最低一回は「全体を脳内音読する」という苦痛すぎる ことをせねばならない。前回はこれをしなかったことが あれだけ間違いが残る原因となった。 また、全てのコード断片が動作するかどうかのチェックも せねばならない。これについては面倒は面倒だが、 C++だった前回よりは楽だ。

で、そこまでやったらイラスト大会だなあ...これがまた苦痛だ。 昼だし一回帰ろう。

「この本では」の大半を「私は」とした。 「書く」も「話す」「言う」、「読む」も「聞く」に直した。 横に私がいるようなイメージを持ってもらいたい。 私の人格を前面に出し、もって特徴とする。 大西先生のコンセプトをパクろう。 体裁は会社で出す本だが、個人を感じさせねば失敗だ。

4周目。3章まで推敲+索引項目追加中。今日中にこれは片づけたい。 そして明日からは晴れてイラストに入りたい。

カイジを今読んだら私は利根川に感情移入するだろう。 まあ元よりカイジに感情移入したことはないんだが。

コミュニケーションを促進するにはどうしたらいいか? おおむねわかった。本人が必要と思うコミュニケーションは行われる。 本人が必要と思わないコミュニケーションは行われない。 まずこのことが根底にある。 だから、仕事がコミュニケーションを必要とすることを 当人が理解すること以外に根本的な解決はない。 あとは、コミュニケーションのコストが不当に高い状況があれば それをどうにかするということはできる。 例えば頻繁に話すべき人間同士の距離が遠いとか、 ネットワークが分断されているとか、そういうのは直せる。 また、効率が悪いコミュニケーション手段がまかり通っていれば、 そこも改善はできる。 しかし、これらのことは十分条件ではない。 結局仕事の設計と、人間の資質の問題に帰着する。 簡単な答えはない。それを簡単な答えでやろうとするからロクなことにならんのだ。

忌野清志郎ってすごいな。ひつじこが「あれは坊さんだ」と言っていた。 なるほど、そう言われるとしっくり来る。あれは説法だ。 音楽性や技巧を云々するのは馬鹿馬鹿しい。あれはそういうものではない。 時代によっては坊主になっていたであろう人が歌手になったり、 時代によっては詩人になっていたであろう人が歌手になったり、 時代によっては巫女になっていたであろう人が歌手になったりしているわけだ。 それが現代の日本なのだろう。いや、20か30年前、と言うべきか。 あるいは古来から歌手というのはそういう職業だったのかもしれない。

ちなみに、ひつじこが日記で「号泣」と書いているが、 それは何ら誇張ではない。顔をクッシャクシャにして鼻水を垂らして泣いている。 ひどい顔だ。中島みゆきの時もそうだった。これが感受性というものなのだろう。 よくこんな感性を持ったままで40年近くも生きて来られたものだと思う。

ひつじこは歌手が人間としてブッ飛んでいるような歌でなければ 感銘を受けない。逆に、それさえあれば、上手い下手は問題ではない。

私もそういう価値観はわかる。 作画が良くてもクソなアニメはある。 絵がうまくてもつまらん漫画はいくらでもある。 なんぼ技巧があってもつまらん演奏はいくらでもある。 そういうものはいらん。しかし、 ひつじこほど徹底できていない。 下手に作る側のことがわかるだけに、妙な手心を加えて歪んでいるところがある。 もっと純粋に観賞する側に立つべきなのだろう。 クソゲーはクソゲーだと言うべきだ。 まあ保身のために言えないこともあるわけだが、それはそれとして。

最強伝説黒沢のリアリティなんてオレは知りたくないんだがな...最悪だ。 だがオレは利根川の立場にしか立たんぞ

「ざっと目を通したが内容はかなりガッカリ。 風の噂では STL を使わないよう自作しましょう、があるとかないとか。 ありえない。」こういう書評をまた食らうのか。食らうんだろう。 100の肯定的なレビューよりも、こういうレビュー1つの方が重く感じる。 こういう人に届かせるには何が足りなかったのだろうかと思う。 しかし、理性的に考えればこういう人に届かせるのは無理だろう。 そんなことは切り捨てていい。成果を生まない努力だ。 しかし、わざわざ否定的な書評を書く気になるほどの落胆を 与えたということ自体は罪だ。それに目を背けるわけには行かない。

私は基本的に私より出来ない人に向けて本を書く。 私よりもプログラミングができる人は私の本など必要としない。 そしてこれは自惚れかもしれないが、 私よりもプログラミングができる人よりも、できない人の方が多い。 また、今プログラミングの本を買わない人間に買わせる方が、 すでに買っている人間に買わせるよりも機会は大きいはずだ。 そしてそれこそが、今の社会に必要なものだと私は思う。 できる奴なんて放っておけばいいのだ。今この社会に必要なのは、 「それなりにできる奴の頭数を揃えること」であり、 限られたエリートではない。どこに行っても、 それなりにできる奴がありふれていて、特に難しいものでなければ どこでも誰でも作れる、という状況が必要なのだ。

しかしそうであっても、今回もまた私は玄人に頼らざるを得ない。 本来こんなものを必要としない人々に買ってもらい、 読んでもらい、評価してもらわねばならない。 そうでなければ、本来買って欲しい人達に届かない。 彼等はお墨付きなくしては買ってくれないのだ。 まずは玄人に面白いと思ってもらわねばならない。 だが、今回の内容はかなりの比率で玄人を敵に回しかねない。 いや、回すだろう。webには「技術的に稚拙」「極めて非効率」「勘違いも甚だしい」 などの書評が満ちるだろう。 既存の教育方法を否定する内容だけに、 すでに教育に携わっている人も敵に回す可能性がある。 それどころか、facebookに前書きを上げた時の反応から想像するに、 「企業の論理で教育しようとし、学生のニーズを無視している」 とかいうよくわからん反応すら出て来る可能性がある。 読んでない人が言葉尻だけで批判するような状況は覚悟せねばならない。 知らねえよ!何だよ企業の論理って! 「プログラマのコストを安くしたい」という物言いだけ見て言ってるだろ! 「コスト」って聞くとすぐ企業の論理とか言い出すのは脊髄反射すぎだって! まあ、そうとられがちな言葉を使ったこっちにも非はあるんだろうが。

正直、分が悪い。前回のもかなり影響力のあるらしい人に 「中級以上の人が読む本では全くない」と書かれた。 影響力の大きな人ほどスキルは高いはずで、 スキルが高い人ほど今回のコンセプトには賛同しない可能性が高い。 前回に比べるとなおさら分が悪い。

私自身のスキルレベルを世に示す必要があるのかもしれんなあ。 「こいつは技術がカス」とか2chで書かれる状況では、 「技術がない奴の本なんて買うな」が正当性を持ってしまう。 私はそう自分ができないつもりはないし、 ある程度できる人にはそれが伝わっていると楽観視しているが、 素人に対して「こいつ、できる」と思わせるためのアピールは何もしてなかった。 一目で技術があると思ってもらえるような物を何かしら作って置いておかねば ダメなのかもしれない。それは絶対的に必要なことなのではないか。

いやでも、言語作ってコンパイラ作ってアセンブラ作ってVM作って動かしてるし、 あの本でライブラリごっそり公開してるし、 一応「これのシェーダ書きました」とか「これの4機種対応やりました」 とか公開の場で言ってるわけで、技術ねえとか言われるレベルじゃないと 自分では思ってるんだが、なんつうかインパクトが足りないんだろうな。 ド素人に「すげえ!」と思わせるようなインパクトが。

そのうちアルゴリズムの教科書書こうとか思ってたが、その前にこの問題は 片づけておくべきかもしれん。結局私の名そのものに力がなければ、 書いた本がまともに評価されん。 もしかしたら今回の本は急ぎすぎたかもしれんなあ。 でもまあ、そんな思考は迷いにすぎん。今は進もう。

何作って公開したら「こいつ出来る!」って思ってくれるんかなあ。 CGはとりあえずわかりやすいか。手間かからん範囲でCG系のベンチマークでも作って 置いておこうかな...あとは何か普通に使える実用ソフトの作者になるとかか... それはちょっとメンテとかあるし面倒だな...

「こいつは教育担当でもう第一線じゃない」とか書かれてるな... 2012年の段階でそれはないだろ...今年に関しては申し開きできんけど。 つうか、会社での教育なんて2ヶ月しかやったことねえよ!しかも4人だよ! 2007年だよ!

あーやっぱり現場にいないとダメな気がしてきた。 現場にいてはできんことをさっさと片づけて、現場に戻るべきだ。 2年くらいで。

くそもう2時だ。今日中に4周目を終わらせるつもりだったが無理だな。 せめて8章までは行こう。

朝4時。8章まで。明日で4周目を終えよう。

今回は第三者に一回も読んでもらわないまま発売という 恐ろしい状況になるわけだが、さてどうしたものかな。 すごく不安になってきた。 一旦寝かせて何ヶ月か経ってから自分で読み直して 再度修正、みたいなことすべきなんじゃね? いやいやダメだ。それはチキンだ。 問題は直接に解決すべきだ。

gmailって99件以上は一つのスレにならないんだな。

2013年05月05日

徹夜して帰ってきたら、ひつじこが海を見たいと言う。 最初はオタマに見せたいと言っていたが、 見たいのはひつじこであることがわかった。 寺とか海とかに行って、都市生活で淀んだ何かを洗いたいらしい。 となるとこのへんの海モドキでは話にならない。 九十九里に出るか、横須賀より遠い東京湾に出るか、 鎌倉に抜けるか、というあたりになる。 九十九里は遠すぎるし、海岸沿いに鉄道がない。 鎌倉も遠すぎる。そもそもJRに乗るのは面倒くさい。 というわけで、東京湾気味ではあるものの京急で横須賀超えをすることにした。 三崎口は内陸だが、その前の三浦海岸、さらにその前の津久井浜は 海に近いところに駅があるように見える。というわけで ロクに確認もせずに行ってみた。

なんか、ちゃんと海だった。帆がついたサーフィンの人がたくさんいる。 オタマは波打ち際が気にいって、津久井浜から三浦海岸駅までの半分くらいの距離を 2.5回くらい歩いた。うちから一番近くて手軽な「ちゃんとした海」だと思う。 打ち上げられたクラゲがたくさん落ちていて、おもしろかった。 交通費片道690円。

帰ったら本を書きに行く予定だったが、何故か朝9時。おかしいなあ。

ガルパン。ひつじこ見ないかなあ。まあ試すのはやめておこう。

熱キツいな。頭痛い。なんか朦朧としてたが、とりあえず0,1章見直した。 決してガルパンのせいではない。 夜は14章と後書きを完全に書き直す。あと、索引ワード探そう。 現状半ページ分しかない。つうか、この本索引が役に立つ度合いが すごく低いと思うんだけどな。 編集さんに言ったら「作者はいらんと思うもんですよ」的なことを 言われて、まあそれはもっともなので、とりあえず無理矢理でも 1ページ分になるまで探す。

でもなあ。用語がとにかく少ないんだよ。意識して概念に名前をつけることを 避けており、「配列」とか「変数」みたいなのが極端に少ない。 名前をつけてないので索引に書きようがない。 普通の本の索引はメソッド名とか演算子とか文法用語でおおむね埋まっている。 まあいい。一回索引用語を探すためだけに最初から最後まで読もう。 もちろん細かいところは直しながらではあるにしても。 一般的な用語で引けるようにもしておくか。 本文中にデバグとは一回も書いてないが、 デバグしてる所を索引で「デバグ」で引けるようにはできる。

とりあえず一旦帰ろう。18時だ。

2013年05月04日

惡の華、なんでこれアニメなんだ? 一回実写撮ってるって聞いたが、 なんでいちいち絵にしてるんだろう。 でもまあ、背景とかもあるし、 絵にすることで実写の情報量を落として 見せたい要素に集中させられるのもある。 元の俳優の顔もそれほど問題にならないだろう。 人一人残して空にするような表現も実写ではできない。 一方で、元が実写だと、アニメでは描かない動きも入ってくるので、 印象がだいぶ違う。最初からアニメにしたのでは できないものができるわけだ。そういうものを見せたいんだろう。 しかし、ひつじこが見る気になるかはわからんなあ。

4時。12章終わり。えらく手間取ったな。

ガルパンで私が一番キツいのは、「いや、おまえら、これ、死ぬじゃん」 というツッコミを封じ切れないことだ。 おまえら、この橋壊れたら、死ぬぞ? あと、直撃したら、やっぱり死ぬよね? そのツッコミさえ封じ切れれば、 このアニメ相当おもろい。3話も見てるとだいぶ慣れてきた。

5時半。13章の説明が適当すぎて、直しが多すぎる。とても14章まで行けそうにない。 決してガルパンを見ていたからではない。

7時。13章終わり。ちょっと時間あるな。14章にもかかろう。

14章、粗く直したが、まだだ。もう8時半なので時間切れ。ここまでを編集さんに 送って帰る。

14章と後書きをどうにかしたら、次はこの本に従ってコードを書きながら ちゃんと進めるかをチェックしないといけない。 本当は第三者にやってほしいが、こんな手間がかかることはとても頼めない。 あとは索引に入れる項目を抜き出す作業もあるな。

後書きと謝辞は書くとしてもzipの中で良いかもなあ。ページ減るし。 13章でテトリスができてる以上、14章もあまり長くなると邪魔くさい。

2013年05月03日

6時22分。凄まじく眠い。何回意識が飛んだかわからない。 途中でファイルを変なふうに書き換えてないか怖いのだが、 ともかくも10章まで終えた。 不安すぎるので、8章から読み直してみる。 まだ時間があるようなら11章をやろう。

0843。時間切れ。11章は夕方以降だな。 帰ってオタマを公園に連れてゆかねば。 しかし、本当に冷やし中華を試すのかな。 帰って体調を聞いてみよう。

2013年05月02日

朝6時に起きて6章をやった。 まだ時間があるな。7章もやろう。

7章終わり。6,7章は画面写真がなさすぎる気がする。 イラストで説明する部分も増やすべきか。特に6章。

今日の夜は8章から。

ひつじこが連日ドーナツブログを読みまくってドーナツ欲を募らせていた。 こういう幻想は一撃で破壊してしまうに限る。 というわけで「なんでも買ってきてやる」と言ったのだが、 何故かヤマザキのケーキドーナツに落ちついた。 ミスドだと5個くらい買いたくなってしまって高くつくかららしい。 なぜそこでケチるかと思うが、それが望みなら良かろう。 というわけで買ってきた。 4個中ひつじこは2.5個くらい食べ、 最初のうちは「全然後悔しない。大丈夫」とか言ってうれしそうだったが、 夕方吐いた。つわり中の妊婦にとってはゲロの味の善し悪しも問題になるものらしく、 「このゲロはマズい」とのこと。「ミスドなら大丈夫かも、とか思うか?」 と聞いたが、「それはない」とのこと。 さようならドーナツである。

つうか、とりわけ劣悪なヤマザキのケーキドーナツを選んだのが最大の問題だと思うけどな。 私ですら食べてウッと来た。昔はこれを4つ丸々食べて平気だったが、 今はきつい。なんだよこの悪そうな油の臭いは。 ちなみに、オタマも1/3くらいは食べたが、あっさり残してひつじこに渡した。 それを食うのは私の役目だったと思うが、丁度台所にいて受け取れなかったのである。 その時はまだ吐き気も来ていなかったのでひつじこがペロリと食べた。 それで2.5個なわけである。

炭水化物はうまいのだが、後がひどい。 なお、明日は冷し中華らしい。また吐くね。 吐くほど食べる前に食べられなくなって私に押しつける展開を期待しよう。 その方が害が少ない。

ひつじこの母上のラジオが壊れたので機械を選んでみた。XDR-55TV。 地デジになってテレビの音声が入らなくなったため、 ワンセグ機能つき。 そしてラジオの死にっぷりがよくわかった。 底辺の安物はまだあるが、そういうものは底辺なのでワンセグとかはついていない。 その上は急に高くなる。中間層がないのだ。 ソニーのサイトを見ても生産終了品まみれである。 かなりの数の機種が手回し充電機能つきで、 災害時用とでも言わないとラジオが売れない状況であることがよくわかる。

ヨドバシなのでもう届いたらしい。満足してもらえているようで良かった。

2013年05月01日

昨日は徹夜して5章まで3周目を終わらせた。 前書きは20%くらい削減。 説教的なことは最終章にごっそり移したので、 0,1章はあっさり目でいい。 あと、たぶん後書きと謝辞も大幅に削って、 謝辞+後書き完全版はzipに入れる。こんなの印刷する必要ねえ。

で、寝てない。午前中は ひつじこの昔からのお友達親子と一緒に萩中公園。 午後は会社に寝に行ったが、 なんか予想外に人が結構いて、寝る感じじゃなかった。話が気になりすぎる。 まあそれでも大半の時間寝てはいたが、こまぎれだ。 疲れが取れるような寝方はできない。 そんなこんなで夕方、オタマと風呂に入ったり夕飯っぽい感じになったりしつつ オタマが寝るまで家にいて、21時。ここからが勝負だ。 朝まで戦えれば11章くらいまで終わるんだろうが、 さてどうだろうなあ。正直すでにして辛い。 カゼが悪化してるのもきついなあ。

やっぱり「遅くないコード本」は書くべきだよなあ。 CG本に比べれば簡単に書けるはずだし、 すぐ使えるし、たぶん需要もある。 ただこの企画の問題点は、 今まで以上に私が叩かれるということか。 プログラマ度の高い連中からボコボコにされるだろう。 「おまえは鉄鉱石を掘りに行くところからしないと自転車に乗れないとでも言うのか」 という批判にさらされることは間違いない。 アルゴリズムなんて他人がパッケージ化したものを使うべきで、 それぞれが勉強するのは時間の無駄だ、 という風潮が支配的である。 それは実際そうなんだが、何を使うべきか選択するだけの 知識もない奴がゴロゴロいるし、 用途によっては作る方がいいこともあるわけだよ。 「標準を使うのがいい」というのを、聖典に書いてある一節か何かのように 信奉するのはやめて、常に比較検討して決めてほしい。 「EffectiveC++に書いてあるから」とか言うのはやめよう、ということだ。 参考にするのはいいが、それに左右されてどうする。 そしてその時に作るスキルがなければ、作ることとの比較をやりようがないから、 視野がどうしても狭くなる。結果的に99%標準を使うとしても、 作るスキルを持った上でそうすれば出来は変わってくるはずなのである。 結果として99%標準を使うことになるのはかまわないが、 それは結果であるべきだ。「どうせ標準になるんだし考える手間が惜しい」 というのも合理的ではあるのだが、周りを見てるとちと問題が多すぎる。

と思う私は少数派か。あるいは、「そうすべきだと思うけど余裕ない」 でスルー。しかし、今の現実は作り方を勉強するのが高くつく、 という条件を前提として出来上がっており、そこが変われば現実も変わる。 もっと楽に学べる方法があれば天秤が逆に振れる人もいるだろう。 私が本を書くのはそのためであって、コストが安くなれば行動が変わる人もいるはずだ、 という期待による。私は触媒になりたい。

スキップリストが素敵すぎるのだが、 あまり普及してないっぽいのはみんな最悪ケースを恐れてるからか? 確かに、最悪保証があり、別に遅いわけでもない赤黒木がすでにあるのに 敢えてこっちを選ぶ必要はない。 しかし、実装が簡単なのは大きな長所だ。 汎用コンテナとしてでなく、特定の型専用につっこみたい場合などに 赤黒木は面倒くさすぎるのだ。スキップリストなら ちょろっとつっこむ気にもなる。 赤黒木は再帰を消したりする最適化をしないと本当の性能は出ないが、 スキップリストにその手の面倒はない。 性能が問題になるほどばらつくことはない、という前提に立つならば、 「実装簡単で性能だいたい一緒ならそれでいいじゃん」と言えるのである。 だいたいmapが5%や10%性能が違ったからといって何の意味があるだろうか。 そんなことよりも、挙動が読めることと、読めるレベルのコードで実装が そこにあることの方が重要だろう。


もどる