<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Neutral Scent</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/" />
   <link rel="self" type="application/atom+xml" href="https://labs.cybozu.co.jp/blog/kaorun/atom.xml" />
   <id>tag:labs.cybozu.co.jp,2009:/blog/kaorun//15</id>
   <updated>2008-07-10T04:17:18Z</updated>
   <subtitle>Kaoru Nakajima @ Cybozu Labs</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>

<entry>
   <title>x64環境でVS2008のATLスマートデバイスプロジェクトがビルドできない件</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/07/vs2008_windowsmobile_project_in_x64.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1967</id>
   
   <published>2008-07-10T04:07:29Z</published>
   <updated>2008-07-10T04:17:18Z</updated>
   
   <summary>結論: 単純に、include/lib設定が Program Files (x8...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="win32" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>結論: 単純に、include/lib設定が Program Files (x86) に対応してないだけでした。</p>  <p>既定値で動かないのは明らかにテスト不足だと思います。&gt;VS開発チーム    <br />(ひょっとしたら、うちの環境の作る順番とか原因かもしれないけど...)</p>  <p>具体的に言うと、Wizardでプロジェクト作るだけで、</p>  <blockquote>   <p>midl : command line error MIDL1001 : cannot open input file oaidl.idl</p> </blockquote>  <p>こんなビルドエラー。</p>  <p>対策としては、</p>  <p>[ツール]/[オプション]/[プロジェクトおよびソリューション]/[VC++ディレクトリ]    <br />の、 </p>  <blockquote>   <p>[プラットフォーム] &#8594; 作成したいWindows Mobile環境      <br />[ディレクトリを表示するプロジェクト] &#8594; [インクルード ファイル] と[ライブラリ ファイル]</p> </blockquote>  <p>を開くと、 </p>  <blockquote>   <p>C:\Program Files\Windows Mobile 5.0 SDK R2\PocketPC\include\ARMV4I      <br />C:\Program Files\Windows Mobile 5.0 SDK R2\PocketPC\include </p> </blockquote>  <p>とかなっていると思います。</p>  <p>x64環境で、Windows Mobile SDKは通常 Program Files (x86)にインストールされるので、[Program Files] &#8594; [Program Files (x86)] と変更するだけ。</p>  <p>あと、おかしいなー、と思ってMIDLの[追加のインクルードファイル]にフルpathを入れたら、空白を含むpathに対応してなかったのもちょっと酷いかも...。</p>]]>
      
   </content>
</entry>
<entry>
   <title>ATLアプリでDPAPIを使用するサンプル</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/07/dpapi_with_atl.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1966</id>
   
   <published>2008-07-09T06:21:41Z</published>
   <updated>2008-07-09T06:31:16Z</updated>
   
   <summary>Win32のDPAPIをC++/ATLで使用するサンプルがあまりないので公開。 ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="win32" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>Win32のDPAPIをC++/ATLで使用するサンプルがあまりないので公開。</p>  <p>DPAPIを使用すると、システムがWindowsのユーザープロファイルから暗号鍵を生成するため、アプリケーションはキーの管理をすることなくデータの暗号化が可能です。    <br />dwFlagsにCRYPTPROTECT_LOCAL_MACHINEを指定すると、ユーザーではなくシステムプロファイルで解読可能となります。</p>  <blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->   <pre class="csharpcode">CAtlArray&lt;BYTE&gt; cypherBytes;
CryptDPAPI::Encrypt(L<span class="str">&quot;DPAPI sample&quot;</span>, cypherBytes);
CString strPlain = CryptDPAPI::Decrypt(cypherBytes); </pre>
</blockquote>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode"><span class="preproc">#pragma</span> once
<span class="preproc">#pragma</span> comment(lib, <span class="str">&quot;Crypt32.lib&quot;</span>)

#include <span class="str">&quot;stdafx.h&quot;</span>
#include &lt;Wincrypt.h&gt;
#include &lt;atlcoll.h&gt;
#include &lt;atlstr.h&gt;


<span class="kwrd">class</span> CryptDPAPI
{
<span class="kwrd">public</span>:
    <span class="kwrd">static</span> DWORD Encrypt(LPCTSTR szSource, CAtlArray&lt;BYTE&gt; &amp;result, LPCTSTR szDescription = L<span class="str">&quot;&quot;</span>, DWORD dwFlags = 0L)
    {
        DATA_BLOB plainData;
        DATA_BLOB cypherData = {0};

        plainData.pbData = (BYTE *)szSource;    
        plainData.cbData = (lstrlen(szSource)+1) * <span class="kwrd">sizeof</span>(TCHAR);

        <span class="kwrd">if</span>(CryptProtectData(&amp;plainData, szDescription, NULL, NULL, NULL, dwFlags, &amp;cypherData))
        {
            result.SetCount(cypherData.cbData);
            ::CopyMemory(&amp;result[0], cypherData.pbData, cypherData.cbData);
            LocalFree(cypherData.pbData);

            <span class="kwrd">return</span> cypherData.cbData;
        }
        <span class="kwrd">return</span> 0L;
    }

    <span class="kwrd">static</span> CString Decrypt(CAtlArray&lt;BYTE&gt; &amp;cypherBytes, LPTSTR *pszDescription = NULL, DWORD dwFlags = 0L)
    {
        <span class="kwrd">return</span> Decrypt(&amp;cypherBytes[0], cypherBytes.GetCount(), pszDescription, dwFlags);
    }

    <span class="kwrd">static</span> CString Decrypt(BYTE *pCypherBytes, DWORD count, LPTSTR *pszDescription = NULL, DWORD dwFlags = 0L)
    {
        DATA_BLOB cypherData;
        DATA_BLOB plainData = {0};
        cypherData.pbData = pCypherBytes;
        cypherData.cbData = count;
        <span class="kwrd">if</span> (CryptUnprotectData(&amp;cypherData, pszDescription, NULL, NULL, NULL, dwFlags, &amp;plainData))
        {
            CString strResult;
            strResult = (LPTSTR)plainData.pbData;
            LocalFree(plainData.pbData);

            <span class="kwrd">return</span> strResult;
        }
    }
};</pre>
</blockquote>

<p>おかしなところなどあれば乞ご指摘。</p>]]>
      
   </content>
</entry>
<entry>
   <title>IEツールバーにXP ビジュアルスタイルを適用するVS2005/2008編</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/06/bandobjectwithxpvisualstyle.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1951</id>
   
   <published>2008-06-19T08:19:40Z</published>
   <updated>2008-07-09T06:31:52Z</updated>
   
   <summary>ちょっとやり方を見つけるのにものすごく時間と労力がかかることがある。    これ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="win32" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="135" label="atl" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="137" label="vs" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="136" label="win32" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>ちょっとやり方を見つけるのにものすごく時間と労力がかかることがある。    <br />これもそんなひとつ。</p>  <p>ATLとIBandObject でIEツールバーを作っていると、そのままの状態ではLunaスタイルが適用されなくて、他のGoogleツールバーなどと並べると、カクカクしててしょぼいボタンになってしまったりする。</p>  <p>で、XPのビジュアルスタイルなんてmanifest書くだけじゃん、と思ったらこれがハマった。    <br />リソースに</p>  <blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->   <pre class="csharpcode">ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST <span class="str">&quot;FooBar.dll.manifest&quot;</span></pre>
</blockquote>

<p>とか書いてみたら、ビルドすると「出力を登録できませんでした」。 
  <br />ぇぇー、と思っていろいろCut&amp;Tryしてもさっぱり。</p>

<p>結局なんのことはない、VS2005以降ではVisual Studioが勝手に*.dll.embed.manifestを生成して組み込むようになってて、マニフェストが2重になってただけでした。</p>

<p>VS2005/2008時代のマニフェストの登録方法:</p>

<p>1. 以下のようなマニフェストファイルをプロジェクトに追加</p>

<blockquote>CommCtrl.manifest (ファイル名はまぁなんでもいい) 
  <br /><!-- code formatted by http://manoli.net/csharpformat/ -->

  <pre class="csharpcode"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span><span class="kwrd">=&quot;1.0&quot;</span> <span class="attr">encoding</span><span class="kwrd">=&quot;UTF-8&quot;</span> <span class="attr">standalone</span><span class="kwrd">=&quot;yes&quot;</span>?<span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">assembly</span>
  <span class="attr">xmlns</span><span class="kwrd">=&quot;urn:schemas-microsoft-com:asm.v1&quot;</span>
  <span class="attr">manifestVersion</span><span class="kwrd">=&quot;1.0&quot;</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">dependency</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">dependentAssembly</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">assemblyIdentity</span>
        <span class="attr">type</span><span class="kwrd">=&quot;win32&quot;</span>
        <span class="attr">name</span><span class="kwrd">=&quot;Microsoft.Windows.Common-Controls&quot;</span>
        <span class="attr">version</span><span class="kwrd">=&quot;6.0.0.0&quot;</span>
        <span class="attr">processorArchitecture</span><span class="kwrd">=&quot;*&quot;</span>
        <span class="attr">publicKeyToken</span><span class="kwrd">=&quot;6595b64144ccf1df&quot;</span>
        <span class="attr">language</span><span class="kwrd">=&quot;*&quot;</span><span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">dependentAssembly</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">dependency</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">assembly</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<p>2. 「プロジェクトのプロパティ/構成プロパティ/マニフェスト ツール/入力と出力/追加のマニフェスト ファイル」に上記のマニフェストファイル(CommCtrl.manifest)を追加。</p>

<p>3. stdafx.hに</p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode"><span class="preproc">#define</span> ISOLATION_AWARE_ENABLED    1</pre>
</blockquote>

<p>を追加。</p>

<p>以上でなんとかなる、はずです。</p>]]>
      
   </content>
</entry>
<entry>
   <title>MT更新のテスト 兼 小ネタ</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/05/mttest_and_fftips.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1901</id>
   
   <published>2008-05-09T10:07:34Z</published>
   <updated>2008-05-09T10:11:18Z</updated>
   
   <summary>新しい環境に移行中なので、ついでに今まで気になっていた各種設定を見直しています。...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>新しい環境に移行中なので、ついでに今まで気になっていた各種設定を見直しています。</p>  <h4>1. Firefox関連:</h4>  <ul>   <li>ブックマークをフォルダ優先でソートする </li> </ul>  <blockquote>   <ol>     <li>[ブックマーク] メニューを開く </li>      <li>メニュー上で右クリック </li>      <li>[名前順に並び替え] </li>   </ol>    <p>IEメインの人がFirefoxの初期値で一番イライラするのはたぶんきっとコレ。      <br />前は人力でえっちらおっちらソートしていた...(涙)。       <br />[ブックマークの管理] にもそのような機能・設定は無く、一見並び順でフォルダを優先させることはできないように見えるが、なぜか右クリックメニューからソートした場合のみフォルダが優先される。       <br />(<a href="http://d.hatena.ne.jp/ZIGOROu/">id:ZIGOROu</a>さんにchromeでのソースの場所を教えてもらって発覚。Thanksです!)</p> </blockquote>  <ul>   <li>Ctrl + Tabで最新のページの順でタブを切り替える </li> </ul>  <blockquote>   <ol>     <li>Firefox拡張 <a href="http://en.design-noir.de/mozilla/ctrl-tab/">Ctrl-Tab</a> を入れてみた。         <br /><a title="http://en.design-noir.de/mozilla/ctrl-tab/" href="http://en.design-noir.de/mozilla/ctrl-tab/">http://en.design-noir.de/mozilla/ctrl-tab/</a> </li>   </ol>    <p>個人的にFirefoxが一番気に入らないポイントだったのでなんとかする。      <br />プレビューはいらないんだけどな...。       <br />ちなみに、IEも規定値は違うけど[ツール]/[インターネットオプション]/[詳細設定]/[ブラウズ]/[Ctrl+Tabでタブを切り替えるときに、最新のページ順で切り替える]をOnにするとできる。(確か&#946;の頃まではOnだったから他のブラウザに合わせたとみられる)</p> </blockquote>  <ul>   <li>タブの横に新規タブボタンを付ける </li> </ul>  <ol>   <ol>     <li>Firefox拡張 <a href="https://addons.mozilla.org/ja/firefox/addon/1456">New Tab Button on Tab Bar 2.0</a> を入れてみた。 </li>   </ol> </ol>  <blockquote>   <p>さらにIE7っぽくということで。      <br />右側に出たほうが直観的だと思うんですけどね...。       <br />(そのままだとFF3では動かない?というコメントあり)</p> </blockquote>  <h4>2. Windows Live Writer 2008 + Movable Type の初期設定</h4>  <ul>   <li>ブログのパスワードには [Web サービスのパスワード] を使用する </li> </ul>  <blockquote>   <p>前のマシンは&#946;版から上書きしてたので、設定項目が変わってて焦った。      <br />とはいえ、<a href="https://labs.cybozu.co.jp/blog/kaorun/2007/06/windows_live_writer.html">前に</a>比べて単に項目が減っただけだった。</p>    <p>[Web サービスのパスワード] の確認方法:</p>    <ol>     <li>MTの管理画面にログイン </li>      <li>右上の自分のユーザー名をクリック </li>      <li>一番下の [Web サービスのパスワード] を確認 </li>   </ol> </blockquote>  <h4>3. 検索バーから新しいTabを開く</h4>  <ul>   <li>Firefox </li> </ul>  <ol>   <ol>     <li>キーワード入力 &#8594; Alt + Enter </li>   </ol> </ol>  <blockquote>   <p>標準の検索BoxでもGoogle Toolbarでも同様。</p> </blockquote>  <ul>   <li>IE7 </li> </ul>  <ol>   <ol>     <li>IE7 + Google Toolbar        <br />キーワード入力 &#8594; Ctrl + Enter </li>      <li>IE7の検索Box        <br />キーワード入力 &#8594; Alt + Enter </li>   </ol> </ol>  <p>まー、どれも改まって書くほどのことでもないですが、自分用に覚書として。</p>]]>
      
   </content>
</entry>
<entry>
   <title>Japanize for Internet Explorer Version 1.03</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/japanize_for_ie_103.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1859</id>
   
   <published>2008-04-08T06:17:09Z</published>
   <updated>2008-04-08T06:23:08Z</updated>
   
   <summary>Firefox版拡張とほぼ同等の機能を実現し、Pre-ReleaseしたVers...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>Firefox版拡張とほぼ同等の機能を実現し、Pre-ReleaseしたVersion 1.02の問題点を修正したJapanize for Internet ExplorerのVersion 1.03をリリースいたしました。</p>  <p>Japanize for Internet Explorer 1.03    <br /><a title="http://japanize.31tools.com/" href="http://japanize.31tools.com/">http://japanize.31tools.com/</a></p>  <p>Version 1.02からの主な変更点:</p>  <ol>   <li>翻訳対応サイトにファイルのダウンロードページが存在し、ページ内でIEの情報バー(ページ上部の黄色いメッセージ)が表示された場合、ブラウザがハングアップするケースが発見されたので修正。 </li> </ol>  <p>Version 1.00からの主な変更点(再掲載):</p>  <ol>   <li>サイト設定機能を追加      <br /><font color="#a6badb">任意のサイトに対して、翻訳の有無を選択することが可能になりました。</font> </li>    <li>翻訳データのローカルディスクへのキャッシュ機構を実装      <br /><font color="#a6badb">これまで、ページ毎にダウンロードしていた翻訳データをローカルディスクへ保存します。        <br />また、翻訳データの更新方法を変更することも可能です。</font> </li>    <li>未翻訳サイトへの翻訳スクリプト挿入を抑制      <br /><font color="#a6badb">UserScript版をベースとしていたスクリプトの挿入機構をネイティブコードで実装し高速化と安定性の向上を実現しました。</font>&#160; </li>    <li>一部表記の変更 </li>    <li>その他bugfix, 安定性向上 </li> </ol>  <p>(<a href="https://labs.cybozu.co.jp/blog/kaorun/2008/02/japanize_for_internet_explorer_1.html" target="_blank">Version 1.02 詳細</a>)</p>  <p>IEのDOMオブジェクトの仕様により、翻訳内容はFirefox版に若干見劣りする部分もありますが、ブラウザ拡張としての安定度はかなり向上しているため、ぜひこの機会にお試しいただければと思います。</p>]]>
      
   </content>
</entry>
<entry>
   <title>Silverlight 2 SDK+JavaScriptで無償の開発環境を作る #4 [アニメーションとメディア編]</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_4.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1855</id>
   
   <published>2008-04-07T07:18:05Z</published>
   <updated>2008-04-07T08:42:37Z</updated>
   
   <summary>[ソースコードをダウンロード]   (download sample sourc...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Silverlight" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="xaml" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/js_sample5.zip" target="_blank">[ソースコードをダウンロード]</a>   <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/js_sample5.zip" target="_blank">(download sample source code)</a>   <p>ちまちま書いてきましたが、もう少しSilverlightらしいことを、ということで、次は、アニメーションとメディアを利用したサンプルです。</p>  <blockquote>   <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript4_BD7D/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript4_BD7D/image_thumb.png" width="244" border="0" /></a> </p> </blockquote>  <p>リストから選択した動画を再生して、半透明で回転させます。</p>  <p>さすがにちょっと長くなりますが、そんなに複雑じゃありません。</p>  <blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->   <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">UserControl</span>
  <span class="attr">xmlns</span><span class="kwrd">=&quot;http://schemas.microsoft.com/client/2007&quot;</span>
   <span class="attr">xmlns:x</span><span class="kwrd">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span>
   <span class="attr">x:Class</span><span class="kwrd">=&quot;System.Windows.Controls.UserControl&quot;</span>
   <span class="attr">x:Name</span><span class="kwrd">=&quot;JSSample5&quot;</span><span class="kwrd">&gt;</span>

  <span class="kwrd">&lt;</span><span class="html">StackPanel</span> <span class="attr">Orientation</span><span class="kwrd">=&quot;Vertical&quot;</span> <span class="kwrd">&gt;</span>

  <span class="kwrd">&lt;</span><span class="html">ListBox</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;list_movie&quot;</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ListBoxItem</span> <span class="attr">Content</span><span class="kwrd">=&quot;SPIDER&quot;</span> <span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ListBoxItem</span> <span class="attr">Content</span><span class="kwrd">=&quot;CAR&quot;</span> <span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ListBoxItem</span> <span class="attr">Content</span><span class="kwrd">=&quot;5cm&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">ListBox</span><span class="kwrd">&gt;</span>

  <span class="kwrd">&lt;</span><span class="html">MediaElement</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;video&quot;</span> <span class="attr">Source</span><span class="kwrd">=&quot;&quot;</span> <span class="attr">Width</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;0&quot;</span><span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">StackPanel</span> <span class="attr">Orientation</span><span class="kwrd">=&quot;Horizontal&quot;</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">StackPanel.Background</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ImageBrush</span> <span class="attr">ImageSource</span><span class="kwrd">=&quot;http://silverlight.net/Themes/silverlight/images/logo.jpg&quot;</span><span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">StackPanel.Background</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Width</span><span class="kwrd">=&quot;320&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;240&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">VideoBrush</span> <span class="attr">SourceName</span><span class="kwrd">=&quot;video&quot;</span> <span class="kwrd">/&gt;</span>
      <span class="kwrd">&lt;/</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">Rectangle</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;転&quot;</span> 
      <span class="attr">FontSize</span><span class="kwrd">=&quot;180&quot;</span> <span class="attr">FontWeight</span><span class="kwrd">=&quot;Bold&quot;</span> <span class="attr">TextWrapping</span><span class="kwrd">=&quot;Wrap&quot;</span> <span class="attr">Opacity</span><span class="kwrd">=&quot;0.5&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">TextBlock.RenderTransform</span><span class="kwrd">&gt;</span>
         <span class="kwrd">&lt;</span><span class="html">RotateTransform</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;rotater&quot;</span> 
           <span class="attr">Angle</span><span class="kwrd">=&quot;30&quot;</span> <span class="attr">CenterX</span><span class="kwrd">=&quot;120&quot;</span> <span class="attr">CenterY</span><span class="kwrd">=&quot;120&quot;</span> <span class="kwrd">/&gt;</span>
      <span class="kwrd">&lt;/</span><span class="html">TextBlock.RenderTransform</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">TextBlock.Foreground</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">VideoBrush</span> <span class="attr">SourceName</span><span class="kwrd">=&quot;video&quot;</span> <span class="kwrd">/&gt;</span>
      <span class="kwrd">&lt;/</span><span class="html">TextBlock.Foreground</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">TextBlock</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span>

  <span class="kwrd">&lt;</span><span class="html">StackPanel.Triggers</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">EventTrigger</span> <span class="attr">RoutedEvent</span><span class="kwrd">=&quot;StackPanel.Loaded&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">BeginStoryboard</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">Storyboard</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;myStoryboard&quot;</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">DoubleAnimation</span> <span class="attr">Storyboard</span>.<span class="attr">TargetName</span><span class="kwrd">=&quot;rotater&quot;</span> 
          <span class="attr">Storyboard</span>.<span class="attr">TargetProperty</span><span class="kwrd">=&quot;Angle&quot;</span> <span class="attr">From</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">To</span><span class="kwrd">=&quot;360&quot;</span> 
          <span class="attr">Duration</span><span class="kwrd">=&quot;0:0:50&quot;</span> <span class="attr">RepeatBehavior</span><span class="kwrd">=&quot;Forever&quot;</span> <span class="kwrd">/&gt;</span>
        <span class="kwrd">&lt;/</span><span class="html">Storyboard</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;/</span><span class="html">BeginStoryboard</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">EventTrigger</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">StackPanel.Triggers</span><span class="kwrd">&gt;</span>

  <span class="kwrd">&lt;/</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">UserControl</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode">Import(<span class="str">&quot;System.Windows.Application&quot;</span>)
Import(<span class="str">&quot;System.Windows.Controls&quot;</span>)
Import(<span class="str">&quot;System.Windows.Controls.UserControl&quot;</span>)
Import(<span class="str">&quot;System&quot;</span>)

function App() {
   <span class="kwrd">this</span>.scene = Application.Current.LoadRootVisual(<span class="kwrd">new</span> UserControl(), <span class="str">&quot;app.xaml&quot;</span>)
}
App.prototype = {
    start:function() {
        <span class="kwrd">this</span>.scene.list_movie.SelectionChanged += function (s,e){
            var url = app.movies[s.SelectedItem.Content];
            s.Parent.video.Source = <span class="kwrd">new</span> System.Uri(url);
        }
    },
    movies:{
        <span class="str">&quot;SPIDER&quot;</span>:<span class="str">&quot;http://www.sonypictures.com/movies/spiderman2/video/sm2_teaser_high.asx&quot;</span>,
        <span class="str">&quot;CAR&quot;</span>:<span class="str">&quot;http://www.disney.co.jp/movies/cars/yokoku/media/eng_300k.wmv&quot;</span>,
        <span class="str">&quot;5cm&quot;</span>:<span class="str">&quot;http://rd.yahoo.co.jp/tokushu/5cm/teaser01/?http://i.yimg.jp/images/evt/5cm/teaser8000k1280_720.wmv&quot;</span>
    }
}

app = <span class="kwrd">new</span> App;
app.start();</pre>
</blockquote>

<p><font color="#c0c0c0" size="1">動画のリンク先がちょっとアレですが、サンプルってことで許してください。 
    <br />flvが使えないのがSilverlightの辛いところ...。</font></p>

<p>まずは、新しい要素のListBoxですが、</p>

<blockquote>
  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">ListBox</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;list_movie&quot;</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">ListBoxItem</span> <span class="attr">Content</span><span class="kwrd">=&quot;SPIDER&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">ListBoxItem</span> <span class="attr">Content</span><span class="kwrd">=&quot;CAR&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">ListBoxItem</span> <span class="attr">Content</span><span class="kwrd">=&quot;5cm&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">ListBox</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<p></p>

<p>これは、まぁ見たままです。 
  <br />ListBoxコントロールにListBoxItemコントロールを子要素として持たせています。 

  <br />ちなみに、このアイテムの追加部分は、JS側で、</p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode">var arr = [<span class="str">'SPIDER'</span>,<span class="str">'CARS'</span>,<span class="str">'5cm'</span>];
<span class="kwrd">this</span>.scene.list_movie.ItemsSource = arr; </pre>
</blockquote>

<p>などと処理することもできます。(+イベントハンドラに若干修正が必要)</p>

<p>次に、</p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">MediaElement</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;video&quot;</span> <span class="attr">Source</span><span class="kwrd">=&quot;&quot;</span> <span class="attr">Width</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;0&quot;</span><span class="kwrd">/&gt;</span> </pre>
</blockquote>

<p>このMediaElementは、ビデオ再生に利用しています。 
  <br />ここでは、さらにこの動画を別の要素に張り込むため、サイズが0x0pxの不可視コントロールであるローダーとしてのみ使用。 

  <br />実際の動画アドレスの設定はコード側でSourceプロパティに対して行っています。</p>

<p>そして、ここで「video」として定義したMediaElementを参照しているのが、</p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Width</span><span class="kwrd">=&quot;320&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;240&quot;</span><span class="kwrd">&gt;</span> 
  <span class="kwrd">&lt;</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">VideoBrush</span> <span class="attr">SourceName</span><span class="kwrd">=&quot;video&quot;</span> <span class="kwrd">/&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span> 
<span class="kwrd">&lt;/</span><span class="html">Rectangle</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<p>こちらのRectangleコントロール。 
  <br />塗りつぶし要素として&lt;VideoBrush&gt;を使用し、videoを参照しています。</p>

<p>もう一つの、TextBlockはもう少し複雑です。</p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;転&quot;</span> 
  <span class="attr">FontSize</span><span class="kwrd">=&quot;180&quot;</span> <span class="attr">FontWeight</span><span class="kwrd">=&quot;Bold&quot;</span> <span class="attr">TextWrapping</span><span class="kwrd">=&quot;Wrap&quot;</span> 
  <span class="attr">Opacity</span><span class="kwrd">=&quot;0.5&quot;</span><span class="kwrd">&gt;</span> 
  <span class="kwrd">&lt;</span><span class="html">TextBlock.RenderTransform</span><span class="kwrd">&gt;</span> 
     <span class="kwrd">&lt;</span><span class="html">RotateTransform</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;rotater&quot;</span> 
       <span class="attr">Angle</span><span class="kwrd">=&quot;30&quot;</span> <span class="attr">CenterX</span><span class="kwrd">=&quot;120&quot;</span> <span class="attr">CenterY</span><span class="kwrd">=&quot;120&quot;</span> <span class="kwrd">/&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">TextBlock.RenderTransform</span><span class="kwrd">&gt;</span> 
  <span class="kwrd">&lt;</span><span class="html">TextBlock.Foreground</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">VideoBrush</span> <span class="attr">SourceName</span><span class="kwrd">=&quot;video&quot;</span> <span class="kwrd">/&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">TextBlock.Foreground</span><span class="kwrd">&gt;</span> 
<span class="kwrd">&lt;/</span><span class="html">TextBlock</span><span class="kwrd">&gt;</span> </pre>
</blockquote>

<p>基本的には「転」と書かれたTextBlockですが、ここでTransform(変形)オブジェクトを用いて、&lt;TextBlock.RenderTransform&gt;と&lt;RotateTransform&gt;を使うことでとりあえず30度回転させ、 &lt;TextBlock.Foreground&gt;で、前面の塗りつぶしとして、同じくvideoを参照しています。 
  <br />&lt;RotateTransform&gt;は次のアニメーション用ストーリーボードで値を変更するために「rotater」と命名してあります。</p>

<p>最後に、StackPanelにアニメーション動作の引き金となるトリガとその実体を追加しています。</p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">StackPanel.Triggers</span><span class="kwrd">&gt;</span> 
  <span class="kwrd">&lt;</span><span class="html">EventTrigger</span> <span class="attr">RoutedEvent</span><span class="kwrd">=&quot;StackPanel.Loaded&quot;</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">BeginStoryboard</span><span class="kwrd">&gt;</span> 
      <span class="kwrd">&lt;</span><span class="html">Storyboard</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;myStoryboard&quot;</span><span class="kwrd">&gt;</span> 
      <span class="kwrd">&lt;</span><span class="html">DoubleAnimation</span> <span class="attr">Storyboard</span>.<span class="attr">TargetName</span><span class="kwrd">=&quot;rotater&quot;</span> 
        <span class="attr">Storyboard</span>.<span class="attr">TargetProperty</span><span class="kwrd">=&quot;Angle&quot;</span> <span class="attr">From</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">To</span><span class="kwrd">=&quot;360&quot;</span> 
        <span class="attr">Duration</span><span class="kwrd">=&quot;0:0:50&quot;</span> <span class="attr">RepeatBehavior</span><span class="kwrd">=&quot;Forever&quot;</span> <span class="kwrd">/&gt;</span> 
      <span class="kwrd">&lt;/</span><span class="html">Storyboard</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;/</span><span class="html">BeginStoryboard</span><span class="kwrd">&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">EventTrigger</span><span class="kwrd">&gt;</span> 
<span class="kwrd">&lt;/</span><span class="html">StackPanel.Triggers</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<ul>
  <li>「StackPanelがロードされたら」 </li>

  <li>「rotaterのAngleプロパティを」 </li>

  <li>「0～360&#176;まで」 </li>

  <li>「50秒間で」 </li>

  <li>「double値のアニメーションを行うストーリーボードを実行せよ」 </li>
</ul>

<p>というトリガが定義されています。</p>

<p>このようにアニメーションをXAML側で定義できてしまうため、さまざまな動的デザイン要素をプログラマではなくデザイナが定義することが可能になるわけです。 
  <br />ここでは、XAMLを手書きしていますが、Expression Blendなどのデザインツールを使用すれば、FlashライクにGUIでタイムテーブルを編集してストーリーボードを作成することでアニメーションを定義できます。 

  <br />また、Expression Blendでの編集結果をその場でXAMLとして堪忍できる点がSilverlightやWPFの面白いポイントだと言えるでしょう。 

  <br />タグで見ていると頭がワヤになりますが、Blendを使って図形をぐりぐり動かしつつ出力されたXAMLをチェックしてみることで、Silverlightを使ってどのようなアニメーションが実現できるかを探ることができると思います。</p>

<p>以上、駆け足ですが、Silverlightの環境構築から、基本的なXAMLの書き方などSilverlightアプリ作成の基礎をまとめてみました。 
  <br />Windowsやクライアントアプリにこれまで全く縁がない方々でも、基本的な部分さえわかってしまえば、Javascript、Python、Rubyなどの言語を利用することができ、なおかつ(今のところ)ブラウザ間の互換性をほとんど意識する必要もなく、比較的多くの環境で動作するリッチアプリケーションを作ることができる点がSilverlight2の一つのポイントだと思います。</p>

<p>Silverlight2による開発は、ほぼどんな環境でも利用可能で、ライセンスも不要、というわけで手軽に始めることができますので、このエントリーが興味を持っていただくきっかけになれば幸いです。</p>

<p><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_1.html" target="_blank">#1 [環境整備編]に戻る...</a></p>]]>
      
   </content>
</entry>
<entry>
   <title>Silverlight 2 SDK+JavaScriptで無償の開発環境を作る #3 [参照と配置編]</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_3.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1854</id>
   
   <published>2008-04-07T07:17:57Z</published>
   <updated>2008-04-07T08:12:10Z</updated>
   
   <summary>[ソースコードをダウンロード]   (download sample sourc...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Silverlight" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/js_sample4.zip" target="_blank">[ソースコードをダウンロード]</a>   <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/js_sample4.zip" target="_blank">(download sample source code)</a>   <p>今度はミニマムなフォームを作ってみましょう。 </p>  <blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->   <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">UserControl</span> 
    <span class="attr">xmlns</span><span class="kwrd">=&quot;http://schemas.microsoft.com/client/2007&quot;</span> 
    <span class="attr">xmlns:x</span><span class="kwrd">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span> 
    <span class="attr">x:Name</span><span class="kwrd">=&quot;JSSample4&quot;</span><span class="kwrd">&gt;</span> 
  <span class="kwrd">&lt;</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;label_top&quot;</span> <span class="attr">Text</span><span class="kwrd">=&quot;What's your name?&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">TextBox</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;text_name&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">Button</span> <span class="attr">x:Name</span><span class="kwrd">=&quot;cmd_submit&quot;</span> <span class="attr">x:Content</span><span class="kwrd">=&quot;submit&quot;</span> <span class="kwrd">/&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span> 
<span class="kwrd">&lt;/</span><span class="html">UserControl</span><span class="kwrd">&gt;</span> </pre>
</blockquote>

<p>と書いてみますが、これはそのままだとchironでは動いてくれません。 </p>

<p>Silverlight2で利用可能なコントロールにはcore APIとlibrary API群に分けられており、純粋にコアとなるのSilverlightランタイムには最小限のコントロールしか用意されていません。 
  <br />このため、たとえボタンのように一見標準コントロールのように見えてもlibraryに追い出されているコントロールがあるのです。 

  <br />Visual Studioを使用したCLRアプリであれば、参照設定などもできるのですが、現時点で私が見つけているchironから利用可能な方法はもう少し回りくどい方法になります。 </p>

<p>これを解決するためにappフォルダに新しい定義ファイル 
  <br />app\AppManifest.xaml 

  <br />を追加します。 </p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode" style="overflow: scroll"><span class="kwrd">&lt;</span><span class="html">Deployment</span> 
    <span class="attr">xmlns</span><span class="kwrd">=&quot;http://schemas.microsoft.com/client/2007/deployment&quot;</span> 
    <span class="attr">xmlns:x</span><span class="kwrd">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span> 
    <span class="attr">RuntimeVersion</span><span class="kwrd">=&quot;2.0.30226.00&quot;</span> 
    <span class="attr">EntryPointAssembly</span><span class="kwrd">=&quot;Microsoft.Scripting.Silverlight&quot;</span> 
    <span class="attr">EntryPointType</span><span class="kwrd">=&quot;Microsoft.Scripting.Silverlight.DynamicApplication&quot;</span><span class="kwrd">&gt;</span> 

  <span class="kwrd">&lt;</span><span class="html">Deployment.Parts</span><span class="kwrd">&gt;</span> 
    <span class="rem">&lt;!-- Core DLR and DLR &lt;-&gt; Silverlight shim assemblies --&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">AssemblyPart</span> <span class="attr">Name</span><span class="kwrd">=&quot;Microsoft.Scripting.Silverlight&quot;</span> 
        <span class="attr">Source</span><span class="kwrd">=&quot;Microsoft.Scripting.Silverlight.dll&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">AssemblyPart</span> <span class="attr">Source</span><span class="kwrd">=&quot;Microsoft.Scripting.dll&quot;</span> <span class="kwrd">/&gt;</span> 

    <span class="rem">&lt;!-- Language assemblies --&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">AssemblyPart</span> <span class="attr">Source</span><span class="kwrd">=&quot;Microsoft.JScript.Compiler.dll&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">AssemblyPart</span> <span class="attr">Source</span><span class="kwrd">=&quot;Microsoft.JScript.Runtime.dll&quot;</span> <span class="kwrd">/&gt;</span> 

    <span class="rem">&lt;!-- Silverlight SDK controls assemblies --&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">AssemblyPart</span> <span class="attr">Name</span><span class="kwrd">=&quot;System.Windows.Controls&quot;</span> 
        <span class="attr">Source</span><span class="kwrd">=&quot;System.Windows.Controls.dll&quot;</span> <span class="kwrd">/&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">Deployment.Parts</span><span class="kwrd">&gt;</span> 
<span class="kwrd">&lt;/</span><span class="html">Deployment</span><span class="kwrd">&gt;</span> </pre>
</blockquote>

<p>これで、まずはOk。 </p>

<blockquote>
  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript3_B8A7/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="57" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript3_B8A7/image_thumb_1.png" width="388" border="0" /></a> </p>
</blockquote>

<p>そして、フォームのイベントハンドラをapp.jsに追加します。 </p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode" style="overflow: scroll">Import(<span class="str">&quot;System.Windows.Application&quot;</span>)
Import(<span class="str">&quot;System.Windows.Controls.UserControl&quot;</span>)

function sample_app() {
    <span class="kwrd">this</span>.scene = Application.Current.LoadRootVisual(<span class="kwrd">new</span> UserControl(), <span class="str">&quot;app.xaml&quot;</span>);
}
sample_app.prototype = {
    start:function() {
        <span class="kwrd">this</span>.scene.cmd_submit.Click += function(s,e){
            s.Parent.label_top.Text = <span class="str">&quot;Welcome &quot;</span>;
        }
        <span class="kwrd">this</span>.scene.cmd_submit.Click += function(s,e){
            s.Parent.label_top.Text += s.Parent.text_name.Text + <span class="str">&quot;!&quot;</span>;
        }
    }
}

app = <span class="kwrd">new</span> sample_app;
app.start();</pre>
</blockquote>

<p>これでフォームのボタンが動作したと思います。 </p>

<blockquote>
  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript3_B8A7/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="58" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript3_B8A7/image_thumb.png" width="386" border="0" /></a> </p>
</blockquote>

<p>このコード、JSの使い手の方なら、ボタンのイベントハンドラの追加部分に違和感を感じると思います。 </p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode" style="overflow: scroll"><span class="kwrd">this</span>.scene.cmd_submit.Click += function(s,e){
   s.Parent.label_top.Text = <span class="str">&quot;Welcome &quot;</span>;
}
<span class="kwrd">this</span>.scene.cmd_submit.Click += function(s,e){
    s.Parent.label_top.Text += s.Parent.text_name.Text + <span class="str">&quot;!&quot;</span>;<br />}</pre>
</blockquote>
一般のJSであれば、Clickイベントに=でfunctionを代入するところですが、SilverlightのManaged Javascriptでは += でdelegate(デリゲート)を使用します。C#や.NETの特徴の話でよく出てくる奴ですね。 

<p></p>

<p>これにより、このサンプルのように、特に意識する必要なく、複数のイベントハンドラを一つのイベントに割り当てることができます(厳密に言うと、この場合マルチキャスト デリゲートかな)。functionはイベントに追加された順に呼び出されます。 delegateを使用することで、元のイベントハンドラをローカル変数に保存してイベントチェーンを...、などという手間が必要なくなるわけです。delegateの詳細に関しては別途いろいろ調べてみてください。</p>

<h3>Silverlightコントロールのxap化と配置:</h3>

<p>次に、コマンドラインオプションを変更してchironを起動してみましょう。 
  <br />chiron /z:app.xap 

  <br />これで、プロジェクトルートのindex.htmlの隣にapp.xapファイルが作成されたと思います。 

  <br />このapp.xapファイルと、最初に作成したプロジェクトルートのindex.htmlをサーバーに登録すれば、Silverlightの配置は完了です。 

  <br />(サーバーに.xapのMIMEタイプ(application/x-silverlight-app)の登録も必要) </p>

<p>xapファイルはイメージ的にはFlashのswfファイルに近いSilverlightアプレットファイルですが、JSのコードがコンパイルされてバイナリになっているわけではありません。 
  <br />試しに、app.xapのファイル名をapp.xap.zipへリネームしてみれば、zip形式のアーカイブになっているのが確認できると思います。 </p>

<blockquote>
  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript3_B8A7/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="174" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript3_B8A7/image_thumb_2.png" width="244" border="0" /></a> </p>
</blockquote>

<p>Office2007のOffice Open XML形式(docxとかxlsxとか)と同じ、最近のMicrosoftのお得意の手口ですね。 
  <br />また、このアーカイブにはこのアプリから参照設定されている各種DLLが含まれているのも確認できると思います。 </p>

<p>これを踏まえた上で、AppManifest.xaml内の <!-- code formatted by http://manoli.net/csharpformat/ --></p>

<blockquote>
  <pre class="csharpcode" style="overflow: scroll"><span class="attr">EntryPointAssembly</span><span class="kwrd">=&quot;Microsoft.Scripting.Silverlight&quot;</span> 
<span class="attr">EntryPointType</span><span class="kwrd">=&quot;Microsoft.Scripting.Silverlight.DynamicApplication&quot;</span> </pre>
</blockquote>
に注目してください。 

<p></p>

<p>CLRによる.NETコンポーネントに対応したSilverlight2では、DLRアプリの場合もCLRコンポーネントであるMicrosoft.Scripting.Silverlightがエントリーポイントとして呼び出され、これがDLRとしてLLにより書かれたコードをダイナミックにロードしていく形になります。 
  <br />クライアントにインストールされたSilverlightランタイムが直接JSを実行しているわけではなく、xap内に収められたMicrosoft.Scripting.Silverlight.dllを呼び出しているため、これによって、コントロールを追加する、など、Silverlight自体の機能をダイナミックに拡張できる構造となっているようです。 

  <br />この点を頭に入れておくと、モジュールのロードプロセスの理解やdebugの際のイメージに役立つでしょう。 </p>

<p><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_4.html" target="_blank">[アニメーションとメディア編]へ続く...</a></p>]]>
      
   </content>
</entry>
<entry>
   <title>Silverlight 2 SDK+JavaScriptで無償の開発環境を作る #2 [XAML基礎編]</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_2.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1853</id>
   
   <published>2008-04-07T07:17:33Z</published>
   <updated>2008-04-07T08:35:07Z</updated>
   
   <summary>[ソースコードをダウンロード]     (download sample sou...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Silverlight" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/js_sample1-3.zip" target="_blank">[ソースコードをダウンロード]</a>     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/js_sample1-3.zip" target="_blank">(download sample source code)</a> </p>  <p>さて、環境はできました、でもSilverlightってナニ? さっぱりですよ? という方々のために、とりあえず基礎の基礎だけ解説します。 </p>  <p>先の[環境整備編]でも書いたように、基本的なSilverlightアプリの構造は、    <br />XAML(ザムル)によるマークアップ + コーディング(.NET or LL)     <br />です。 </p>  <p>Silverlight2からは、どのプラットフォーム(IE,Firefox,Safari,Windows,Mac、先々はMoonlightでLinux)でもCLRが動き、.NETが利用可能ですよ、どこでもC#やVB.NETが使えますよ、というところが一つの売りではあるのですが、ここでは.NET周りについては全く触れません。 </p>  <p>また、Silverlightと言うと、Flash対抗馬、的なとらえ方がよくあると思うのですが、むしろポストHTMLととらえて、HTML+CSS+JSをXAML+JS他に置き換えて考えてみると良いと思います。    <br />SilverlightのXAMLはWPF使われているモノのサブセットなのですが、それもここではスルー。 </p>  <p>さて、回りくどい話は置いておいて、さっさとXAMLを書いてみることにしましょう。 </p>  <h3>XAMLによるレイアウトと属性:</h3>  <p>前回と同様に新しいフォルダを作り、    <br />index.html     <br />app\app.xaml     <br />app\app.js     <br />を配置します。     <br />とりあえず、内容もそのままでapp.xamlだけ変更してみましょう。 </p>  <blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->   <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">UserControl</span>
    <span class="attr">xmlns</span><span class="kwrd">=&quot;http://schemas.microsoft.com/client/2007&quot;</span>
    <span class="attr">xmlns:x</span><span class="kwrd">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span>
    <span class="attr">x:Class</span><span class="kwrd">=&quot;System.Windows.Controls.UserControl&quot;</span>
    <span class="attr">x:Name</span><span class="kwrd">=&quot;JSSample2&quot;</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;foo&quot;</span> <span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;bar&quot;</span> <span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;baz&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">UserControl</span><span class="kwrd">&gt;</span> </pre>
</blockquote>

<blockquote>
  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript2_102C3/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="81" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript2_102C3/image_thumb.png" width="67" border="0" /></a> </p>
</blockquote>

<p>新しい要素、&lt;StackPanel&gt;が登場しました。 
  <br />StackPanelは文字通り配下のコントロールを順番に積み上げてくれるだけのレイアウト用コントロールです。 

  <br />さらに、 </p>

<blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->
  <pre class="csharpcode">  <span class="kwrd">&lt;</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">StackPanel</span> <span class="attr">Orientation</span><span class="kwrd">=&quot;Horizontal&quot;</span><span class="kwrd">&gt;</span> 
      <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;hoge&quot;</span> <span class="kwrd">/&gt;</span> 
      <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;fuga&quot;</span> <span class="kwrd">/&gt;</span> 
      <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;piyo&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;/</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;foo&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;bar&quot;</span> <span class="kwrd">/&gt;</span> 
    <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;baz&quot;</span> <span class="kwrd">/&gt;</span> 
  <span class="kwrd">&lt;/</span><span class="html">StackPanel</span><span class="kwrd">&gt;</span> </pre>
</blockquote>

<blockquote>
  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript2_102C3/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="105" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript2_102C3/image_thumb_1.png" width="123" border="0" /></a> </p>
</blockquote>

<p>とすると、横にも並べられます。 </p>

<p>レイアウト系でStackPanelと並んで代表的に使われるのが、Gridコントロールです。 
  <br />次の例はちょっと複雑になりますが、さらに一歩進んだXAMLの構文が使われています。</p>
<!-- code formatted by http://manoli.net/csharpformat/ -->

<blockquote>
  <pre class="csharpcode" style="overflow: scroll"><span class="kwrd">&lt;</span><span class="html">UserControl</span>
    <span class="attr">xmlns</span><span class="kwrd">=&quot;http://schemas.microsoft.com/client/2007&quot;</span>
    <span class="attr">xmlns:x</span><span class="kwrd">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span>
    <span class="attr">x:Class</span><span class="kwrd">=&quot;System.Windows.Controls.UserControl&quot;</span>
    <span class="attr">x:Name</span><span class="kwrd">=&quot;JSSample3&quot;</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">Grid</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">Grid.RowDefinitions</span><span class="kwrd">&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">RowDefinition</span> <span class="attr">Height</span><span class="kwrd">=&quot;*&quot;</span><span class="kwrd">/&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">RowDefinition</span> <span class="attr">Height</span><span class="kwrd">=&quot;*&quot;</span><span class="kwrd">/&gt;</span>
        <span class="kwrd">&lt;/</span><span class="html">Grid.RowDefinitions</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">Grid.ColumnDefinitions</span><span class="kwrd">&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">ColumnDefinition</span> <span class="attr">Width</span><span class="kwrd">=&quot;*&quot;</span><span class="kwrd">/&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">ColumnDefinition</span> <span class="attr">Width</span><span class="kwrd">=&quot;*&quot;</span><span class="kwrd">/&gt;</span>
        <span class="kwrd">&lt;/</span><span class="html">Grid.ColumnDefinitions</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Grid</span>.<span class="attr">Column</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">Grid</span>.<span class="attr">Row</span><span class="kwrd">=&quot;0&quot;</span><span class="kwrd">&gt;</span>foo<span class="kwrd">&lt;/</span><span class="html">TextBlock</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Grid</span>.<span class="attr">Column</span><span class="kwrd">=&quot;1&quot;</span> <span class="attr">Grid</span>.<span class="attr">Row</span><span class="kwrd">=&quot;0&quot;</span><span class="kwrd">&gt;</span>bar<span class="kwrd">&lt;/</span><span class="html">TextBlock</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Grid</span>.<span class="attr">Column</span><span class="kwrd">=&quot;1&quot;</span> <span class="attr">Grid</span>.<span class="attr">Row</span><span class="kwrd">=&quot;1&quot;</span><span class="kwrd">&gt;</span>baz<span class="kwrd">&lt;/</span><span class="html">TextBlock</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Width</span><span class="kwrd">=&quot;160&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;160&quot;</span> <span class="attr">Grid</span>.<span class="attr">Column</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">Grid</span>.<span class="attr">Row</span><span class="kwrd">=&quot;1&quot;</span><span class="kwrd">&gt;</span>
          <span class="kwrd">&lt;</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">ImageBrush</span> <span class="attr">ImageSource</span><span class="kwrd">=&quot;http://www.microsoft.com/silverlight/images/logo.png&quot;</span><span class="kwrd">/&gt;</span>
          <span class="kwrd">&lt;/</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;/</span><span class="html">Rectangle</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">Grid</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">UserControl</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<blockquote>
  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript2_102C3/image_12.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="137" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript2_102C3/image_thumb_5.png" width="244" border="0" /></a> </p>
</blockquote>

<p>Grid(格子)上に列と行を2つずつ定義し、TextBlockの属性として追加された <span class="attr">Grid</span>.<span class="attr">Column</span><span class="kwrd">=&quot;1&quot;</span> <span class="attr">Grid</span>.<span class="attr">Row</span><span class="kwrd">=&quot;0&quot;</span> などのAttached Property(添付プロパティ)によって、各々のコントロールがグリッド上でどこに配置されるかが記述されています。</p>

<p>また、このサンプルでは、<span class="kwrd">&lt;</span><span class="html">Grid.RowDefinitions</span><span class="kwrd">&gt;や<span class="kwrd">&lt;</span><span class="html">Rectangle.Fill</span><span class="kwrd">&gt;</span> のように、子要素となるタグの中で親要素のプロパティを設定しています。 

    <br />XAML要素のプロパティ設定は、先の例の<span class="kwrd">&lt;</span><span class="html">StackPanel</span> <span class="attr">Orientation</span><span class="kwrd">=&quot;Horizontal&quot;</span><span class="kwrd">&gt;</span> のようなAttrubyte Syntaxと、この子要素を利用したProperty Element Syntaxの併用が可能です。基本的にどちらの書式で書くこともできますが、一行の文字列に収める制約が無い子要素によるProperty Element Syntaxの方がより複雑で入り組んだ設定が可能です。</span> 

  <br /></p>

<p><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_3.html" target="_blank">[参照と配置編]へ続く...</a></p>]]>
      
   </content>
</entry>
<entry>
   <title>Silverlight 2 SDK+JavaScriptで無償の開発環境を作る #1 [環境整備編]</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_1.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1852</id>
   
   <published>2008-04-07T07:15:20Z</published>
   <updated>2008-04-08T05:46:22Z</updated>
   
   <summary>  先日公開されたSilverlight2のSDKを利用すると、Visual S...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Silverlight" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<link href="csharp.css" type="text/css" rel="stylesheet" />  <p>先日公開されたSilverlight2のSDKを利用すると、Visual StudioやExpression Studio等の開発環境やアプリを全く利用することなく、素の状態のWindows (いや、それどころか<a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight_sdk_on_mac.html" target="_blank">Macでも...</a>) でSilverligh2の開発を行うことができます。</p>  <p>やり方がわかってしまえば非常に単純なのですが、そもそもSilverlight2でDLR(Dynamic Language Runtime: LL実行環境)を使用した開発に関する情報がまだほとんど出回っておらず、いろいろ苦労したので、そのあたりをまとめておきます。    <br />以下、ちょっとクド目ですが、素のWindowsにnotepad(メモ帳)だけで開発できるよ、という手順をご紹介。 </p>  <h3>必要な環境:</h3>  <ul>   <li>Windows XP 以降 </li>    <li>.NET Framework 2.0 (たぶん) </li>    <li>英語が読める人 (現時点でほとんどの資料は英語) </li> </ul>  <p><font color="#c0c0c0" size="1">余談ですが、.NET FrameworkやSilverlightのランタイムは基本的にインストールするだけでは他に影響を与えるモノではないので、なんか得体が知れなくてイヤだなぁ、とか思ってもよっぽどディスクの残りが少ないとかいうことでなければ、インストールしても害はないですよ...。</font></p>  <h3>Silverlight2 ランタイムのインストール:</h3>  <p><font color="#a6badb" size="1">(Express Edition以外の)Visual Studio 2008ユーザーの人は </font><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e0bae58e-9c0b-4090-a1db-f134d9f095fd&amp;displaylang=ja" target="_blank"><font color="#a6badb" size="1">Visual Studio 2008 用 Microsoft Silverlight Tools</font></a><font color="#a6badb" size="1"> をインストールすれば、Silverlight2ランタイムとSDKも同時にインストールされるので、このプロセスは不要です。</font></p>  <p>SDKの導入の前に、まずはSilverlightのランタイムを入れましょう。    <br />公式サイト、silverlight.netへアクセスします。     <br /><a href="http://silverlight.net/">http://silverlight.net/</a></p>  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb.png" width="244" border="0" /></a>     <br />いきなり&#8593;のように、「Silverlightが入ってないよ(意訳)」と言われたら、Silverlight 1.0のランタイムが未だインストールされていないようです。</p>  <p>ここで取り上げるのはSilverlight 2.0なので、1.0のランタイムは必ずしも必要ありませんが、まぁあって困るわけではないので入れておきましょう。    <br />1.0と2.0の違いや過去の経緯についてはあちこちで書かれているモノがあると思うのでここでは触れません。     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="114" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_1.png" width="244" border="0" /></a>     <br />まぁ、基本的にOk,Okしてけばインストールは終わります。この辺のプロセスもシームレスでよくできています。英語だけど...。 </p>  <p>さて、今度は2.0のランタイムです。    <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="94" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_2.png" width="244" border="0" /></a>&#160; <br />silverlight.netトップページ上部のメニュー[Get Started]から     <br /><a href="http://silverlight.net/GetStarted/">http://silverlight.net/GetStarted/</a>     <br />へアクセスします。     <br /></p>  <p>次に、ページ内の、    <br />Silverlight 2 Beta Runtime &amp; Tools     <br />Silverlight 2 Beta 1 Runtimes     <br />から、     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_8.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_3.png" width="244" border="0" /></a>     <br />Windows - Silverlight 2 Beta 1 Runtime     <br /><a href="http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0">http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0</a>     <br />へアクセス。 </p>  <p>インストールページでWindowsロゴのボタンをクリックします。    <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_10.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="196" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_4.png" width="244" border="0" /></a>     <br />Silverlight2.exeのダウンロードが始まるので、そのまま保存するか直接実行。     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_14.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="115" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_6.png" width="244" border="0" /></a>     <br />今度のインストーラーは日本語ですね。     <br />日本語未対応の1.0をスキップして、まだ&#946;の2.0から始める理由はここにもあります。 </p>  <h3>Silverlight 2 SDK の導入:</h3>  <p>次はいよいよSDKのダウンロードです。    <br />GET STARTEDのページに戻って、     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_12.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="170" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_5.png" width="244" border="0" /></a>     <br />Silverlight 2 Beta 1 SDK     <br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4E03409A-77F3-413F-B108-1243C243C4FE&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=4E03409A-77F3-413F-B108-1243C243C4FE&amp;displaylang=en</a>     <br />のダウンロードを行います。 </p>  <p>ダウンロードされたsilverlight_sdk.exeを実行すれば、インストールが行われます。    <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_16.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="188" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_7.png" width="244" border="0" /></a>     <br />SDKはお手軽なアプリやツールと違うので、基本的にはファイルがコピーされるだけです。     <br />スタートメニューには[Welcome]のドキュメントが一つ登録されるだけなので、とりあえず開いてみましょう。     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_18.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="82" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_8.png" width="244" border="0" /></a> </p>  <p>ライセンスやイスントール物の説明がさらっと英語で書かれていますが、まーただのリンク集です。    <br />ページ中ほどの[Tools]のリンクをクリックしてみましょう。     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_24.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_11.png" width="244" border="0" /></a>     <br />規定値でインストールしていれば、     <br />C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Tools     <br />(x64版Windowsならば C:\Program Files (x86)\Microsoft SDKs\Silverlight\v2.0\Tools)     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_26.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="148" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_12.png" width="206" border="0" /></a>     <br />フォルダが表示されます。 </p>  <p>ここに置かれている[Chiron] (カイロン又はケイロン)が今回の話の肝になるツールです。    <br />実体としては、ここにある、Chiron.exe 一つだけがSilverlight2の開発環境となります。(基本的な使い方は同じフォルダにあるReadme.txtにも書かれているので、目を通しておくといいです)     <br />xapパッキングツール・実行用ローカルサーバーなどを1つのexeで兼ねており、コマンドラインからオプションを指定して使用します。     <br />ので、いざ開発へ、と移るためにこのchiron.exeにpathを通しておかないといけません。 </p>  <p><font color="#c0c0c0" size="1">またまた余談ですが、なんとなくWindows開発なんて知らん、という人もいそうなので書いておくと、環境変数は、      <br />&#160; コントロールパネル/システム/システムの詳細設定/環境変数       <br />で設定もできますが、開発関連のpathは何でも入れてしまうのではなく、それぞれbatファイルにしておいて、各種batファイルを一つのフォルダ(例えばc:\bat\)に集めておいて、ユーザー環境変数設定で、%path%;c:\bat\ などとしておくと、お行儀がよく融通が効くのでよいかと思います。</font> </p>  <p></p>  <p>なお、先ほどのWelcomeのドキュメントから、Silverlight SDKドキュメントのCHM(HTML Help)版をダウンロードしておくとネットを使わずに素早く検索できるのでお勧めです。</p>  <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_28.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="109" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_13.png" width="244" border="0" /></a>     <br /><a title="http://go.microsoft.com/fwlink/?LinkId=111131" href="http://go.microsoft.com/fwlink/?LinkId=111131">http://go.microsoft.com/fwlink/?LinkId=111131</a></p>  <h3>プロジェクトの作成:</h3>  <p>さて、ではシンプルなプロジェクトを作ってchironの動きを見てみましょう。 </p>  <p>とりあえず、適当にフォルダを作ります、ここでは、    <br />c:\samples\js_sample1     <br />として、以下、このフォルダをプロジェクトのルートフォルダとします。     <br />ここに     <br />index.html     <br />を作成します。     <br />内容はこんな感じ。</p>  <blockquote><!-- code formatted by http://manoli.net/csharpformat/ -->   <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">html</span> <span class="attr">xmlns</span><span class="kwrd">=&quot;http://www.w3.org/1999/xhtml&quot;</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">head</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">title</span><span class="kwrd">&gt;</span>Silverlight Javascript sample<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">head</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">body</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">object</span> <span class="attr">data</span><span class="kwrd">=&quot;data:application/x-silverlight,&quot;</span> <span class="attr">type</span><span class="kwrd">=&quot;application/x-silverlight-2-b1&quot;</span> <span class="attr">width</span><span class="kwrd">=&quot;100%&quot;</span> <span class="attr">height</span><span class="kwrd">=&quot;100%&quot;</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">param</span> <span class="attr">name</span><span class="kwrd">=&quot;source&quot;</span> <span class="attr">value</span><span class="kwrd">=&quot;app.xap&quot;</span><span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">object</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">body</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">html</span><span class="kwrd">&gt;</span></pre>
</blockquote>

<p>要するにSilverlight2コントロールを張った空のHTMLファイルです。 </p>

<p>さらにこの配下にappフォルダを作成 
  <br />c:\samples\js_sample1\app 

  <br />ここに、テキストファイル 

  <br />app.xaml 

  <br />app.js 

  <br />を作成します。 

  <br />内容はこんな感じ。 

  <br />(ここで、app.pyやapp.rbとするだけで何も追加することなくIronPythonやIronRubyが利用可能です) </p>

<blockquote>app.xaml 
  <br /><!-- code formatted by http://manoli.net/csharpformat/ -->

  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">UserControl</span>
    <span class="attr">xmlns</span><span class="kwrd">=&quot;http://schemas.microsoft.com/client/2007&quot;</span>
    <span class="attr">xmlns:x</span><span class="kwrd">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span>
    <span class="attr">x:Class</span><span class="kwrd">=&quot;System.Windows.Controls.UserControl&quot;</span>
    <span class="attr">x:Name</span><span class="kwrd">=&quot;JSSample1&quot;</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">TextBlock</span> <span class="attr">Text</span><span class="kwrd">=&quot;Javascript meets Silverlight 2!&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">UserControl</span><span class="kwrd">&gt;</span> </pre>
app.js 

  <br /><!-- code formatted by http://manoli.net/csharpformat/ -->

  <pre class="csharpcode">Import(<span class="str">&quot;System.Windows.Application&quot;</span>) 
Import(<span class="str">&quot;System.Windows.Controls.UserControl&quot;</span>) 

function sample_app() { 
    <span class="kwrd">this</span>.scene = Application.Current.LoadRootVisual(
        <span class="kwrd">new</span> UserControl(), <span class="str">&quot;app.xaml&quot;</span>); 
} 
sample_app.prototype = { 
    start:function() { 
    } 
} 

app = <span class="kwrd">new</span> sample_app; 
app.start();</pre>
</blockquote>

<p>3つのファイルができましたか?</p>

<p>テキストファイルの形式ですが、基本ANSI形式でもOkですが、日本語を含ませることもあると思うので、エンコーディングはUTF-8にしておきましょう。 
  <br />今のところSilverlight2のランタイムは標準でSJISではなくUTF-8で決め打ちで読むようです。まぁ、ふつうと言えばふつう。 

  <br />notepadだと規定値ANSIなので、ファイル/名前を付けて保存でこんな感じ。 

  <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_20.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="101" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_9.png" width="244" border="0" /></a> </p>

<p>さて、必要なファイルはこれだけです。 
  <br />では、コマンドプロンプトでindex.htmlのあるプロジェクトルートフォルダへ移動して、 

  <br />chiron /b 

  <br />と実行してみましょう。 

  <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_22.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="179" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_10.png" width="244" border="0" /></a>&#160; <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_30.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="183" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_14.png" width="244" border="0" /></a> </p>

<p>既定のブラウザが立ち上がりましたか? 
  <br />既定のブラウザがOperaなどのSilverlightが対応していないブラウザの方すいません、既定のブラウザをIE, Firefox系に変更するか、表示されたURLをIEなどへCopy&amp;Pasteしてください。 </p>

<p>で、とりあえず、そっ気のないディレクトリ表示がされていると思うので、一覧からindex.htmlをクリックすれば、最初に作成したindex.htmlが表示されます。 </p>

<p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_32.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="78" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2SDKJavaScript1_A91B/image_thumb_15.png" width="244" border="0" /></a> </p>

<p>うまく Javascript meets Silverlight 2! と表示されましたでしょうか? 
  <br />右クリックすれば、Silverlightコントロールとして表示されているのを確認できると思います。 </p>

<p>このように、chiron.exeは自動的にオンメモリでxapファイルを生成し、ローカルサーバーを作成し、ブラウザを開き、と、ランタイムが実行可能な環境を整えてくれる非常に便利なツールです。 </p>
ソースを変更し保存して、ブラウザでリロードすれば、自動的にchironがソースを読み直してくれます。 

<br />chironを終了したい場合は、コマンドプロンプトでctrl+cするか、ブラウザのアドレスバーに localhost:2060/bye! を入れてブラウズしてください。 

<br />また、実行時に表示されるlocalhostのポート番号はchironのコマンドラインオプションで変更が可能です。 

<h3>まとめ:</h3>

<p>Silverlightというと、MS環境べったりのVisual StudioとExpression BlendとIISでゴリゴリ作るみたいなイメージがあるかも知れませんが、実は、SDKをインストールするだけで最低限の環境としては十分に開発が可能となります。</p>

<p>言語もJS,Python,Rubyがそのまま利用可能。XAMLの記述にちょっと慣れが必要ですが、慣れてくるとHTML+CSSやFlash+ActionScriptと比較して強力かつシンプルな面白さが見えてくるのではないかと思います。 </p>

<p>もちろん、Expression Blendでコードを書かずにアニメーションをうにうにと設定したり、Visual Studioで.NETでC#を使えば、IntelliSenceバリバリでxamlをがんがん書いたり、と、より一層手軽な部分もあるわけですが、現在のところVSのSilverlight拡張はVS Express Editionには対応してませんし、まずはこのあたりから試してみると面白いのではないかと思うのです。 </p>

<p><a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_2.html" target="_blank">[XAML基礎編]へ続く...</a></p>]]>
      
   </content>
</entry>
<entry>
   <title>MacでSilverlightの開発が可能に</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight_sdk_on_mac.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1841</id>
   
   <published>2008-04-01T05:33:23Z</published>
   <updated>2008-04-25T10:10:04Z</updated>
   
   <summary>先日開催されたMIX08に合わせSilverlight 2 Beta1が公開され...</summary>
   <author>
      <name></name>
      
   </author>
         <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Silverlight" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>先日開催された<a href="http://visitmix.com/2008/" target="_blank">MIX08</a>に合わせSilverlight 2 Beta1が公開されましたが、このSDKを利用するとMac OS XでSilverlightの開発環境を構築することが可能です。</p>  <blockquote>   <p>Hex dump - Silverlight 2 SDK, Mac OS X and Mono      <br /><a title="http://hex-dump.blogspot.com/2008/03/silverlight-2-sdk-mac-os-x-and-mono.html" href="http://hex-dump.blogspot.com/2008/03/silverlight-2-sdk-mac-os-x-and-mono.html">http://hex-dump.blogspot.com/2008/03/silverlight-2-sdk-mac-os-x-and-mono.html</a></p> </blockquote>  <p>基本的な段取りは単純で、</p>  <ol>   <li>MonoがインストールされたMacを用意する </li>    <li>Silverlight 2 <a href="http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0" target="_blank">Mac OS X版ランタイム</a>をインストール </li>    <li>リアルマシンかVMにインストールしたWindowsに<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4E03409A-77F3-413F-B108-1243C243C4FE&amp;displaylang=en" target="_blank">Silverlight 2.0 SDK Beta 1</a>をインストール </li>    <li>Program Files\Microsoft SDKs\Silverlight\ 以下をごっそりコピーしてくる </li> </ol>  <p>Silverlight SDKの<strike>コンパイラ</strike>パッケージャ&amp;デバッグ用サーバーのchiron.exe(ケイロン)はどうもオール.NETで作られているらしくMono上ですっぱり動いてしまう模様。     <br />なので、あとは、任意のSilverlightプロジェクトがあるフォルダから、</p>  <blockquote>   <p><code>mono ~/Silverlight/v2.0/Tools/Chiron/Chiron.exe /b</code></p> </blockquote>  <p>とすれば、Silverlight2のchironが立ち上がり、ブラウザからSilverlightコントロールが貼られたWebページが閲覧可能です。</p>  <p>実際にMIX08でのMac + Mono + VIM + IronRubyでSilverlight開発のデモ映像が見られます。</p>  <blockquote>   <p>MIX08 - Microsoft Silverlight and Dynamic Languages      <br /><a href="http://sessions.visitmix.com/?selectedSearch=T28">http://sessions.visitmix.com/?selectedSearch=T28</a>       <br /><a title="http://msstudios.vo.llnwd.net/o21/mix08/08_WMVs/T28.wmv" href="http://msstudios.vo.llnwd.net/o21/mix08/08_WMVs/T28.wmv">http://msstudios.vo.llnwd.net/o21/mix08/08_WMVs/T28.wmv</a></p> </blockquote>  <p>とりあえず、ご紹介ということで、Silverlight SDKによる開発に関しては、「<a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_1.html" target="_blank">Silverlight 2 SDK+JavaScriptで無償の開発環境を作る</a>」をご覧ください。</p>]]>
      
   </content>
</entry>
<entry>
   <title>何故かスリープしなくなったVistaをスリープできるようにした話</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/03/sleepless_vista.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1822</id>
   
   <published>2008-03-17T00:23:25Z</published>
   <updated>2008-03-17T09:49:02Z</updated>
   
   <summary>結果から言うと、なんのことはない、マザーボードのバッテリーバックアップ用電池(C...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>結果から言うと、なんのことはない、マザーボードのバッテリーバックアップ用電池(CR3032)が電池切れになってただけだった。  <p>全体的に愚痴っぽいので、面倒なら適度に読み飛ばして結論だけどうぞ...。  <p>ここ数か月、Windows Vistaを入れた自宅のマシンが、スリープに失敗するようになったのです。  <blockquote> <p><font size="1">具体的に言うと、スタートメニューの電源(スリープ)ボタンを選択すると、通常通りスリープの処理に入ろうとするのだけど、最終的に電源が落ちて、通常ならばLEDが点滅したスリープ状態になるはずなのだが、その瞬間に電源が一瞬落ちた後、電源ランプがまた光り、PCとしての電源は入っているが、起動はしていない、というよくわからない状態になり、キーボードやマウスを触っても、電源ボタンを押しても、うんともすんとも言わなくなる。</font></p></blockquote> <blockquote> <p><font size="1">電源ランプのLEDは光ったまま。<br>この状態だと、少なくとも電源ファンなどは回っていて、無駄に電気を使っているし、精神衛生上もよろしくない。 </font></p> <p><font size="1">で、再起動するためには、電源ボタンを長押しして強制電源Offにした後、電源を再投入するしかない。<br>そうすると、PCは休止状態の回復を行って(そもそもなんで休止になってるの?)、元の状態に再現される。<br>ただしネットワークが不調だったり、いろいろおかしい感じ。</font> </p></blockquote> <p>実質的に、Vistaのウリの一つである高速なスリープが全く使えなくなった。<br>はっきり言ってVistaの起動はSSDやHybrid HDDを使わないと激遅なので、非常につらい。<br>SP1を入れたメリットもぜんぜん感じられないし。 </p> <blockquote> <p><font size="1">そんなわけで、あーでもない、こーでもないと、いろいろトラブルシューティングしたものの、原因がわからない。<br></font><font size="1">ドライバのプロパティを総チェックし、BIOS設定を改め、BIOSをアップデートし、USBを全部引っこ抜き、メモリやカードのガタを確かめ...。<br>挙句、WDK(旧DDK)まで担ぎ出してインストールし、スリープ時のACPIのログを吐かせて見たりしても全くエラーが出ない。<br>ちょうど、ここ数か月で引越しだの机を変えたりだのと物理的環境も変わっていて、心当たりも多すぎでお手上げ。 </font></p></blockquote> <p>そして、先週、誘惑に負け、あまりにも安い気がしたLenovoのThinkCentre A61e Ultra Smallを注文してしまった...。(キャンペーンは先週までで今週は実質値上がり)  <p>のだけれど、今朝ふと思って、初めに書いたように、バッテリーを交換してみたらけろっと治ったのよ、と。<br>まー、10数年前の自分だったら、最初にそこを思いついてたかもしれないなぁ、と思うけど、今時ハードを疑わなくなったというか、Google依存症というか...、でも、まぁ、そこはまぁいいとして、とりあえず症状を書きのこしておくと、誰かの役に立つかもしれないので置いておきます。  <hr>  <p>&nbsp; <p>で、心配なのは、</p> <ol> <li>Vistaのデフォルトはスリープ  <li>このPC(デスクトップ)は買ってから2年経ってない  <li>買ってすぐにβ2かなんかを入れたからずっとVista  <li>平日の昼間はデフォルトでスリープさせてた </li></ol> <p>とすると、同じような事はこれから世のVista PCで頻繁に起きてくるのかなぁ? と思うわけです。<br>電池だって、ただの3032で、今時のマザーは二次電池なんて使ってない。人によっては24時間スリープで使い続ける人だっているでしょう。<br>そもそもマザーの設計の想定を超えてる電池の減り方してるんじゃないかな、と。 </p> <p>そして、PCの電源は長押ししないと落ちないし、バックアップバッテリーが切れている表示なんて一切出ない。<br>ごくふつーの人なら故障扱いだよね。長押しに気付くかさえ疑問。<br>しかも、マザーにはまってるボタン電池の交換なんてなぁ...、と。</p> <p>まぁ、うちのPCのマザーがN4L-DHとか割とヘンタイ系で一般論では語れないのかも知れないし、いずれそのあたりは十分対策されるだろうとは思うのだけど、しばらくはスリープしないVistaマシンに要注意、ということで。</p>]]>
      
   </content>
</entry>
<entry>
   <title>てっとり早くSilverlight 2開発環境を整えて遊んでみる方法</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/03/silverlight_2.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1812</id>
   
   <published>2008-03-06T06:23:22Z</published>
   <updated>2008-04-08T06:08:23Z</updated>
   
   <summary>いよいよ、mix08ウィークがやってまいりました。  巷はIE8祭でにぎわって(...</summary>
   <author>
      <name></name>
      
   </author>
         <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="xaml" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>いよいよ、<a href="http://visitmix.com/2008/default.aspx" target="_blank">mix08</a>ウィークがやってまいりました。</p>  <p>巷は<a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/getitnow.mspx" target="_blank">IE8祭</a>でにぎわって(?)おりますが、そのあたりは<a href="http://d.hatena.ne.jp/amachang/20080306" target="_blank">amachang</a>他その方面の偉い人にお任せして、こそこそとSilverlightをやりますよ。</p>  <p>Silverlightが何たるか、の説明はそこいらですぐに見つかると思うので省きます。</p>  <p>とりあえず、Silverlight/XAMLらしく遊びたいなら、まずはExpression Blendで遊んでみるのが一番でしょう。   <br />そんなわけで、Silverlight2対応のExpression Blend 2.5 Previewのインストール方法をまとめてみました。</p>  <p>   <hr /></p>  <p>追記(2008/04/08):&#160; <br />JavaScriptなどLLベースでSilverlight2 SDKを使用した開発環境について<a href="https://labs.cybozu.co.jp/blog/kaorun/2008/04/silverlight2sdk_with_javascript_1.html" target="_blank">別途まとめ</a>ました。    <br />合わせてご覧ください。</p>  <p>   <hr /></p>  <h3>Silverlightランタイムのインストール</h3>  <p><font size="0">今回は、環境整備ということで、中島のVirtual PC上にあるテスト環境用Vistaからお送りします。</font></p>  <p>まずはさておき、Silverlightのランタイムをインストールしないことには話になりません。   <br />Silverlightには現在いくつかのバージョンがありますが、とりあえず1.0と2.0Beta1をインストールすれば十分でしょう。    <br />それぞれのバージョンは共存できるので、重ねてインストールするだけです。</p>  <p>まずは、   <br /><a title="http://silverlight.net/" href="http://silverlight.net/">http://silverlight.net/</a>    <br />へアクセス。</p>  <blockquote>   <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb.png" width="244" border="0" /></a> </p> </blockquote>  <p>たぶん勝手にインストールを即すメッセージが出ますので、とりあえず、それに従ってSilverlight1.0を入れましょう。   <br />既に入ってたらそのままスルー。</p>  <p>1.0は英語ですが、そのまま数回クリックするだけです。</p>  <blockquote>   <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_1.png" width="244" border="0" /></a> </p> </blockquote>  <p>次に、最初のページからリンクされているSilverlight2 Beta1のダウンロードページへ。</p>  <blockquote>   <p><a title="http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0" href="http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0">http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0</a>      <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_2.png" width="244" border="0" /></a> </p> </blockquote>  <p>これも、中ごろのWindowsロゴのボタンを押すだけで、あとはさくさくとインストールできます。</p>  <p>これで、ランタイムのインストールは完了。</p>  <p>何か遊んでみたければ、<a href="http://silverlight.net/showcase/default.aspx" target="_blank">Silverlight Showcase</a>あたりに行ってみるといいでしょう。</p>  <hr />  <h3>Expression Blend 2.5 Previewのインストール</h3>  <p>Expression Blendは過去にもやたらいろいろバージョンやらpreviewやらが出ていて、違うバージョンのBetaとAlphaが共存していたりわけがわからないところがあるのですが、Silvelight2に限って言えば、今のところ2.5をいればOkです。</p>  <p>なにしろ、2.5の特徴と言えば、</p>  <blockquote>   <h5><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_8.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="58" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_3.png" width="244" border="0" /></a> </h5> </blockquote>  <p>これだけですから。 </p>  <p>ダウンロードページはこちら。 </p>  <blockquote>   <p>Microsoft Expression Blend 2.5 March 2008 Preview     <br /><a title="http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5" href="http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5">http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5</a>      <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_10.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_4.png" width="244" border="0" /></a> </p> </blockquote>  <p>このページの<a></a>Installation Instructions:にあるとおり、残りはBlendを動かすための.NET3.5とBlend本体だけです。 </p>  <blockquote>   <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_12.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="57" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_5.png" width="244" border="0" /></a> </p> </blockquote>  <p>なので、.NET3.5を入れます。</p>  <blockquote>   <p>Microsoft .NET Framework 3.5     <br /><a title="http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&amp;displaylang=ja" href="http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&amp;displaylang=ja">http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&amp;displaylang=ja</a>      <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_16.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_7.png" width="244" border="0" /></a> </p> </blockquote>  <p>.NETってなんぞ? とか、良く知らないんだよね、という人もいるかと思いますが、とりあえず入れましょう。   <br />まーJavaVMとかFlash Playerみたいなもんだ、という程度の認識で十分かと。</p>  <p>これも、.NET1.0/1.1/2.0/3.0/3.5といろいろバージョンがありますが、共存できるので、単に3.5を入れれば十分です。   <br />ちなみに、XPの人なら2.0まで、Vistaの人なら3.0までは標準やWindows Updateで入っているはず。    <br />3.5はVisual Studio 2008と同時にリリースされた最新版です。</p>  <p>.NET 3.5はインストール後に再起動が必要かもしれません。</p>  <p>で、後は、Blend 2.5 Previewを入れるだけ。</p>  <blockquote>   <p>Microsoft Expression Blend 2.5 March 2008 Preview     <br /><a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=32A3E916-E681-4955-BC9F-CFBA49273C7C&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=32A3E916-E681-4955-BC9F-CFBA49273C7C&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=32A3E916-E681-4955-BC9F-CFBA49273C7C&amp;displaylang=en</a>      <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_18.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="167" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_8.png" width="244" border="0" /></a> </p> </blockquote>  <p>インストールが終われば、スタートメニューからBlendを起動してやるだけです。</p>  <blockquote>   <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_20.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_9.png" width="244" border="0" /></a> </p>    <p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_22.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_10.png" width="244" border="0" /></a> </p> </blockquote>  <p>これにて基本的なSilverlight2開発環境の準備は完了。</p>  <p>スタートアップ画面を(close)して、</p>  <blockquote>   <p>File/New Profject...     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_24.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="195" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_11.png" width="244" border="0" /></a> </p>    <p>[Silverlight 2 Application]を選択     <br /><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_26.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="image" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Silverlight2_D85C/image_thumb_12.png" width="244" border="0" /></a> </p> </blockquote>  <p>[Ok]すれば、Silverlight2アプリケーションプロジェクトが完成です。</p>  <p>適当に編集して[F5]を押せば、開発サーバーが勝手に立ち上がって、出来上がったSilverlight2アプリケーションがブラウザで表示されるという塩梅。</p>  <p>いかがですか?   <br />わりと簡単に環境が作れたでしょう?</p>  <p>あとは、で、どうやって書くの? とか、やっぱXAMLをばきばき書くならVisual Studioも入れるでしょ、とかいうあたりは、後日気が向いたら続く、という方向で...。</p>]]>
      
   </content>
</entry>
<entry>
   <title>Pathtraq 最新ランキング ガジェットを公開しました</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/02/pathtraq_1.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1798</id>
   
   <published>2008-02-28T07:58:44Z</published>
   <updated>2008-03-06T06:31:54Z</updated>
   
   <summary> Windows Vista サイドバー対応の「Pathtraq 最新ランキング...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Pathtraq" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p><a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Pathtraq_D9CD/sidebar_screenshot_small_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="sidebar_screenshot_small" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Pathtraq_D9CD/sidebar_screenshot_small_thumb.png" width="168" align="right" border="0"></a> Windows Vista サイドバー対応の「Pathtraq 最新ランキング」ガジェットをWindows Live Galleryへ公開いたしました。 </p> <p><a href="http://gallery.live.com/liveItemDetail.aspx?li=4e8043dc-60eb-42a7-98c8-12a900967233" target="_blank">Windows Live Gallery 「Pathtraq 最新ランキング」 ガジェット</a> </p> <p>「Pathtraq 最新ランキング ガジェット」は、Pathtraqの最新ランキング情報を、あなたのデスクトップ上でリアルタイム更新。今、ネットの上で何が話題となっているかを見逃しません。</p> <p>また、ランキング形式のガジェットのため、RSSリーダのような未読消化の必要もなく、はてブのホットエントリーを巡回しなくても、最新の話題をキャッチできます。<br>ランキングの更新時には、ページの上昇度合いによって、マーキング・強調されるため、ちょっとしたニュース速報替わりとしても使用可能です。</p> <p>&nbsp;</p> <p>また、設定により、 </p> <ul> <li>カテゴリーによる絞り込み <a href="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Pathtraq_D9CD/sidebar_screenshot_0123_conf_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="216" alt="sidebar_screenshot_0123_conf" src="https://labs.cybozu.co.jp/blog/kaorun/WindowsLiveWriter/Pathtraq_D9CD/sidebar_screenshot_0123_conf_thumb.png" width="168" align="right" border="0"></a>  <li>ニュース ジャンル毎  <li>「YouTubeとニコニコ動画」や「IT系ニュース」・「ガジェット系blog」等サイトジャンル別</li></ul> <p>などを指定した最新ランキングも表示可能。<br>ガジェットは目的別に複数同時利用できますし、もちろんデスクトップ上への配置や「常に手前に表示も」も可能です。</p> <p>見た目は地味ですが、デスクトップに置いておくだけで、仕事の邪魔になること請け合いです。<br>Vistaサイドバーのガジェットは見た目だけのモノばかりで、なんかいまいち実用性ないなぁ、などとお感じでしたら、ぜひ一度お試しください。</p> <p>Windows Live Gallery - 「Pathtraq 最新ランキング」 ダウンロードページ<br><a title="http://gallery.live.com/liveItemDetail.aspx?li=4e8043dc-60eb-42a7-98c8-12a900967233" href="http://gallery.live.com/liveItemDetail.aspx?li=4e8043dc-60eb-42a7-98c8-12a900967233">http://gallery.live.com/liveItemDetail.aspx?li=4e8043dc-60eb-42a7-98c8-12a900967233</a><br></p> <p>Pathtraq<br><a href="http://pathtraq.com/">http://pathtraq.com/</a></p>]]>
      
   </content>
</entry>
<entry>
   <title>Japanize for Internet Explorer Version 1.02</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/02/japanize_for_internet_explorer_1.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1778</id>
   
   <published>2008-02-12T10:33:48Z</published>
   <updated>2008-02-13T03:32:00Z</updated>
   
   <summary>Firefox版拡張とほぼ同等の機能を実現し、複数の問題を修正したJapaniz...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>Firefox版拡張とほぼ同等の機能を実現し、複数の問題を修正したJapanize for Internet Explorerの新版をリリースいたしました。</p> <p>Japanize for Internet Explorer 1.02 (Pre-release)<br><a title="http://japanize.31tools.com/download/ie/SetupJapanizeIE102.msi" href="http://japanize.31tools.com/download/ie/SetupJapanizeIE102.msi">http://japanize.31tools.com/download/ie/SetupJapanizeIE102.msi</a></p> <p>Version 1.00からの主な変更点:</p> <ol> <li>サイト設定機能を追加<br><font color="#a6badb">任意のサイトに対して、翻訳の有無を選択することが可能になりました。</font>  <li>翻訳データのローカルディスクへのキャッシュ機構を実装 <br><font color="#a6badb">これまで、ページ毎にダウンロードしていた翻訳データをローカルディスクへ保存します。<br>また、翻訳データの更新方法を変更することも可能です。</font>  <li>未翻訳サイトへの翻訳スクリプト挿入を抑制<br><font color="#a6badb">UserScript版をベースとしていたスクリプトの挿入機構をネイティブコードで実装し高速化と安定性の向上を実現しました。</font>&nbsp; <li>一部表記の変更  <li>その他bugfix, 安定性向上</li></ol> <p>今回のVersionは動作ロジックに大きな変更を加えているため、翻訳データやスクリプトデータの通信量が劇的に減少することに加え、JapanizeがIEにかける負荷が大幅に削減されており、より快適なブラウズが可能となり、また動作の安定性も大幅に向上しました。<br>IEのDOMオブジェクトの制約上、Firefox版と完全に同等の翻訳するには至りませんが、機能上はほぼ同等の機能を実装しています。</p> <p>当バージョンは、改良点が多い反面で、動作上の変更点が大きいため、段階的なリリース拡大というアプローチで公開させていただきます。<br>まずはこのエントリーをご覧になった方などからの先行公開となりますが、大きな問題が発生しない限り近日中に既定のダウンロードを1.02へと差し替える予定です。<br>もし、こちらのバージョンで何らかの不具合等に出会われましたらコメントなどいただければ幸いです。</p>]]>
      
   </content>
</entry>
<entry>
   <title>Pathtraq for Internet Explorer Version 0.7</title>
   <link rel="alternate" type="text/html" href="https://labs.cybozu.co.jp/blog/kaorun/2008/02/pathtraq_for_internet_explorer_1.html" />
   <id>tag:labs.cybozu.co.jp,2008:/blog/kaorun//15.1777</id>
   
   <published>2008-02-12T08:11:22Z</published>
   <updated>2008-02-12T08:19:44Z</updated>
   
   <summary>Firefox版拡張とほぼ同等の機能を実現し、複数の問題を修正したPathtra...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="https://labs.cybozu.co.jp/blog/kaorun/">
      <![CDATA[<p>Firefox版拡張とほぼ同等の機能を実現し、複数の問題を修正したPathtraq for Internet Explorerの新版をリリースいたしました。</p> <p>Pathtraq for Internet Explorer 0.7 インストールページ<br><a title="http://pathtraq.com/install" href="http://pathtraq.com/install">http://pathtraq.com/install</a></p> <p>Version 0.6からの主な変更点:</p> <ol> <li>サイト設定機能を追加<br><font color="#a6badb">任意のサイトに対して、ログの送信の有無を選択することが可能になりました。</font></li> <li>ログの送信対象のフィルタリングが不完全でabout:blankなどが送信される状態となっていた問題を修正</li> <li>アンインストール時にPathtraqのUserAgentが(レジストリに)残ってしまう問題を修正</li> <li>ツールバーが突然太くなる問題を修正</li> <li>Pathtraqサイトデザインの変更に合わせたビジュアル更新</li> <li>その他bugfix、安定性向上</li></ol> <p>以上、新しい機能と、より安定した動作を実現し問題点を修正しておりますので、旧バージョンをご利用の方は速やかにバージョンアップを行っていただければと思います。</p> <p>また、タイミングを図ったわけでもありませんが、Internet Explorer 7.0にもこれまで通り対応しておりますので、Windows XP, Vistaを問わず、IE7と共に問題なくご利用いただけます。IEのバージョンアップ時も更新等の必要なくご利用いただけることと思います。</p>]]>
      
   </content>
</entry>

</feed>
