暇さえあればプログラミング

「休日、時間があったら何をしますか?」という問いに対して、僕だったら:

  • もし 3 日あるなら、旅行に行きたいです。ただし、ひとりでは行きません
  • もし 2 日あるなら、プログラミングに没頭したいです。
  • もし 1 日あるなら、1 日でできることをします。つまり、普通の休日の過ごし方です

ということで、久しぶりにプログラミングに没頭しました。

没頭するプログラミングの対象は、候補としていろいろあるわけですが:

  • Haskell: いまだ入門段階。早く使いこなせるようになりたい
  • Java: Android アプリを作ろう!
  • C/C++: 作りかけアプリがたくさん

今回は作りかけアプリをひとつ片付けるために VC++ にしました。

作っているのは大量のデータを処理するアプリで、データ処理中に自動でクリックさせたりキー入力させたりする必要があるので必然的に VC++ となった。

作っていてハマった点:

  • Spy++ でメッセージを覗いていると、Windows が死ぬ(何で?)
  • 間違ったメッセージを投げると Windows がキョドる
  • 特に入力系のメッセージは、休み休み送らないと取りこぼす

Spy++ で死ぬのが意味不明。再現性あり。ま、デバッグのために覗いていただけで、今回は必須じゃないからちゃんと調査してないけど、Windows が死ぬのはヤバイね。

投げるメッセージを間違えると Windows がキョドるのも初体験。キョドり方は:

  • クリックが右クリックになっちゃう
  • キーボードの特定のキーが使えなくなる
  • アプリのタイトルバーをクリックすると、実行ファイルの場所を Explorer で開く
  • ログオフしてログインしても直らない

という感じ。間違え方は「どこだかわからないウィンドウになんだかわからないメッセージを、意味不明なパラメータで投げる」というとんでもないバグ。致命傷にならなくて良かった。

最後の休み休み、というのは、しょうがないとはいえ、運用上ちと痛い。

安全のため、十分なスリープ時間を持たせているんだけど、このスリープのおかげで、全部の処理が終わるのが見積り 150H かかる。スリープを半分すれば、丸 3 日で終わるけど、処理し終えたデータの正当性検査はできないので、やっぱり安全のために 150H かかってしまうけど十分なスリープ時間で動かしたほうが良い。

うお〜、とりあえず動かし始めてみたいけど・・・、空いてる PC がない・・・。