3次元版Twitearth この星のつぶやき

Twitterのつぶやきのうち、位置情報の付いているものの一部を翻訳して表示するWebアプリを作ったら、

TwitearthというよりもTwitmapですね

と言われてしまいました。たしかに、2次元的に表示するGoogle Mapsと3次元的に表示するGoogle Earthとの関係から言えば、あれはTwitmapになるのかもしれません。でも、閲覧者の環境にGoogle Earth Pluginがインストールされていれば、下の動画のように3次元的な表示が可能です。

iPhone問題は、Google Earth Pluginが動く環境が限られていることです。Windowsでは、IEとFirefox、Chrome、MacではFirefoxとChrome、Safariで動きます。iPhoneのSafariでは動きません。特に、TwitearthはIEでは動かないので、Windowsは結局FirefoxとChromeだけになります。個人的にはこれで十分なのですが、一般的にはまずいと思うので、起動時は2次元的な(つまりMapsの)表示にしてあるのです。2次元的な表示なら、iPhoneも含めたたいていの環境で動くでしょう。

3次元的な表示にしたい場合は、Google Earth PluginをインストールしてからTwitearthを開いて、「Earth」をクリックしてください。ブラウザをフルスクリーン表示にしてぼーっと眺めるのがおすすめです。

もう一つ、

なんでTwitterのアカウント情報が必要なの?

という問い合わせもありました。

現在は、実装を単純にするために、Twitter Streaming APIへのリクエストをユーザごとに行っています。Streaming APIへのリクエストは、1アカウントにつき1つまでなので、私のアカウントを使い回すわけにはいきません(リクエストが重複すると、古いほうが切断されます)。そのため、ユーザごとのアカウント情報が必要なのです。ユーザごとのストリーミングデータを、現在はサーバで中継していますが、JavaScriptでストリーミングAPIをうまく使う方法がわかれば、今の実装をそのまま移行します。それに期待しているので、今すぐに複雑な実装を試すつもりはありません。ですから、申し訳ないのですが、このアプリを許可してください。許可は恒久的なものではなく、Twitterの連携アプリ確認ページで簡単に取り消せます。

お約束ですが、こういう話を基本から学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。

Twitearth この星のつぶやき

宇宙からつぶやくことができるのに、つぶやきに付ける位置情報が「緯度・軽度」ではまずいだろうと思う今日この頃ですが、「緯度・軽度」の情報を持ったつぶやきが、リアルタイムに日本語に(やや無理に)訳され、表示されるようになっています。

Twitearth(Twitterのアカウントで許可してもらう必要があります。許可は、Twitterの連携アプリの確認ページで簡単に取り消せます。)

2010年6月27日(日)の夕方(日本時間)にしばらく動かすと下のようになりました。Twitterが普及していない、位置情報を付加できる端末が少ない、位置情報をつけ(たく)ない人が多い、みんな寝てる、などの理由(?)でつぶやきの少ない地域があります。

Twitearth

補足

  • 翻訳先の言語はブラウザの設定によります。例えば、ブラウザの設定をフランス語にしていれば、つぶやきはフランス語に訳されます。
  • 詳細は「Twitter とGoogleマップ, Google翻訳」を参照。
  • FirefoxやChrome、Safari、Operaで動作を確認しています。Internet Explorerでは動きません。
  • 対象にしているのはTwitterの全つぶやきのごく一部、何もせずにhttp://stream.twitter.com/1/statuses/sample.json で取得できるもののうち、位置情報がついているもののみです。
  • 非力なサーバでストリーミングをしているので、アクセスが多いときっとだめになります。
  • 「宇宙からつぶやく」という表現において、「宇宙」には大気圏内は含まれません。
  • 宇宙(というか大気圏外)からの最初のつぶやきには、位置情報は含まれていません。

3次元版Twitearth この星のつぶやき

お約束ですが、こういう話を基本から学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。

TwitterとGoogleマップ, Google翻訳

Twitearth

Twitterに流れ込み、はき出される膨大な情報を、エンドユーザ向けのエンタメに生かせないものか。Twitterのつぶやきには位置情報を付加できるのだが、今日現在、位置情報が付加されているつぶやきは、全体の0.5%程度しかない。特別な手続きなしにTwitterから取れるつぶやきの0.5%程度なら、地図上でリアルタイムに配置していくことができるだろう。ついでに、外国語が苦手な人向けに、すべてのつぶやきは日本語に訳しておこう。

厳密に言えば、翻訳先の言語はつねに日本語というわけではなく、ブラウザの言語設定にあわせている。たとえば、ブラウザの言語設定を英語にしているユーザが相手なら、すべてのつぶやきを英語に訳しておくのが親切だろう。

これはいわゆるマッシュアップというやつだが、使っているサービスは以下の通り。

適当なサーバがあれば、認証方法をOAuthに変えて公開する。

公開した:Twitearth この星のつぶやき

お約束ですが、こういう話を基本から学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。

CodeZineの連載「PEARライブラリ活用」が終了

PHPのPEARライブラリを紹介した連載が終わりました。

基礎的なことに絞って書くつもりでしたが、Amazon Web Serviceについて書いたものが最もブックマークを集めているのはちょっと皮肉な感じがします。PHPプログラマの平均的な興味と私の興味がずれているのだと素直に解釈しましょう。

  1. PHPにおける日付と時刻の混乱
  2. I18Nv2による日時と通貨・数値の表記国際化
  3. PHPにおけるグラフ描画とアルゴリズム
  4. PEAR MDB2でPHPからデータベースを操作する
  5. PHPにおけるUnicode文字列の正規化
  6. Fibonacci数の計算で学ぶ、PHPでの多倍長整数の扱いとベンチマーク方法
  7. PHPでAmazon Web Servicesを利用する
  8. Gettextによるウェブアプリケーションの国際化と地域化
  9. Math_Vector/Math_Matrixによるベクトルと行列の操作方法
  10. PHP_LexerGeneratorとPHP_ParserGeneratorを利用してPHPで独自の言語を実装する方法

CodeZineは一つの記事についてURLを作りすぎている気がします。CodeZineもはてなも、正規化タグに対応すべきだと思います。

Gettextによるウェブアプリケーションの国際化と地域化

「PHPでお手軽プログラミング」という向きには受けないだろうなあと思いながら、PHPのウェブアプリケーションで、メッセージ文字列を国際化・地域化する方法を説明しました。

Gettextによるウェブアプリケーションの国際化と地域化

Inside Linux Software オープンソースソフトウェアのからくりとしくみもともと、アプリケーションの国際化・地域化には、gettextを使う方法が広く普及していて、この記事も、PHPをgettextの枠組みに当てはめる方法を説明しているだけです。Gettext自体についてはあまり詳しく説明していません。よく知らない人には、佐藤 竜一『Inside Linux Software オープンソースソフトウェアのからくりとしくみ』がお勧めです。この本では、gettextの他にも、「Unix系のものを長く使っている人にとっては当たり前のことだけど、そうでない人はどこで学ぶものなのだろう」というような事柄が丁寧に説明されています。構成は以下のとおり。

  1. プログラムのコンパイルとリンク(C言語)
  2. ビルドの自動化とautotools (Autoconf, Automake, Libtool)
  3. ソフトウェアの国際化 (gettext)
  4. パッチの作成と適用 (diff, patch)
  5. ドキュメントの記述 (manpage, info, DocBook)
  6. RPMによるソフトウェア管理