Tender Surrender

これまで公開していたOpenSocial RESTful API Proposalの翻訳を、OpenSocial v0.8仕様のリリースで公開されたOpenSocial RESTful API Specificationに置き換えました。

ただし部分更新処理の項目についてはTBD(To Be Determined)のままになっています。問い合わせしているので、最新版に更新され次第アップします。

Read on...

OpenSocial v0.8のRESTful API仕様では、オートディスカバリにXRDS-Simpleを利用するよう規定されています。

他方、OpenSocial v0.8で利用されるRESTful APIはAtomPub形式となっており、AtomPubではService Documentを利用するよう規定されています。

これではコンテナサイトがどちらを使うのか、両方使うべきなのか疑問が残ってしまいます。この件について、Google GroupsのOpenSocialの仕様を検討するグループ質問を投げてみました。

質問

コンテナサイトはAtomPubのService DocumentとXRDS-Simple、どちらを採用すべきなのでしょうか?両方サポートすべきでしょうか?

David Primmer氏の回答

AtomPubのService DocumentはURLの一部をテンプレート的に定義して変数を当てはめる用途には向いていない。ある程度固定されたURL上で指定することを想定されているようだ。
その点、XRDS-Simpleは空白に値を埋める形でURLをディスカバリできる点で優れている。

この点に関しては、AtomPubのPerlライブラリを実装されたたけまるさんも指摘されていて、XRDS-Simpleを利用する方が合理的であるという点では一致しています。

ただ、仕様に適合しないという意味では気持ちの悪いものであることは間違いなく、この点をどこかで解決できないかと考えています。先ほど紹介したGoogle Groupsで「AtomPubの仕様作成者に仕様変更の提案を行う予定はあるか」との質問を投げたのですが、その後応答はありません。

現時点でRod Yatesという方からこちらの仕様書から適用できるのではないかとの提案を頂いているので、AtomPub識者の方と相談して何かしらの働きかけを行っていこうと思います。

Read on...

OpenSocialのコンテナと言えばShindigですが、PHP版は既にOpenSocial v0.7への対応を完了しています。Partuza!はPHP版Shindigの開発者であるChris Chabot氏がオープンソースで開発したShindig対応SNSです。

Shindigがコンテナなのに、じゃあPartuza!は何をするの?と思われるかもしれません。今回はインストール方法と、Shindigとの関係について解説します。

Partuza!をインストールする

Shindigのインストール方法は以前解説しましたので、ここでは割愛します。仮に、Shindigが~/shindig配下にインストールされ、http://localhost:8080/gadgets/…でアクセスできるものとします。

まず、環境としてApache、PHP5(要mcrypt)、MySQL5が必須となります。

レポジトリからチェックアウト

Google CodeのレポジトリからSVNでチェックアウトします。

> svn checkout http://partuza.googlecode.com/svn/trunk/ ~/partuza

データベースを用意

適当なデータベース名、ユーザー名、パスワードで空のDBを作ってください。ひとまずここではそれぞれ、partuza、root、パスワードなしとします。この状態で、~/partuza/partuza.sqlをダンプします。

> mysql -u root partuza < partuza.sql

DocumentRootを設定

Apacheの設定(httpd.conf)でDocumentRootを~/partuza/htmlに設定し、http://localhost/でアクセスできるようにします。もちろん、Shindigとは別ドメインを用意する必要がありますので、バーチャルホストを使う等してください。

設定ファイルを修正

~/partuza/html/config.phpを編集します。ここでは先程作成したデータベース関連の情報とガジェットサーバーのルートURL(gadget_server)を設定します。ガジェットサーバーのURLが、ここではShindigのURLとなりますので、http://localhost:8080/になります。

データベースハンドラをコピー

~/partuza/Shindig/PartuzaDbFetcher.phpと~/partuza/Shindig/PartuzaHandler.phpを~/shindig/php/src/socialにコピーします。

> cp ~/partuza/Shindig/Partuza* ~/shindig/php/src/social

Shindigのデータベース設定を修正

~/shindig/php/src/social/PartuzaDbFetcher.phpにもデータベース関連の情報があるので修正します。加えてShindigがデータベースハンドラを利用するよう、~/shindig/php/config.phpも修正します。ここでは、”handlers => PartuzaHandler”としてください。

これで一通りの準備は完了。http://localhost/にアクセスしてウェルカム画面が出れば成功です。このまま登録し、Orkutライクな一般的なSNSとして利用することができます。

Partuza!とShindigの関係

OpenSocialのガジェットがiframeを介して表示されていることは以前も解説しましたが、簡単に言ってしまえば、iframeの手前がPartuza、後ろがShindigになります。Shindigでは以前から下記のURLにアクセスすることで簡易的なHTMLからOpenSocialぽい表示を行うことはできていましたが、Partuzaを使うことで完全なSNSとなります。

http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.html

とはいえ、PartuzaHandlerを指定したところからも想像できるように、データベースは共有されます。なお、Chris Chabot氏のサイトで実際に動いているものを確認することができます。

Partuza!を使うことで、どうすればShindigをSNSに組み込むことができるかの解析をすることができるだけでなく、そのままちょっとしたSNSを開発することもできてしまいます。ぜひお試しください。

Read on...

OpenSocialコンテナにもOrkut, hi5, MySpaceだけでなく、iGoogle, hyves, Netlogなどが登場してきました。

それぞれのSNSには特徴がありますが、仕様をいちいち調べたり、開発に当たって動作確認を行うのは面倒です。現在OpenSocial v0.8は登場したばかりということもあり、ほとんどがv0.7対応のものですが、v0.7への対応状況を確認できるガジェットというのがあります。

http://opensocial-resources.googlecode.com/svn/tests/trunk/compliancetests.xml

これで開発も少しは楽になるのではないでしょうか。

Read on...

ことえり変換

変換中に

  • Ctrl + j : ひらがなに変換
  • Ctrl + k : カタカナに変換
  • Ctrl + l : 全角英数に変換
  • Ctrl + ; : 半角英数に変換

カーソル移動等

Vimと違うので使いやすくはないけど・・・

  • Ctrl + p : 上
  • Ctrl + n : 下
  • Ctrl + b : 左
  • Ctrl + f : 右
  • Ctrl + k : 行削除
  • Ctrl + y : ペースト
  • Ctrl + a : 行先頭に移動
  • Ctrl + e : 行末に移動

キャプチャ

Command + Shift + 3で全画面キャプチャは言うまでもないけど、

Command + Shift + 4で範囲指定キャプチャ。キャプチャしたい範囲をドラッグしながら

  • Space : キャプチャ範囲をそのまま移動
  • Shift : カーソルを動かした方向以外を固定して領域を変形させる
  • Option : 領域の中心を基点に形を変形させる
  • Ctrl : キャプチャ範囲をクリップボードにコピー
  • Esc : キャプチャをキャンセル

QuickLook

画像QuickLookで

  • Option + クリック : 拡大
  • Option + Shift + クリック : 縮小
  • Option + ホイール : 拡大/縮小

PDFQuickLookで

  • Command + プラスキー(Command + Shift + ;) : 拡大
  • Command + マイナスキー : 縮小

Dashboard

Optionを押しながらマウスオーバーでウィジェット削除の×印が出る(いちいち画面左下の+をクリックしなくてよい)

その他

  • Ctrl + Shift + Eject : ディスプレイを切る
  • Command + Option + Esc : 強制終了
  • Command + Option + Ctrl + Eject : OSシャットダウン**
  • Ctrlを押しながらマウスホイールをグリグリ : 画面の拡大/縮小(結構感動的)**
  • SafariのタイトルバーをCommand + クリック : 同じサイトのURLを上位階層に移動
  • (たぶん全てのアプリで)Command + F1 : 同じアプリのウィンドウを順番に行き来

その他、集めたTipsの参考サイトはこちらに色々あります

Read on...