<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>digital matter</title>
	<atom:link href="http://blog.loadlimits.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loadlimits.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 26 Feb 2010 04:12:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Doctrine_Collectionをループする</title>
		<link>http://blog.loadlimits.info/2010/02/doctrine_collection%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.loadlimits.info/2010/02/doctrine_collection%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 04:12:52 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/doctrine_collection%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e3%81%99%e3%82%8b/</guid>
		<description><![CDATA[Symfony 1.4+Doctrine   やたら不便（だと個人的には思っている）なDoctrineの、SELECTに関するメモ。 
やりたかったことは、ある条件で抽出した複数行に１行ずつ処理を加えて書き戻すというフロー。   fetchArray()とかでは配列しか返ってこないので意味がなく、fetchOne()では先頭行しか返ってこない。    fetchOne()を複数回実行すればいいのかと思ったら無限ループに陥った。 
findByではorderByをするのにフックを使わないといけないらしいのでパス。 
一応、以下の方法で解決しました。


$collection = Doctrine_Query::create()
    -&#62;select('u.*')
    -&#62;from('Users u')
    -&#62;where('u.flag = ?', '1')
    -&#62;orderBy('u.id')
    -&#62;execute();

var_dump(get_class($collection)); // Doctrine_Collection

$iter = $collection-&#62;getIterator();
var_dump(get_class($iter)); // ArrayIterator

while ($record = $iter-&#62;current()) {
    var_dump(get_class($record)); [...]]]></description>
			<content:encoded><![CDATA[<p>Symfony 1.4+Doctrine   <br />やたら不便（だと個人的には思っている）なDoctrineの、SELECTに関するメモ。 </p>
<p>やりたかったことは、ある条件で抽出した複数行に１行ずつ処理を加えて書き戻すというフロー。   <br />fetchArray()とかでは配列しか返ってこないので意味がなく、fetchOne()では先頭行しか返ってこない。    <br />fetchOne()を複数回実行すればいいのかと思ったら無限ループに陥った。 </p>
<p>findByではorderByをするのにフックを使わないといけないらしいのでパス。 </p>
<p>一応、以下の方法で解決しました。</p>
<p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>$collection = Doctrine_Query::create()
    -&gt;select('u.*')
    -&gt;from('Users u')
    -&gt;where('u.flag = ?', '1')
    -&gt;orderBy('u.id')
    -&gt;execute();

var_dump(get_class($collection)); // Doctrine_Collection

$iter = $collection-&gt;getIterator();
var_dump(get_class($iter)); // ArrayIterator

while ($record = $iter-&gt;current()) {
    var_dump(get_class($record)); // Users
    var_dump($record-&gt;getId());
    $iter-&gt;next();
}
</pre>
</div>
<p>next()呼ばないといけないのは面倒だなと思ったら、foreachで使えたらしい。</p>
<p><div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>$collection = Doctrine_Query::create()
    -&gt;select('u.*')
    -&gt;from('Users u')
    -&gt;where('u.flag = ?', '1')
    -&gt;orderBy('u.id')
    -&gt;execute();

var_dump(get_class($collection)); // Doctrine_Collection

$iter = $collection-&gt;getIterator();
var_dump(get_class($iter)); // ArrayIterator

foreach ($iter as $record) {
    var_dump(get_class($record)); // Users
    var_dump($record-&gt;getId());
}
</pre>
</div>
<p>これでかなりマシになった。 </p>
<p>最終的にはこれで。</p>
<p><div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>$collection = Doctrine_Query::create()
    -&gt;select('u.*')
    -&gt;from('Users u')
    -&gt;where('u.flag = ?', '1')
    -&gt;orderBy('u.id')
    -&gt;execute();

var_dump(get_class($collection)); // Doctrine_Collection

foreach ($collection-&gt;getIterator() as $record) {
    var_dump(get_class($record)); // Users
    var_dump($record-&gt;getId());
}
</pre>
</div>
<p>あとはループ内で$record['data'] = &#8216;hoge&#8217;;$record-&gt;save();とかしておけばOK。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/doctrine_collection%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DELLモニタ2407WFP電源ボタンの直し方</title>
		<link>http://blog.loadlimits.info/2010/02/dell%e3%83%a2%e3%83%8b%e3%82%bf2407wfp%e9%9b%bb%e6%ba%90%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e7%9b%b4%e3%81%97%e6%96%b9/</link>
		<comments>http://blog.loadlimits.info/2010/02/dell%e3%83%a2%e3%83%8b%e3%82%bf2407wfp%e9%9b%bb%e6%ba%90%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e7%9b%b4%e3%81%97%e6%96%b9/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 03:11:26 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[解決]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/dell%e3%83%a2%e3%83%8b%e3%82%bf2407wfp%e9%9b%bb%e6%ba%90%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e7%9b%b4%e3%81%97%e6%96%b9/</guid>
		<description><![CDATA[DELLの2407WFPというモニタをずっと使っているのだけど、１年くらい前から電源ボタンを押しても反応しない状況になって困っていました。
幸い電源は入った状態だったので、以降は入力切替をS-VIDEOなどにして、自動スタンバイさせていました。
電源ボタンは、押してもクリック感がなく、最初から押し込まれているような状態。
分解して直そうと試みるも、裏のネジを外した後の分解方法がわからず…
同等の現象を検索してみたところ、
価格.com &#8211; 『皆さんのモニターの主電源ボタン壊れませんか？』 DELL 2408WFP のクチコミ掲示板
電源ボタンマークの「｜」の部分が      時計でいう１２時の向きにぴったりあってないとクリック       できません。

！？
確かに自分のモニタを見ると電源ボタンのマークが斜めになっている…
 
テープなどで電源ボタンを粘着させて回転させてみる…
 
できたーーーー！
発見した人すごいな。
今はポストイットで固定してます。

]]></description>
			<content:encoded><![CDATA[<p>DELLの2407WFPというモニタをずっと使っているのだけど、１年くらい前から電源ボタンを押しても反応しない状況になって困っていました。</p>
<p>幸い電源は入った状態だったので、以降は入力切替をS-VIDEOなどにして、自動スタンバイさせていました。</p>
<p>電源ボタンは、押してもクリック感がなく、最初から押し込まれているような状態。</p>
<p>分解して直そうと試みるも、裏のネジを外した後の分解方法がわからず…</p>
<p>同等の現象を検索してみたところ、</p>
<p><a href="http://bbs.kakaku.com/bbs/0085X112545/SortID=8350011/" target="_blank">価格.com &#8211; 『皆さんのモニターの主電源ボタン壊れませんか？』 DELL 2408WFP のクチコミ掲示板</a></p>
<blockquote><p>電源ボタンマークの「｜」の部分が      <br />時計でいう１２時の向きにぴったりあってないとクリック       <br />できません。</p>
</blockquote>
<p>！？</p>
<p>確かに自分のモニタを見ると電源ボタンのマークが斜めになっている…</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/02/P1030002_s.jpg"><img alt="P1030002_s" src="http://blog.loadlimits.info/wp-content/uploads/2010/02/P1030002_s_thumb.jpg" width="320" height="240" /></a> </p>
<p>テープなどで電源ボタンを粘着させて回転させてみる…</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/02/P1030001_s.jpg"><img alt="P1030001_s" src="http://blog.loadlimits.info/wp-content/uploads/2010/02/P1030001_s_thumb.jpg" width="320" height="240" /></a> </p>
<p>できたーーーー！</p>
<p>発見した人すごいな。</p>
<p>今はポストイットで固定してます。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/02/P1030003_s.jpg"><img alt="P1030003_s" src="http://blog.loadlimits.info/wp-content/uploads/2010/02/P1030003_s_thumb.jpg" width="320" height="240" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/dell%e3%83%a2%e3%83%8b%e3%82%bf2407wfp%e9%9b%bb%e6%ba%90%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e7%9b%b4%e3%81%97%e6%96%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linuxで複数ユーザで使えるリモートデスクトップ環境を作る</title>
		<link>http://blog.loadlimits.info/2010/02/linux%e3%81%a7%e8%a4%87%e6%95%b0%e3%83%a6%e3%83%bc%e3%82%b6%e3%81%a7%e4%bd%bf%e3%81%88%e3%82%8b%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e7%92%b0/</link>
		<comments>http://blog.loadlimits.info/2010/02/linux%e3%81%a7%e8%a4%87%e6%95%b0%e3%83%a6%e3%83%bc%e3%82%b6%e3%81%a7%e4%bd%bf%e3%81%88%e3%82%8b%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e7%92%b0/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 12:47:01 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xrdp]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/linux%e3%81%a7%e8%a4%87%e6%95%b0%e3%83%a6%e3%83%bc%e3%82%b6%e3%81%a7%e4%bd%bf%e3%81%88%e3%82%8b%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e7%92%b0/</guid>
		<description><![CDATA[今回やりたかったのは、社内で複数の人が一台の共有マシンを使って、とある時間のかかる処理をするための環境作成です。
最初はxinetd+Xvfb+x11vncでgdmをあーやってこーやって…って色々試していたのですが、Windowsのリモートデスクトップ接続をクライアントに使えた方が便利だなぁとか思ってRDPで転送する方法がないか調べたところ、むしろさっきまで小難しくやろうとしていたすべてをまるっとまとめてやってくれるxrdpというものを発見！
これならシンクライアントっぽいものが一瞬で作れる！ということでさっそく導入してみたので手順解説します。

このxrdp、デフォルトのままならリモートデスクトップユーザからシステムに変更を加える作業はできないので、今回の用途に最適です。
xrdp &#124; Get xrdp at SourceForge.net
ユーザの追加も、通常通りLinuxにユーザ追加するだけで、リモートデスクトップログインできるようになります。
VNCに対する利点は多分こんなところ

画像解像度がクライアント側から変更できる       
Windowsユーザに追加クライアントをインストールしてもらう必要がない 

設定にあたってはこちらのブログのエントリが大変参考になりました。これがないとまともにキーボード使えませんでした。

xrdp 0.5.0 (cvsベース) &#8211; Sceneries through the lenses 
xrdp 0.5.0 rpm for CentOS 5.4 x64 &#8211; Sceneries through the lenses 
xrdp 0.5.0 / 日本語入力 &#8211; Sceneries through the lenses 

サーバはUbuntu Server 9.10(Karmic Koala)を使いました。別にUbuntuデスクトップ版でも良かった説。
とりあえずインストール時にこれらを選択しておきます。インストール後なら$ sudo taskselでもOK。

Basic Ubuntu server 
OpenSSH Server 
Ubuntu desktop 

xrdpですが、aptやSourceForgeからtar.gzでダウンロードできるものはバージョンが古く、Windows7のリモートデスクトップ接続クライアントに対応していません。なので、cvsレポジトリから最新を持ってくる必要があります。
今回チェックアウトしたものは2009-12-26に最終更新されたバージョンです。
まずは下準備とチェックアウトまで。
$ [...]]]></description>
			<content:encoded><![CDATA[<p>今回やりたかったのは、社内で複数の人が一台の共有マシンを使って、とある時間のかかる処理をするための環境作成です。</p>
<p>最初はxinetd+Xvfb+x11vncでgdmをあーやってこーやって…って色々試していたのですが、Windowsのリモートデスクトップ接続をクライアントに使えた方が便利だなぁとか思ってRDPで転送する方法がないか調べたところ、むしろさっきまで小難しくやろうとしていたすべてをまるっとまとめてやってくれるxrdpというものを発見！</p>
<p>これならシンクライアントっぽいものが一瞬で作れる！ということでさっそく導入してみたので手順解説します。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/02/WS000001.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="WS000001" src="http://blog.loadlimits.info/wp-content/uploads/2010/02/WS000001_thumb.png" width="307" height="240" /></a></p>
<p>このxrdp、デフォルトのままならリモートデスクトップユーザからシステムに変更を加える作業はできないので、今回の用途に最適です。</p>
<p><a href="http://sourceforge.net/projects/xrdp/" target="_blank">xrdp | Get xrdp at SourceForge.net</a></p>
<p>ユーザの追加も、通常通りLinuxにユーザ追加するだけで、リモートデスクトップログインできるようになります。</p>
<p>VNCに対する利点は多分こんなところ</p>
<ul>
<li>画像解像度がクライアント側から変更できる      <br /><a href="http://blog.loadlimits.info/wp-content/uploads/2010/02/WS000000.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="WS000000" src="http://blog.loadlimits.info/wp-content/uploads/2010/02/WS000000_thumb.png" width="260" height="240" /></a> </li>
<li>Windowsユーザに追加クライアントをインストールしてもらう必要がない </li>
</ul>
<p>設定にあたってはこちらのブログのエントリが大変参考になりました。これがないとまともにキーボード使えませんでした。</p>
<ul>
<li><a href="http://blog.goo.ne.jp/thaniwa/e/133521d46ed5d450224dfb6b7ea0499e" target="_blank">xrdp 0.5.0 (cvsベース) &#8211; Sceneries through the lenses</a> </li>
<li><a href="http://blog.goo.ne.jp/thaniwa/e/0b2fc72034c3b330989dd2c8a5ec4a73" target="_blank">xrdp 0.5.0 rpm for CentOS 5.4 x64 &#8211; Sceneries through the lenses</a> </li>
<li><a href="http://blog.goo.ne.jp/thaniwa/e/7da32303f57992beb7bea88e62fa5291" target="_blank">xrdp 0.5.0 / 日本語入力 &#8211; Sceneries through the lenses</a> </li>
</ul>
<p>サーバはUbuntu Server 9.10(Karmic Koala)を使いました。別にUbuntuデスクトップ版でも良かった説。</p>
<p>とりあえずインストール時にこれらを選択しておきます。インストール後なら$ sudo taskselでもOK。</p>
<ul>
<li>Basic Ubuntu server </li>
<li>OpenSSH Server </li>
<li>Ubuntu desktop </li>
</ul>
<p>xrdpですが、aptやSourceForgeからtar.gzでダウンロードできるものはバージョンが古く、Windows7のリモートデスクトップ接続クライアントに対応していません。なので、cvsレポジトリから最新を持ってくる必要があります。</p>
<p>今回チェックアウトしたものは2009-12-26に最終更新されたバージョンです。</p>
<p>まずは下準備とチェックアウトまで。</p>
<p>$ sudo aptitude update    <br />$ sudo aptitude install cvs autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev tightvncserver scim scim-anthy     <br />$ cd ~/     <br />$ mkdir xrdp     <br />$ cd xrdp     <br />$ cvs -d:pserver:anonymous@xrdp.cvs.sourceforge.net:/cvsroot/xrdp login     <br />$ cvs -z3 -d:pserver:anonymous@xrdp.cvs.sourceforge.net:/cvsroot/xrdp co .     <br />$ cd xrdp</p>
<p>で、前述のブログを参考にいくつかファイルを修正します。</p>
<p>$ vi xrdp/lang.c    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ((code &gt;= 0) &amp;&amp; (code &lt; 128))</p>
<p>を    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ((code &gt;= 0) &amp;&amp; (code &lt; 135))</p>
<p>に。</p>
<p>$ vi xrdp/xrdp_types.h    <br />&#160;&#160;&#160; struct xrdp_key_info keys_noshift[128];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_shift[128];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_altgr[128];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_capslock[128];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_shiftcapslock[128];</p>
<p>を</p>
<p>&#160;&#160;&#160; struct xrdp_key_info keys_noshift[135];    <br />&#160;&#160;&#160; struct xrdp_key_info keys_shift[135];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_altgr[135];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_capslock[135];     <br />&#160;&#160;&#160; struct xrdp_key_info keys_shiftcapslock[135];</p>
<p>に。</p>
<p>$ ./bootstrap    <br />$ ./configure     <br />$ make     <br />$ sudo make install</p>
<p>次は日本語キーボード用にキーマップを作成します。キーマップファイルは/usr/local/bin/xrdp-genkeymapを使って作ることもできるのですが、「\」や「_」のキーが効かなくなる現象があるので、<a href="http://blog.goo.ne.jp/thaniwa/e/0b2fc72034c3b330989dd2c8a5ec4a73" target="_blank">さきほどのエントリ</a>からコピーしてきます。</p>
<p>とは言ってもファイル単体では公開されていないので、xrdp-0.5.0-instfiles.patchから当該部分を引っこ抜いてくる形になります。</p>
<p>ちなみに自分で生成する場合は、GUI上の端末から（ここ重要）    <br />$ sudo /usr/local/bin/xrdp-genkeymap /etc/xrdp/km-0411.ini     <br />でOKです。</p>
<p>それ以外は普通にSSHから作業できます。認識する名前別にキーマップの複製。lnでもいいかも。</p>
<p>$ cd /etc/xrdp/    <br />$ sudo cp km-0411.ini km-e0200411.ini     <br />$ sudo cp km-0411.ini km-e0210411.ini     <br />$ sudo cp km-0411.ini km-e0010411.ini     <br />$ sudo vi /etc/xrdp/startwm.sh</p>
<p>startwm.shの内容は<a href="http://blog.goo.ne.jp/thaniwa/e/7da32303f57992beb7bea88e62fa5291" target="_blank">前述のエントリ</a>からまるごとコピペして上書きします。が、Ubuntuで試したところ、ログイン後にキー配列がめちゃくちゃになる現象（「qwerty」が「c.gvn 」になる）があるので、一行追加して対策します。</p>
<p>export XKL_XMODMAP_DISABLE=1</p>
<p>を、for WindowManager in $SESSIONSの前にでも入れておきます。</p>
<p>で、あとは起動するだけです。</p>
<p>$ sudo /etc/xrdp/xrdp.sh start</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/02/WS000002.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="WS000002" src="http://blog.loadlimits.info/wp-content/uploads/2010/02/WS000002_thumb.png" width="307" height="240" /></a></p>
<p>複数のユーザが同時にログインしても問題なく動作します。1200&#215;1920とかの解像度でもストレスなく作業できました。</p>
<p>Mac OS Xな人々には<a href="http://www.microsoft.com/japan/mac/products/remote-desktop/default.mspx" target="_blank">Remote Desktop Connection Client for Mac 2</a>もあるのでばっちりです。</p>
<p>追記：あ、右シフトキーが効かない現象がありました。謎。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/linux%e3%81%a7%e8%a4%87%e6%95%b0%e3%83%a6%e3%83%bc%e3%82%b6%e3%81%a7%e4%bd%bf%e3%81%88%e3%82%8b%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e7%92%b0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Virtual PC上でdebianのeth0が消えた現象</title>
		<link>http://blog.loadlimits.info/2010/02/virtual-pc%e4%b8%8a%e3%81%a7debian%e3%81%aeeth0%e3%81%8c%e6%b6%88%e3%81%88%e3%81%9f%e7%8f%be%e8%b1%a1/</link>
		<comments>http://blog.loadlimits.info/2010/02/virtual-pc%e4%b8%8a%e3%81%a7debian%e3%81%aeeth0%e3%81%8c%e6%b6%88%e3%81%88%e3%81%9f%e7%8f%be%e8%b1%a1/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 16:25:58 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Virtual PC]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/virtual-pc%e4%b8%8a%e3%81%a7debian%e3%81%aeeth0%e3%81%8c%e6%b6%88%e3%81%88%e3%81%9f%e7%8f%be%e8%b1%a1/</guid>
		<description><![CDATA[Windows Vista Ultimate x32上のMicrosoft Virtual PCからWindows 7 Enterprise x64のWindows Virtual PCにDebian lennyの仮想マシンのデータをそっくり移して使おうとしたら、eth0がなぜか消えてしまった…
loしか残ってないという状況。
結論から言うと、/etc/udev/rules.d/70-persistent-net.rulesを削除した後、rebootしたら直りました。
/etc/init.d/networking restartとかでは直らず。
ゲストOSが64bitじゃないからいけないのかとか思ってdebianの64bit版とか別にインストールしようと試みて、ゲストOSには32bitしか受け付けないことを知ったり。なので、そこは問題ではなかった。
]]></description>
			<content:encoded><![CDATA[<p>Windows Vista Ultimate x32上のMicrosoft Virtual PCからWindows 7 Enterprise x64のWindows Virtual PCにDebian lennyの仮想マシンのデータをそっくり移して使おうとしたら、eth0がなぜか消えてしまった…</p>
<p>loしか残ってないという状況。</p>
<p>結論から言うと、/etc/udev/rules.d/70-persistent-net.rulesを削除した後、rebootしたら直りました。</p>
<p>/etc/init.d/networking restartとかでは直らず。</p>
<p>ゲストOSが64bitじゃないからいけないのかとか思ってdebianの64bit版とか別にインストールしようと試みて、ゲストOSには32bitしか受け付けないことを知ったり。なので、そこは問題ではなかった。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/virtual-pc%e4%b8%8a%e3%81%a7debian%e3%81%aeeth0%e3%81%8c%e6%b6%88%e3%81%88%e3%81%9f%e7%8f%be%e8%b1%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneな人への地図URLの送り方</title>
		<link>http://blog.loadlimits.info/2010/02/iphone%e3%81%aa%e4%ba%ba%e3%81%b8%e3%81%ae%e5%9c%b0%e5%9b%b3url%e3%81%ae%e9%80%81%e3%82%8a%e6%96%b9/</link>
		<comments>http://blog.loadlimits.info/2010/02/iphone%e3%81%aa%e4%ba%ba%e3%81%b8%e3%81%ae%e5%9c%b0%e5%9b%b3url%e3%81%ae%e9%80%81%e3%82%8a%e6%96%b9/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 09:25:56 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[解決]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/iphone%e3%81%aa%e4%ba%ba%e3%81%b8%e3%81%ae%e5%9c%b0%e5%9b%b3url%e3%81%ae%e9%80%81%e3%82%8a%e6%96%b9/</guid>
		<description><![CDATA[iPhone/iPod touchでもPCでも共通で見られるGoogleマップのURLを作りたくなったのでメモ。
というか、iPhone上のSafariから、Googleで場所を検索すると出てくるリンクですね。iPhoneの場合、このURLを開くと地図アプリが開きます。
http://maps.google.co.jp/?q=東京都新宿区西新宿２丁目８−１
http://maps.google.co.jp/?q=248-0006
PCのGoogleマップで地図のURL開くとめちゃくちゃ長くなってしまうので、こういう指定の仕方覚えておくと便利かも。
何がやりたかったかって言うと、twitterで○○の場所どこ？って聞かれて、とっさに住所だけ答えてしまったけど、iPhoneで使える地図のURLにしたほうが便利だったな、って思って。
]]></description>
			<content:encoded><![CDATA[<p>iPhone/iPod touchでもPCでも共通で見られるGoogleマップのURLを作りたくなったのでメモ。</p>
<p>というか、iPhone上のSafariから、Googleで場所を検索すると出てくるリンクですね。iPhoneの場合、このURLを開くと地図アプリが開きます。</p>
<p><a href="http://maps.google.co.jp/?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%B0%E5%AE%BF%E5%8C%BA%E8%A5%BF%E6%96%B0%E5%AE%BF%EF%BC%92%E4%B8%81%E7%9B%AE%EF%BC%98%E2%88%92%EF%BC%91">http://maps.google.co.jp/?q=東京都新宿区西新宿２丁目８−１</a></p>
<p><a href="http://maps.google.co.jp/?q=248-0006">http://maps.google.co.jp/?q=248-0006</a></p>
<p>PCのGoogleマップで地図のURL開くとめちゃくちゃ長くなってしまうので、こういう指定の仕方覚えておくと便利かも。</p>
<p>何がやりたかったかって言うと、twitterで○○の場所どこ？って聞かれて、とっさに住所だけ答えてしまったけど、iPhoneで使える地図のURLにしたほうが便利だったな、って思って。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/iphone%e3%81%aa%e4%ba%ba%e3%81%b8%e3%81%ae%e5%9c%b0%e5%9b%b3url%e3%81%ae%e9%80%81%e3%82%8a%e6%96%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight3とBlend3とビヘイビア</title>
		<link>http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/</link>
		<comments>http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 11:19:30 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/</guid>
		<description><![CDATA[Silverlightの開発、ビヘイビアが結構便利なのだけど、あまりまだ洗練されてないのと情報少ないので発見したこと共有しておきます。
まとめを書きたいけどちょっと時間取れないので、ざっくり、どんなものかを書いておきます。
とにかくコードを書かなくて良くなる
コード書く量が減れば、コードをビジネスロジックに集中できるので、見通しが良くなります。デザイナに渡すのも楽かもしれないですね。
簡単な処理はストーリーボードも不要
全部ストーリーボードでやろうとしていたら、結局制御のためにプログラムを書かなきゃいけない事態になっていたので、これも便利ですね。イージングもかけられます。
ときどき動かない条件があるらしい？
マウスオーバーで画像を切り替える処理をやりたくて、ChangePropertyActionに親コントロール（Image）のSourceを切り替える処理をやらせたら、Silverlight自体表示されなくなってしまいました。ローディング100%の状態で先に進まない…。
他にもHyperlinkActionに直接http://から始まるURLを書いたら同じ現象になりました。使い方間違ってるだけだとは思うけど。これについての情報はこっちで解決。
Blend 3 silverlight application &#38; website

&#60;HyperlinkButton Tag="/Views/Page1.xaml" Background="Black" Height="47" HorizontalAlignment="Left" VerticalAlignment="Top" Width="133" NavigateUri="/Page1.xaml" Cursor="Stylus" /&#62;

ビヘイビア使わずにHyperlinkButtonにするってことですね…
状態を制するとインターフェースの設計が楽になる
やっぱりインターフェースを重点的に考えられているだけあって、状態を作ってしまえば、あとは状態の遷移だけ意識すればいいという点で便利。
マウスオーバーでずるっと出てくるメニューとか、GoToStateActionを使うと簡単に作れます。状態を先に保存しておいて、それぞれの状態を切り替える処理をクリックイベントだのチェックボックスのチェックだののイベントに関連付けられます。
ただし、「状態」を使うために別コントロールにしておく必要あり。あと、別コントロールにしたあと、一度ビルドしないとプロジェクト内の他のXAMLから使えないっぽい？アセットにコントロールが出てこないと焦ったときはとりあえずビルド。
マウスオーバーでずるっと出てくるメニューはストーリーボードでやらないほうがいい
なぜならアニメーション中にフォーカス外れたとき、MouseLeaveイベントにストーリーボードのBeginとか書いてあると、メニューが出きっていないのにストーリーボードのスタート地点で出きった位置に飛ばされるからです。
その点、GoToStateActionはその辺もきれいに処理してくれるので便利。
ずるずる並び替えられる処理もビヘイビアで
FluidMoveBehaviorを使えばパネルの中の要素をドラッグアンドドロップで変更する処理を一発で設定できるらしいです。試してないけど。
動画あった。これかな？
Animated WPF Panels (animating collection views) &#124; Software and UX
トリガーはビヘイビアを選択したときにプロパティに出てくる
もう一度言う、「トリガーはビヘイビアを選択したときにプロパティに出てくる」。わかりにくい探しにくい…一度覚えてしまえば大丈夫なのだろうけど…
ついでに言うと、状態の選択を解除するには状態タブの中のベースを選択しておけばいいと思う。
その他、デモとか
色々解説してくれているサイトがあったので、紹介しておきます。
kirupa.com &#8211; Using Custom Visual States, Page 1 （Visual StatesとGoToStateActionの話）
kirupa.com &#8211; Using the FluidMove Behavior, Page 1 （FluidMoveBehaviorのデモあり）
サイト上で全部のデモを見られないのが残念だけど、ソース公開してくれているので、一度ダウンロードして動きを見てみるといいと思いますよ。
]]></description>
			<content:encoded><![CDATA[<p>Silverlightの開発、ビヘイビアが結構便利なのだけど、あまりまだ洗練されてないのと情報少ないので発見したこと共有しておきます。</p>
<p>まとめを書きたいけどちょっと時間取れないので、ざっくり、どんなものかを書いておきます。</p>
<h2>とにかくコードを書かなくて良くなる</h2>
<p>コード書く量が減れば、コードをビジネスロジックに集中できるので、見通しが良くなります。デザイナに渡すのも楽かもしれないですね。</p>
<h2>簡単な処理はストーリーボードも不要</h2>
<p>全部ストーリーボードでやろうとしていたら、結局制御のためにプログラムを書かなきゃいけない事態になっていたので、これも便利ですね。イージングもかけられます。</p>
<h2>ときどき動かない条件があるらしい？</h2>
<p>マウスオーバーで画像を切り替える処理をやりたくて、ChangePropertyActionに親コントロール（Image）のSourceを切り替える処理をやらせたら、Silverlight自体表示されなくなってしまいました。ローディング100%の状態で先に進まない…。</p>
<p>他にもHyperlinkActionに直接http://から始まるURLを書いたら同じ現象になりました。使い方間違ってるだけだとは思うけど。これについての情報はこっちで解決。</p>
<p><a href="http://social.expression.microsoft.com/Forums/en/blend/thread/88bdd199-07e9-46cc-975c-d7bfbbd8b7ef" target="_blank">Blend 3 silverlight application &amp; website</a></p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>&lt;HyperlinkButton Tag="/Views/Page1.xaml" Background="Black" Height="47" HorizontalAlignment="Left" VerticalAlignment="Top" Width="133" NavigateUri="/Page1.xaml" Cursor="Stylus" /&gt;</pre>
</div>
<p>ビヘイビア使わずにHyperlinkButtonにするってことですね…</p>
<h2>状態を制するとインターフェースの設計が楽になる</h2>
<p>やっぱりインターフェースを重点的に考えられているだけあって、状態を作ってしまえば、あとは状態の遷移だけ意識すればいいという点で便利。</p>
<p>マウスオーバーでずるっと出てくるメニューとか、GoToStateActionを使うと簡単に作れます。状態を先に保存しておいて、それぞれの状態を切り替える処理をクリックイベントだのチェックボックスのチェックだののイベントに関連付けられます。</p>
<p>ただし、「状態」を使うために別コントロールにしておく必要あり。あと、別コントロールにしたあと、一度ビルドしないとプロジェクト内の他のXAMLから使えないっぽい？アセットにコントロールが出てこないと焦ったときはとりあえずビルド。</p>
<h2>マウスオーバーでずるっと出てくるメニューはストーリーボードでやらないほうがいい</h2>
<p>なぜならアニメーション中にフォーカス外れたとき、MouseLeaveイベントにストーリーボードのBeginとか書いてあると、メニューが出きっていないのにストーリーボードのスタート地点で出きった位置に飛ばされるからです。</p>
<p>その点、GoToStateActionはその辺もきれいに処理してくれるので便利。</p>
<h2>ずるずる並び替えられる処理もビヘイビアで</h2>
<p>FluidMoveBehaviorを使えばパネルの中の要素をドラッグアンドドロップで変更する処理を一発で設定できるらしいです。試してないけど。</p>
<p>動画あった。これかな？</p>
<p><a href="http://sweux.com/blogs/pombeiro/index.php/2009/08/14/animated-panels/" target="_blank">Animated WPF Panels (animating collection views) | Software and UX</a></p>
<h2>トリガーはビヘイビアを選択したときにプロパティに出てくる</h2>
<p>もう一度言う、「トリガーはビヘイビアを選択したときにプロパティに出てくる」。わかりにくい探しにくい…一度覚えてしまえば大丈夫なのだろうけど…</p>
<p>ついでに言うと、状態の選択を解除するには状態タブの中のベースを選択しておけばいいと思う。</p>
<h2>その他、デモとか</h2>
<p>色々解説してくれているサイトがあったので、紹介しておきます。</p>
<p><a href="http://www.kirupa.com/blend_silverlight/custom_vsm_pg1.htm" target="_blank">kirupa.com &#8211; Using Custom Visual States, Page 1</a> （Visual StatesとGoToStateActionの話）</p>
<p><a href="http://www.kirupa.com/blend_silverlight/fluidmove_pg1.htm" target="_blank">kirupa.com &#8211; Using the FluidMove Behavior, Page 1</a> （FluidMoveBehaviorのデモあり）</p>
<p>サイト上で全部のデモを見られないのが残念だけど、ソース公開してくれているので、一度ダウンロードして動きを見てみるといいと思いますよ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SilverlightのTestPage.htm自動生成をやめる</title>
		<link>http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/</link>
		<comments>http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 09:57:10 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[解決]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/</guid>
		<description><![CDATA[やめる、というか、HTMLのobject要素内にparamとか追加したかったので、別ページを用意して、そのファイルをビルド時に実行してくれるようにしたいのです。
ASP.NETのプロジェクトがくっついている場合はそちらを修正すればいいのですが、Silverlightプロジェクトを単体で作ってしまった場合用。
環境はVisual Studio 2010 ベータを使っています。
メニューの[プロジェクト]から、[新しい項目の追加]、[HTMLファイル]を選択して１ページ作成してやります。
スケルトンのHTMLがエディタに表示されるので、Silverlightを呼び出すタグを書きます。自動生成されたTestPage.htmの内容でもコピーして作ると楽。
ちなみに実行自体はプロジェクトのルートフォルダにできるので、xapファイルのパスの前にBin/debug/などをつけてやる必要あり。（出力ディレクトリにコピーできるけど、コピーしてもそちらが実行されるわけではない）
で、プロジェクトのプロパティで、デバッグ→開始動作のラジオボタンを[テスト ページを動的に生成する]から[ページを指定する]に変更して、htmlファイルを選択。完了。
]]></description>
			<content:encoded><![CDATA[<p>やめる、というか、HTMLのobject要素内にparamとか追加したかったので、別ページを用意して、そのファイルをビルド時に実行してくれるようにしたいのです。</p>
<p>ASP.NETのプロジェクトがくっついている場合はそちらを修正すればいいのですが、Silverlightプロジェクトを単体で作ってしまった場合用。</p>
<p>環境はVisual Studio 2010 ベータを使っています。</p>
<p>メニューの[プロジェクト]から、[新しい項目の追加]、[HTMLファイル]を選択して１ページ作成してやります。</p>
<p>スケルトンのHTMLがエディタに表示されるので、Silverlightを呼び出すタグを書きます。自動生成されたTestPage.htmの内容でもコピーして作ると楽。</p>
<p>ちなみに実行自体はプロジェクトのルートフォルダにできるので、xapファイルのパスの前にBin/debug/などをつけてやる必要あり。（出力ディレクトリにコピーできるけど、コピーしてもそちらが実行されるわけではない）</p>
<p>で、プロジェクトのプロパティで、デバッグ→開始動作のラジオボタンを[テスト ページを動的に生成する]から[ページを指定する]に変更して、htmlファイルを選択。完了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encoding.GetString(Byte[])はSilverlightで使えない</title>
		<link>http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/</link>
		<comments>http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:53:23 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/</guid>
		<description><![CDATA[今日のびっくり。
&#8216;System.Text.Encoding.GetString(byte[])&#8217; はアクセスできない保護レベルになっています。


Encoding.UTF8.GetString(data);

こんなコードを書くとビルド時エラーになります。
なぜか、Encoding.GetString(Byte[], Int32, Int32)は使えます。

Encoding.UTF8.GetString(data, 0, data.Length);

こうしておけばOK。何だろう、この仕様。

Encoding.GetString メソッド (Byte[]) (System.Text)
Encoding.GetString メソッド (Byte[], Int32, Int32) (System.Text)

]]></description>
			<content:encoded><![CDATA[<p>今日のびっくり。</p>
<blockquote><p>&#8216;System.Text.Encoding.GetString(byte[])&#8217; はアクセスできない保護レベルになっています。</p>
</blockquote>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>Encoding.UTF8.GetString(data);</pre>
</div>
<p>こんなコードを書くとビルド時エラーになります。</p>
<p>なぜか、Encoding.GetString(Byte[], Int32, Int32)は使えます。</p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>Encoding.UTF8.GetString(data, 0, data.Length);</pre>
</div>
<p>こうしておけばOK。何だろう、この仕様。</p>
<ul>
<li><a href="http://msdn.microsoft.com/ja-jp/library/744y86tc.aspx" target="_blank">Encoding.GetString メソッド (Byte[]) (System.Text)</a></li>
<li><a href="http://msdn.microsoft.com/ja-jp/library/05cts4c3.aspx" target="_blank">Encoding.GetString メソッド (Byte[], Int32, Int32) (System.Text)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>今日の微妙エラー</title>
		<link>http://blog.loadlimits.info/2010/01/%e4%bb%8a%e6%97%a5%e3%81%ae%e5%be%ae%e5%a6%99%e3%82%a8%e3%83%a9%e3%83%bc/</link>
		<comments>http://blog.loadlimits.info/2010/01/%e4%bb%8a%e6%97%a5%e3%81%ae%e5%be%ae%e5%a6%99%e3%82%a8%e3%83%a9%e3%83%bc/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 07:52:06 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/%e4%bb%8a%e6%97%a5%e3%81%ae%e5%be%ae%e5%a6%99%e3%82%a8%e3%83%a9%e3%83%bc/</guid>
		<description><![CDATA[コントロールはひとつの case ラベル (&#8216;default:&#8217;) から別のラベルへ流れ落ちることはできません。


switch (message)
{
    case "hoge":
        funcA();
        break;
    default:
        funcB();
        break; // これがないとエラー
}


他の言語のクセでbreak書かなかったら起きた。
「フォールスルー」ってことなんですね。
ちなみにcaseのあとのブロックにコードを書かなければフォールスルーはできるという話。
]]></description>
			<content:encoded><![CDATA[<blockquote><p>コントロールはひとつの case ラベル (&#8216;default:&#8217;) から別のラベルへ流れ落ちることはできません。</p>
</blockquote>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>switch (message)
{
    case "hoge":
        funcA();
        break;
    default:
        funcB();
        break; // これがないとエラー
}
</pre>
</div>
<p>他の言語のクセでbreak書かなかったら起きた。</p>
<p>「フォールスルー」ってことなんですね。</p>
<p>ちなみにcaseのあとのブロックにコードを書かなければフォールスルーはできるという話。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/%e4%bb%8a%e6%97%a5%e3%81%ae%e5%be%ae%e5%a6%99%e3%82%a8%e3%83%a9%e3%83%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windowsフォームへの、やたら簡単なSilverlightホスティング方法</title>
		<link>http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/</link>
		<comments>http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 01:44:59 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/</guid>
		<description><![CDATA[
VisualStudioでフォームをひとつ作ります。
WebBrowserコントロールを配置します。
フォームのLoadイベントに以下を記述。


        private void Form1_Load(object sender, EventArgs e)
        {
            string html = @"&#60;!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""&#62;
&#60;!-- saved from url=(0014)about:internet --&#62;

&#60;html xmlns=""http://www.w3.org/1999/xhtml"" &#62;
 &#60;head&#62;
  &#60;title&#62;Test&#60;/title&#62;

  &#60;script [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>VisualStudioでフォームをひとつ作ります。</li>
<li>WebBrowserコントロールを配置します。</li>
<li>フォームのLoadイベントに以下を記述。</li>
</ol>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>        private void Form1_Load(object sender, EventArgs e)
        {
            string html = @"&lt;!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""&gt;
&lt;!-- saved from url=(0014)about:internet --&gt;

&lt;html xmlns=""http://www.w3.org/1999/xhtml"" &gt;
 &lt;head&gt;
  &lt;title&gt;Test&lt;/title&gt;

  &lt;script type=""text/xaml"" id=""testXaml""&gt;
&lt;?xml version=""1.0""?&gt;
&lt;Canvas xmlns=""http://schemas.microsoft.com/client/2007""&gt;
 &lt;Ellipse Fill=""Pink"" Width=""200"" Height=""100"" Canvas.Left=""40"" Canvas.Top=""30"" /&gt;
 &lt;Rectangle Fill=""Orange"" Width=""100"" Height=""160"" Canvas.Left=""150"" Canvas.Top=""50"" /&gt;
 &lt;TextBlock Text=""This is text on Silverlight"" Canvas.Left=""10"" Canvas.Top=""150""&gt;
  &lt;TextBlock.RenderTransform&gt;
   &lt;RotateTransform Angle=""-30"" /&gt;
  &lt;/TextBlock.RenderTransform&gt;
 &lt;/TextBlock&gt;
&lt;/Canvas&gt;
  &lt;/script&gt;
 &lt;/head&gt;

 &lt;body&gt;
   &lt;object type=""application/x-silverlight-2"" width=""800"" height=""600""&gt;
   &lt;param name=""source"" value=""#testXaml""/&gt;
  &lt;/object&gt;
 &lt;/body&gt;
&lt;/html&gt;";
            if (webBrowser1.Document == null)
            {
                webBrowser1.Navigate("about:blank");
            }
            webBrowser1.Document.OpenNew(true);
            webBrowser1.Document.Write(html);
        }
</pre>
</div>
<p>結果</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/01/20100127103949.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="20100127103949" src="http://blog.loadlimits.info/wp-content/uploads/2010/01/20100127103949_thumb.png" width="247" height="244" /></a></p>
<p>XAMLソースはこちらから拝借。<br />
  <br /><a href="http://journal.mycom.co.jp/column/silverlight/016/index.html" target="_blank">【コラム】The Silverlight Times (16) 覚えておきたい「インラインXAML」 | ネット | マイコミジャーナル</a></p>
<p>WebBrowserの使い方はこちらを参考にしました。<br />
  <br /><a href="http://www.atmarkit.co.jp/fdotnet/dotnettips/773wbdocwrite/wbdocwrite.html" target="_blank">WebBrowserコントロールのコンテンツを文字列により設定するには？［2.0、C#、VB］ － ＠IT</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
