今週末、友人と飲みに行くつもりなのですが、友人はその前にコミケに行く予定だそうです。
今週末は特に予定がいないので、私も行ってみる事にしました。
コミケには一度も行った事がないのですが、友人によると、予め購入するものを決めておかないと、現地で買う物を決めるのは不可能との事。
と言うことで、カタログを買いに行ったのですが、コミケのカタログって2400円もするんですね。
1500円くらいかと思っていたので、ちょっと面食らいました。
値段書いてないですし。
自分の趣味を考えてみると、所持数が多い順に、まんがタイム/まんがライフ系の4コママンガ、次が電撃系のラノベ、次がジャンプ系です。
とりあえず、この辺りを中心に、何を買うか考えて見ますかね・・・
今週末は特に予定がいないので、私も行ってみる事にしました。
コミケには一度も行った事がないのですが、友人によると、予め購入するものを決めておかないと、現地で買う物を決めるのは不可能との事。
と言うことで、カタログを買いに行ったのですが、コミケのカタログって2400円もするんですね。
1500円くらいかと思っていたので、ちょっと面食らいました。
値段書いてないですし。
自分の趣味を考えてみると、所持数が多い順に、まんがタイム/まんがライフ系の4コママンガ、次が電撃系のラノベ、次がジャンプ系です。
とりあえず、この辺りを中心に、何を買うか考えて見ますかね・・・
04WebServer 2.0の開発状況です。
一応、CGIが動作する程度まで完成しています。
現在は、外部モジュールのインタフェースを実装中です。
内部構造を変更している途中なので、現在のリポジトリ内の最新コードは、コンパイルしても動作しません。
外部モジュールで大幅に機能が拡張できるよう、柔軟な構成にしようと気合を入れていたのですが、出来上がってみるとものすごく複雑になってしまいました。
これでは今後の開発が大変なので、外部モジュールの機能を制限し、構造を単純にすることにしました。
とりあえず、外部モジュールにより、Subversion(mod_svn同等機能)の実装を可能にするのが目標です。
一応、CGIが動作する程度まで完成しています。
現在は、外部モジュールのインタフェースを実装中です。
内部構造を変更している途中なので、現在のリポジトリ内の最新コードは、コンパイルしても動作しません。
外部モジュールで大幅に機能が拡張できるよう、柔軟な構成にしようと気合を入れていたのですが、出来上がってみるとものすごく複雑になってしまいました。
これでは今後の開発が大変なので、外部モジュールの機能を制限し、構造を単純にすることにしました。
とりあえず、外部モジュールにより、Subversion(mod_svn同等機能)の実装を可能にするのが目標です。
今日は出張のため、FMV-BIBLO LOOX R/A70を持ち出して作業しています。
このLOOX R/A70ですが、バッテリで動作させると、画面が点滅を繰り返し、最終的にグラフィックドライバが落ちるという謎の現象が発生しました。
幸いVistaのため、グラフィックドライバが停止しても、自動的にドライバだけ再起動してくれるので、XPや2000のようにBoDを拝む事はないのですが、これでは仕事になりません。
グラフィックドライバの設定を見てみると、省電力関係の設定に、リフレッシュレートを動的に変えるという項目がありました。
現象からして、この設定が怪しそうです。
案の定、設定をOFFにすると正常に動作するようになりました。恐らく、ドライバのバグでと思われます。
多少、バッテリの寿命は縮むかもしれませんが、とりあえず当面は何とかなりました。
ドライバのアップデート待ちですね。
このLOOX R/A70ですが、バッテリで動作させると、画面が点滅を繰り返し、最終的にグラフィックドライバが落ちるという謎の現象が発生しました。
幸いVistaのため、グラフィックドライバが停止しても、自動的にドライバだけ再起動してくれるので、XPや2000のようにBoDを拝む事はないのですが、これでは仕事になりません。
グラフィックドライバの設定を見てみると、省電力関係の設定に、リフレッシュレートを動的に変えるという項目がありました。
現象からして、この設定が怪しそうです。
案の定、設定をOFFにすると正常に動作するようになりました。恐らく、ドライバのバグでと思われます。
多少、バッテリの寿命は縮むかもしれませんが、とりあえず当面は何とかなりました。
ドライバのアップデート待ちですね。
OpenSSLのライブラリを0.9.8iに入れ替えてみました。
すると、何故かメモリリークが発生するようになってしまいました。
以下のようなコードでメモリリークが発生してしまうので、コンパイルに失敗しているか、ライブラリのバグのようです。
調べてみると、OpenSSLのMLでも同じような問題が上がっています。
Memory Leaks in SSL_Library_init()
Cleanup procedure missing some calls?
パッチが上がるとか上がらないとかいう話になっていますが、最新のリポジトリを見ても、修正されていないように見えます。
とりあえず、もう少し調査してみようと思います。
すると、何故かメモリリークが発生するようになってしまいました。
以下のようなコードでメモリリークが発生してしまうので、コンパイルに失敗しているか、ライブラリのバグのようです。
SSL_library_init(); ENGINE_cleanup(); CONF_modules_unload(1); ERR_free_strings(); CRYPTO_cleanup_all_ex_data(); EVP_cleanup(); ERR_remove_state(0);
調べてみると、OpenSSLのMLでも同じような問題が上がっています。
Memory Leaks in SSL_Library_init()
Cleanup procedure missing some calls?
パッチが上がるとか上がらないとかいう話になっていますが、最新のリポジトリを見ても、修正されていないように見えます。
とりあえず、もう少し調査してみようと思います。
今日、仕事先で2年ほど放置していた元Windowsサーバマシンを、別の用途に転用することにしました。
一応、中身を確認しようとしたのですが、ログインパスワードが分からず、ログインできません。
分解してHDを外すのも面倒なので、どうしようかと考えたところ、「Offline NT Password & Registry Editor」と言うソフトの存在を思い出しました。
このソフト、CDでLinuxをブートして、NTFSのボリュームをマウント、レジストリを編集してパスワードを消してしまうと言う、危険なソフトです。
CDイメージを落としてきて、ブートしてみると、簡単にパスワードをクリアできてしまいました。
CD抜いてWindowsを起動してみると、あっさりログイン・・・
ログインできたと言うことは、そのユーザのキーで暗号化したファイルが読めると言うことです。
EFSの暗号化、もう信用できないなあ・・・
一応、中身を確認しようとしたのですが、ログインパスワードが分からず、ログインできません。
分解してHDを外すのも面倒なので、どうしようかと考えたところ、「Offline NT Password & Registry Editor」と言うソフトの存在を思い出しました。
このソフト、CDでLinuxをブートして、NTFSのボリュームをマウント、レジストリを編集してパスワードを消してしまうと言う、危険なソフトです。
CDイメージを落としてきて、ブートしてみると、簡単にパスワードをクリアできてしまいました。
CD抜いてWindowsを起動してみると、あっさりログイン・・・
ログインできたと言うことは、そのユーザのキーで暗号化したファイルが読めると言うことです。
EFSの暗号化、もう信用できないなあ・・・
04WebServer2でRead-Write Lockが必要になりました。
Read-Write Lockは、マルチスレッドの共有データ保護モデルのひとつで、読み込みは複数のスレッドから可能だが、書き込み時は、読み込み禁止+ひとつのスレッドのみ書き込みを実現するものです。
確か、WindowsのカーネルモードではRead-Write Lockを実現するカーネルオブジェクトが提供されているはずです。
しかし、なぜかユーザーモードからは利用できないようです。
なぜに・・・?
検索してみても、C++用の実装はほとんど見つかりませんでした。
仕方ないので自作したのですが、面倒だから再突入は管理しませんでした。
完全な再突入管理は、多分、TLS(スレッドローカルストレージ)使わないと無理じゃないかなあ・・・
出張先で時間が出来たので、ネットカフェから書いてますが、LCDのパネルサイズとグラフィックカードの出力解像度があってなくて、気持ち悪い・・・
つーか、グラフィックドライバ入ってないじゃん・・・Vistaなのに
Read-Write Lockは、マルチスレッドの共有データ保護モデルのひとつで、読み込みは複数のスレッドから可能だが、書き込み時は、読み込み禁止+ひとつのスレッドのみ書き込みを実現するものです。
確か、WindowsのカーネルモードではRead-Write Lockを実現するカーネルオブジェクトが提供されているはずです。
しかし、なぜかユーザーモードからは利用できないようです。
なぜに・・・?
検索してみても、C++用の実装はほとんど見つかりませんでした。
仕方ないので自作したのですが、面倒だから再突入は管理しませんでした。
完全な再突入管理は、多分、TLS(スレッドローカルストレージ)使わないと無理じゃないかなあ・・・
出張先で時間が出来たので、ネットカフェから書いてますが、LCDのパネルサイズとグラフィックカードの出力解像度があってなくて、気持ち悪い・・・
つーか、グラフィックドライバ入ってないじゃん・・・Vistaなのに
04WebServer2では、外部モジュールで機能を拡張したり、動作を変更できるようにする予定です。
新機能は外部モジュールとして開発し、最終的に本体に取り込むと言う開発方法を考えています。
そのため、外部モジュールと内部モジュール両方に同じ環境を提供する必要があります。
外部モジュールはDLLで提供されるわけですが、いくつか問題があります。
特に大きな問題は、下記の二点です。
1.サーバの提供するインタフェースが、将来的に変更される可能性がある
2.C++例外を使用している
これらの問題を解決するために、04WebServerでは、サーバの機能を利用するために、COMのInvokeのような間接的な関数呼び出しを行う仕様にすることにしました。
詳細は実装が終わってから書きたいと思います。
新機能は外部モジュールとして開発し、最終的に本体に取り込むと言う開発方法を考えています。
そのため、外部モジュールと内部モジュール両方に同じ環境を提供する必要があります。
外部モジュールはDLLで提供されるわけですが、いくつか問題があります。
特に大きな問題は、下記の二点です。
1.サーバの提供するインタフェースが、将来的に変更される可能性がある
2.C++例外を使用している
これらの問題を解決するために、04WebServerでは、サーバの機能を利用するために、COMのInvokeのような間接的な関数呼び出しを行う仕様にすることにしました。
詳細は実装が終わってから書きたいと思います。