XBox 360でTEST DRIVE中

次女(中2)と一緒に、TEST DRIVE中。

次女は、当然ながら免許は持っていないので、車を運転したり、信号無視したり、逆走したり、パトカーに追われたり、だけで大騒ぎ。ちょっと将来不安w。

それと、レーシングより、着せ替えとショッピングにはまっていました。
 
ハワイオアフ島全島が3Dで再現されているのには驚きました。何度かオアフ島に、いったことがありますが、雰囲気良く出ていますね。
妻と久々に、オアフ島をドライブしましたw。妻いわく、あそこに教会があったでしょ?って、しっかり3Dあるしw。
まだ、タートルベイも行っていないけれど、週末には足をのばしてみようっと。
 
でも、何か違和感があると思ったら、せっかくのワイキキビーチに人がいないんですね。レースもいいけれど、ここまで3Dで作ってくれるとなると、ボートに乗れたり、観光もできるといいのに。
 
ストーリー的にも、レンタカーを借りて、家を買って、車を買って・・・と、それなりにバケーション気分になるので、真面目にまたハワイに行きたくなりました。
  
ゲームとしては、レーシングホイールが無いと、厳しいですね。早速買うか・・・
 
ただ、欧米系キャラクターは、勘弁してほしい。もう少し日本人好み?っていうか
こんな感じのキャラクターのほうがいいなっと・・・
 
のような車のダウンロードコンテンツより、キャラクターのダウンロードコンテンツが欲しい!
って、それじゃあレースソフトじゃなくなってしまう?
 

XBox 360 と Vista が接続できない

Vista のメディアをXBOX 360 から再生しようと思って、XBOX 360と Vista を接続しようと試みるが、Extender セットアップの画面で、"構成エラー"、"コンピュータをこの Extender 用に構成中にエラーが発生しました。"とのエラーで接続できない。エラーメッセージはこれしかないので、
 
XBOX のネットワークは 100baseTでVista と同じサブネット内に設置。
Vista側から XBOX 360は見えている。
Vista 側は、Windows Firewall をすべて外し、One Care もアンインストールしたが、だめ。
 
XP のMedia Center と XBOX 360 は、接続できたので、XBOX自体は問題なさそう。 
 
接続状況コード
W: 0000-000B
X: 0000-F001
Y: 0000-0000
Z: 8000-4005
 
あちこち探してみたが、解決策がわからない・・・
 

WZero3 用 Windows Live for Mobile

W-ZERO3 用 Windows Live for Windows Mobile がリリースされていて、今週は結構オンラインになっていました。帰宅途中で家にチャットするのも結構面白い。
 
 
ただ、オンラインだと、かなりバッテリーが早くなくなるような気がします。

MS用語

当たり前のごつくつかわれているけど・・・
 
CTP    Community Technology Preview   コミュニティ向けの限定リリース
QFE     Quic Fix Engineering  応急的な修正プログラム
RTM    Release To Manufacturing   製造のためのバージョン(アルファ、ベータ1、ベータ2、RC1、RC2を経て、最終段階のRTMとなる)
 

.NET Compact Framework 3.5

Visual Studio Orcas March CTP を入れながら、.NET Compact Framework 3.5 になっている。
 
によると、4つのエリアにフォーカスして開発中とのこと。
    1. 分散モバイルアプリケーションを作成するため、WCF(Windows Communication Foundation)との連携を可能とする
    2. デバイス固有のフィーチャーをLINQで実装
    3. 要求の高い機能の実現
    4. ダイアグと信頼性解決とサポートの問題のための機能をリファイン

New Features Included in the Orcas January CTPでの新しい機能は次の通り

  • • HTTP compressionを含むSystem.IO.Compression のサポート
  • • LINQ の標準クエリオペレータのサブセットをサポート
  • • WaveOut による同時サウンドプレイを可能にする SoundPlayerのサポート.
  • • Smartphone and Pocket PCの識別を容易にするMicrosoft.WindowsCE.Forms の新しいAPI
  • • ネストしたFuncEvalを可能にする。??
  • • InterOpのログの強化
  • • Stack Trace の強化.
  • • GACの改良.
  • • StrongName keysを1024以上に対応.
  • • ファイナライザーの動作をログする機能を強化.(サポートのため)
  • . log fileを実行時に読み取り可能にする
 
 

Visual Studio Orcas Beta 1 ダウンロード開始

March CTP をさっきインストール終わって、触ってみるかと思いつつ・・・
あれ? Beta 1 でてるじゃん・・・ orz
ということで Beta 1ダウンロード中。おそ!
ISOで自分でインストールか、Virtual Image でインストール済みのイメージも提供されている。
 

アクセスカウンターがいつの間にかサービス停止になっていた

Infoseek のアクセスカウンターがいつの間にかサービス停止になっていたので、忍者ツールへ変更。
カウンターは、Infoseek アクセス解析
 
3日坊主の割には、よく続いていると思う。
MVP アワードもらっていなかったら、確実に終わっていたと思う。
やっぱり、いろいろな人と出会えたのが最高に刺激を受けましたね。
 
2002/3/3 新規作成。祝:初公開!
Microsoft は嫌いだけれど、Java もメモリ食いで使い物にならないし。。。
MFC, Win32 よりはまだましかと、ついに魂を悪魔に売り渡して、C# Programming の勉強をはじめました。
bar トータルアクセス数 5319791
bar 重複を除いたユニークアクセス数 2363679
 
2003年11月29日(土) 0 0 0 0 0.00
2003年11月30日(日) 435 435 573 573 1.32
…. 中略
2007年 4月13日(金) 3798 2357587 7808 5307146 2.06
2007年 4月14日(土) 1170 2358757 2204 5309350 1.88
2007年 4月15日(日) 1068 2359825 2282 5311632 2.14
2007年 4月16日(月) 3812 2363637 8099 5319731 2.12

W-Zero3 の.NETアプリを作ってみての感想

メリット
  • Visual Studio でほとんど違和感なく C# でアプリが組める。すごく楽。
デメリット
  • 結構メモリ食い。.NETアプリ4つも動かしたらアウトかも。
  • 起動が遅い。数秒待たされる。起動しておけばいいのだけど、メモリ食いなので、いまいち。
  • W-Zero3の機能(カメラ、通信など)を使おうと思うと、InterOpが必須になってしまい、結構面倒。

ちょこっとしたアプリを作って遊ぶ分にはいいかもしれないけれども、売り物を作ろうと思うと、ネイティブで作らないと厳しいと思う。InterOpするぐらいなら、最初から C++で書いたほうが早そう。というっことで、NGEN for Windows Mobile が欲しい!

 

 

 

WZero3の通信を切断する方法

RASの切断方法
            に書いてあるとおり。
 
呼び出し
            RasConn.CloseAllConnections();
—————–
using System;
using System.Runtime.InteropServices;
 
namespace Uchukamen.WZero3
{
    /// <summary>
    /// This class is based on code from "mikinder".
    /// http://www.developersdex.com/vb/message.asp?p=2916&r=5643969
    /// </summary>
    class RasConn
    {
        const int MAX_PATH = 260;
        const int RAS_MaxDeviceType = 16;
        const int RAS_MaxPhoneNumber = 128;
        const int RAS_MaxEntryName = 20;
        const int RAS_MaxDeviceName = 128;
        const int SUCCESS = 0;
        const int ERROR_NOT_ENOUGH_MEMORY = 8;
        const int RASBASE = 600;
        const int ERROR_BUFFER_TOO_SMALL = RASBASE + 3;
        const int ERROR_INVALID_SIZE = RASBASE + 32;
        #region DllImport
        //// — RASCONN data structure definition (refer to ras.h) —
        //private const int RAS_MaxEntryName = 20;
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public struct RASCONN
        {
            public int dwSize;
            public IntPtr hrasconn;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = RAS_MaxEntryName + 1)]
            public string szEntryName;
        }
        // ——————————————–
        [DllImport("coredll.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern uint RasEnumConnections(
            [In, Out] RASCONN[] rasconn,
            [In, Out] ref int cb,
            [Out] out int connections);
        [DllImport("coredll.dll")]
        private static extern uint RasHangUp(IntPtr pRasConn);
        #endregion
        /// <summary>
        /// Returns all active RAS connections as an array of data structure RASCONN
        /// </summary>
        /// <returns></returns>
        public static RASCONN[] GetAllConnections()
        {
            RASCONN[] tempConn = new RASCONN[1];
            RASCONN[] allConnections = tempConn;
            tempConn[0].dwSize = Marshal.SizeOf(typeof(RASCONN));
            int lpcb = tempConn[0].dwSize;
            int lpcConnections = 0;
            uint ret = RasEnumConnections(tempConn, ref lpcb, out lpcConnections);
            if (ret == ERROR_INVALID_SIZE)
            {
                throw new Exception("RAS: RASCONN data structure has invalid format");
            }
            else if (ret == ERROR_BUFFER_TOO_SMALL && lpcb != 0)
            {
                // first call returned that there are more than one connections
                // and more memory is required
                allConnections = new RASCONN[lpcb / Marshal.SizeOf(typeof(RASCONN))];
                allConnections[0] = tempConn[0];
                ret = RasEnumConnections(allConnections, ref lpcb, out lpcConnections);
            }
            // Check errors
            if (ret != SUCCESS)
            {
                throw new Exception("RAS returns error: " + ret);
            }
            if (lpcConnections > allConnections.Length)
            {
                throw new Exception("RAS: error retrieving correct connection count");
            }
            else if (lpcConnections == 0)
            {
                // if there are no connections resize the data structure
                allConnections = new RASCONN[0];
            }
            return allConnections;
        }
        /// <summary>
        /// Closes all active RAS connections
        /// </summary>
        /// <returns></returns>
        public static void CloseAllConnections()
        {
            RASCONN[] connections = GetAllConnections();
            for (int i = 0; i < connections.Length; ++i)
            {
                RasHangUp(connections[i].hrasconn);
            }
        }
    }
}