<?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>BPS株式会社 開発ブログ Beyond Perspective Solutions LTD.</title>
	<atom:link href="http://www.bpsinc.jp/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bpsinc.jp/blog</link>
	<description>BPS株式会社（Beyond Perspective Solutions）のプログラマによる技術・開発などに関してのブログです</description>
	<lastBuildDate>Tue, 09 Feb 2010 03:29:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>電話機に電話帳を転送しました</title>
		<link>http://www.bpsinc.jp/blog/archives/1105</link>
		<comments>http://www.bpsinc.jp/blog/archives/1105#comments</comments>
		<pubDate>Tue, 09 Feb 2010 03:29:40 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[馬場]]></category>
		<category><![CDATA[電話機]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1105</guid>
		<description><![CDATA[昨日購入した電話機 VE-GP54DL/DW ですが、Gmailの電話帳を転送してみました。
説明書によると、↓のソフトを使って、PCで電話帳を編集できるとあります。
http://panasonic.co.jp/pcc [...]]]></description>
			<content:encoded><![CDATA[<p>昨日購入した電話機 VE-GP54DL/DW ですが、Gmailの電話帳を転送してみました。</p>
<p>説明書によると、↓のソフトを使って、PCで電話帳を編集できるとあります。<br />
http://panasonic.co.jp/pcc/products/phone/phonebook/index.html</p>
<p>しかし、1件ずつ入力するのもばかばかしいので、直接ファイルを設置してみます。<br />
説明書に書いてあるとおりのパスに、以下の形式でファイルを置けばOKです。</p>
<blockquote><p>
グループID [TAB] 名前 [TAB] フリガナ（半角カタカナ） [TAB] 電話番号
</p></blockquote>
<p>ただし、電話番号はハイフンなどを含めず、最後に :0:0 をつけるみたいです。最後の:0:0が何を指しているのかわかりませんが、複数の電話番号に対応するための拡張かもしれません？</p>
<p>記入例</p>
<blockquote><p>
char=01<br />
version=001<br />
model=w_GBC4YB<br />
title=myaddressbook</p>
<p>1002	1000	1001	2000<br />
01	BPS株式会社	ﾋﾞｰﾋﾟｰｴｽ	0462103506:0:0<br />
01	馬場孝夫	ﾊﾞﾊﾞﾀｶｵ	09000000000:0:0<br />
01	渡辺正毅	ﾜﾀﾅﾍﾞﾏｻｷ	09000000000:0:0
</p></blockquote>
<p>注意点として、フリガナを空にすると、PCソフト上ではデータが見えるのに、本体に転送できない点があります。<br />
必ず、適当でもいいのでフリガナを入れてください。</p>
<p>Gmailからこの形式に変換するのはちょっと面倒ですが、専用ソフトで1件ずつ入れるよりは楽ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1105/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>電話機をリプレースしました</title>
		<link>http://www.bpsinc.jp/blog/archives/1102</link>
		<comments>http://www.bpsinc.jp/blog/archives/1102#comments</comments>
		<pubDate>Mon, 08 Feb 2010 11:23:08 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[馬場]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1102</guid>
		<description><![CDATA[社内の電話機をリプレースしました。

	
	Panasonic デジタルコードレス電話機 シルバー 子機2台タイプ VE-GP54DW-S	Amazon価格：￥ 17,900
	カテゴリ：エレクトロニクス
	発売日：20 [...]]]></description>
			<content:encoded><![CDATA[<p>社内の電話機をリプレースしました。</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/Panasonic-%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%82%B9%E9%9B%BB%E8%A9%B1%E6%A9%9F-%E3%82%B7%E3%83%AB%E3%83%90%E3%83%BC-%E5%AD%90%E6%A9%9F2%E5%8F%B0%E3%82%BF%E3%82%A4%E3%83%97-VE-GP54DW-S/dp/B002MBLI7Y%3FSubscriptionId%3DAKIAIXNJGL2WJUOTQJHA%26tag%3Dpiichan1031-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002MBLI7Y" target="_blank"><img src="http://ecx.images-amazon.com/images/I/31Gn6JKk1mL._SL75_.jpg" border="0" alt="Panasonic デジタルコードレス電話機 シルバー 子機2台タイプ VE-GP54DW-S" /></a></p>
	<p><a href="http://www.amazon.co.jp/Panasonic-%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%82%B9%E9%9B%BB%E8%A9%B1%E6%A9%9F-%E3%82%B7%E3%83%AB%E3%83%90%E3%83%BC-%E5%AD%90%E6%A9%9F2%E5%8F%B0%E3%82%BF%E3%82%A4%E3%83%97-VE-GP54DW-S/dp/B002MBLI7Y%3FSubscriptionId%3DAKIAIXNJGL2WJUOTQJHA%26tag%3Dpiichan1031-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002MBLI7Y" target="_blank">Panasonic デジタルコードレス電話機 シルバー 子機2台タイプ VE-GP54DW-S</a>	<p><em>Amazon価格：</em>￥ 17,900</p>
	<p>カテゴリ：エレクトロニクス</p>
	<p><em>発売日：</em>2009-09-11</p>
<hr class="tmkm-amazon-clear" /></div>
<p>今まで子機が1台しかなく不便だったため、子機の追加購入を検討していたのですが、子機1台15000円以上するため、本体ごと買い換えてしまいました。</p>
<p>・SDカードで電話帳をインポート、エクスポートできる<br />
・SDカードにすべての通話を録音できる</p>
<p>とても便利そうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1102/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel 図形の小ネタ</title>
		<link>http://www.bpsinc.jp/blog/archives/1096</link>
		<comments>http://www.bpsinc.jp/blog/archives/1096#comments</comments>
		<pubDate>Sat, 06 Feb 2010 00:50:02 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[馬場]]></category>
		<category><![CDATA[Excel]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1096</guid>
		<description><![CDATA[事務の方ならみんな知っているのかもしれませんが、開発者は意外と知らない、Excel 2007の使い方。
たくさん図形を作ったとき、複数を一括選択するときは、Shiftキーを押しながら選択すればOKです。
しかし、何十個も [...]]]></description>
			<content:encoded><![CDATA[<p>事務の方ならみんな知っているのかもしれませんが、開発者は意外と知らない、Excel 2007の使い方。</p>
<p>たくさん図形を作ったとき、複数を一括選択するときは、Shiftキーを押しながら選択すればOKです。<br />
しかし、何十個もShiftキーを押しながら選択するのは大変です。</p>
<p>そこで、「オブジェクトの選択」機能を使いましょう。</p>
<div id="attachment_1097" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/ex1-300x115.png" alt="ここを選ぶ" title="ex1" width="300" height="115" class="size-medium wp-image-1097" /><p class="wp-caption-text">ここを選ぶ</p></div>
<p>「オブジェクトの選択」を使えば、たくさんの図形も一気に選択できます。<br />
右クリックしてクイックアクセスツールバーにセットしておくと便利です。<br />
<div id="attachment_1098" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/ex2-300x268.png" alt="こうやって一括選択できる" title="ex2" width="300" height="268" class="size-medium wp-image-1098" /><p class="wp-caption-text">こうやって一括選択できる</p></div></p>
<p>Excel 2003まではわかりやすい場所にあったのですが、2007になって隠れてしまいましたね。</p>
<p>また、同じ図形を連続で描きたいときは、図形を右クリックして「描画モードのロック」をすればOKです。<br />
<div id="attachment_1099" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/ex3-300x174.png" alt="描画モードのロック" title="ex3" width="300" height="174" class="size-medium wp-image-1099" /><p class="wp-caption-text">描画モードのロック</p></div><br />
描き終わったらESCを押しましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1096/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActiveDirectory環境下でローカルユーザを追加</title>
		<link>http://www.bpsinc.jp/blog/archives/1090</link>
		<comments>http://www.bpsinc.jp/blog/archives/1090#comments</comments>
		<pubDate>Fri, 05 Feb 2010 00:53:34 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[馬場]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[ユーザアカウント]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1090</guid>
		<description><![CDATA[WindowsをActiveDirectoryに参加させると、コントロールパネルの「ユーザアカウント」が変わります。
ActiveDirectoryのユーザを追加する際は、サーバ上で設定すれば良いのですが、各PCのローカ [...]]]></description>
			<content:encoded><![CDATA[<p>WindowsをActiveDirectoryに参加させると、コントロールパネルの「ユーザアカウント」が変わります。</p>
<p>ActiveDirectoryのユーザを追加する際は、サーバ上で設定すれば良いのですが、各PCのローカルユーザを追加するときにちょっと戸惑います。</p>
<p><strong>ダメなパターン</strong><br />
「ユーザアカウント」を開くと、「追加」ボタンがあるので、それを押してみると・・・</p>
<div id="attachment_1083" class="wp-caption aligncenter" style="width: 289px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/1.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/1-279x300.png" alt="ユーザアカウント一覧画面" title="1" width="279" height="300" class="size-medium wp-image-1083" /></a><p class="wp-caption-text">ユーザアカウント一覧画面</p></div>
<div id="attachment_1084" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/2.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/2-300x257.png" alt="追加" title="2" width="300" height="257" class="size-medium wp-image-1084" /></a><p class="wp-caption-text">追加</p></div>
<div id="attachment_1085" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/3.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/3-300x257.png" alt="権限の設定" title="3" width="300" height="257" class="size-medium wp-image-1085" /></a><p class="wp-caption-text">権限の設定</p></div>
<div id="attachment_1086" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/4.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/4-300x196.png" alt="完了を押すと・・・" title="4" width="300" height="196" class="size-medium wp-image-1086" /></a><p class="wp-caption-text">完了を押すと・・・</p></div>
<p>このように、エラーになってしまいます。<br />
この画面は、既に存在するユーザにグループを設定することは出来ますが、新規ユーザの作成ができません。</p>
<p><strong>正しいやり方</strong><br />
「ユーザアカウント」の「詳細設定」タブで、「ユーザ管理の詳細設定」を開きます。<br />
<div id="attachment_1087" class="wp-caption aligncenter" style="width: 290px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/5.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/5-280x300.png" alt="詳細設定を選択" title="5" width="280" height="300" class="size-medium wp-image-1087" /></a><p class="wp-caption-text">詳細設定を選択</p></div></p>
<p>出てきた画面で、右クリックして「新しいユーザー」をクリックします。<br />
<div id="attachment_1088" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/6.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/6-300x199.png" alt="新しいユーザの追加" title="6" width="300" height="199" class="size-medium wp-image-1088" /></a><p class="wp-caption-text">新しいユーザの追加</p></div></p>
<p>ダイアログにユーザ情報を入力すれば、ユーザが追加できます。<br />
「作成」をクリックしても何もおきないように見えますが、連続追加出来るように画面が閉じないだけで、ちゃんと追加されています。<br />
<div id="attachment_1089" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/02/7-300x238.png" alt="ユーザ情報の入力" title="7" width="300" height="238" class="size-medium wp-image-1089" /><p class="wp-caption-text">ユーザ情報の入力</p></div></p>
<p>これで、ローカルユーザが追加出来ました。もちろん、管理者権限のあるアカウントでログインしていることが必要です。</p>
<p>わかりにくいですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1090/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HDDエラー（chkdskすれば直ります）</title>
		<link>http://www.bpsinc.jp/blog/archives/1076</link>
		<comments>http://www.bpsinc.jp/blog/archives/1076#comments</comments>
		<pubDate>Wed, 03 Feb 2010 22:56:05 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[馬場]]></category>
		<category><![CDATA[HDD]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1076</guid>
		<description><![CDATA[どっちだよ！って思いますよね。ふつう。

ここで
・日本語
・Windows
・フォント
どれの責任と思うかで、性格診断ができます。
]]></description>
			<content:encoded><![CDATA[<p>どっちだよ！って思いますよね。ふつう。</p>
<div id="attachment_1075" class="wp-caption aligncenter" style="width: 595px"><a href="http://www.bpsinc.jp/blog/wp-content/uploads/2010/01/windows.png"><img src="http://www.bpsinc.jp/blog/wp-content/uploads/2010/01/windows.png" alt="問題が発見されま..." title="windows" width="585" height="446" class="size-full wp-image-1075" /></a><p class="wp-caption-text">問題が発見されま...</p></div>
<p style="font-size:9px">
ここで<br />
・日本語<br />
・Windows<br />
・フォント<br />
どれの責任と思うかで、性格診断ができます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1076/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVNで更新しようとしたらCannot create new file</title>
		<link>http://www.bpsinc.jp/blog/archives/1071</link>
		<comments>http://www.bpsinc.jp/blog/archives/1071#comments</comments>
		<pubDate>Wed, 03 Feb 2010 02:32:05 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[馬場]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1071</guid>
		<description><![CDATA[Windows/Macで共用のSVNリポジトリを使った際、WindowsのEclipseで「更新」をしたら、
Cannot create new file
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違 [...]]]></description>
			<content:encoded><![CDATA[<p>Windows/Macで共用のSVNリポジトリを使った際、WindowsのEclipseで「更新」をしたら、</p>
<blockquote><p>Cannot create new file<br />
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。</p></blockquote>
<p>といったエラーが発生しました。</p>
<p>これは、MacのXCodeでコミットしたときに、buildフォルダの中に &gt; が含まれるファイル名のファイルがあったことが原因です。<br />
Windowsでは &gt; を含むファイル名は許可されないので、エラーが発生していました。</p>
<p>Macで該当ファイルを削除すれば、エラーは直ります。<br />
また、このようなことがないよう、XCodeのbuildフォルダはSVNにコミットしない方が良いですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1071/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#でUDPパケットをひたすら送り続ける</title>
		<link>http://www.bpsinc.jp/blog/archives/1068</link>
		<comments>http://www.bpsinc.jp/blog/archives/1068#comments</comments>
		<pubDate>Tue, 02 Feb 2010 03:41:40 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[馬場]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1068</guid>
		<description><![CDATA[先日のiPhone UDP受信テストの際に使った、WindowsからUDPパケットを送りつけるプログラムを載せてみます。
一切の遠慮無く、1秒に20枚のペースで、デスクトップに置いてあるimg0.png～img9.png [...]]]></description>
			<content:encoded><![CDATA[<p>先日のiPhone UDP受信テストの際に使った、WindowsからUDPパケットを送りつけるプログラムを載せてみます。<br />
一切の遠慮無く、1秒に20枚のペースで、デスクトップに置いてあるimg0.png～img9.pngの画像ファイルを一方的に送りつけます。</p>
<pre class="brush:csharp">
///一定時間ごとにUDPで画像を一方的に送りつける
private void SendData()
{
    //ローカルポート番号2222にバインドする
    System.Net.Sockets.UdpClient udp = new System.Net.Sockets.UdpClient(2222);

    int count = 0; //何番目の画像を送信するかのカウンタ

    Timer timer = new Timer();
    timer.Tick += new EventHandler((s, e) =&#62;
    {
	    if (++count &#62; 9)
	    {
	        count = 0;
	    }

	    //デスクトップのimg0.png～img9.pngを送る
	    string filename = @"C:\Users\baba\desktop\img\" + count + ".png";
	    using (System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read))
	    {
	        byte&#91;&#93; sendBytes = new byte&#91;fs.Length&#93;;
	        fs.Read(sendBytes, 0, sendBytes.Length);
	        //宛先IPとポート番号を指定する
	        udp.Send(sendBytes, sendBytes.Length, "192.168.100.50", 5555);
	    }
    });
    timer.Interval = 50;
    timer.Start();
}
</pre>
<p>.NETは簡単にこういったコードが書けて便利ですね。<br />
何の工夫も最適化も無いですが、50枚/秒くらいなら全然問題にならない程度の速度は出ていました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1068/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>古いIEだとAjaxのUserAgentが変わるので、CakePHPでセッションが切れてしまう</title>
		<link>http://www.bpsinc.jp/blog/archives/1062</link>
		<comments>http://www.bpsinc.jp/blog/archives/1062#comments</comments>
		<pubDate>Mon, 01 Feb 2010 01:41:09 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[馬場]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1062</guid>
		<description><![CDATA[CakePHPでjQueryを使ったAjaxを実装した際、IEの古いバージョンでのみエラーになる現象に見舞われました。
調べてみると、Ajaxリクエストを送った際にログインが切れているようです。
どうやら原因は、Cake [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHPでjQueryを使ったAjaxを実装した際、IEの古いバージョンでのみエラーになる現象に見舞われました。<br />
調べてみると、Ajaxリクエストを送った際にログインが切れているようです。</p>
<p>どうやら原因は、CakePHPのユーザエージェント検証機能でした。<br />
app/config/core.phpで</p>
<blockquote><p>Configure::write(&#8217;Session.checkAgent&#8217;, false);</p></blockquote>
<p>を設定することで解決しました。</p>
<p>つまり、古いIEでは、通常時のリクエストとAjaxリクエストで、ユーザエージェントが違う、ということですね。<br />
これはたぶん、歴史的な理由からXMLHttpRequestがActiveXオブジェクトで実装されていることに由来するのでしょう。</p>
<p>以下に、各ブラウザで確認したユーザエージェントを書いておきます。<br />
PHPで、$_SERVER['HTTP_USER_AGENT'] を表示しています。また、Ajax通信は、jQueryの$.ajax()を使っています。</p>
<p>■Firefox 3.5.6<br />
通常： Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)<br />
Ajax： Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)</p>
<p>■Chrome 4 beta<br />
通常： Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.64 Safari/532.5<br />
Ajax： Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.64 Safari/532.5</p>
<p>■IE8<br />
通常： Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)<br />
Ajax： Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)</p>
<p>■IE7<br />
通常： Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)<br />
Ajax： Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)</p>
<p>■IE6<br />
通常： Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)<br />
Ajax： Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1062/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone スレッドに注意</title>
		<link>http://www.bpsinc.jp/blog/archives/1055</link>
		<comments>http://www.bpsinc.jp/blog/archives/1055#comments</comments>
		<pubDate>Sun, 31 Jan 2010 01:18:34 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[馬場]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[スレッド]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1055</guid>
		<description><![CDATA[iPhoneでNSThreadのスレッドを使う際にうっかりミスった点をメモしておきます。
割と常識のようですが、特にUIImageViewのほうはエラーも出ないので初めてだと焦りますね；；
autoreleaseに注意
 [...]]]></description>
			<content:encoded><![CDATA[<p>iPhoneでNSThreadのスレッドを使う際にうっかりミスった点をメモしておきます。<br />
割と常識のようですが、特にUIImageViewのほうはエラーも出ないので初めてだと焦りますね；；</p>
<h4>autoreleaseに注意</h4>
<p>何も考えずにスレッド用の関数内でautoreleaseが呼ばれると、</p>
<blockquote><p>
*** NSAutoReleaseNoPool(): Object 0x********* of class NSConreteData autoreleased with no pool in place &#8230;.
</p></blockquote>
<p>といった感じのエラーが出てしまいます。</p>
<p>お決まりパターンとして、スレッドの最初で</p>
<blockquote><p>
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
</p></blockquote>
<p>しておいて、スレッド終了時に [pool drain] すればとりあえず問題なさそうです。</p>
<h4>別スレッドからUIImageViewのimageを更新しても、表示されない</h4>
<p>別スレッドで</p>
<blockquote><p>
imageView.image = [UIImage imageNamed:@"Hoge.png"];
</p></blockquote>
<p>のような処理を実行しても、表示されません。<br />
UIImageViewのimageを設定して表示する処理は、メインスレッドでないとダメみたいです。</p>
<p>メインスレッドで実行するには、実行する処理を関数にまとめた上、</p>
<blockquote><p>
[delegate performSelectorOnMainThread:@selector(theProcess:) withObject:nil waitUntilDone:YES];
</p></blockquote>
<p>のようにperformSelectorOnMainThreadを使えばOKです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1055/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone用　超手抜きUDPサーバ</title>
		<link>http://www.bpsinc.jp/blog/archives/1051</link>
		<comments>http://www.bpsinc.jp/blog/archives/1051#comments</comments>
		<pubDate>Sat, 30 Jan 2010 01:17:34 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[馬場]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[UDP]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=1051</guid>
		<description><![CDATA[先日のiPhone性能検証で作ったソースの一部として、超手抜きUDPサーバのコードを載せておきます。
CFSocketが思ったよりも使いにくいので、BSDソケットほとんど生です・・・

/**
 * 手抜きUDPサーバ
 [...]]]></description>
			<content:encoded><![CDATA[<p>先日のiPhone性能検証で作ったソースの一部として、超手抜きUDPサーバのコードを載せておきます。<br />
CFSocketが思ったよりも使いにくいので、BSDソケットほとんど生です・・・</p>
<pre class="brush:cpp">
/**
 * 手抜きUDPサーバ
 */
#import &#60;netinet/in.h&#62;
#import &#60;Foundation/Foundation.h&#62;

@interface MyUdpConnection : NSObject {
	id delegate;
}
- (id)initWithDelegate:(id)_delegate; //receiveData:(NSData*)data を実装すること
- (void)bind;
- (void)bindThread;
@end

/**
 * 手抜きUDPサーバ実装部
 */
@implementation MyUdpConnection

// 初期化
- (id)initWithDelegate:(id)_delegate {
	delegate = _delegate;
	return self;
}

// 受信開始
- (void)bind {
	NSThread *th = &#91;&#91;NSThread alloc&#93;initWithTarget:self selector:@selector(bindThread) object:nil&#93;;
	&#91;th start&#93;;
}

// 受信用スレッド
- (void)bindThread {
	NSAutoreleasePool *pool = &#91;&#91;NSAutoreleasePool alloc&#93;init&#93;;

	struct sockaddr_in addr;
	memset(&#038;addr, 0, sizeof(addr));
	addr.sin_port = htons(5555); //適当なポートで待機
	addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = htonl(INADDR_ANY);

	int sock = socket(AF_INET, SOCK_DGRAM, 0);
	bind(sock, (struct sockaddr *)&#038;addr, sizeof(addr));

	char buf&#91;100000&#93;; //100KBまで対応
	while (1) {
		//ここでデータを受信するまでブロックされる
		int size = recv(sock, buf, sizeof(buf), 0);

		//NSDataに変換し、delegateに通知
		NSData *data = &#91;NSData dataWithBytes:buf length:size&#93;;
		&#91;delegate performSelectorOnMainThread:@selector(receiveData:) withObject:data waitUntilDone:YES&#93;;
	}

	&#91;pool drain&#93;;
}
@end
</pre>
<p>これを使うと、たとえばViewControllerなどで</p>
<blockquote><p>
- (void)receiveData:(NSData *)data;
</p></blockquote>
<p>を実装しておいて、</p>
<blockquote><p>
MyUdpConnection *udp = [[MyUdpConnection alloc]initWithDelegate:self];<br />
[udp bind];
</p></blockquote>
<p>のようにすれば、データを受信したときにreceiveData:が呼ばれます。</p>
<p>エラー処理や再送処理はおろか、ポート番号すらべた書きのものですが、重要でないデータを受け取る分には、ちょっと改良すれば使い物になりそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/1051/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
