人生を書き換える者すらいた。人生を書き換える者すらいた。Fileの件Tacticoで妙なバグを追いかけているうちにWin32の罠にはまっていた。Fileを使うところで、前から再現性のいまいちないバグがあるなあ、と思っていたのでその関連の機能整理とUnitTestを追加したところ再現手順が判明し、とうとうお縄となりました。Fileがある場合、hFileが有効なファイルハンドルである場合であってもlpNameで指定したほうが優先されるという仕様が存在しているようだ。"xxx")とした場合、b.txtを開いたつもりがa.txtの中身を見てしまうというわけだ。"xxx")となって、2番目に開いたときは書き込む前の内容が見えてしまうということになる。ファイルの更新をしなければ正常に見えるので発見が大変になった。これははまりどころだ。Win32の達人ならこんなの常識なんだろうが、この追跡に1時間以上かかるようでは俺もまだまだ洞察力が足らないな。「ちょっと仕事でつまづいた」という状態からホームレスになるまでの間のセーフティネットを充実させるべきだ、という意見には賛成だし、この周辺の行政(特に生活保護関係)が腐っていて制度として機能していないのもよくわかるんだが、今後どうすればいいのかというのは難しい。これに関連した問題で前から気になっているのがある。生産性が高まったので、単純労働しかできない低スキルの労働者は少ししか必要とされなくなる。スキルと職をめぐる競争が激化し、敗れた者は飢えて死ぬ。実はそうではなく、生産性が高まったので、世の中の全員が労働しなくてもみんな食って行ける。ベーシックインカムのような制度がうまく機能して、労働はやりたい人だけがやるような世の中になる。ニートはごく普通の社会的状態になる。(共産主義の理想形に近い。そのどちらでもなく、現在はまだ「生産性が極限まで高まる」という状態には程遠いレベルであるので、貧困問題は産業革命以後と全く同じ理由で発生している。個人的希望としては(2)なんだが、なにしろ人類史上はじめての社会形態なので予期しない問題もいろいろ起きるだろう。僕が生きてる間にそれを目撃できたらそれほど幸運なことはない。あと、保護を求める人は何かと憲法25条で保証された「健康で文化的な最低限度の生活」というのを根拠にするが、これはたいへん腹立たしい。憲法をよく読むと、12条にはこの憲法が国民に保障する自由及び権利は、国民の不断の努力によつて、これを保持しなければならない。国民は、これを濫用してはならないのであつて、常に公共の福祉のためにこれを利用する責任を負ふ。失業したくらいで行政に保護を求める奴がこの理念に反してるのは明らかだ。「健康で文化的な最低限度の生活」の保証というのは、ナチスの強制収容所ほどにはひどくない生活、というぐらいに理解しておくのが無難だと思うよ。今の政府に多量のニートを養う余裕があるわけないもの。(6)2009.01.08買い換えた携帯がクソすぎる年末に携帯買い換えました。今まで使ってたのはいよいよ電池がへたって、フル充電しても5分しか通話ができなくなってしまったのでな。前から、買い換えるときはタッチパネルが使えるやつにしよう、とは決めていた。touchより劣っているのは確実だろうが、その差の正体をはっきり知るために。店頭で適当に選択したのがF-01Aというやつ(タッチパネル式の中ではどれも機能は大差ないので色と外見で決めた)。ところがこれが相当にひどい。機能上、本体を開いて使う「通常モード」と閉じたまま使う「ビューアモード」というのがあるのだが、物理的には同じパネルを使っているのにも関わらず、タッチするUIはビューアモードでしか使えない。ブラウザとかワンセグとか同じアプリケーションが動いているのに、ですよ?一般に、ユーザに対してある機能を使用不可にするとき、それがなぜなのかがユーザに伝わるかどうかをよく考えないといけない。何も変更していないときに「上書き」ボタンをグレイアウトするのは正しいが、ディスク容量が足りないときにそうしてはいけない。事前にディスクが足りないとソフトウェアが知っている場合でも、ユーザに上書きを試みることは許し、その後初めてメッセージを出すようにするべきだ。僕はソフトウェア作成歴は長いから、おそらくこの制約は、メモリが足りないからとか、タッチパネルのない機種とソフトウェアの基盤を同一にしないといけないから、旧バージョンで動いているコードになるべく手を加えたくないから、といったことが理由だろうということは想像できる。現場を知る立場では、この制約は自明なのであろう。一般のユーザはそんなこと知らないからな。デザイナーがいかれてるのか、ダメなデザインを軌道修正できない組織がいかれてるのかどっちか、またはその両方だ。タッチパネルでの文字入力はその上を行くダメさだ。これは驚愕したので、富士通の製品ページからリンクしてあった広告用ブログ?から画像を拝借して紹介。文字入力は画面上のボタンをタッチして行うのだが(これはiPhoneでもそうだ)、指で押すためにそれなりの面積が必要なのと画面が狭いことが災いして大変なことになっている。このような画面切り替えを1字1字ごとに(!)しなくてはいけない。こんなクソはめったにお目にかかれない。3Gよりも後に発売した製品がこのありさまというのは日本の恥である。それでも、製品に「ユーザにこんな体験をさせたい」という意志が満ちていれば少々の欠点には目をつぶれるのだが、もちろんそれもない。この'意志'はこの記事でいうところの'ソウル'である。僕にとってはこれがソフトウェアを作るときにいちばんおもしろいところで、自らのソウルがうまくソースコードになり、意志が他人に伝わるのを見るときが苦労の報われるときである。この携帯を作った人のほとんどはそういう経験がなく、上司に渡された仕様書の通りに作ること以外のことをしないからこういうクソが市場に出回ってしまうのだろう。プログラマは常に、自分の作業用PCに向かう前に、これから自分が作るものの競合製品をよく見てそのよいところ・悪いところを熟知しなければならない。良いところは法に触れない範囲でマネをし、悪いところはその原因を見極めて追放するというのが基本だ。これなくして製品は作れない。(0)2009.01.03新年あけましておめでとうございます。年末に携帯を買い換えて、そのソフトウェアの出来の悪さに驚いてるんだけども、新年早々そういう話題は何なのでざっと今年の展望を。娘の誕生(2月末ごろ)今年最大のイベントはこれでしょう。仕事との両立をどうするかは今から頭が痛いが、楽しみである。3発売(秋~冬)第二次大戦のゲームの続編が出る。(紹介記事)時間がとれれば日本語化作業に協力もしたいんだができるかな。【仕事】Tacticoは本格着手から2年が経ち、今年は収入に寄与する年である。既存の契約の収入見込みに、いま来ている話が全部成立すると仮定して加算すると今年の僕の収入の見込みはサラリーマン時代の10倍を超えてしまうが、全部成立するとは限らないし、あまりガメても税金で取られるだけだし、人を雇えばその資金もいるのでそんなに楽観はできない。あと、時間が取れる自信はあまりないが、Tactico以外の活動もしたい。第一候補はPoderosaのちゃんとしたメンテナンス開始、第二はiPhoneに関係した面白そうなオープンソースプロジェクトに参加、だ。今年は民主党政権ができそうな気配だが、gdgdなのは変わらない。政治主導で何か日本に有用なことができる気はしないのでどうでもいいといえばどうでもいいんですが。僕は選挙区は又吉イエス、比例は民主に入れます。【経済】いよいよ混沌としてくると思うが、一つ確かなのは、ここ半年くらいで各中央銀行が供給した資金を適切なタイミングで吸収することはたぶん無理、ということだ。その資金の受け皿としてどこかでバブルが発生する。いつごろどの市場でそうなるかはわからないが、これをきちんと読み切れれば大きく儲かるはず。僕も血圧は危険な水準だし、同年代の友人でも肝臓がおかしくなる人がいるしで安心してはいられない。