2010年07月25日

サーバーPC故障

自宅のサーバ用PCが壊れてしまいました。 BIOSすら起動しなくなってしまいました。 たぶんマザーボードが逝ってしまったのではないかと思います。

HDDは無事だったので、別のゲーム用PCに接続してデータの回収は無事にできました。 しかしリカバリのために色々なソフトをインストールするのが面倒でした。 サーバは仮想環境に移行して、コピー一つでリカバリできるようにしたいですね。

良い機会なので、ほどよいPCを買って新しいゲーム用PCにして、 今のゲーム用PCはサーバに転用しまいましょうかね。

2010年07月21日

iOS SDK4.0でapplicationWillTerminateが呼ばれない

環境iOS(iPhone) SDK 4.0

遅ればせながらiPhoneアプリ開発環境をiOS SDK 4.0にアップデートしてみたところ、 シミュレータでアプリを終了した時に、XxxAppDelegateのapplicationWillTerminateが呼ばれなくなっていました。
このMessageを受けてアプリ終了処理(状態保存など)をしていたので、呼ばれなくなってしまうと大変です。

手持ちのiPod touch(OSのバージョンは3.1.3)は問題なくapplicationWillTerminateが呼び出されます。

簡単に調べてみたところ、シミュレータでは終了処理のやり方が変わっているみたいです。 アプリを終了するのではなく、一旦バックグラウンドに遷移しているような感じです。

Xxx-info.plistにApplication does not run in backgroundを追加し、チェックを入れることで シミュレータでもapplicationWillTerminateが呼び出されるようになりました。

これiPhone 4ではどんな挙動になるんでしょうね。 実機がないから試せませんが、既存のアプリでapplicationWillTerminateが呼び出されないと色々問題が起きそうな気がします。それとも実機では一時的にバックグラウンド動作になるだけなので問題ないのでしょうか。上手くケアされていて欲しいものです。

2010年07月19日

開発初期段階のパスワード取り扱い

最近アカウントが必要なウェブサービスに接続するアプリケーションを作っていたとき、 開発の初期段階では、ソースコード中に自分のアカウントのパスワードを埋め込んでいました。
パスワード入力インターフェースを作るのが面倒だったからなのですが、 Subversionを使って更新履歴を管理していると、リポジトリに生パスワードが保存されてしまいます。 テストアカウントならば良いのですが、プライベートなアカウントだとプライベートなパスワードが綺麗に残ってしまいます。
これは問題じゃないかと思いました。

自分だけしかアクセスできないリポジトリであれば大丈夫そうですが、 将来リポジトリを公開することがあったらそこで暴露されてしまいます。
最初から公開する意識でコードを書くか、リポジトリ公開前に履歴を消去してしまうのが良さそうです。
というわけでパスワード入力用のインターフェースをすぐに実装し、 svnadminでリポジトリからパスワードを完全に消去して対応しました。 やれやれ。

2010年07月05日

プログラマのための文字コード技術入門

プログラマのための文字コード技術入門 という本を読みましたので感想を書いておきます。

本書は主要な文字コードの概略と歴史、それと文字コードに関する課題を取り扱った本です。
文字コード専門家向けではなく、ソフトウェア技術者であれば理解できる程度の内容ですので、私でも簡単に読むことができました。

特に興味深かったのは文字化けについての解説です。 私が過去に遭遇したことがある、メールサブジェクトの文字化けやWebでのフォーム送信時の文字化けなどに触れられており、 文字化けの原因が良く分かりました。
今まで私が文字化けに遭遇したときは、原因が良く分からず試行錯誤での対応になってしまったことが多かったですが、 今後は背景を理解できるので、対策の確実性が増すでしょう。

テキストデータを扱うことがあるソフトウェア技術者にはお勧めの一冊です。