PC関係のメモ
chrome16の文字化け
特にFacebookでの文字化けが気になるChorme(およびChromium)の文字化けがChrome17に向けて修正が入るらしい。
https://groups.google.com/a/googleproductforums.com/forum/#!topic/chrome-ja/xOEErwc4f2c
意外にもエンコーディングの問題ではなく、フォントレンダリングの問題のようで、スケールを変更すれば文字化けにならない。
が、問題が特定されたらしく次バージョンでは修正されるらしい。
dddav 0.9 リリース
http://www.mylab.jp/program/dddav/
1件の不具合修正といくつかの改善を含むリリース。
dddav 0.8 リリース
今回は不具合修正と仕様変更のリリース。
http://www.mylab.jp/program/dddav/
日本語フォルダ名に関する不具合の修正。
- ホスト設定の「リモートの初期フォルダ」に日本語フォルダ名が含まれる場合にパスが文字化けする
- ホスト設定の「現在のフォルダ」押下時に日本語フォルダ名が含まれた場合に文字化けする
加えてバージョンチェックのHTTPアクセス時にインターネットオプションのプロキシ設定を参照するように仕様変更。
OLE Drag&Dropで画面をロックさせない実装
OLE ドラッグ&ドロップ(以下D&D)の実装を見直し中。
VC++(MFC)で何も考えずにD&Dを実装すると、D&D中はアプリケーションがロックされる。
普通のアプリケーションならロックされる時間は短いので気にならない。
但し、dddavのようなドロップ後に時間のかかる処理(ファイル転送)をしている場合にはそれが気になるのでロックされないように考える必要がある。
具体的には次の点をdddavでは実装していた。
- 時間のかかる処理(ファイル転送等)はスレッド処理する。
- ドロップ後は自前でメッセージループを回す。
但し、これだけだとD&Dを開始したコントロール(リストビュー)がロックされる。
これはWM_NOTIFYメッセージで受け取ったドラッグ開始の処理中の中でドロップ後の処理を行うため、コントロールに次のメッセージが送られてこないせいであるためと考えられる。
よって、この対策として次の点も現在実装中である。
- ドラッグの開始と同時に非表示のダミーウインドウにメッセージを投げ、そちらでドラッグを開始させる。
この他に、オートメーションのスレッドを立ててそちらでドラッグを開始する試みもしてみたが失敗した。
MFCのコード中で、メインスレッドかどうかのチェック判定をしているため別スレッドではドラッグが開始できないためである。
具体的にはmfc\oledrop1.cppのCOleDropSource::OnBeginDrag()の中に書いてある下記コードで判定していた。
// some applications steal capture away at random times if (CWnd::GetCapture() != pWnd)
ワイド文字列からマルチバイト文字列への変換
MFC/ATLであればCStringW/CStringAを使うのがお手軽。コンストラクタで変換してくれる。
Win32APIならMultiByteToWideChar/WideCharToMultiByteを使うんだけど面倒。
標準Cライブラリならmbtowc/wcstombs。
dddav 0.7をリリース
起動時のソフトの更新チェックと、転送しながらのリモートフォルダ移動に対応。
http://www.mylab.jp/program/dddav/
起動時の最新バージョン確認についてはプロキシを見ていないので通知されない可能性あり。
気になる格言、名言、慣用句
メモ。
推測するな、計測せよ
by 書籍 24時間365日 サーバ/インフラを支える技術
KISS(Keep it simple, stupid)の原則
by Kelly Johnson
テストコードにはWhat, ソースコードにはHow, そして,ドキュメントにはWhyを書くんだよ!
by 角谷信太郎氏
顧客は1/4インチのドリルが欲しいわけではない。 1/4インチの穴が欲しいのだ
by Theodore Levitt
ポケット1つの原則
by 野口 悠紀雄氏
やってみせ, 言ってきかせて, させてみせ, ほめてやらねば, 人は動かじ。
by 山本五十六
学ばない者は人のせいにする。 学びつつある者は自分のせいにする。 学ぶということを知っている者は誰のせいにもしない。
by キング・カズ
自分の願望は、あらゆる犠牲を払い、 自分の力で実現させるものだ。 他人から与えられるものではない。
by 碇ゲンドウ - エヴァンゲリオンより
陽子自身が人を信じることと、 人が陽子を裏切ることはなんの関係もないはずだ。 陽子自身が優しいことと他者が陽子に優しいことは、 なんの関係もないはずなのに。
by 小野不由美氏 - 十二国記より
dddav 0.6 をリリース
OLE D&Dではまる
VC++で作ったプログラムでOLEドラッグ&ドロップした後に自動整列されてしまう現象に悩まされていたが原因がわかった。
正規化されていないパスを渡すとエクスプローラに遅延レンダリングでドロップした後になぜかドロップしたファイルのアイコンが自動整列されてしまう。
よって、GetFullPathNameでパスを正規化することで解決した。

