<?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 &#187; 疑問</title>
	<atom:link href="http://blog.loadlimits.info/category/%e7%96%91%e5%95%8f/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loadlimits.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 31 Aug 2010 21:25:15 +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>Windows Live Essentialsのアップデート</title>
		<link>http://blog.loadlimits.info/2010/06/windows-live-essentials%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88/</link>
		<comments>http://blog.loadlimits.info/2010/06/windows-live-essentials%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 07:43:27 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[疑問]]></category>
		<category><![CDATA[Windows Live Essentials]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/06/windows-live-essentials%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88/</guid>
		<description><![CDATA[いつものようにブログを書こうと思ってWindows Live Writerを起動してみたら、最新版があるから更新しろというメッセージ。それならばとLive Essentials全体を更新かけてみたのだけど、Windows Live Writerはバージョン番号変わらず…えー。
ちなみにアップデート前のバージョン番号：Build 14.0.8089.726 ja
アップデート後のバージョン番号：Build 14.0.8089.726 ja
The Windows Blog
上記記事見る限り、小さなバグフィックスがあったということだけど…？
]]></description>
			<content:encoded><![CDATA[<p>いつものようにブログを書こうと思ってWindows Live Writerを起動してみたら、最新版があるから更新しろというメッセージ。それならばとLive Essentials全体を更新かけてみたのだけど、Windows Live Writerはバージョン番号変わらず…えー。</p>
<p>ちなみにアップデート前のバージョン番号：Build 14.0.8089.726 ja</p>
<p>アップデート後のバージョン番号：Build 14.0.8089.726 ja</p>
<p><a href="http://windowsteamblog.com/windows_live/b/windowslive/archive/2010/05/12/minor-update-to-essentials-released-today.aspx" target="_blank">The Windows Blog</a></p>
<p>上記記事見る限り、小さなバグフィックスがあったということだけど…？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/06/windows-live-essentials%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPのDateTimeの結果が-0001-11-30 00:00:00になる現象について</title>
		<link>http://blog.loadlimits.info/2010/05/php%e3%81%aedatetime%e3%81%ae%e7%b5%90%e6%9e%9c%e3%81%8c-0001-11-30-000000%e3%81%ab%e3%81%aa%e3%82%8b%e7%8f%be%e8%b1%a1%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/</link>
		<comments>http://blog.loadlimits.info/2010/05/php%e3%81%aedatetime%e3%81%ae%e7%b5%90%e6%9e%9c%e3%81%8c-0001-11-30-000000%e3%81%ab%e3%81%aa%e3%82%8b%e7%8f%be%e8%b1%a1%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#comments</comments>
		<pubDate>Fri, 14 May 2010 10:04:33 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[疑問]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/05/php%e3%81%aedatetime%e3%81%ae%e7%b5%90%e6%9e%9c%e3%81%8c-0001-11-30-000000%e3%81%ab%e3%81%aa%e3%82%8b%e7%8f%be%e8%b1%a1%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/</guid>
		<description><![CDATA[mySQLなどで、日時を0000-00-00 00:00:00としてデータベースに格納しておくことがありますが、これを読み込んでそのままPHPのDateTimeオブジェクトに渡すと、出力が-0001-11-30 00:00:00になってしまいます。

$a = new DateTime('0000-00-00 00:00:00');
echo $a-&#62;format('Y-m-d H:i:s');
// Output: -0001-11-30 00:00:00


PHP :: Bug #42971 :: DataTime::format(): not well formated data &#8216;0000-00-00 00:00:00&#8242;
で、これはバグではないと言われているので、どういうことかと考えてみると、0000-00-00は存在しない0月0日を指定しているので、0月は繰り下がって-1年12月0日、さらに0日も繰り下がって-1年11月30日、となるわけですね。
データベースとPHPの文化の違い、というところでしょうか。
ちなみにDateTime型、コンストラクタにNULLを渡すと現在時刻のインスタンスが生成されるので、データベースの値をNULLにしておくと、現在時刻になってしまいます。うーん…symfonyのDoctrineでNULL判定したい場合はどうすればいいんだ…

$row-&#62;getDateTimeObject('deleted_at')

みたいなことがやりたいのですが。
sfDoctrineRecordも

    $type = $this-&#62;getTable()-&#62;getTypeOf($dateFieldName);
    if ($type == 'date' &#124;&#124; $type == 'timestamp')
    {
      return new DateTime($this-&#62;get($dateFieldName));
    [...]]]></description>
			<content:encoded><![CDATA[<p>mySQLなどで、日時を0000-00-00 00:00:00としてデータベースに格納しておくことがありますが、これを読み込んでそのままPHPのDateTimeオブジェクトに渡すと、出力が-0001-11-30 00:00:00になってしまいます。</p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>$a = new DateTime('0000-00-00 00:00:00');
echo $a-&gt;format('Y-m-d H:i:s');
// Output: -0001-11-30 00:00:00
</pre>
</div>
<p><a href="http://bugs.php.net/bug.php?id=42971" target="_blank">PHP :: Bug #42971 :: DataTime::format(): not well formated data &#8216;0000-00-00 00:00:00&#8242;</a></p>
<p>で、これはバグではないと言われているので、どういうことかと考えてみると、0000-00-00は存在しない0月0日を指定しているので、0月は繰り下がって-1年12月0日、さらに0日も繰り下がって-1年11月30日、となるわけですね。</p>
<p>データベースとPHPの文化の違い、というところでしょうか。</p>
<p>ちなみにDateTime型、コンストラクタにNULLを渡すと現在時刻のインスタンスが生成されるので、データベースの値をNULLにしておくと、現在時刻になってしまいます。うーん…symfonyのDoctrineでNULL判定したい場合はどうすればいいんだ…</p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>$row-&gt;getDateTimeObject('deleted_at')</pre>
</div>
<p>みたいなことがやりたいのですが。</p>
<p>sfDoctrineRecordも</p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>    $type = $this-&gt;getTable()-&gt;getTypeOf($dateFieldName);
    if ($type == 'date' || $type == 'timestamp')
    {
      return new DateTime($this-&gt;get($dateFieldName));
    }
</pre>
</div>
</p>
<p>こうなってるからオーバーライドするしかないのかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/05/php%e3%81%aedatetime%e3%81%ae%e7%b5%90%e6%9e%9c%e3%81%8c-0001-11-30-000000%e3%81%ab%e3%81%aa%e3%82%8b%e7%8f%be%e8%b1%a1%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7でSynergyを使おう</title>
		<link>http://blog.loadlimits.info/2009/10/windows-7%e3%81%a7synergy%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86/</link>
		<comments>http://blog.loadlimits.info/2009/10/windows-7%e3%81%a7synergy%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 12:09:53 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[疑問]]></category>
		<category><![CDATA[解決]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2009/10/windows-7%e3%81%a7synergy%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86/</guid>
		<description><![CDATA[ライセンス版で数週間早く入手したものの、結局パッケージ版が発売されてからインストールしました。Windows 7。
XPの入っていたノートPC（Panasonic Let&#8217;snote R5）にWindows 7 Professionalをインストールしたので、とりあえずメインPCから操作できるようにしようと、Synergyをインストールするも…手動で起動すれば動作するものの、自動起動すると動作せず。管理権限で実行してサービスに登録しても動作せず。というか、繋がってはいるみたいなんですけどね。サーバ側のマウスがどこかに行ってしまうので。
で、synergyは2006年に更新が止まって、Vistaも対応していないし、何か後継があるハズ…と思って英語のWikipediaを見たら、synergy-plusというフォークプロジェクトがあったんですね。
Google先生も、「synergy」で検索したら、「もしかして synergy-plus」くらい出してほしいところですが…
32bit版、64bit版もあるので、7から64bitに乗り換えた人も安心ですね。
plusを入れる前に、一度synergyを入れていたので、設定情報を引き継いでくれているようです。といっても必要な設定項目はHost Nameの設定だけですけど。
とりあえずsynergy-plus-1.3.4-Windows-x86-r1.exeをダウンロードしてインストール。今回はクライアント側（操作される側）として使います。
やっぱり色々問題ありました…

ログイン画面では入力ができない
UACになると操作はできない

あぁ、微妙…というか、大して改善されてないですね…
自動ログインにしてWindows7のUACも無効にしてしまえばいいのかなぁ…複数ユーザ使いたい場合はどうしようもないしなぁ…
Vistaでの対策は以下のページ参照。
Fixing Problems with Synergy on Windows Vista :: the How-To Geek
Windows 7でUACを無効にするには以下のサイト参考。
Disable User Account Control(UAC) For Administrators Only :: the How-To Geek
ざっくり日本語版での対応を説明すると、
スタートメニューの検索からsecpol.mscと入力して実行。ローカルポリシーのセキュリティオプションから、「ユーザー アカウント制御: 管理者承認モードでの管理者に対する昇格時のプロンプトの動作」をダブルクリックして、「確認を要求しないで昇格する」を選択。
らしいですよ？試してないですが。
結論としては、今後に期待…
]]></description>
			<content:encoded><![CDATA[<p>ライセンス版で数週間早く入手したものの、結局パッケージ版が発売されてからインストールしました。Windows 7。</p>
<p>XPの入っていたノートPC（Panasonic Let&#8217;snote R5）にWindows 7 Professionalをインストールしたので、とりあえずメインPCから操作できるようにしようと、Synergyをインストールするも…手動で起動すれば動作するものの、自動起動すると動作せず。管理権限で実行してサービスに登録しても動作せず。というか、繋がってはいるみたいなんですけどね。サーバ側のマウスがどこかに行ってしまうので。</p>
<p>で、synergyは2006年に更新が止まって、Vistaも対応していないし、何か後継があるハズ…と思って<a href="http://en.wikipedia.org/wiki/Synergy_(software)" target="_blank">英語のWikipedia</a>を見たら、<a href="http://code.google.com/p/synergy-plus/" target="_blank">synergy-plus</a>というフォークプロジェクトがあったんですね。</p>
<p>Google先生も、「synergy」で検索したら、「もしかして <a href="http://code.google.com/p/synergy-plus/" target="_blank">synergy-plus</a>」くらい出してほしいところですが…</p>
<p>32bit版、64bit版もあるので、7から64bitに乗り換えた人も安心ですね。</p>
<p>plusを入れる前に、一度synergyを入れていたので、設定情報を引き継いでくれているようです。といっても必要な設定項目はHost Nameの設定だけですけど。</p>
<p>とりあえずsynergy-plus-1.3.4-Windows-x86-r1.exeをダウンロードしてインストール。今回はクライアント側（操作される側）として使います。</p>
<p>やっぱり色々問題ありました…</p>
<ul>
<li>ログイン画面では入力ができない</li>
<li>UACになると操作はできない</li>
</ul>
<p>あぁ、微妙…というか、大して改善されてないですね…</p>
<p>自動ログインにしてWindows7のUACも無効にしてしまえばいいのかなぁ…複数ユーザ使いたい場合はどうしようもないしなぁ…</p>
<p>Vistaでの対策は以下のページ参照。</p>
<p><a href="http://www.howtogeek.com/howto/windows-vista/fixing-problems-with-synergy-on-windows-vista/" target="_blank">Fixing Problems with Synergy on Windows Vista :: the How-To Geek</a></p>
<p>Windows 7でUACを無効にするには以下のサイト参考。</p>
<p><a href="http://www.howtogeek.com/howto/windows-vista/disable-user-account-controluac-for-administrators-only/" target="_blank">Disable User Account Control(UAC) For Administrators Only :: the How-To Geek</a></p>
<p>ざっくり日本語版での対応を説明すると、</p>
<p>スタートメニューの検索からsecpol.mscと入力して実行。ローカルポリシーのセキュリティオプションから、「ユーザー アカウント制御: 管理者承認モードでの管理者に対する昇格時のプロンプトの動作」をダブルクリックして、「確認を要求しないで昇格する」を選択。</p>
<p>らしいですよ？試してないですが。</p>
<p>結論としては、今後に期待…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2009/10/windows-7%e3%81%a7synergy%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pythonのwin32comからSilverlightを使おうと試みる</title>
		<link>http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 06:56:25 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[疑問]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/</guid>
		<description><![CDATA[最終的にはPythonで書かれたWindowsアプリケーションで、Silverlightのコンテンツをロードしたいという目的なのですが、とりあえずSilverlightのActiveXコントロールを読み込んで動作を確認してみたいので色々実験。
まず、インストールされているSilverlightのバージョンを調べてみる。
Javascriptで書かれたコードがいくつか見つかったのでそれを書き直す。
以下はJS版。


var control = new ActiveXObject('AgControl.AgControl');
alert(control.IsVersionSupported('3.0'));


これをPythonで書いてみる。

import win32com.client
control = win32com.client.Dispatch("AgControl.AgControl")
print control.IsVersionSupported('3.0')

Silverlight 3がインストールされていればTrueが表示されます。
他にどんなメソッドが定義されているのかを調べるために、Visual StudioからAgControlを参照して、オブジェクトブラウザで調査。
というか、Silverlightのプラグインのリファレンスがあった。
Silverlight プラグインのオブジェクト リファレンス
が…Sourceを指定してもIsLoadedプロパティがTrueにならない…うーん…もう少し調べてみる。
]]></description>
			<content:encoded><![CDATA[<p>最終的にはPythonで書かれたWindowsアプリケーションで、Silverlightのコンテンツをロードしたいという目的なのですが、とりあえずSilverlightのActiveXコントロールを読み込んで動作を確認してみたいので色々実験。</p>
<p>まず、インストールされているSilverlightのバージョンを調べてみる。</p>
<p>Javascriptで書かれたコードがいくつか見つかったのでそれを書き直す。</p>
<p>以下はJS版。</p>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1fad3344-c133-4716-b122-991f00b3f96e" class="wlWriterEditableSmartContent">
<pre name="code" class="js">var control = new ActiveXObject('AgControl.AgControl');
alert(control.IsVersionSupported('3.0'));
</pre>
</div>
<p>これをPythonで書いてみる。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2ef33f5a-557a-48de-85a2-d2d00e450645" class="wlWriterEditableSmartContent">
<pre name="code" class="py">import win32com.client
control = win32com.client.Dispatch("AgControl.AgControl")
print control.IsVersionSupported('3.0')</pre>
</div>
<p>Silverlight 3がインストールされていればTrueが表示されます。</p>
<p>他にどんなメソッドが定義されているのかを調べるために、Visual StudioからAgControlを参照して、オブジェクトブラウザで調査。</p>
<p>というか、Silverlightのプラグインのリファレンスがあった。</p>
<p><a href="http://msdn.microsoft.com/ja-jp/library/cc838259(VS.95).aspx" target="_blank">Silverlight プラグインのオブジェクト リファレンス</a></p>
<p>が…Sourceを指定してもIsLoadedプロパティがTrueにならない…うーん…もう少し調べてみる。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FON2202のファームウェアのビルド</title>
		<link>http://blog.loadlimits.info/2009/08/fon2202%e3%81%ae%e3%83%95%e3%82%a1%e3%83%bc%e3%83%a0%e3%82%a6%e3%82%a7%e3%82%a2%e3%81%ae%e3%83%93%e3%83%ab%e3%83%89/</link>
		<comments>http://blog.loadlimits.info/2009/08/fon2202%e3%81%ae%e3%83%95%e3%82%a1%e3%83%bc%e3%83%a0%e3%82%a6%e3%82%a7%e3%82%a2%e3%81%ae%e3%83%93%e3%83%ab%e3%83%89/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 11:29:48 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[疑問]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[FON]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2009/08/fon2202%e3%81%ae%e3%83%95%e3%82%a1%e3%83%bc%e3%83%a0%e3%82%a6%e3%82%a7%e3%82%a2%e3%81%ae%e3%83%93%e3%83%ab%e3%83%89/</guid>
		<description><![CDATA[La Fonera2.0ことFON2202のファームウェアのビルドに成功したのでメモ。 
環境はDebian lenny。主な手順はここ。
build fon-ng 
でもこのままやってもビルドできませんでした。 
まずは手順にある通り、必要なパッケージをインストール。
$ sudo aptitude install subversion g++ libdigest-crc-perl ncurses-dev zlib1g-dev gawk bison flex autoconf intltool-debian intltool
他のサイトで、以下も必要みたいな記事を読んだのでインストール。
$ sudo aptitude install gettext pkg-config libz-dev ccache libncurses-dev unzip
libdigest-crc-perlがaptだと古いという話なので、CPANから最新をインストール。
$ cpan    CPAN&#62; install Digest     CPAN&#62; install Digest::CRC     CPAN&#62; install YAML 
で、手順通りレポジトリからtrunkを落とすとビルドできないので、tags/Flipper-2.2.5.0をダウンロードします。
$ svn co http://svn.fonosfera.org/fon-ng/tags/Flipper-2.2.5.0 [...]]]></description>
			<content:encoded><![CDATA[<p>La Fonera2.0ことFON2202のファームウェアのビルドに成功したのでメモ。 </p>
<p>環境はDebian lenny。主な手順はここ。</p>
<p><a href="http://trac.fonosfera.org/fon-ng/wiki/build" target="_blank">build fon-ng</a> </p>
<p>でもこのままやってもビルドできませんでした。 </p>
<p>まずは手順にある通り、必要なパッケージをインストール。</p>
<p>$ sudo aptitude install subversion g++ libdigest-crc-perl ncurses-dev zlib1g-dev gawk bison flex autoconf intltool-debian intltool</p>
<p>他のサイトで、以下も必要みたいな記事を読んだのでインストール。</p>
<p>$ sudo aptitude install gettext pkg-config libz-dev ccache libncurses-dev unzip</p>
<p>libdigest-crc-perlがaptだと古いという話なので、CPANから最新をインストール。</p>
<p>$ cpan    <br />CPAN&gt; install Digest     <br />CPAN&gt; install Digest::CRC     <br />CPAN&gt; install YAML </p>
<p>で、手順通りレポジトリからtrunkを落とすとビルドできないので、tags/Flipper-2.2.5.0をダウンロードします。</p>
<p>$ svn co <a href="http://svn.fonosfera.org/fon-ng/tags/Flipper-2.2.5.0">http://svn.fonosfera.org/fon-ng/tags/Flipper-2.2.5.0</a>     <br />$ cd Flipper-2.2.5.0/     <br />$ ./install.sh     <br />$ cd openwrt/     <br />$ make menuconfig</p>
<p>メニュー画面ではとりあえず何もせずにそのままExitで設定を保存。 </p>
<p>いざmake。V=99は詳細表示オプション。なくてもいい。</p>
<p>$ make V=99</p>
<p>超時間かかる。Core2QudaのVista上のVirtualPCで２時間くらい。 </p>
<p>で、完了。</p>
<p>$ ll bin/    <br />合計 8388     <br />-rw-r&#8211;r&#8211; 1 dev dev&#160;&#160; 65536 2009-08-13 09:24 loader.bin     <br />-rwxr-xr-x 1 dev dev&#160;&#160; 11860 2009-08-13 09:24 meraki-loader.elf     <br />-rwxr-xr-x 1 dev dev 3039219 2009-08-13 09:24 openwrt-fonera2-vmlinux.elf     <br />-rw-r&#8211;r&#8211; 1 dev dev&#160; 786432 2009-08-13 09:24 openwrt-fonera2-vmlinux.image     <br />-rw-r&#8211;r&#8211; 1 dev dev 4653060 2009-08-13 09:24 openwrt-fonera2.image     <br />drwxr-xr-x 3 dev dev&#160;&#160;&#160; 4096 2009-08-13 08:32 packages </p>
<p>packagesディレクトリにはipk形式のパッケージファイル一式ができてます。    <br />これが     <br /><a href="http://www.fonera.be/rep/FON2202/index.php">http://www.fonera.be/rep/FON2202/index.php</a>     <br />これってことか。サイトにはpackagesディレクトリに含まれていないものもたくさんあるけど。     <br />逆に言うと、ipkファイルを作る必要性はなさそう。 </p>
<p>このままでは正しくファームウェアを書き換えられたかわからないので、ちょっと軽くいじっておきます。    <br />Fonera-&gt;facebookをスペースでチェックを外す </p>
<p>ちょっとここで通常のファームウェアの構成を調べる。 </p>
<p>$ wget <a href="http://download.fonosfera.org/LATEST/20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.tar.gz">http://download.fonosfera.org/LATEST/20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.tar.gz</a>     <br />$ tar xvzf ./20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.tar.gz     <br />20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.image     <br />upgrade     <br />fonera20_fon.image</p>
<p>できたファイルはディレクトリを含まず上記３つ。</p>
<p>$ ll    <br />-rw-r&#8211;r&#8211; 1 dev dev 4653060 2009-04-22 01:05 20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.image     <br />-rw-r&#8211;r&#8211; 1 dev dev 4529210 2009-04-22 02:50 20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.tar.gz     <br />lrwxrwxrwx 1 dev dev&#160;&#160;&#160;&#160;&#160; 48 2009-08-13 19:25 fonera20_fon.image -&gt; 20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.image     <br />-rwxr-xr-x 1 dev dev&#160;&#160;&#160;&#160; 305 2009-04-01 00:57 upgrade </p>
<p>fonera20_fon.imageはシンボリックリンクでimageファイルの実体へ。で、upgradeがシェルスクリプトになってて、これが実行される、と。</p>
<p>$ cat upgrade    <br />#!/bin/ash     </p>
<p>VERSION=$(cat /etc/fon_version)     <br />FAILSAFE=$(cat /etc/failsafe)     </p>
<p>if [ &quot;$VERSION&quot; = &quot;2.2.1&quot; -o &quot;$VERSION&quot; = &quot;2.2.2&quot; -o &quot;$VERSION&quot; = &quot;2.2.3&quot; -o &quot;$VERSION&quot; = &quot;2.2.4&quot; -o &quot;$FAILSAFE&quot; = 1 ]     <br />then     <br />mtd -r write fonera20_fon.image image &gt; /dev/null 2&gt;&amp;1     <br />#(sleep 4; reboot) &amp;     <br />return 0     </p>
<p>else return 1; fi</p>
<p>なるほど、バージョンチェックして必要ならmtdコマンドで書き換え実行ということね。ということは、すでに2.2.5になってるこのFONでは上書きできないということか。 </p>
<p>というわけで書き換える。 </p>
<p>$ vi ./upgrade </p>
<p>シンプルに以下の感じに。</p>
<p>#!/bin/ash    </p>
<p>mtd -r write fonera20_fon.image image &gt; /dev/null 2&gt;&amp;1     <br />return 0</p>
<p>で、リンク先を書き直し。tar.gz作成。 </p>
<p>$ rm fonera20_fon.image    <br />$ ln -s openwrt-fonera2.image fonera20_fon.image     <br />$ tar zcvf openwrt-fonera2.tar.gz openwrt-fonera2.image fonera20_fon.image upgrade </p>
<p>で、できあがったopenwrt-fonera2.tar.gzを管理画面経由でFONにアップロード。 </p>
<p>Firmware Update    <br />Failed to identify upload. </p>
<p>Σ(ﾟДﾟ)ｶﾞｰﾝ </p>
<p>なんだろ。ちなみに公開されているtar.gzを展開→再圧縮しただけでも反映に失敗したので、何かtarの作り方に秘密があるっぽい。    <br />仕方ないのでimageファイルを転送して、FON上のSSHで反映することに。     <br />以下、FONのSSH。 </p>
<p># cd /tmp/    <br /># mtd -r write fonera20_fon.image image     <br />Unlocking image &#8230;     <br />Writing from fonera20_fon.image to image &#8230;&#160; [w]     <br />Rebooting &#8230; </p>
<p>で、どうやら書き込み完了。ｗｋｔｋしながらブラウザで確認…</p>
<p>緑の画面から書き変わってオレンジの画面に…あれ？SSHが効かない…？ん？Facebookのアイコンは残ったまま…？</p>
<p>Facebookは画面から消すのに何か別の作業がいるのかもしれないと思うことにして、SSHは…？プラグインのところにも出てこないし…</p>
<p>しかもブラウザからファーム書き戻そうとしてもバージョンが同じだから上書きできないし！！</p>
<p>＼(^o^)／オワタ</p>
<p>シリアルケーブル手に入れるまで放置で…</p>
<p>もしくは管理画面からアップできるtar.gzの作り方、か。</p>
<p>※追記(2009/10/12)</p>
<p>lostmanさんに教えていただいた方法で復旧できました。   <br /><a title="http://blog.loadlimits.info/2009/10/fon2202%e3%82%92failsafe%e3%83%a2%e3%83%bc%e3%83%89%e3%81%a7%e5%be%a9%e6%97%a7%e3%81%95%e3%81%9b%e3%82%8b/" href="http://blog.loadlimits.info/2009/10/fon2202%e3%82%92failsafe%e3%83%a2%e3%83%bc%e3%83%89%e3%81%a7%e5%be%a9%e6%97%a7%e3%81%95%e3%81%9b%e3%82%8b/">FON2202をFailSafeモードで復旧させる : blog.loadlimit &#8211; digital matter -</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2009/08/fon2202%e3%81%ae%e3%83%95%e3%82%a1%e3%83%bc%e3%83%a0%e3%82%a6%e3%82%a7%e3%82%a2%e3%81%ae%e3%83%93%e3%83%ab%e3%83%89/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adobe AIR.dll</title>
		<link>http://blog.loadlimits.info/2008/11/adobe-airdll/</link>
		<comments>http://blog.loadlimits.info/2008/11/adobe-airdll/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 13:55:00 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[疑問]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/?p=101</guid>
		<description><![CDATA[HKEY_LOCAL_MACHINESOFTWAREClassesAIR.InstallerPackageshellopencommand
c:PROGRA~1COMMON~1ADOBEA~1Versions1.0ADOBEA~1.EXE &#34;%1&#34;
と、謎のリスト。
LAUNCH   -launch    IS_INSTALLED    -isinstalled    WITH_RUNTIME    -withRuntime    URL    -url    RUNTIME    PLAYER_VERSION    -playerVersion    SANDBOX_TYPE    -sandboxType    SECURITY_DOMAIN   [...]]]></description>
			<content:encoded><![CDATA[<p>HKEY_LOCAL_MACHINESOFTWAREClassesAIR.InstallerPackageshellopencommand</p>
<p>c:PROGRA~1COMMON~1ADOBEA~1Versions1.0ADOBEA~1.EXE &quot;%1&quot;</p>
<p>と、謎のリスト。</p>
<p>LAUNCH   <br />-launch    <br />IS_INSTALLED    <br />-isinstalled    <br />WITH_RUNTIME    <br />-withRuntime    <br />URL    <br />-url    <br />RUNTIME    <br />PLAYER_VERSION    <br />-playerVersion    <br />SANDBOX_TYPE    <br />-sandboxType    <br />SECURITY_DOMAIN    <br />-securityDomain    <br />HTTPS-https    <br />USER_EVENT    <br />-fromUserEvent    <br />SEPARATOR    <br />PSN_PREFIX    <br />-psn_    <br />SILENT    <br />-silent    <br />LOG_TO_STDOUT    <br />-logToStdout    <br />LOCATION    <br />-location    <br />DESKTOP_SHORTCUT    <br />-desktopShortcut    <br />PROGRAM_MENU    <br />-programMenu    <br />X1    <br />-x1    <br />UPDATE    <br />-update    <br />WITH_APP    <br />-withApp    <br />UPDATE_X1    <br />-update:x1    <br />INSTALL    <br />-install    <br />STDIO    <br />-stdio    <br />ARP_UNINSTALL    <br />-arp:uninstall    <br />UNINSTALL    <br />-uninstall    <br />INFO    <br />-info    <br />UPDATE_CHECK    <br />-updatecheck    <br />INSTALL_UPDATE_CHECK    <br />-installupdatecheck    <br />APPLY_UPDATES    <br />-applyupdates    <br />UPDATE_INSTALL    <br />-updateinstall    <br />EULA    <br />-eula    <br />EULA_ACCEPTED    <br />-eulaAccepted    <br />ELEVATED_INSTALL    <br />-ei    <br />ELEVATED_UNINSTALL    <br />-eu</p>
<p>詳細不明。</p>
<p><a href="http://d.hatena.ne.jp/arkw/20080913/1221293935" target="_blank">Adobe AIR Application Installer.exe &#8211; AKABANA</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2008/11/adobe-airdll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GmailとWindows Live メールの相性がひどい件</title>
		<link>http://blog.loadlimits.info/2008/10/gmail%e3%81%a8windows-live-%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%ae%e7%9b%b8%e6%80%a7%e3%81%8c%e3%81%b2%e3%81%a9%e3%81%84%e4%bb%b6/</link>
		<comments>http://blog.loadlimits.info/2008/10/gmail%e3%81%a8windows-live-%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%ae%e7%9b%b8%e6%80%a7%e3%81%8c%e3%81%b2%e3%81%a9%e3%81%84%e4%bb%b6/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 09:19:00 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[疑問]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/?p=97</guid>
		<description><![CDATA[いつもGmailでたくさんのメールに「Junk E-mail」というラベルが勝手につく。時々必要なメールにもつくので困っていた。
何が原因なんだろうと思っていたら、Windows Live メールのせいだった。
Gmailで受信したメールに対して、IMAPでアクセスしているWindows Live メールが勝手に迷惑メールを分類してしまうのが原因で、GmailのWeb側でいくら迷惑メールを処理しても、Windows Live メールが再読み込みするたびに元に戻される。
しかも何が困るってIMAPにはメールフィルタをかけられないこと。フィルタをかけられるなら、受信段階で処理を止めさせるとかできたと思うのだけど&#8230;
 
そのくせ、迷惑メールの処理だけはするのに、それを特定のアカウントに対してやめることもできない。
一応、Gmail側のフィルタ処理を諦めれば、Windows Live メールのアカウント設定でIMAPのフォルダを設定してやることで、Gmail側の迷惑メールフォルダは使える。
 
と思ったら使えなかった。
 
あぁ&#8230;なんて微妙な&#8230;
ちなみにルートフォルダのパスを指定すれば迷惑メールフォルダにつっこめるようになるのだけど、ラベルが使えなくなるそうな。
Windows Live メールでGmail見るなってことですか、Hotmail使えってことですか、そうですか。
]]></description>
			<content:encoded><![CDATA[<p>いつもGmailでたくさんのメールに「Junk E-mail」というラベルが勝手につく。時々必要なメールにもつくので困っていた。</p>
<p>何が原因なんだろうと思っていたら、Windows Live メールのせいだった。</p>
<p>Gmailで受信したメールに対して、IMAPでアクセスしているWindows Live メールが勝手に迷惑メールを分類してしまうのが原因で、GmailのWeb側でいくら迷惑メールを処理しても、Windows Live メールが再読み込みするたびに元に戻される。</p>
<p>しかも何が困るってIMAPにはメールフィルタをかけられないこと。フィルタをかけられるなら、受信段階で処理を止めさせるとかできたと思うのだけど&#8230;</p>
<p><a href="http://blog.loadlimits.info/images/IMAP_2.png" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="211" alt="IMAP" src="http://blog.loadlimits.info/images/IMAP_thumb.png" width="324" border="0" /></a> </p>
<p>そのくせ、迷惑メールの処理だけはするのに、それを特定のアカウントに対してやめることもできない。</p>
<p>一応、Gmail側のフィルタ処理を諦めれば、Windows Live メールのアカウント設定でIMAPのフォルダを設定してやることで、Gmail側の迷惑メールフォルダは使える。</p>
<p><a href="http://blog.loadlimits.info/images/IMAP2_2.png" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="IMAP2" src="http://blog.loadlimits.info/images/IMAP2_thumb.png" width="250" border="0" /></a> </p>
<p>と思ったら使えなかった。</p>
<p><a href="http://blog.loadlimits.info/images/IMAP3_2.png" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="132" alt="IMAP3" src="http://blog.loadlimits.info/images/IMAP3_thumb.png" width="324" border="0" /></a> </p>
<p>あぁ&#8230;なんて微妙な&#8230;</p>
<p>ちなみにルートフォルダのパスを指定すれば迷惑メールフォルダにつっこめるようになるのだけど、ラベルが使えなくなるそうな。</p>
<p>Windows Live メールでGmail見るなってことですか、Hotmail使えってことですか、そうですか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2008/10/gmail%e3%81%a8windows-live-%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%ae%e7%9b%b8%e6%80%a7%e3%81%8c%e3%81%b2%e3%81%a9%e3%81%84%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
