<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>ブログ | Weboo! Returns.</title><link>http://yamashita.dyndns.org/blog</link><description>とあるPerl系ネット企業で働いているエンジニア 山下英孝の個人的なブログです</description><language>ja</language><lastBuildDate>Fri, 26 Jun 2009 21:43:36 PDT</lastBuildDate><image><link>http://yamashita.dyndns.org</link><url>http://s3.amazonaws.com/twitter_production/profile_images/52912636/real_mario2_bigger.jpg</url><title>Weboo! Returns.</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/WebooReturns-Blog" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>sea fish [Flickr]</title><link>http://www.flickr.com/photos/weboo/3663818267/</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">weboo</dc:creator><pubDate>Fri, 26 Jun 2009 21:43:36 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3663818267</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by-nd/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/weboo/"&gt;weboo&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/weboo/3663818267/" title="sea fish"&gt;&lt;img src="http://farm4.static.flickr.com/3236/3663818267_5f486c02fa_m.jpg" width="240" height="159" alt="sea fish" /&gt;&lt;/a&gt;&lt;/p&gt;</description><enclosure url="http://farm4.static.flickr.com/3236/3663818267_17430d776a_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken xmlns:dc="http://purl.org/dc/elements/1.1/">2009-06-21T12:36:16-08:00</dc:date.Taken></item><item><title>Kasai Rinkai Aquarium [Flickr]</title><link>http://www.flickr.com/photos/weboo/3663817909/</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">weboo</dc:creator><pubDate>Fri, 26 Jun 2009 21:43:24 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3663817909</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by-nd/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/weboo/"&gt;weboo&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/weboo/3663817909/" title="Kasai Rinkai Aquarium"&gt;&lt;img src="http://farm4.static.flickr.com/3171/3663817909_fd4bed235c_m.jpg" width="240" height="159" alt="Kasai Rinkai Aquarium" /&gt;&lt;/a&gt;&lt;/p&gt;</description><enclosure url="http://farm4.static.flickr.com/3171/3663817909_42e4087607_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken xmlns:dc="http://purl.org/dc/elements/1.1/">2009-06-21T11:14:51-08:00</dc:date.Taken></item><item><title>face of tuna [Flickr]</title><link>http://www.flickr.com/photos/weboo/3663817589/</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">weboo</dc:creator><pubDate>Fri, 26 Jun 2009 21:43:14 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3663817589</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by-nd/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/weboo/"&gt;weboo&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/weboo/3663817589/" title="face of tuna"&gt;&lt;img src="http://farm4.static.flickr.com/3611/3663817589_08056ef935_m.jpg" width="240" height="159" alt="face of tuna" /&gt;&lt;/a&gt;&lt;/p&gt;</description><enclosure url="http://farm4.static.flickr.com/3611/3663817589_fc7003f647_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken xmlns:dc="http://purl.org/dc/elements/1.1/">2009-06-21T12:16:35-08:00</dc:date.Taken></item><item><title>Google Developer Day 2009 と Android G2
</title><link>http://yamashita.dyndns.org/blog/google-developer-day-2009-android-g2/</link><description>&lt;div class="flickr" align="center"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3629548910/" title="Google Developer Day 2009 by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3591/3629548910_9d77109d9a.jpg" width="500" height="332" alt="Google Developer Day 2009" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;先日、パシフィコ横浜で開催された Google Developer Day に参加してきました。仕事の関係で午前中の基調講演しか聞くことができなかったのですが、Chrome、Android、OpenSocial そして話題の Wave など Google が擁するプロダクトについての話を聞くことができました。&lt;/p&gt;

&lt;p&gt;しかし何と言っても今回一番の収穫はこれです。&lt;/p&gt;

&lt;div class="flickr" align="center"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3628660225/" title="Android G2 (HTC Magic) by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3598/3628660225_f99dc0ac2d.jpg" width="500" height="333" alt="Android G2 (HTC Magic)" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;近々ドコモから発売予定の Android 端末「HTC Magic」！！これをGDD参加者全員に配るというサプライズがありました。先だってサンフランシスコで開催された Google I/O でも配布されたのですが、あちらは参加費が $400 もします。無料のこのイベントで、ちゃんとTELECを通過した発売前の端末を専用カスタマイズして配るとは驚きました。&lt;br /&gt;
自分は今まで、エミュレータと &lt;a href="/blog/android-on-zaurus/"&gt;Zaurus にインストール&lt;/a&gt;した Android しか触ったことがなかったのですが、やっぱり実機があるとないとでは雲泥の差ですね。少し使ってみて、Android がかなり気に入ってしまいました。&lt;/p&gt;

&lt;p&gt;アプリを起動する度にいちいち待たされる iPhone と違って動作は軽快です。また、バックグラウンドでアプリケーションを動かせるので、例えば twitter アプリで自分宛ての tweet や direct message が届いた時だけブルブルと震えて通知することができます。ここ数日は、実際にそういう設定をして使っているわけですが、これはちょっとした革命ではないかと思います。&lt;/p&gt;

&lt;p&gt;不満点を挙げるとすると、マルチタッチ機能がないのでピンチ操作で拡大したりとかができないのと、現時点で日本からは有料アプリが買えないことでしょうか。なので無料アプリしか試していませんが、まだ個々のアプリケーションのクオリティが低いものが多いです。同じ目的のソフトウェアが3種類くらいは出てこないとなかなか切磋琢磨して機能向上とはいかないですね。&lt;/p&gt;

&lt;p&gt;しかしそこはオープンなプラットフォームなので、無いものは自分たちで作ればよいわけです。先週の金曜日には、さっそく社内の有志で会議室に集まって Android プチ開発合宿を行ってしまいました。&lt;a href="http://code.google.com/p/android-scripting/"&gt;Android Scripting Engine&lt;/a&gt; を使うと Python からハードウェア機能にアクセスできたりして、かなり楽しいです。このあたりは後ほど、別のエントリとしてまとめますが、位置情報の取得も数行書くだけでできちゃいます。&lt;/p&gt;

&lt;p&gt;今まで Eclipse をインストールするのをためらってたくらいなのに開発を始めちゃうなんて、僕らは Google の思惑通りですよ。＞ 及川さん&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=P6L1Gh44rbo:4oy1-F9AcLI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=P6L1Gh44rbo:4oy1-F9AcLI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=P6L1Gh44rbo:4oy1-F9AcLI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=P6L1Gh44rbo:4oy1-F9AcLI:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=P6L1Gh44rbo:4oy1-F9AcLI:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Tue, 16 Jun 2009 08:31:56 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/google-developer-day-2009-android-g2/</guid><category>Android</category></item><item><title>『10日でおぼえる Python 入門教室』
</title><link>http://yamashita.dyndns.org/blog/learning-python-in-10-days/</link><description>&lt;p&gt;最近は、Google App Engine や Django などが話題ですが、Python が分からないからと躊躇している人も多いのではないでしょうか？そんな人にお勧めなのが、この&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798118753/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;『10日でおぼえる Python 入門教室』&lt;/a&gt;です。&lt;/p&gt;

&lt;div style="margin-left:20px;float:right"&gt;&lt;div style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798118753/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51ER82iPixL._SL160_.jpg" alt="10日でおぼえる Python 入門教室" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div style="margin-bottom:10px;line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798118753/webooretur-22" name="amazletlink" target="_blank"&gt;10日でおぼえる Python 入門教室&lt;/a&gt;&lt;div style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%"&gt;posted with &lt;a href="http://www.amazlet.com/browse/ASIN/4798118753/webooretur-22/ref=nosim/" title="10日でおぼえる Python 入門教室" target="_blank"&gt;amazlet&lt;/a&gt; at 09.06.08&lt;/div&gt;&lt;/div&gt;&lt;div&gt;穂苅 実紀夫 寺田 学 中西 直樹&lt;br /&gt;堀田 直孝 永井 孝 &lt;br /&gt;翔泳社 &lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 5px"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798118753/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;Amazon.co.jp で詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;こういう本には、教科書的なものとハウツー的なものがありますが、この本は後者です。より実践的に Python を学んで行くことができます。内容も Amazon や Livedoor天気予報, Yahoo!翻訳などの API を使ってデータを取得したり、GUI の RSSリーダーを作ったりと、実際に動くものを作ることでプログラミングの楽しさを学べるようになっています。また、最後の10日目では流行の Google App Engine を使ってアプリケーションを作成することがテーマになっていて、この本を最後まで読み進めていけば、一気に最先端の領域まで駆け上がることができます。実際には、プロダクションレベルのアプリケーションを構築するには、データモデルの設計やセキュリティ対策、パフォーマンス改善などもっと体系的な知識が必要になってきますが、入門用としてはこれで充分です。Python で一通りのことが出来るようになることでしょう。&lt;/p&gt;

&lt;p style="margin-left:30px;font-weight:bold"&gt;目次&lt;br /&gt;
第0日 オリエンテーション&lt;br /&gt;
第1日 Pythonはじめの一歩&lt;br /&gt;
第2日 Pythonを本格的に使ってみよう&lt;br /&gt;
第3日 Web APIを使ってみよう&lt;br /&gt;
第4日 日本語とファイルの扱いを学ぼう&lt;br /&gt;
第5日 便利なツールを作ってみよう&lt;br /&gt;
第6日 デスクトップアプリを作ろう&lt;br /&gt;
第7日 エラーとテストを学ぼう&lt;br /&gt;
第8日 データベースを操作しよう&lt;br /&gt;
第9日 Webフレームワークを使ってフォトログを作ろう&lt;br /&gt;
第10日 Google App Engineを使ってフォトログを作ろう&lt;/p&gt;

&lt;p&gt;少し個人的な感想を書かせてもらうと、バージョンは Python 2.6を中心に扱っていて、現時点ではまだあまり一般的ではない 3.0 を参考程度にとどめている点に好感を持ちました。ちょっと残念な点としては、初学者には SQLAlchemy や Pylons の章が若干難し過ぎる印象を受けました。テンポ良くここまで進んできて、ここで躓いてしまう人がいないかどうかが心配になります。ちょっと難しいなと思ったら、第8日,第9日は飛ばしてしまっても構わないと思います。&lt;/p&gt;

&lt;p&gt;それからもう一点、第3日目の Amazon API ですが、8月15日からはリクエストに署名を付けることが必須となるため、このサンプルは動かなくなるので注意が必要です。これは、執筆の時期の関係で仕方がないのかもしれませんが。&lt;/p&gt;

&lt;p&gt;以上、この辺りを考慮しても『10日でおぼえる Python 入門教室』は自信を持ってお勧めできます。より体系的に学びたくなった場合は、教科書的な&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/479733665X/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;『みんなのPython』&lt;/a&gt;や&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113938/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;『初めてのPython 第3版』&lt;/a&gt;を手元に置いておくと完璧です。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=igeuIGoxJv0:E_oK3nNWZBA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=igeuIGoxJv0:E_oK3nNWZBA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=igeuIGoxJv0:E_oK3nNWZBA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=igeuIGoxJv0:E_oK3nNWZBA:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=igeuIGoxJv0:E_oK3nNWZBA:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Mon, 08 Jun 2009 03:22:52 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/learning-python-in-10-days/</guid><category>Python</category></item><item><title>OpenSocial Signed Request を Google App Engine で検証する
</title><link>http://yamashita.dyndns.org/blog/verifying-opensocial-signed-request-with-google-app-engine/</link><description>&lt;p&gt;OpenSocial の Signed Request を Google App Engine で検証する方法についてです。Signed Request は、OpenSocial コンテナからのリクエストが正しいものであるかを検証するための仕組みです。OAuth Signature を検証することで、リクエストパラメータの不正な改ざんを検出することができます。この署名付きリクエストの検証方法については、&lt;a href="http://developer.mixi.co.jp/appli/make_request/validating_signed_requests"&gt;mixi Developer Center&lt;/a&gt; に分かりやすいサンプルがあるのですが、PHP と Java と C# のみで Python がありません。&lt;/p&gt;
&lt;p align="center"&gt;ヽ(`Д´)ﾉ&lt;/p&gt;
&lt;p&gt;そこで mixiアプリからのリクエストを検証するサンプルを書いてみました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="/download/signed_request.py"&gt;signed_request.py&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;利用するためには、次の2つのライブラリが必要です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://oauth.googlecode.com/svn/code/python/oauth/oauth.py"&gt;oauth.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amk.ca/python/code/crypto"&gt;Crypto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;これらを 次のように App Engine のプロジェクト直下に置いてください。&lt;/p&gt;

nantoka-project/
|-- &lt;b&gt;Crypto/&lt;/b&gt;
|-- app.yaml
|-- index.py
|-- index.yaml
|-- &lt;b&gt;oauth.py&lt;/b&gt;
|-- &lt;b&gt;signed_request.py&lt;/b&gt;


&lt;p&gt;Cryptoは、下のようにすると簡単に入手できます。&lt;/p&gt;

% svn export http://gdata-python-client.googlecode.com/svn/trunk/src/gdata/Crypto

&lt;p&gt;準備ができたら、さっそく使ってみます。使い方は、モジュールをインポートして、署名を検証したいリクエスト・メソッドのデコレータとして指定します。動いているアプリケーションに下線部分を追加するだけです。&lt;/p&gt;

from google.appengine.ext import webapp
import wsgiref.handlers

&lt;u&gt;from signed_request import signed_request&lt;/u&gt;

class Index(webapp.RequestHandler):
    &lt;u&gt;@signed_request&lt;/u&gt;
    def get(self):
        # do something
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('OK')

def main():
    application = webapp.WSGIApplication(
        [('/', Index),],
        debug=True)
    wsgiref.handlers.CGIHandler().run(application)

if __name__ == "__main__":
    main()


&lt;p&gt;以上。&lt;/p&gt;

&lt;p&gt;だけだと素っ気ないので、signed_request.py の中身を簡単に説明します。通常なら OAuth のクライアントライブラリを使って簡単にできそうなものですが、Google App Engine では openssl のライブラリが使えないので、多くのコンテナで採用されている RSA-SHA1 形式の署名を検証するには少し工夫する必要があります。&lt;a href="http://developer.mixi.co.jp/appli/make_request"&gt;外部サーバの呼び出し &amp;raquo; mDC&lt;/a&gt;のページに記載されている公開鍵を mixi.cer という名前のテキストファイルに保存します。そして、この公開鍵を16進数表記に変換します。&lt;/p&gt;

% openssl x509 -modulus -noout &amp;lt; mixi.cer | sed s/Modulus=/0x/
0xC048F9DD595072FD561EF7D69533FE4F5957520F755BE6E0252B87003F3D3DD55FF548E78BDD
8491B8EA68B0F3038DFE53950B94AFF4E6344E9C6C050557484B150B81EBD2A624DF81B7C270A6
D15BB857AD34A68C5444A7B60EBDF953DEBAFBAAA36F8E6FB75C4D79EF3714DF74973081AF5F5B
901FF6387CDA44135A665FE5

&lt;p&gt;signed_request.py 中の MIXI_CERT がこれに当たります。他のコンテナに対応させる場合も同様に変換すれば OK です。&lt;/p&gt;

&lt;p style="padding-top:40px"&gt;&lt;b&gt;関連リンク：&lt;/b&gt;&lt;br /&gt;
&amp;raquo; &lt;a href="http://wiki.opensocial.org/index.php?title=Building_an_OpenSocial_App_with_Google_App_Engine"&gt;Building an OpenSocial App with Google App Engine&lt;/a&gt;&lt;br /&gt;
&amp;raquo; &lt;a href="http://docs.google.com/View?docid=d5pvpm7_3csvt2n6k"&gt;OpenSocial in the Cloud（日本語訳）&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=l7qzSELbh84:Pa1_c_wHEsg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=l7qzSELbh84:Pa1_c_wHEsg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=l7qzSELbh84:Pa1_c_wHEsg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=l7qzSELbh84:Pa1_c_wHEsg:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=l7qzSELbh84:Pa1_c_wHEsg:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Mon, 01 Jun 2009 04:21:24 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/verifying-opensocial-signed-request-with-google-app-engine/</guid><category>OpenSocial</category><category>AppEngine</category></item><item><title>月の初めに
</title><link>http://yamashita.dyndns.org/blog/begining-of-the-month/</link><description>&lt;p&gt;最近、ブログが更新されないですね、と何人かの人に言われました。&lt;/p&gt;

&lt;p&gt;確かに、気づいたら前回のエントリから3週間も経ってしまっています。ブログを書く理由って、自分が学んだことを記録したり、社会(会社)に対して持っている不満の裏返しだったり、まぁいろいろあると思います。ところがここ最近、日々の小さな発見や質問、愚痴なんかは、twitterで間に合うようになってしまいました。おー、こんな便利な方法があったんだー、ということがブックマークして終わり、twitterで軽くつぶやいて終わりという風になってしまいました。習慣というのは怖いもので、最近は140字以上書けない体になっているような気がします。&lt;/p&gt;

&lt;p&gt;もともと無い文章力が明らかに落ちていると感じる今日この頃。本当にこれでいいんでしょうか？Reblogは本当に簡単で楽しいけれど、それが何かを生み出しているのかというと疑問です。&lt;br/&gt;
そして今日、hirose31さんのこのエントリを見て、はっと我に返りました。&lt;/p&gt;

&amp;raquo; &lt;a href="http://d.hatena.ne.jp/hirose31/20090531/1243777478"&gt;readlineのマクロで解決 - (ひ)メモ&lt;/a&gt;

&lt;p&gt;やっぱり文章に纏めることも大事なんだなぁ、と。今でもブログを書いている人は書いていますが、ここに来て創る人と消費する人の二極化が始まっている気がしてなりません。これは、1時間おきに「駐車戦争」で車を移動してる場合じゃないです。&lt;/p&gt;

&lt;p&gt;ということで、今月の目標は、なるべくブログを書くことにしたいと思います。目指すは一日一エントリ。は大変そうなので、三日に一回くらいで無理せず頑張りたいと思います。&lt;/p&gt;
&lt;br /&gt;
&lt;p align="center" style="font-weight:bold"&gt;〜 Think positive. Learn creatively. Do something. 〜&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=FI1eLG3RHas:TOpuVyYpKg8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=FI1eLG3RHas:TOpuVyYpKg8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=FI1eLG3RHas:TOpuVyYpKg8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=FI1eLG3RHas:TOpuVyYpKg8:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=FI1eLG3RHas:TOpuVyYpKg8:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Mon, 01 Jun 2009 03:54:53 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/begining-of-the-month/</guid><category>生活</category></item><item><title>「チャンネー」という OpenSocial アプリを作りました
</title><link>http://yamashita.dyndns.org/blog/chunery-opensocial-application/</link><description>&lt;p&gt;先日、goo と リクルートMTL 主催で開催された OpenSocial Hackathon に参加してきました。久しぶりに仕事と関係のない開発ができたのと、ここしばらく JavaScript と無縁の生活を送っていたのでリハビリができてかなり楽しかったです。&lt;/p&gt;

&lt;div align="center" class="flickr"&gt;&lt;img src="/media/images/blog/090508_hackathon01.jpg" align="top" /&gt;
&lt;img src="/media/images/blog/090508_hackathon02.jpg" /&gt;&lt;/div&gt;

&lt;p&gt;Hackathon はいくつかのグループに分かれて、それぞれが開発を行いました。僕はリクルートのAPIを使って、OpenSocialアプリケーションを作成するチームに加わりました。リクルート・メディアテクノロジーラボさんは会場を貸してくれた上に、お昼ご飯と懇親会のピザまで提供してくれました(MTL++)。&lt;/p&gt;

&lt;p&gt;そして、この素晴らしいAPIを使って作ったのが、「チャンネー」というこのアプリ！&lt;br /&gt;
なんと、Hackathon参加者による投票で1 等賞を頂いてしまいました。&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="/media/images/blog/090508_chuney01.png" alt="チャンネー" /&gt;&lt;/div&gt;

&lt;p&gt;ひとことで言うと、自分の気に入った髪型をお取り置きしておけるアプリケーションです。ルールは簡単で、2人ずつチャンネーが表示されるので気に入ったほうを次々にクリックしていきます。&lt;span style="color:red"&gt;ここではどっちの女性がタイプかではなく、必ず髪型で選んでください。&lt;/span&gt;想定外の使い方をしてAPIを止められたら元も子もないので、くれぐれもよろしくお願いします。ページ下部には、マイミクが選んだ好みの髪型も表示されます。&lt;br /&gt;
また、ホーム画面では下のように自分が選んだチャンネーがスライドショー形式で表示されます。&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="/media/images/blog/090508_chuney02.png" alt="ホーム画面" /&gt;&lt;/div&gt;

&lt;p&gt;もちろん OpenSocial ということで、マルチ・プラットフォームに対応しています。mixiアプリ版とgooガジェット版がありますので、ぜひ試してみてください！&lt;/p&gt;

&lt;p&gt;&lt;b&gt;mixiアプリ版&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://platform001.mixi.jp/view_appli.pl?id=1357"&gt;http://platform001.mixi.jp/view_appli.pl?id=1357&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;gooガジェット版&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://sandbox.home.goo.ne.jp/gadget/K4FZzsNtd51b/detail"&gt;http://sandbox.home.goo.ne.jp/gadget/K4FZzsNtd51b/detail&lt;/a&gt;&lt;/p&gt;

&lt;br /&gt;

&lt;p&gt;ここで、mixiアプリをまだ使ったことがない人のために、簡単に使い方を説明しておくと、まだmixiアプリはオープンβ段階なので特別なURLにアクセスする必要があります。既に多くのアーリーアダプタな方々が参加されているので、私のブログを読んでくれているような人たちはもう利用されているかもしれませんが、以下の手順に従ってアプリを登録してください。&lt;/p&gt;

&lt;h4&gt;１．「mixiアプリ オープンβ」コミュニティに参加&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://platform001.mixi.jp/view_community.pl?id=3217244"&gt;mixiアプリ オープンβ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;※既に参加済みの方は必要ありません。このコミュニティに参加し、かつ platform001.mixi.jp にアクセスすることでアプリ関連の機能が利用可能になります。&lt;/p&gt;

&lt;h4&gt;２．アプリページにアクセス&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://platform001.mixi.jp/view_appli.pl?id=1357"&gt;チャンネー&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;上記のページにアクセスします。&lt;br /&gt;
ログイン画面が表示された場合は、ログイン操作を行ってください。&lt;/p&gt;

&lt;h4&gt;３．アプリを追加する&lt;/h4&gt;

&lt;p&gt;「アプリを追加する」をクリックします。&lt;/p&gt;

&lt;br /&gt;

&lt;p&gt;以降、これからは http://platform001.mixi.jp にアクセスすることで、mixiアプリを利用できます。勘違いしている人が多いようですが、アプリを使ってみるだけなら開発者登録は必要ありません。&lt;/p&gt;

&lt;p&gt;&lt;b&gt;関連リンク：&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://blog.goo.ne.jp/goohome_developer/e/6e7bcb5387791ebc2ad8dfbc658161ea"&gt;OpenSocial Hackathon in Aprilレポート！ - gooホーム Developer's Recipe&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=vvqsk-MHtEI:9QCTULgoElo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=vvqsk-MHtEI:9QCTULgoElo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=vvqsk-MHtEI:9QCTULgoElo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=vvqsk-MHtEI:9QCTULgoElo:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=vvqsk-MHtEI:9QCTULgoElo:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Fri, 08 May 2009 01:33:44 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/chunery-opensocial-application/</guid><category>OpenSocial</category></item><item><title>新宿夜景
</title><link>http://yamashita.dyndns.org/blog/lost-in-translation/</link><description>&lt;p&gt;夜の東京都庁に行って来ました。地上202メートルの展望室は、愛を語らうカップルと外国人旅行客の一団で賑わっていました。&lt;/p&gt;

&lt;div class="flickr"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3391723790/" title="Shinjuku Midnight by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3471/3391723790_12d1946d72.jpg" width="500" height="332" alt="Shinjuku Midnight" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;まぁ、当然のように僕は一人で、気分はまさに「Lost in Translation」の世界。&lt;/p&gt;

&lt;div class="flickr"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3390911415/" title="Lost in Translation by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3655/3390911415_f51779e663.jpg" width="500" height="332" alt="Lost in Translation" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;無料でこの夜景が楽しめるのはかなりお得だと思います。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=4CpuK0r6kdk:AWV8Irb4vqA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=4CpuK0r6kdk:AWV8Irb4vqA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=4CpuK0r6kdk:AWV8Irb4vqA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=4CpuK0r6kdk:AWV8Irb4vqA:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=4CpuK0r6kdk:AWV8Irb4vqA:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Sun, 19 Apr 2009 00:13:18 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/lost-in-translation/</guid><category>カメラ/写真</category></item><item><title>レーシングカート
</title><link>http://yamashita.dyndns.org/blog/racing-kart/</link><description>&lt;p&gt;実家から車で20分くらいの所にカート用のサーキットがあります。レンタルして乗れるかなーと思って先日足を運んでみたのですが、あいにくその日は貸し切りみたいで走ることはできませんでした。&lt;/p&gt;

&lt;div class="flickr"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3374548497/" title="Pit Garage by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3646/3374548497_e75a9fdb92.jpg" width="500" height="332" alt="Pit Garage" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;仕方がないので走行会の様子をしばらく見ていたのですが、大人、中高生、小学生の３つのクラスごとに時間が分かれていて順番に走っていました。&lt;/p&gt;

&lt;div class="flickr"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3374549271/" title="The First Corner by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3593/3374549271_66bab2a183.jpg" width="500" height="332" alt="The First Corner" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;驚いたのは小学生のクラスで、お父さんがメカニック、お母さんがストップウォッチを片手にタイムを計っていてかなり本気です。しかもそんな家族がそこに20はいたでしょうか。駐車場に止まっている車のナンバーを見ると関東の各地から来ているようです。&lt;/p&gt;

&lt;div class="flickr"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3374548865/" title="Pit Road by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3555/3374548865_ec107e2684.jpg" width="500" height="332" alt="Pit Road" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;そんな親たちはちょうど自分と同い年くらいで、アイルトン・セナやアラン・プロストを見て育った世代。気持ちはよく分かります。でも、自分の子供がカートをやりたいって言っても応援するかどうかは微妙ですねー。子供たちが大きくなる頃まで、F-1が今の形で残っているとは思えないもの。&lt;/p&gt;

&lt;div class="flickr"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3374549713/" title="Racing Kart by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3634/3374549713_e4f723ce54.jpg" width="500" height="332" alt="Racing Kart" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;カートに乗れなかったのは残念だったけど、久しぶりに2ストのオイルの焼ける匂いを嗅げてよかった休日でした。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PNLC1exY0bY:8Ep39aT0yqA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PNLC1exY0bY:8Ep39aT0yqA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=PNLC1exY0bY:8Ep39aT0yqA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PNLC1exY0bY:8Ep39aT0yqA:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=PNLC1exY0bY:8Ep39aT0yqA:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Sun, 12 Apr 2009 15:46:58 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/racing-kart/</guid><category>クルマ</category><category>カメラ/写真</category></item><item><title>4/17ビジクリミーティングのお知らせ 〜 メディア編
</title><link>http://yamashita.dyndns.org/blog/business-creative-meeting-200904/</link><description>&lt;p&gt;突然ですが、来たる4月17日(金)にビジクリミーティングという勉強会を開催します。&lt;/p&gt;

&lt;p&gt;インターネットの台頭により、誰もが簡単に情報を入手できる時代になり、旧来のメディアには新たな役割が求められています。今回は、朝日新聞社とフジテレビにてご活躍されている檜山氏、野村氏（いわゆる”なかの人”）をお招きして、「メディア」をテーマに行います。内容としては、このお二方に新聞・テレビの現状についてプレゼンテーションして頂き、その後「老舗メディアに求められている新たな役割」について皆で軽くディスカッションする予定です。&lt;/p&gt;

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
日時：4月17日（金) 19:30 - 22:00
場所：東京都新宿区西新宿4-34-7　住友不動産西新宿ビル5号館
　アスキーメディアワークス社内5階会議室
地図リンク：&lt;a href="http://asciimw.jp/info/corp/map.php"&gt;http://asciimw.jp/info/corp/map.php&lt;/a&gt;
会費：1500円(懇親会費は別途)
定員：30人
必要なもの：名刺、筆記用具
タイムテーブル：
19:30 - 19:40 イントロダクション
19:40 - 20:20 株式会社朝日新聞社　桧山氏
20:15 - 20:45 株式会社フジテレビジョン　野村氏
21:00 - 21:45 ディスカッション
21:45 - 21:55 今後について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

&lt;p&gt;■□■株式会社朝日新聞社　デジタルメディア本部　営業セクション　桧山直樹氏 ■□■&lt;br /&gt;
&amp;lt;&amp;lt;悩みが深い新聞社、立て直しどうする！&amp;gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;ニュースを集めて紙に刷って大量に家に配る。&lt;br /&gt;
それが新聞社の１９世紀以来（笑）の、収益モデルです。&lt;br /&gt;
が、ご存じのとおり、インターネットの登場以来、大きな壁にぶつかっている感があります。
２１世紀に入り、もし新聞社が必要がなくなったのだとしたら、経済法則に従って、
退場あるのみ。実際、アメリカでは破綻や閉鎖が相次いでいます。だが、このまま潰すには
ちょっと惜しい気がする。小職は、紙の新聞とニュースサイトの双方での取材・編集をし、
現在はニュースコンテンツ営業の世界に身を置いております。日米の新聞社のデジタル
ビジネスの現状や問題点などについて、皆さんと議論できればうれしいです。&lt;/p&gt;

&lt;p&gt;■□■株式会社フジテレビジョン　ペイＴＶ運営部　野村和生氏■□■&lt;br /&gt;
&amp;lt;&amp;lt;誰もが陥るテレビの誤解&amp;gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;一時は買収の危機に立たされたテレビ局ですが、買収を仕掛けた側も、テレビを旧業態と
批判しつつも具体的で実現性の高いビジネスモデルを提示できませんでした。それは、
華やかなイメージだけでテレビを過大もしくは過小評価しているからではないでしょうか？
IT企業？から一転してテレビ局に転職し、実際に経験してきたことを踏まえ、テレビの
現実とテレビ局とビジネスをしていく上でのヒントをお話できればと思います。&lt;/p&gt;

&lt;p style="padding-top:20px"&gt;今まで一般に参加者を募集することなくクローズドで行われていた勉強会なのですが、より幅広い方々に参加して意見を伺いたいということで広く参加者を募集します。興味のある方は、下記からお申し込みください。&lt;/p&gt;

&lt;div style="font-weight:bold;text-align:center"&gt;↓↓↓参加のお申し込みはこちらから↓↓↓&lt;br /&gt;
&lt;a href="http://atnd.org/events/498"&gt;http://atnd.org/events/498&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;

&lt;p&gt;※定員に達し次第、申し込みは締め切らせて頂きます。&lt;/p&gt;

&lt;p&gt;1;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=hHN4Bt8sVA4:A42YiPnODTA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=hHN4Bt8sVA4:A42YiPnODTA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=hHN4Bt8sVA4:A42YiPnODTA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=hHN4Bt8sVA4:A42YiPnODTA:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=hHN4Bt8sVA4:A42YiPnODTA:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Tue, 07 Apr 2009 00:06:46 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/business-creative-meeting-200904/</guid><category>お知らせ</category></item><item><title>近況報告
</title><link>http://yamashita.dyndns.org/blog/recently-updates-200904/</link><description>&lt;p&gt;お久しぶりです！各方面から「最近、ブログを更新してないけどどうしたの？」と言われるので、近況報告をしておきます。ちょうど昨年末くらいから忙しくしていて、気づいたら年度が変わっていました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2月に転職しました。&lt;/li&gt;
&lt;li&gt;それに伴ってPerlを使うようになりました。&lt;/li&gt;
&lt;li&gt;車を手放しました。&lt;/li&gt;
&lt;li&gt;東京23区内に引っ越しました。&lt;/li&gt;
&lt;li&gt;自転車(クロスバイク)を購入しました。これが思いのほか楽しくて、週末はポタリング三昧。おかげで少しだけ痩せました。&lt;/li&gt;
&lt;li&gt;生まれて初めて青色申告をしました。これは自分の経済感覚を高める上で大変勉強になりました。住基カードのパスワードを忘れてロックされてしまうというミスがあり、e-taxの期限ぎりぎりでしたが…&lt;/li&gt;
&lt;li&gt;悲しい別れがありました。自分にとても大きな影響を与えてくれた人で、とても素敵な人でした。ちょっとしたすれ違いから連絡を取らなくなっていたある日、突然その人からメールが来ました。「死を覚悟しています」というメールでした。そのメールに返信したものの、返事がなかったので忙しさにかまけてそれから連絡しませんでした。その人は、あと4日で42歳の誕生日を迎えるというときにガンでこの世を去りました。とてもお世話になった大切な人が苦しんでいるときに僕は自分のことしか考えていませんでした。最低でした。&lt;/li&gt;
&lt;li&gt;自分の生き方について自分なりにいろいろ考えました。&lt;/li&gt;
&lt;li&gt;新しい職場では写真好きの人が多く(しかもみんな上手)、再び一眼レフでいろいろ撮るようになりました。&lt;/li&gt;
&lt;li&gt;そしてOpenSocial&lt;/li&gt;
&lt;li&gt;というとWebブラウザ上でJavaScriptで…というのを想像するかもしれませんが、もうWebブラウザ一辺倒なのは時代遅れかもと思っています。今後、もっと人々の生活に食い込んでいくためには、PCのWebブラウザの外を開拓していく必要があり、その中で今までにない新たな人と人とのコミュニケーション手段が生まれるのではないかと日々妄想しています。&lt;/li&gt;
&lt;/ul&gt;

&lt;div align="center"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3336186177/" title="LOUIS GARNEAU by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3302/3336186177_b510f76532_s.jpg" width="75" height="75" alt="LOUIS GARNEAU" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/weboo/3337716870/" title="Cocoon Tower by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3605/3337716870_6ae1db5d73_s.jpg" width="75" height="75" alt="Cocoon Tower" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/weboo/3337291638/" title="Tokyo Metropolitan Government by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3648/3337291638_6e07d45662_s.jpg" width="75" height="75" alt="Tokyo Metropolitan Government" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/weboo/3401231169/" title="Black Cliff by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3433/3401231169_dc773c17f3_s.jpg" width="75" height="75" alt="Black Cliff" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;いずれにしても2009年は、昨今の世界情勢をみてもいろいろ動きのある年になりそうです。どうぞ今後ともよろしくお願いします。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=Vq3tJ8aDLdM:yN435YkCg_k:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=Vq3tJ8aDLdM:yN435YkCg_k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=Vq3tJ8aDLdM:yN435YkCg_k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=Vq3tJ8aDLdM:yN435YkCg_k:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=Vq3tJ8aDLdM:yN435YkCg_k:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Fri, 03 Apr 2009 06:17:18 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/recently-updates-200904/</guid><category>生活</category></item><item><title>Ubuntu 9.04 Jaunty Jackalope と NVIDIA ドライバ
</title><link>http://yamashita.dyndns.org/blog/ubuntu-904-jaunty-jackalope-and-nvidia-driver/</link><description>&lt;div align="center"&gt;&lt;a href="http://www.flickr.com/photos/weboo/3131581871/" title="Merry Christmas! by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3095/3131581871_afbc2bee89.jpg" width="500" height="313" alt="Merry Christmas!" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;メインで使っているデスクトップPCを Ubuntu 9.04 (Jaunty Jackalope) にアップグレードしました。Jackalope は、来年4月にリリースが予定されている Ubuntu の次期安定バージョンです。アップグレード自体は、"update-manager -d"するだけなので超簡単なんですが、X server が1.6というアグレッシブなバージョンなので、NVIDIAのプロプライエタリなドライバが動きません（そうドキュメントに書いてあった）。なので、オープンソース版の nv やら nouveau というドライバをインストールしてしばらく使っていたのですが、Compositeの機能が使えなかったりしてとても残念な感じでした。そこで、ダメ元でNVIDIAのβ版ドライバを入れてみたら動作したので、ここに記録を残しておきます。&lt;/p&gt;

&lt;p&gt;&lt;a href="ftp://download.nvidia.com/XFree86/Linux-x86_64/"&gt;NVIDIAのFTPサーバ&lt;/a&gt; (&lt;a href="ftp://download.nvidia.com/XFree86/Linux-x86/"&gt;32bit&lt;/a&gt;)からドライバ(現時点で最新は180.18)をダウンロードします。pkg0,pkg1,pkg2とあるのはコンパイル済みのモジュールが含まれているかどうかなのでpkg0でおｋ。&lt;/p&gt;

% sudo /bin/bash NVIDIA-Linux-x86_64-180.18-pkg0.run

&lt;p&gt;ここで、dash とか zsh だとエラーになる場合があるので、bash で実行します。インストールが完了したら再起動するのですが、残念ながらそのままでは次のようなエラーが表示されて起動しません。&lt;/p&gt;

(EE) NVIDIA(0): This video driver ABI is not supported.
(EE) NVIDIA(0): Use the -ignoreABI option to override this check.

&lt;p&gt;素直に指示に従って X 起動時のオプションに -ignoreABI オプションを付け加えます。私の場合は、gdm経由でログインしているので、 /etc/gdm/gdm.conf を書き換えます(太字の部分を追加)。&lt;/p&gt;

[server-Standard]
name=Standard server
command=/usr/X11R6/bin/X -br -audit 0 &lt;b&gt;-ignoreABI&lt;/b&gt;
flexible=true

&lt;p&gt;この Ubuntu 9.04 なんですが、動作が軽快でかなり気に入っています。 Ubuntu Community にシャトルワース氏が投稿したメールにもあるように、起動/レジューム時間の短縮が目標に掲げられているようです。&lt;/p&gt;

&lt;blockquote&gt;There are some specific goals that we need to meet in Jaunty. One of
them is boot time. We want Ubuntu to boot as fast as possible - both in
the standard case, and especially when it is being tailored to a
specific device. The Jackalope is known for being so fast that it's
extremely hard to catch, and breeds only when lightning flashes. Let's
see if we can make booting or resuming Ubuntu blindingly quick.&lt;br /&gt;
&lt;a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-September/000481.html"&gt;Introducing the Jaunty Jackalope by Mark Shuttleworth&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;また、まだ実装はされていないようですが、&lt;a href="http://www.markshuttleworth.com/archives/253"&gt;Growlっぽい機能&lt;/a&gt;も標準で付くようで今から非常に楽しみです。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;（追記）&lt;br /&gt;Ubuntu に&lt;s&gt;愛ちゃん&lt;/s&gt;&lt;a href="http://www.kao.co.jp/kawatsuku/desktop/index.html"&gt;愛ちゃん&lt;/a&gt;は付いてきません。（正式に公開されたようでリンクを変更）&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=KDidPl2fjSw:AzNwdmKfL0w:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=KDidPl2fjSw:AzNwdmKfL0w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=KDidPl2fjSw:AzNwdmKfL0w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=KDidPl2fjSw:AzNwdmKfL0w:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=KDidPl2fjSw:AzNwdmKfL0w:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 25 Dec 2008 00:45:29 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/ubuntu-904-jaunty-jackalope-and-nvidia-driver/</guid><category>Linux</category><category>Ubuntu</category></item><item><title>Google Blogで紹介して頂きました
</title><link>http://yamashita.dyndns.org/blog/introduced-on-google-blog/</link><description>&lt;div align="center"&gt;&lt;a href="http://googlejapan.blogspot.com/2008/12/opensocial-1.html"&gt;&lt;img src="/media/images/blog/081222-opensocial.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;先日、Google 東京オフィスで開催された OpenSocial 1周年記念イベントの様子が Google Japan のブログと Asia Pacific 向けのブログで公開されています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://googlejapan.blogspot.com/2008/12/opensocial-1.html"&gt;Google Japan Blog: OpenSocial 1周年記念&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://apacdeveloper.blogspot.com/2008/12/opensocial-celebrates-1st-year.html"&gt;OpenSocial Celebrates 1st year Anniversary in Tokyo with new technical innovations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chris さんに &lt;a href="/blog/opensocial-gumi-platform/"&gt;gumi Platform&lt;/a&gt; の説明をしたら、とても興味を持ってもらえたようで図入り写真付きで大きく取り上げていただきました。ありがとうございます！少し補足しておくと、Google App Engine については、アプリケーションのホスティング環境として使える＆使っているということで、Platform 自体が App Engine 上で動いているという意味ではないので誤解なきようお願いします。（Chris さんにはちゃんと伝わっているはず…）&lt;/p&gt;

&lt;p&gt;海外の Facebook や MySpace, hi5, Orkut 等のソーシャル・プラットフォームの盛り上がりに対して、日本ではまだまだこれからの分野ですが、来年には&lt;a href="http://developer.mixi.co.jp/appli/example"&gt;mixiアプリ&lt;/a&gt;も始まってかなり面白いことになりそうです。&lt;a href="http://www.eisbahn.jp/yoichiro/"&gt;よういちろうさん&lt;/a&gt;のOpenSocial本も発売されるようで今から楽しみです。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=J4tSqqcdfRU:KvvcBxS3d4Y:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=J4tSqqcdfRU:KvvcBxS3d4Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=J4tSqqcdfRU:KvvcBxS3d4Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=J4tSqqcdfRU:KvvcBxS3d4Y:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=J4tSqqcdfRU:KvvcBxS3d4Y:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Mon, 22 Dec 2008 23:04:21 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/introduced-on-google-blog/</guid><category>OpenSocial</category></item><item><title>Google Friend Connectが利用可能になりました
</title><link>http://yamashita.dyndns.org/blog/google-friend-connect/</link><description>&lt;div style="float:left;margin-right:20px"&gt;&lt;img src="/media/images/blog/081204_friendconnect.png" style="border:none "&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://www.google.com/friendconnect/"&gt;Google Friend Connect&lt;/a&gt;が利用可能になったので、さっそくブログ右側に設置してみました。&lt;/p&gt;

&lt;p&gt;Google Friend Connectとは何かというと、あらゆるWebサイトをSNS化してしまおうという試みです。以前から&lt;a href="http://www.mybloglog.com/buzz/members/Weboo/"&gt;MyBlogLog&lt;/a&gt;がこのようなサービスを行っていましたが、決定的な違いは既存のSNSの友達関係を使って友人を招待したり、同じサイトの利用者＋友人というフィルタをかけたりできることです。今のところ、ソーシャルグラフとしては、Google Talk, Orkut, Plaxoだけが利用可能なようですが、これから対応SNSはさらに増えてくるものと思われます。当然のように、これに対してFacebookは&lt;a href="http://wiki.developers.facebook.com/index.php/Facebook_Connect"&gt;Facebook Connect&lt;/a&gt;という機能を開始しています。&lt;/p&gt;

&lt;p&gt;先日、mixiが来年から招待制をやめるという話がありましたが、このような世界的なSNSオープン化の動きを見据えてのことだと考えておけば納得がいくのではないでしょうか。SNSに関してもガラパゴス化しつつある昨今の日本の状況ですが、来年はOpenSocial元年にしたいところです。&lt;/p&gt;

&lt;br clear="all" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=ZOfzayJdIIg:YBqaZ9Be09s:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=ZOfzayJdIIg:YBqaZ9Be09s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=ZOfzayJdIIg:YBqaZ9Be09s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=ZOfzayJdIIg:YBqaZ9Be09s:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=ZOfzayJdIIg:YBqaZ9Be09s:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 04 Dec 2008 03:36:59 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/google-friend-connect/</guid><category>OpenSocial</category></item><item><title>iPhone Tech Talk World Tour 2008
</title><link>http://yamashita.dyndns.org/blog/iphone-tech-talk-world-tour-2008/</link><description>&lt;div style="text-align:center"&gt;&lt;a href="http://www.flickr.com/photos/weboo/2988992264/" title="iPhone Tech Talk World Tour 2008, Tokyo by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3213/2988992264_a8fd56111d.jpg" width="500" height="333" alt="iPhone Tech Talk World Tour 2008, Tokyo" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;六本木ヒルズで開催された&lt;a href="http://developer.apple.com/jp/briefing/techtalk.html"&gt;「iPhone Tech Talk World Tour 2008」&lt;/a&gt;に行ってきました。例によって内容はブログに書かかないでください、とのことなので書けませんが、パフォーマンス・チューニングの話が参考になりました。&lt;/p&gt;
&lt;p&gt;上の写真は、そのお土産でもらったTシャツ。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=8RjwxdTUMo0:S51dOB7FDpc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=8RjwxdTUMo0:S51dOB7FDpc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=8RjwxdTUMo0:S51dOB7FDpc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=8RjwxdTUMo0:S51dOB7FDpc:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=8RjwxdTUMo0:S51dOB7FDpc:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Fri, 31 Oct 2008 18:43:49 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/iphone-tech-talk-world-tour-2008/</guid><category>iPod/iPhone</category></item><item><title>ITアーキテクト Vol.19に記事を書きました
</title><link>http://yamashita.dyndns.org/blog/it-architect-vol19/</link><description>&lt;p&gt;ITシステムを“創る”人のための技術情報誌&lt;a href="http://www.itarchitect.jp/mag/?magazine_id=ita_019" target="_blank"&gt;『ITアーキテクト Vol.19』&lt;/a&gt;に記事を書きました。「主要各社のクラウド・サービスに迫る」という特集の中で、Google App Engineに関する部分を担当しています。&lt;/p&gt;

&lt;div style="margin-bottom:0px;"&gt;&lt;div style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/487280290X/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51QRcY2gnfL._SL160_.jpg" alt="ITアーキテクト Vol.19 (IDGムックシリーズ)" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div style="margin-bottom:10px;line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/487280290X/webooretur-22" target="_blank"&gt;ITアーキテクト Vol.19 (IDGムックシリーズ)&lt;/a&gt;&lt;div style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%"&gt;posted with &lt;a href="http://www.amazlet.com/browse/ASIN/487280290X/webooretur-22/ref=nosim/" title="ITアーキテクト Vol.19 (IDGムックシリーズ)" target="_blank"&gt;amazlet&lt;/a&gt; at 08.09.26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;ITアーキテクト編集部 &lt;br /&gt;アイ・ディ・ジー・ジャパン &lt;br /&gt;売り上げランキング: 1304&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 5px"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/487280290X/webooretur-22/ref=nosim/" name="amazletlink" target="_blank"&gt;Amazon.co.jp で詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="amazlet-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;blockquote&gt;また、特集2『主要各社のクラウド・サービスに迫る』では、今日すでにサービスの提供を開始したり、何らかの対応方針を提示したりしているベンダーの中から、特に重要と思われる3社、IBM、アマゾン、グーグルを取り上げ、各社のクラウド・サービスの概要を紹介している。本誌Vol.17ではクラウド・コンピューティングの概要を説明したが、本特集はその続編だ。クラウドの先駆者であるアマゾンと検索サービスの覇者であるグーグルのサービスについてはすでに多くの情報が流通しているが、エンタープライズ向けクラウドを標榜するIBMに関しては、まだ日本語でまとめられた情報が少ない。特に国内のユーザー企業にとって、IBMのクラウド・サービスは気になる存在だろう。彼らが考えるクラウドの方向性を、ぜひ本特集でつかんでいただきたい。&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=yqlKqqxL2yc:sJTj8P3GUB0:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=yqlKqqxL2yc:sJTj8P3GUB0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=yqlKqqxL2yc:sJTj8P3GUB0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=yqlKqqxL2yc:sJTj8P3GUB0:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=yqlKqqxL2yc:sJTj8P3GUB0:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Fri, 26 Sep 2008 01:13:45 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/it-architect-vol19/</guid><category>お仕事</category></item><item><title>V8 を使って Python で JavaScript を実行する
</title><link>http://yamashita.dyndns.org/blog/running-javascript-with-v8-on-python/</link><description>&lt;p&gt;Google V8 JavaScript Engine の Python バインディングを試してみました。&lt;/p&gt;

&lt;p&gt;直近で &lt;a href="http://yamashita.dyndns.org/blog/opensocial-gumi-platform/"&gt;gumi Platform&lt;/a&gt; 上で簡単な OpenSocial ガジェットを動作させるのに使いたかったということが一番の動機ですが、サーバサイドで JavaScript を実行するというのは、これから当たり前の技術になると思っています。今後、モバイル・プラットフォームの台頭とクラウド・コンピューティングの進展により、非力なクライアントと強力なサーバという今までとは違ったパワーバランスになってきます。そこで重要になるのは、いかにクライアント側の処理をシンプルにするかということです。例えば、ブログパーツとかガジェットなんかは静的コンテンツを汎用的に表示させるためだけに JavaScript を使っています。最初からブログエンジン側でこの部分をレンダリングしてあげれば、非力なモバイル端末にとっては負担が減ります。このことは未だムーアの法則から取り残されているバッテリーの持ちにも影響してきます。&lt;/p&gt;

&lt;p&gt;さて、早速試してみましょう。まずは、 bitbucket からソースコードをチェックアウトします。&lt;/p&gt;

$ hg clone http://www.bitbucket.org/dfdeshom/v8onpython/ v8onpython

&lt;p&gt;次に libv8.so をビルドします。なお、ビルドには scons と Cython が必要ですので予めインストールしておきます。 scons は Ubuntu の場合はパッケージがあるので、 "aptitude install scons" (または apt-get)するだけです。 Cython も Python のパッケージ・システムを使って "easy_install Cython"するだけです。&lt;/p&gt;

$ cd v8onpython/v8-src
$ scons library=shared
...
scons: done building targets.

&lt;p&gt;次に Python バインディングのビルドです。&lt;/p&gt;

$ cd..
$ python setup.py build_ext --inplace
running build_ext
building 'v8onpython' extension
g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5
/v8onpython.o -Lv8-src -lv8 -o v8onpython.so
$ mv v8-src/libv8.so .

&lt;p&gt;正常に終了するとカレントディレクトリに v8onpython.so ができているはずです。それでは、実際に使ってみましょう。&lt;/p&gt;

$ ipython
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52) 
Type "copyright", "credits" or "license" for more information.

In [1]: import v8onpython
In [2]: v = v8onpython.Script()
In [3]: v.compile("(function(){return 'Hello World'}())")
Out[3]: 'Hello World'

&lt;br /&gt;
&lt;p&gt;関連リンク：&lt;br /&gt;
&amp;raquo; &lt;a href="http://code.google.com/p/v8/"&gt;v8 - Google Code&lt;/a&gt;&lt;br /&gt;
&amp;raquo; &lt;a href="http://www.bitbucket.org/dfdeshom/v8onpython/src/"&gt;dfdeshom / v8onpython / source — bitbucket.org&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=yuivrHPiXb4:Q3G4RpNRUrU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=yuivrHPiXb4:Q3G4RpNRUrU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=yuivrHPiXb4:Q3G4RpNRUrU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=yuivrHPiXb4:Q3G4RpNRUrU:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=yuivrHPiXb4:Q3G4RpNRUrU:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Mon, 08 Sep 2008 09:39:14 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/running-javascript-with-v8-on-python/</guid><category>Python</category><category>Google</category></item><item><title>PHP で OAuth Consumer Request (2-legged OAuth)
</title><link>http://yamashita.dyndns.org/blog/php-oauth-consumer-request-2-legged-oauth/</link><description>&lt;p&gt;前に「&lt;a href="http://yamashita.dyndns.org/blog/django-oauth-consumer-request/"&gt;OAuth Consumer Request の処理フローと実装&lt;/a&gt;」で紹介した 2-legged OAuth 処理のPHP版です。&lt;/p&gt;

&lt;p&gt;通常の OAuth では、ユーザの確認画面を間に挟んでトークンのやり取りを行いますが、OAuth Consumer Request は既に信頼関係にあるという前提でトークン発行、承認の手順を省いたものです。コンシューマとサービスプロバイダ二者間での信任フロー（2-legged OAuth）になります。詳しい仕様については下記を参照してください。&lt;/p&gt;

&amp;raquo; &lt;a href="http://oauth.googlecode.com/svn/spec/ext/consumer_request/1.0/drafts/1/spec.html"&gt;OAuth Consumer Request 1.0 Draft 1&lt;/a&gt;

&lt;p&gt;まずは、実際の処理手順を説明していきましょう。コンシューマは次のパラメータをサービスプロバイダに送信することになります。 Consumer Key と Consumer Secret については、サービスプロバイダから提供されているものを使います。&lt;/p&gt;

&lt;table style="margin-left:30px;border-collapse:collapse;border:1px #8CACBA solid" border="1" cellspacing="0" cellpadding="5"&gt;
&lt;tr&gt;&lt;td&gt;oauth_consumer_key&lt;/td&gt;&lt;td&gt;コンシューマキー&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oauth_signature_method&lt;/td&gt;&lt;td&gt;HMAC-SHA1 or RSA-SHA1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oauth_signature&lt;/td&gt;&lt;td&gt;シグニチャ&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;oauth_timestamp&lt;/td&gt;&lt;td&gt;UNIXタイムスタンプ&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oauth_nonce&lt;/td&gt;&lt;td&gt;ランダムな文字列&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oauth_version&lt;/td&gt;&lt;td&gt;1.0 (オプション)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;ここで、 oauth_signature は以下のようにして生成されます。まず、ベース文字列を用意します。&lt;/p&gt;
&lt;ol style="margin-left:30px"&gt;
&lt;li&gt;GET&lt;/li&gt;
&lt;li&gt;http://api.gu3.jp/v1/test/auth&lt;/li&gt;
&lt;li&gt;oauth_consumer_key=yamashita.dyndns.org&amp;amp;oauth_nonce=c83b1847200&lt;br /&gt;
bd25d918c3fb077aca16f&amp;amp;oauth_signature_method=HMAC-SHA1&amp;amp;&lt;br /&gt;
oauth_timestamp=1219931263&amp;amp;oauth_version=1.0&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;次にこれらをURIエスケープした後に &amp;amp; で連結して、ベース文字列を生成します。&lt;/p&gt;

GET&amp;amp;http%3A%2F%2Fapi.gu3.jp%2Fv1%2Ftest%2Fauth&amp;amp;oauth_consumer_key
%3Dyamashita.dyndns.org%26oauth_nonce%3Dc83b1847200bd25d918c3fb0
77aca16f%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp
%3D1219931263%26oauth_version%3D1.0

&lt;p&gt;そして、このベース文字列を HMAC-SHA1 によってダイジェスト値を生成し、BASE64 でエンコードすることによってシグニチャを生成します（サービスプロバイダによっては RSA-SHA1 の場合もあります）。この際、利用する共有キーは cosumer_secret　と 空のToken Secret を &amp;amp; で連結したものになります。例えば、 consumer_secret が kd94hf93k423kf44 なら kd94hf93k423kf44&amp;amp; になります。こうして、シグニチャは以下のようになります。&lt;/p&gt;

M32qYtcaUD8b1Kb/AponRG5hrwI=

&lt;p&gt;こうして生成されたパラメータをAPIリクエスト時の Authorization ヘッダに追加して、サービスプロバイダに送信します。&lt;/p&gt;

Authorization: OAuth realm="http://api.gu3.jp/",
               oauth_consumer_key="yamashita.dyndns.org",
               oauth_signature_method="HMAC-SHA1",
               oauth_signature="M32qYtcaUD8b1Kb%2FAponRG5hrwI%3D",
               oauth_timestamp="1219931263",
               oauth_nonce="c83b1847200bd25d918c3fb077aca16f",
               oauth_version="1.0"


&lt;p&gt;実際のPHPスクリプトは次のようになります。なお、実行には Google Code にて公開されているPHP用ライブラリ(&lt;a href="http://oauth.googlecode.com/svn/code/php/"&gt;OAuth.php&lt;/a&gt;)が必要です。&lt;/p&gt;

&amp;lt;?php
require_once 'OAuth.php';
define('CONSUMER_KEY', 'yamashita.dyndns.org');
define('CONSUMER_SECRET', 'kd94hf93k423kf44');

function OAuthConsumerRequest($method, $url, $data=NULL) {
    $consumer = new OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    $signature_method_hmac_sha1 = new OAuthSignatureMethod_HMAC_SHA1();

    // access protected resources
    $oauth_request = OAuthRequest::from_consumer_and_token($consumer,
                                                           NULL,
                                                           $method,
                                                           $url);
    $oauth_request-&gt;sign_request($signature_method_hmac_sha1,
                                 $consumer, '');

    $headers = $oauth_request-&gt;to_header();

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array($headers));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($ch);
    if ($result === FALSE) {
        return curl_error($ch);
    }
    curl_close($ch);
    return $result;
}

$ret = OAuthconsumerRequest('GET', 'http://api.gu3.jp/v1/test/auth');
print($ret);&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PpVHEWh7ehg:aQWNSP7pwfk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PpVHEWh7ehg:aQWNSP7pwfk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=PpVHEWh7ehg:aQWNSP7pwfk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PpVHEWh7ehg:aQWNSP7pwfk:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=PpVHEWh7ehg:aQWNSP7pwfk:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 28 Aug 2008 22:58:06 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/php-oauth-consumer-request-2-legged-oauth/</guid><category>OpenSocial</category><category>PHP</category></item><item><title>ケータイ向け OpenSocial プラットフォーム「gumi Platform」
</title><link>http://yamashita.dyndns.org/blog/opensocial-gumi-platform/</link><description>&lt;p&gt;先日、&lt;a href="http://gu3.jp/" target="_blank"&gt;モバイルSNS「gumi」&lt;/a&gt;が日本初となる携帯電話向けOpenSocialプラットフォームをリリースしました。実は、私もOpenSocialエンジン部分の開発に企画段階から関わっています。もともと gumi は、&lt;a href="http://d.hatena.ne.jp/perezvon/" target="_blank"&gt;id:perezvon&lt;/a&gt; が Django で構築したサイトで、 OpenSocial エンジンの部分も Python で書いています。今回リリースされた gumi Platform の特徴としてはこんな感じです。&lt;/p&gt;

&lt;a href="http://gu3.jp/platform.html" target="_blank"&gt;&lt;img src="http://gumi.googlecode.com/files/gumi_platform.gif" style="border:none" /&gt;&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;RESTful API ベースで JavaScript および IFRAME は使用しない（というか使えない）&lt;/li&gt;
&lt;li&gt;APIへのアクセス制御には OAuth を採用&lt;/li&gt;
&lt;li&gt;Viewer, Owner, Friends 情報を利用してソーシャル・アプリケーションを構築可能&lt;/li&gt;
&lt;li&gt;文字コードは UTF-8 を使用&lt;/li&gt;
&lt;li&gt;絵文字はドコモのUnicodeテキスト形式で記述し、他キャリア向けに自動変換&lt;/li&gt;
&lt;li&gt;ホスティング環境として Google App Engine も利用可能（当然それ以外もOK）&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;

&lt;p&gt;下の画像を見てもらえれば、仕組みはイメージしてもらえると思いますが、携帯電話なので JavaScript が使えません。そこで、サードパーティ側から受け取った XML を gumi Platform 側で一枚の HTML にレンダリングして携帯電話に返すような構成になっています。&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="http://gumi.googlecode.com/files/gumip.png" style="border:none" /&gt;&lt;/div&gt;

&lt;p&gt;詳しくは、 Google Code にドキュメントがあるのでそちらを参照してください。&lt;/p&gt;

&lt;p style="margin-left:20px"&gt;&amp;raquo; &lt;a href="http://code.google.com/p/gumi/"&gt;gumi - Google Code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;gumi Platformのリリースと前後して、2つほど検定/占い系のアプリも公開したのですが、一気にアクセスが来て大変な事になりました。やはりまだまだ世間はケータイなんだと実感しました。私も発売日に iPhone を手に入れたくちなのですが、使い勝手や安定性の点からいうと日本の携帯電話に一日の長がある感じがします。今は少し落ち着いたのですが、 Google App Engine のコンソールで見るとこんな感じです。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Google App Engine','/media/images/blog/080821_gumi.png')"&gt;&lt;img src="/media/images/blog/080821_gumi_s.png" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;実際にソーシャルなアプリケーションを作ろうとすると、 OAuth の部分とかがかなり面倒くさいです。そこで、 Python 用には自動で OAuth 認証をして gumi API にアクセスするようなヘルパーライブラリを用意しています。他の言語用にも同様のライブラリも用意したいのですが、諸般の事情により今はそこまで手が回りません。&lt;/p&gt;

&lt;p&gt;一番欲しいのはPHP用のライブラリなのですが。うーん、誰か作ってくれないかな…&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PA7FKfw_MnA:saO4ViBRCtA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PA7FKfw_MnA:saO4ViBRCtA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=PA7FKfw_MnA:saO4ViBRCtA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=PA7FKfw_MnA:saO4ViBRCtA:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=PA7FKfw_MnA:saO4ViBRCtA:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 21 Aug 2008 23:55:30 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/opensocial-gumi-platform/</guid><category>お仕事</category><category>OpenSocial</category><category>Django</category></item><item><title>iPhone 3G と Google カレンダーを自動プッシュで同期する NuevaSync
</title><link>http://yamashita.dyndns.org/blog/iphone-google-calendar-nuevasync/</link><description>&lt;div align="center"&gt;&lt;img src="/media/images/blog/080807_nuevasync.png" alt="NuevaSync" style="border:none" /&gt;&lt;/div&gt;

&lt;p&gt;しばらく前から &lt;a href="https://www.nuevasync.com/" target="_blank"&gt;NuevaSync&lt;/a&gt; を使って、iPhone のカレンダーと Googleカレンダーを同期しているのですが、これが大変便利です。MobileMe と同様にプッシュ式で OTA（over-the-air）同期させることができます。JailBreakの必要もなくて、しかも無料！！ PCから Googleカレンダーに予定を入力すると、数分後には勝手に iPhone 上のカレンダーにも取り込まれているイメージ。もちろん、その逆もできて、出先でiPhoneに予定を入力して、会社や家に戻って PC から Googleカレンダーを見ると、新しい予定が反映されています。&lt;/p&gt;

&lt;p&gt;Googleカレンダーだといろいろなサービスと連携できて使い勝手がいいので、年間9,800円も払って MobileMe に入る必要はないんじゃないかと思います。昔から同期フェチの僕は、&lt;a href="http://www.plaxo.com/" target="_blank"&gt;Plaxo&lt;/a&gt;を使って、Googleカレンダー経由で Palm や携帯電話、その他のサービスと連携させています。今回、NuevaSyncのおかげでiPhoneをその仲間に加えることができました。現状の課題は、iPhone に標準搭載のカレンダーの使い勝手があまり良くないことでしょうか。Agendus 等のサードパーティ製品が出てくるのが待ち遠しいです。&lt;/p&gt;

&lt;p&gt;それでは、実際に NuevaSync の設定方法を説明していきましょう。&lt;/p&gt;

&lt;h3&gt;1. NuevaSyncにユーザ登録する&lt;/h3&gt;

&lt;p&gt;まず NuevaSync のユーザ登録を行います。&lt;br /&gt;
&lt;a href="https://www.nuevasync.com/PublicSite/self-signup.htm" target="_blank"&gt;ユーザ登録画面(Signup)&lt;/a&gt;を開いて、必要な情報を入力します。&lt;br /&gt;
&lt;span style="font-weight:bold"&gt;※ここで入力するユーザ名とパスワードは、iPhoneからNuevaSyncへのアクセス用でGoogle用のID/パスワードを入力する必要はありません。&lt;/span&gt;&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="/media/images/blog/080807_nuevasync01.png" alt="NuevaSync" /&gt;&lt;/div&gt;

&lt;p&gt;入力したアドレスにメールが届くので、記載されているリンクをクリックして NuevaSync にログインします。&lt;/p&gt;

&lt;h3&gt;2. Googleアカウントの設定&lt;/h3&gt;

&lt;p&gt;ログイン後のメニュー画面にて Calendar の"change"をクリックして、「Google Calendar」を設定します。次に"setup"をクリックすると、Googleカレンダーのアカウントを聞かれるので、登録しているメールアドレスを入力します。&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="/media/images/blog/080807_nuevasync02.png" alt="NuevaSync" /&gt;&lt;/div&gt;

&lt;p&gt;すると、下の画面のように、アクセスを許可するかと聞かれるので、「Grant access」をクリックします。&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="/media/images/blog/080807_nuevasync03.png" alt="NuevaSync" /&gt;&lt;/div&gt;

&lt;p&gt;次のように Calendar のところが緑色に点灯すれば成功です。&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="/media/images/blog/080807_nuevasync04.png" alt="NuevaSync" /&gt;&lt;/div&gt;

&lt;h3&gt;3. iPhone 側の設定&lt;/h3&gt;

&lt;p&gt;次に iPhone 側の設定を行います。&lt;br /&gt;
[設定]-[メール/連絡先/カレンダー]-[アカウントを追加]を開きます。&lt;/p&gt;

&lt;p&gt;"Microsoft Exchange"を選択します。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080807_nuevasync05.png')"&gt;&lt;img src="/media/images/blog/080807_nuevasync05s.png" alt="NuevaSync" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;NuevaSyncのユーザ登録時に入力した、メールアドレス、ユーザ名、パスワードを入力します。ここで、「証明書を検証できません」と表示されますが、気にせずに「了解」ボタンを押します。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080807_nuevasync06.png')"&gt;&lt;img src="/media/images/blog/080807_nuevasync06s.png" alt="NuevaSync" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;「次へ」ボタンを押します。&lt;/p&gt;

&lt;p&gt;「サーバ」欄に"www.nuevasync.com"と入力して、「次へ」ボタンを押します。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080807_nuevasync07.png')"&gt;&lt;img src="/media/images/blog/080807_nuevasync07s.png" alt="NuevaSync" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;利用するサービス選択画面では、カレンダーのみオンにして、それ以外はオフします。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080807_nuevasync08.png')"&gt;&lt;img src="/media/images/blog/080807_nuevasync08s.png" alt="NuevaSync" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;「保存」ボタンを押します。&lt;br /&gt;
"既存のカレンダーがiPhoneから取り除かれます"というメッセージが表示されるので、「同期」ボタンを押します。これはiPhoneの仕様のようで、プッシュ同期を有効にするとiTunes経由でのカレンダー同期が無効になります。（※
MobileMeのカレンダーとは共存可能なようです）&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080807_nuevasync09.png')"&gt;&lt;img src="/media/images/blog/080807_nuevasync09s.png" alt="NuevaSync" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h3&gt;4. 時間帯サポートの無効化&lt;/h3&gt;

&lt;p&gt;[設定]-[メール/連絡先/カレンダー]の画面に戻って、一番下の「時間帯サポート」を押します。ここで「時間帯サポート」をオフにします。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080807_nuevasync10.png')"&gt;&lt;img src="/media/images/blog/080807_nuevasync10s.png" alt="NuevaSync" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;以上で Googleカレンダーと iPhone の同期設定は完了です。試しに Googleカレンダーに予定を登録してみてください。数分後には、iPhone にも反映されるはずです。&lt;br /&gt;
私はまだ試していませんが、設定項目を見ると分かるとおり、カレンダーの他に連絡先の同期にも対応しています。 Email および ToDo については、今後対応予定とのことです。また、&lt;a href="https://www.nuevasync.com/faq.html" target="_blank"&gt;FAQページ&lt;/a&gt;には、今後もずっと無料で提供すると書かれており、有料のプレミアムサービスも計画しているそうです。&lt;/p&gt;

&lt;p&gt;（&lt;a href="http://www.flickr.com/photos/weboo/2739510646/"&gt;おまけ&lt;/a&gt;）&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=2wffpuroWkE:atxg8VQQq8Q:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=2wffpuroWkE:atxg8VQQq8Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=2wffpuroWkE:atxg8VQQq8Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=2wffpuroWkE:atxg8VQQq8Q:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=2wffpuroWkE:atxg8VQQq8Q:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 07 Aug 2008 03:37:55 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/iphone-google-calendar-nuevasync/</guid><category>iPod/iPhone</category></item><item><title>iPhone 3G の Jailbreak
</title><link>http://yamashita.dyndns.org/blog/iphone-3g-jailbreak/</link><description>&lt;p&gt;&lt;a href="http://blog.iphone-dev.org/post/42858313/thanks-for-waiting"&gt;PwnageTool&lt;/a&gt; の iPhone 3G に対応した最新版がリリースされたので、試してみました。DFUモードへの移行にちょっと手間取りましたが、専用ツールであっという間に完了。初めて iPod touch を Jailbreak した時は全部手動でやったので、隔世の感がありますね。&lt;/p&gt;

&lt;p style="text-align:center;margin:15px 0"&gt;&lt;a href="javascript:tb_show('Pwnage','/media/images/blog/080720_pwnage.png')"&gt;&lt;img src="/media/images/blog/080720_pwnage_s.png" style="border:none"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;手順としては、iPhoneを接続した状態でPwnageToolを起動します。途中でいくつか質問をされるのですが、ここは次のように答えればOKです。&lt;br /&gt;
「Are you legit iPhone 3G user?」→ Yes&lt;br /&gt;
「Has your iPhone been Pwned before?」→ No&lt;br /&gt;
次にファームウェアをリカバリするために iPhone をDFUモードにする必要があるのですが、画面に表示されるタイミングで指示通りにボタンを押していきます。まず、スリープボタンを長押しして電源を切ります。次にホームとスリープボタンを同時に長押しして10秒したら、スリープボタンのみ離します。さらに10秒経つと Success と表示されるので、 PwnageTool は終了します。&lt;/p&gt;
&lt;p&gt;最後に iTunes から復元をします。ここでは、 Option キーを押しながら「復元」ボタンを押して先ほど作成したデスクトップにある ipsw ファイルを指定する必要があります。しばらく待てば、 Jailbreak したファームウェアで起動してくるはずです。この状態で同期すると、音楽ライブラリや設定等を Jailbreak 前の状態に戻せるので、もう一度すべて設定し直すといった面倒な作業は必要ありません。&lt;/p&gt;

&lt;p style="text-align:center;margin:15px 0"&gt;&lt;a href="javascript:tb_show('Custom Logo','/media/images/blog/080720_customlogo.png')"&gt;&lt;img src="/media/images/blog/080720_customlogo_s.png" style="border:none"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;普通にやると起動時のロゴがパイナップルになってしまうので気になる人は、Expert mode にして Custom logos settings のチェックを外してやるといいです。自分で画像を用意して好きなものに変更することもできます。（&lt;b&gt;追記：&lt;/b&gt;Expert mode の場合、General-&gt;Activate iPhone のチェックを外さないと電話機能が使えなくなります。注意！）&lt;/p&gt;

&lt;p&gt;Cydia という専用のインストーラがホーム画面に現れて、ここから各種ソフトウェアをインストールすることができます。とりあえず僕は、いろいろいじるのに必須の MobileTerminal と OpenSSH をインストールしました。&lt;/p&gt;

&lt;p style="text-align:center;margin:15px 0"&gt;&lt;a href="javascript:tb_show('Home','/media/images/blog/080720_jailbreak.png')"&gt;&lt;img src="/media/images/blog/080720_jailbreak_s.png" style="border:none;margin-right:20px"&gt;&lt;/a&gt;
 
&lt;a href="javascript:tb_show('Terminal','/media/images/blog/080720_terminal.png')"&gt;&lt;img src="/media/images/blog/080720_terminal_s.png" style="border:none"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p style="text-align:center;margin:15px 0"&gt;&lt;a href="javascript:tb_show('Cydia Top','/media/images/blog/080720_cydiatop.png')"&gt;&lt;img src="/media/images/blog/080720_cydiatop_s.png" style="border:none;margin-right:20px"&gt;&lt;/a&gt;
 
&lt;a href="javascript:tb_show('Scripting','/media/images/blog/080720_scripting.png')"&gt;&lt;img src="/media/images/blog/080720_scripting_s.png" style="border:none"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;※ PwnageTool は、まだ Mac 版しか出ていませんが、ファームウェアを作成するところだけ Mac で行えばよいので、 ipsw ファイルだけ Windows に持ってきて復元することも可能です。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=q41OsH5NwVU:O8Eh9S5-62o:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=q41OsH5NwVU:O8Eh9S5-62o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=q41OsH5NwVU:O8Eh9S5-62o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=q41OsH5NwVU:O8Eh9S5-62o:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=q41OsH5NwVU:O8Eh9S5-62o:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Sun, 20 Jul 2008 17:57:54 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/iphone-3g-jailbreak/</guid><category>iPod/iPhone</category></item><item><title>iPhone が流行るわけがない、最終的に流行るのは…
</title><link>http://yamashita.dyndns.org/blog/japanese-phone-not-iphone/</link><description>&lt;p&gt;巷で iPhone が話題です。僕も発売初日に手に入れたのですが、前々から iPod touch を使っていたこともあり、使い勝手も含めて特に予想外な点はありませんでした。初めて iPhone(2G) を触ったのは、&lt;a href="http://d.hatena.ne.jp/wa-ren/" target="_blank"&gt;キャズムを超えろ！&lt;/a&gt;の人がウノウに持ってきてくれた時なのですが、確かにその時は指で操作するインタフェースに感動しました。PC用のWebサイトを見たり、動画を見たりとエンターテイメント端末という意味では本当に素晴らしいです。しかし、僕がメインの使い方だと思っているコミュニケーション端末としては、文字入力に改善の余地があって、まだまだその分野のエキスパートである女子高生の使用に耐えうるものではないと感じました。&lt;/p&gt;

&lt;div align="center"&gt;&lt;a href="http://www.flickr.com/photos/weboo/2677489648/" title="iPhone in  Japan by weboo, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3147/2677489648_ab5cd771ef.jpg" width="500" height="334" alt="iPhone in  Japan" style="border:none" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;しかし、もちろんこの日本市場に iPhone が登場したことの意義は理解しているつもりで、僕が iPhone（とこれから登場するAndroid）に期待していることは次の4点です。&lt;/p&gt;

&lt;ol style="font-size:110%;font-weight:bold;border:1px dotted gray;padding-top:15px;padding-bottom:15px"&gt;
&lt;li&gt;日本のキャリア主導型ビジネスの終焉&lt;/li&gt;
&lt;li&gt;アプリケーションの自由化&lt;/li&gt;
&lt;li&gt;PCからモバイルへの主役交代&lt;/li&gt;
&lt;li&gt;日本の携帯電話メーカーの海外進出&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.アプリケーションの自由化に関しては、残念ながら iPhone では実現できません。勝手アプリは許可されていないので、必ずアプリケーションは App Store を通して配布しなければなりません。この App Store では売上げの30%を手数料としてアップルに納める必要があります。また、App Store で配布するに当たっては iPhone Developer Program に登録をしなければならず、たとえ公開しようとするアプリケーションが無料だったとしても10,800円を払ってデベロッパー登録をする必要があります。前に&lt;a href="/blog/yapc-asia-2008-cloud-computing/"&gt;「クラウドコンピューティングは現代の小作農か？」&lt;/a&gt;という話を書きましたが、この&lt;b&gt;アップルが提示している仕組みこそ現代の小作農&lt;/b&gt;です。&lt;/p&gt;

&lt;p&gt;3.PCからモバイルへの主役交代は、日本では既に起こっています。総務省の調査によると、今やケータイからのネット利用がパソコンを上回っているそうです。今後はこの主役交代が世界規模で起こっていくものと思われます。世界の数十億人がいつでもどこでもインターネットに繋がる未来には非常にワクワクします。&lt;br /&gt;
昨年、インターネットの世界では、ブログ → Twitter というツールの変遷によって&lt;b&gt;「他人の脳みそとの距離」&lt;/b&gt;が劇的に縮まりました。この距離は今後さらに縮まっていくものと思われ、それを後押しするために必要なのがより使いやすいモバイル端末です。 iPhone は現時点ではそれにかなり近いと思いますが、まだ完全ではありません。&lt;/p&gt;

&lt;p&gt;4.日本の携帯電話メーカーの海外進出について。日本の携帯市場は鎖国だガラパゴスだと言われています。確かに、たかだか一億人のマーケットで既に市場は飽和状態、海外に進出するにしてもGSMとPDCの通信方式の違いから今までは海外展開することはできませんでした。 iPhone の参入は驚異だと言われていますが、この仕上がり具合とクローズさを見るに日本の携帯電話メーカーにとって逆にチャンスなのではないかという気がしています。&lt;br /&gt;
1.日本のキャリア主導型ビジネスの終焉とも関わってくるのですが、W-CDMA + Andorid というグローバルスタンダードなプラットフォームの上で携帯電話メーカー主導で端末を作る。小型電子機器は日本人の得意とするところで、これだけで世界中で売れる可能性が広がります。同時に Android, WebKit というグローバルスタンダードは、日本のアプリ開発会社やコンテンツホルダーの海外進出も可能にしてくれます。日本のゲームアプリや漫画ビューワーなんかは、あっという間に広がっていくのではないでしょうか。&lt;/p&gt;&lt;br /&gt;

&lt;hr style="height:1px;width:80%" /&gt;

&lt;p&gt;&lt;br /&gt;最近のWeb界隈では、 iPhone は日本で流行るか流行らないかという議論が繰り広げられていましたが、もううんざりです。はっきりと言います。iPhone は流行りません。一時的に流行ったとしても最終的には日本のケータイが世界中で使われるようになります。そう自動車やデジタルカメラのように。&lt;/p&gt;

&lt;p&gt;&lt;b&gt;「日本の製品が売れないと僕らの生活は豊かにならない」&lt;/b&gt;ということをもっと真剣に考える必要があると思います。日本人は海外ブランドに弱くて、すぐに水戸黄門の印籠よろしく「ははーっ」となってしまいますが、本当は日本製品を誇りを持って買うべきです。もし、海外製品よりも劣っているところがあればメーカーに訴えるべきだし、メーカー側もやらせのブログ・マーケティングとかしている暇があったら、もっとケータイ先進国である消費者の意見を聞くべきです。&lt;/p&gt;

&lt;p&gt;近年のクラウド・コンピューティングの発達と iPhone や Android といったモバイル端末はとても相性が良いです。僕はこれからの10年はこの分野で仕事をしていくことに決めました。日本のケータイが世界中で使われるその日に向けて。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=_f_FpGfDpIo:yD1JCW1IN7A:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=_f_FpGfDpIo:yD1JCW1IN7A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=_f_FpGfDpIo:yD1JCW1IN7A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebooReturns-Blog?a=_f_FpGfDpIo:yD1JCW1IN7A:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebooReturns-Blog?i=_f_FpGfDpIo:yD1JCW1IN7A:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Fri, 18 Jul 2008 00:11:09 +0900</pubDate><guid isPermaLink="false">http://yamashita.dyndns.org/blog/japanese-phone-not-iphone/</guid><category>iPod/iPhone</category></item></channel></rss>
