Decremented Blog

プログラミング、釣り、工作など、ジャンルを特に定めず、適当に書かれたブログです。

朝霧の巫女 5巻

2007-12-31 01:20:13 | オタ話
本屋に行ったら、朝霧の巫女の5巻が出ていたので購入しました。

朝霧の巫女は、アニメ版の出来が余りに酷く、作者が嫌になって漫画を描かなくなったと聞いたのですが、Wikipediaによると、そういう事実は無いようです。
でも、確かにアニメ版は酷かったなあ・・・良いのはオープニングの曲だけだった。

最近はめっきりアニメも見なくなってしまいました。
でも、ニコニコ動画見てたらハルヒが見てみたくなったので、冬休み中に見てみるかな・・・

越乃寒梅

2007-12-31 01:00:21 | Weblog
普段、あまり日本酒は飲まないのですが、越乃寒梅だけは好きです。
今日、近くのスーパーで売っていたので、思わず買ってしまいました。

このお酒は、何より飲みやすいですよね。
日本酒は苦手と言う方も、一度試してみると良いかも知れません。
ただ、普通の日本酒より、だいぶ高いですが・・・

04WebServer 開発予定

2007-12-30 04:23:07 | プログラミング・開発
現在、04WebServer では無い、別のサーバソフトを開発中ですが、こちらで開発した機能の多くが04WebServerに移植できそうです。
新しいサーバソフトの公開と前後して、04WebServerの新バージョンも公開するかもしれません。

■Unleakからの移植で実現される機能
・Vista対応(2003もOK)
・USBメモリ上などでの、ポータブル動作(Vista対応の副次的効果)

■新しいサーバソフトからの移植で実現される機能
・UPnPによる通信経路の確保
・DynamicDNS機能
・PHP/Perlの実行環境の内蔵

PHP/Perlの実行環境は、私がコンパイル・設定した物を04WebServerの一部として添付する形になると思います。
他のPHP/Perlの実行環境との共存や、PHP/Perlの実行環境をインストールしないことも出来ます。

通信経路確保の自動化や、スクリプト実行環境の内蔵により、より簡単にサーバが立てられるように、なれば良いなあ・・・

>> コメント下さった方々
Vista対応により、2003でも問題なく動作するようになります。
ドメイン名ごとにSSL認証キーの発行は、SSLの原理上困難です。
一応、Server Name Indicationに対応すれば、IE7やFireFox2では可能ですが、対応したOpenSSLの安定版がでるまでは、ちょっと難しいです。

IUPnPService::InvokeAction() のコール方法

2007-12-28 23:58:46 | プログラミング・開発
UPnPをAPI経由で使うためには、IUPnPService::InvokeAction()を使う必要がありますが、これがちょっと分かりにくいので、メモを残します。

プロトタイプは、↓見たいな感じなのですが、注意すべきはvarInActionArgsです。
InvokeAction(
BSTR bstrActionName,
VARIANT varInActionArgs,
VARIANT* pvarOutActionArgs,
VARIANT* pvarRetVal);

これには、アクションの引数を配列として入れるのですが、何も引数が無い場合でも、空の配列を渡す必要があります。
具体的には、以下みたいなコードになります。

// 配列を用意
CComSafeArray<VARIANT> argArray;
argArray.Create();

// 引数を用意
CComVariant arg(argArray);

// 戻値を用意
CComVariant argRet, retVal;

// コール
hr = pService->InvokeAction(_bstr_t("GetExternalIPAddress"), arg, &argRet, &retVal);
if(!SUCCEEDED(hr))
return(-1);

C++からCOMって面倒だなあ、そろそろC#にでもするか・・・

COMオブジェクトのアクセスでハマる

2007-12-28 15:07:44 | プログラミング・開発
UPnP APIを操作しようとプログラムを書いていて、単純な間違いで2時間くらいハマりました・・・

IUPnPDeviceFinder::FindByType を使うと、デバイスリストとして IUPnPDevices インターフェースが取得できます。
IUPnPDevices の中身を取得するためには、IUPnPDevices::__NewEnumを使い、 IEnumVARIANT か IEnumUnknown を取得して使います。

私は

IEnumUnknown *pEnumUnknown = NULL;
pUPnPDevices->get__NewEnum((LPUNKNOWN *)&pEnumUnknown);
pEnumUnknown->Next(1, &pDevice, &recv);

と言うコードを書いたのですが、最後のNext()が正常に動作しません。
よく考えたら当たり前で、_NewEnum は、IEnumUnknown では無く IUnknown を返すのだから、次のようにコーディングする必要がありました。

IUnknown *pUnknown=NULL;
pUPnPDevices->get__NewEnum((LPUNKNOWN *)&pUnknown);
IEnumUnknown *pEnumUnknown=NULL;
pUnknown->QueryInterface(IID_IEnumUnknown, (void **)&pEnumUnknown);
pEnumUnknown->Next(1, &pDevice, &recv);

このように、IUnknown から QueryInterface して、IEnumUnknown を取得する必要があります。
よく考えれば、当たり前なんですが・・・

アスキーアートを彫刻してみた - やり方

2007-12-28 10:42:49 | 趣味・その他
私がやった、アスキーアート彫刻を簡単に紹介します。

■準備するもの
・ガラスのコップ(透明で薄めのもの)
・電動ルータ
・ダイヤモンドビット
・透明なシール紙
・プリンタ、パソコン

ルータは、ダイヤモンドビットがセットで、ネットで千円くらいから売っています。
電動アートリューターセット
ネーム入ガラス用電動ルーター
※アフィリエイトです。嫌いな人は楽天トップから検索してください。

■やりかた
1.アスキーアートを適当なペイントツールで書きます
2.左右反転します
3.透明なシール紙に印刷します


4.コップの内側に貼ります


6.印刷に沿って削ります
7.ある程度削ったら、シールをはがして確認します

(手とか、色のある物を中に入れるとわかりやすいです)

8.おかしいところを修正して完成



本当に簡単にできるので、お勧めです。

HTTP/HTTPS over P2P

2007-12-28 10:18:26 | プログラミング・開発
誰でも自分用のWebサーバを簡単に立てられる方法を考えています。
問題は、やはりグローバルIPとルータ越えですね。

以前から、HTTP/HTTPSのリバースプロクシ(SoftEather見たいな物)を使えば、グローバルIPが無くてもWebサーバが立てられると考えています。ルータ越えも簡単ですし。
昔、大学のサーバに自作リバースプロクシを入れて、自宅と友人宅にサーバを立てていました。
一人や二人なら、専用サーバを用意すればいいのですが、多人数となると回線幅の問題から難しそうです。

そこで、Skypeのように、P2P技術を使って上手く出来ないか考えています。
技術的には難しくないのですが、悪用されないための仕組みが難しそうです。
自分専用サーバ限定にして、使用時に毎回認証が必要なようにすれば大丈夫かな?
HTTPSも、Server Name Indicationのおかげで、何とかなりそうだし。

まあ、今の日本なら、多くの家にグローバルIPがあるはずなので、ルータさえ越えられればサーバが立てられそうですが・・・
UPnPも普及してきたので、UPnPを使えばある程度は何とかなるかもしれません。

アスキーアートを彫刻してみた

2007-12-26 03:20:05 | 趣味・その他
クリスマスです。
クリスマスにはプレゼントが付き物ですが、何も思いつかなかった私は、何か自分で作ってみることにしました。

過去に、電飾付きクリスマスツリーを作って送ったことがあるのですが、最近は、この手のものは安く買えるようになってしまったので、却下です。
いろいろ考えた末に、ガラス彫刻をやってみることにしました。
勤め先に未使用のルーター(工具の方)があったので、これを借りて帰りました。

彫刻なんかやったことないので、簡単に彫れそうな物を考え、アスキーアートを彫ってみることにしました
アスキーアートなら、基本的に線で構成されてるし、絵柄が単純で簡単そうです。

彫ってみたのは、以下の2種類です。

  [だ]    [い]    [す]   [き]
  ∥∧∧  ∥∧∧ ∥∧,,∧ ∥∧,,∧
  ∩・ω・`)∩・ω・`)∩・ω・`)∩・ω・`)
   (    ). (    ). (    ) (    )
   `u-u´  `u-u´   `u-u´  `u-u´

           ∧_∧ 
          ry ´・ω・`ヽっ
          `!       i   
          ゝ c_c_,.ノ    
             (                  
              )       
         .∧ ∧.(         
         (・ω・`∩  
         o   ,ノ
        O_ .ノ
          .(ノ
         ━━

彫ってみると、↓の様な感じになりました。
2時間くらいかかったけど、結構良い感じです。
 

Steam 利用者統計

2007-12-25 20:59:38 | オタ話
先週末から、Half-Life 2: Episode Twoにハマっています。
HALOやDoomも面白いですが、HLには独特の面白さがありますね。

Valveのゲームは、Steamと言うゲーム管理システムを通して購入できます。
最近では、Doomなど、他者のゲームもオンライン購入し、即ダウンロードできるので便利ですよ。

Steamには、ハードウェア調査機能も搭載されていて、統計を見ることも出来ます。
言語の統計を見ると、日本語4,953に対し、英語482,858で、約100倍の差があります。
日本では洋ゲーは売れないと言いますが、これほどとは・・・
今後も、日本語版出してくれるのかなあ・・・

しかし、Wiiのバーチャルコンソールもそうですが、オンライン販売は危険ですね。
ついつい買ってしまいます。

VisualStudio 2008 日本語版

2007-12-23 16:25:33 | プログラミング・開発
12/21に、VisualStudio 2008 日本語版がMSDNサブスクライバからダウンロード可能になりました。
(ダウンロードのためには、MSDNサブスクリプション(有料)を持っている必要があります)

早速ダウンロードして、使ってみました。
VS2003からVS2005は大きく変わったように感じましたが、2008はあまり変わっていないように感じます。
起動、コンパイルが少し早くなったくらいでしょうか?

とりあえず、2005からの乗り換えには問題なさそうです。