<?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>Olen Onnellinen 2 &#187; モバイル</title>
	<atom:link href="http://blog.magellanic.net/archives/category/%e3%83%a2%e3%83%90%e3%82%a4%e3%83%ab/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.magellanic.net</link>
	<description>さまようITエンジニアの日記です。システム開発から資格試験、ゲーム、ライトノベルまで何でもありの雑記。</description>
	<lastBuildDate>Thu, 05 Jan 2012 04:29:22 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>携帯電話のバックアップをとってる？</title>
		<link>http://blog.magellanic.net/archives/550</link>
		<comments>http://blog.magellanic.net/archives/550#comments</comments>
		<pubDate>Sun, 05 Jul 2009 14:58:48 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[モバイル]]></category>
		<category><![CDATA[情報]]></category>
		<category><![CDATA[SH-04A]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=550</guid>
		<description><![CDATA[携快電話ZEROが SH-04A に対応してた。 なんか SH-04A のメッキ？が剥がれてきてるんですけどー。 物理的な意味でね。]]></description>
			<content:encoded><![CDATA[				<p>携快電話ZEROが SH-04A に対応してた。</p>
				<p>なんか SH-04A のメッキ？が剥がれてきてるんですけどー。<br />
				物理的な意味でね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/550/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iコンシェルに絶望した</title>
		<link>http://blog.magellanic.net/archives/329</link>
		<comments>http://blog.magellanic.net/archives/329#comments</comments>
		<pubDate>Tue, 03 Mar 2009 13:54:41 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[モバイル]]></category>
		<category><![CDATA[iコンシェル]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=329</guid>
		<description><![CDATA[都心にも雪がチラつく雛祭り。 気象情報や運行情報を期待する私に、 執事が持ってきた情報。 「外さない初デートの誘い方教えて！」 おまえクビ。 待ちうけ画面にポップアップするあたり、DMにしても悪質すぎる。 コレでお金とろ [...]]]></description>
			<content:encoded><![CDATA[				<p>都心にも雪がチラつく雛祭り。</p>
				<p>気象情報や運行情報を期待する私に、<br />
				執事が持ってきた情報。</p>
				<p>「外さない初デートの誘い方教えて！」</p>
				<p>おまえクビ。</p>
				<p>待ちうけ画面にポップアップするあたり、DMにしても悪質すぎる。<br />
				コレでお金とろうってんだからすごい。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/329/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Calendar と iスケジュールをほげってみた（続き）</title>
		<link>http://blog.magellanic.net/archives/321</link>
		<comments>http://blog.magellanic.net/archives/321#comments</comments>
		<pubDate>Sun, 01 Mar 2009 05:08:00 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[モバイル]]></category>
		<category><![CDATA[iスケジュール]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=321</guid>
		<description><![CDATA[えっと、このサイトは技術系サイトなので、ちょっと技術的なフォローしておきます。 今回 Google Calendar に接続するにあたり、使うことにしたのが Zend_Gdata というライブラリです。 この API は [...]]]></description>
			<content:encoded><![CDATA[				<p>えっと、このサイトは技術系サイトなので、ちょっと技術的なフォローしておきます。</p>
				<p>今回 Google Calendar に接続するにあたり、使うことにしたのが Zend_Gdata というライブラリです。</p>
				<p>この API は phpdoc で公開されているのですが、これがどうにもがっかりな使えなさっぷりなので、マニュアルを読んでもよくわからなかった点をまとめときます。</p>
				<p>■ Google Calendar から取得できるデータ<br />
				Google Calendar から取得した1件のスケジュールデータはZend_Gdata_Calendar_EventEntry です。<br />
				このクラスから主要な情報を取得する方法は以下のようになります。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-inlinetags">&lt;?php</span></li>
				<li>&nbsp;<span class="hl-var">$eventFeed</span><span class="hl-code"> = </span><span class="hl-var">$service</span><span class="hl-code">-&gt;</span><span class="hl-identifier">getCalendarEventFeed</span><span class="hl-brackets">(</span><span class="hl-var">$query</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li>&nbsp;<span class="hl-reserved">foreach</span> <span class="hl-brackets">(</span><span class="hl-var">$eventFeed</span> <span class="hl-reserved">as</span> <span class="hl-var">$event</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> タイトル</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-var">$summary</span><span class="hl-code">  = </span><span class="hl-identifier">mb_convert_encoding</span><span class="hl-brackets">(</span><span class="hl-var">$event</span><span class="hl-code">-&gt;</span><span class="hl-identifier">title</span><span class="hl-code">-&gt;</span><span class="hl-identifier">text</span><span class="hl-code">, </span><span class="hl-quotes">&#8216;</span><span class="hl-string">SJIS</span><span class="hl-quotes">&#8216;</span><span class="hl-code">, </span><span class="hl-quotes">&#8216;</span><span class="hl-string">UTF-8</span><span class="hl-quotes">&#8216;</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 更新日時(&quot;2009-02-27T16:53:43.000Z&quot;)</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-var">$upd</span><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;  = </span><span class="hl-var">$event</span><span class="hl-code">-&gt;</span><span class="hl-identifier">updated</span><span class="hl-code">-&gt;</span><span class="hl-identifier">text</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 開始日時(2009-03-27T10:00:00.000+09:00)</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-var">$start</span><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;= </span><span class="hl-var">$event</span><span class="hl-code">-&gt;</span><span class="hl-identifier">when</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">getStartTime</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 終了日時(2009-03-27T11:00:00.000+09:00)</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-var">$end</span><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;  = </span><span class="hl-var">$event</span><span class="hl-code">-&gt;</span><span class="hl-identifier">when</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">getEndTime</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 場所</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-var">$location</span><span class="hl-code"> = </span><span class="hl-identifier">mb_convert_encoding</span><span class="hl-brackets">(</span><span class="hl-var">$event</span><span class="hl-code">-&gt;</span><span class="hl-identifier">where</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">getValueString</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-quotes">&#8216;</span><span class="hl-string">SJIS</span><span class="hl-quotes">&#8216;</span><span class="hl-code">, </span><span class="hl-quotes">&#8216;</span><span class="hl-string">UTF-8</span><span class="hl-quotes">&#8216;</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 説明</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-var">$detail</span><span class="hl-code">   = </span><span class="hl-identifier">mb_convert_encoding</span><span class="hl-brackets">(</span><span class="hl-var">$event</span><span class="hl-code">-&gt;</span><span class="hl-identifier">content</span><span class="hl-code">-&gt;</span><span class="hl-identifier">text</span><span class="hl-code">, </span><span class="hl-quotes">&#8216;</span><span class="hl-string">SJIS</span><span class="hl-quotes">&#8216;</span><span class="hl-code">, </span><span class="hl-quotes">&#8216;</span><span class="hl-string">UTF-8</span><span class="hl-quotes">&#8216;</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span></li>
				</ol>
				</div>
				<p>取得できる情報は UTF-8 なので必要に応じて変換する必要があります。(iスケジュールは Shift-JIS)<br />
				日時情報はタイムゾーンなど統一されていませんが、基本的に strtotime 関数の引数に直接指定できます。<br />
				ただし、Google Calendar 上で終日の指定をしたときは&#8221;Y-m-d&#8221;形式となり、時間が含まれないフォーマットで返却されてきます。</p>
				<p>■ quoted-printable<br />
				Zend_Gdata とは関係ありませんが、iスケジュールでは日本語を quoted-printable に変換しなければなりません。<br />
				PHP には quoted_printable_encode という関数がありますが、これは PHP5.3 以降でしか使えません。<br />
				現時点では PHP5.3 以上を使えないことも多いと思います。そのときはマニュアルを参考に自分で関数を用意します。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-inlinetags">&lt;?php</span></li>
				<li>&nbsp;<span class="hl-reserved">if</span> <span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">function_exists</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">quoted_printable_encode</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;  </span><span class="hl-reserved">function</span> <span class="hl-identifier">quoted_printable_encode</span><span class="hl-brackets">(</span><span class="hl-var">$string</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-reserved">return</span> <span class="hl-identifier">preg_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">&#8216;</span><span class="hl-string">/[^\r\n]{73}[^=\r\n]{2}/</span><span class="hl-quotes">&#8216;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">$0=</span><span class="hl-special">\r</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">%</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">=</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">%0D%0A</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-special">\r</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">%20</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span><span class="hl-quotes">&quot;</span> <span class="hl-quotes">&quot;</span><span class="hl-code">,</span><span class="hl-identifier">rawurlencode</span><span class="hl-brackets">(</span><span class="hl-var">$string</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;  </span><span class="hl-brackets">}</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span></li>
				</ol>
				</div>
				<p>今後 PHP5.3 以降にバージョンアップする可能性を考えて function_exists で判定しておけば万全です。</p>
				<p>■ 参考<br />
				<a href='http://www.nttdocomo.co.jp/service/imode/make/content/iconcier/scheduler/format/index.html'>作ろうiモードコンテンツ：スケジューラデータフォーマット | サービス・機能 | NTTドコモ</a></p>
				<p><a href='http://www.flatz.jp/archives/199'>[PHP]Zend Google Data Client Libraryで gCal APIs を使う[その3]｜株式会社 フラッツ</a></p>
				<p><a href='http://framework.zend.com/manual/ja/zend.gdata.calendar.html'>Zend Framework: Documentation</a></p>
				<p><a href="http://amazon.co.jp/o/ASIN/4844326368/koshian404-22/ref=nosim" ><img src="http://ecx.images-amazon.com/images/I/51AFMyAmdQL._SL160_.jpg" width="114" height="160" alt="まるごとPHP! Vol.2" /></a><br /><a href="http://amazon.co.jp/o/ASIN/4844326368/koshian404-22/ref=nosim" >まるごとPHP! Vol.2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/321/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Calendar と iスケジュールをほげってみた＠SH-04A</title>
		<link>http://blog.magellanic.net/archives/315</link>
		<comments>http://blog.magellanic.net/archives/315#comments</comments>
		<pubDate>Sat, 28 Feb 2009 05:59:18 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[モバイル]]></category>
		<category><![CDATA[iスケジュール]]></category>
		<category><![CDATA[SH-04A]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=315</guid>
		<description><![CDATA[先日こんなことを言いました。 少なくともどこかのカレンダーサービスとiスケジュールの自動同期ができないようじゃダメだ。 口ばっかりっていうのもアレですし、制限があるならその中でできる限りのことをするべきだろうってことで夜 [...]]]></description>
			<content:encoded><![CDATA[				<p>先日こんなことを言いました。</p>
				<blockquote><p>少なくともどこかのカレンダーサービスとiスケジュールの自動同期ができないようじゃダメだ。</p></blockquote>
				<p>口ばっかりっていうのもアレですし、制限があるならその中でできる限りのことをするべきだろうってことで夜なべして作ってみました。</p>
				<p>実機で動くようになったものの、使い勝手がいまいちだったので、公開はしてませんけど。</p>
				<p>仕組みは簡単です。<br />
				ユーザがこのサイトにアクセスしたとき、Googleの認証セッションを持っていないときは Google のページへ飛ばします。認証されたユーザがこのサイトにアクセスすると、Google Calendar からデータを取得して iスケジュールのデータを作成します。さらに指定のメールアドレスにメールを送信し、ユーザはそのメールのリンクを踏むとスケジュールデータがダウンロードされます。</p>
				<p>問題は以下の2点。</p>
				<ul>
				<li>モバイルから Google アカウントにログインできない。<br />これができればわざわざメールを送らなくてもその場でダウンロードできると思ったのですが、ログインできず。</li>
				<li>iスケジュールをダウンロードしたとき、古いデータを更新できない。<br />つまり、ダウンロードするたびに重複されたスケジュールが登録されてしまう。データフォーマットに iスケジュールそのものの ID みたいなものを持っていないよう（公開されていない）なので難しいかな。</li>
				</ul>
				<p>これなら、最初からモバイル向けのスケジュールサービスを使ったほうが良いよね。iスケジュールの利点全否定ですもん。なにか方法ないかな。</p>
				<p>まあ Google Calendar API とか Zend Framework とか quoted-printable の勉強になったってことで。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/315/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

