タグ

ブックマーク / devlog.agektmr.com (24)

  • HTML5時代の広告を考えた:HTML5でソーダ – Tender Surrender

    ちょっと前になりますが、ThinkMobile2011というイベント向けに制作したHTML5製ソーダ缶のデモをご紹介します。 担当の方から、広告主向けにHTML5を使ったスマートフォン広告の新しい形を紹介したいので、何かアイディアはないかと依頼を受けました。技術的にHTML5の何かを使った広告を作ること自体は難しくないかもしれませんが、イベントのデモとして見せるということで、ある程度の派手さとHTML5ならではという部分のわかりやすさが要求されたため、アイディア出しそのものに最も時間を割きました。 コンセプト ネイティブアプリケーションにできてウェブアプリケーションにできないことはまだまだ多いですが、いかにネイティブアプリケーションに近づけるか、という部分がHTML5の醍醐味でもあります。逆にウェブアプリケーションのネイティブアプリケーションに対するアドバンテージに、インストール無しでさら

  • Tender Surrender » Googleに転職します

    今の会社に勤め始めて、はや4年8ヶ月が経過しました。 ポータルサイトをまるごとソーシャル化したいとの野望を持って入社し取り組んだプロジェクトでは、サービスを跨いだプロフィールやソーシャルグラフの共有、日初のPC向けOpenSocialコンテナの実装など、他の会社ではなかなかできないであろう体験をさせてもらいました。またその間、OpenSocialのGoogle API Expert就任とコミュニティの運営、Shindigのコミッター就任、SocialWeb Japanの運営など、ディベロッパー・エヴァンジェリストとしての活動も並行して行って来ました。まさにソーシャルウェブ馬鹿な数年間だったと思います。 一方世間はというと、日では昨年からmixiやモバゲー、GREEYahoo!といった巨大サイトが次々とソーシャルアプリに対応、市場も生まれ、まさにゴールドラッシュ。海外ではFaceboo

    mainyaa
    mainyaa 2010/05/31
  • Tender Surrender » Google Chrome Extension “Social Graph Analyzer”を公開

    Mac版でもDevチャンネルでExtensionが使えるようになったことから、最近Google Chromeを使い始めました。Safariにはない拡張性と、Firefoxに勝る軽快さ・スピードを兼ね備えた、将来性の高いブラウザだと思います。とても使い勝手が良く、すでにメインブラウザとなりつつあります。さすがGoogleですね。 さて、そんなGoogle Chromeですが、Extensionの開発が簡単そうだったので、試しに作ってみました。それがSocial Graph Analyzerです。 使い方 インストールすると画面の右上に人のアイコンが出ます。使い方は、これを気になる人のプロフィールページでクリックするだけ。どのサービスのプロフィールページかは問いません。クリックすると、噴出しがポップアップし、その人が利用している他のサービスが表示されます。もちろん、サービスのURLはリンクにな

    mainyaa
    mainyaa 2010/01/14
    これはいい
  • Tender Surrender » 個人名刺作りました

    プライベートのブログに書いてた内容ですが、ぜひ紹介したいのでこちらにも。 勉強会などによく行くようになって、前々から個人名刺が欲しいとずっと思ってました。かといってよくある小さいサイズのはヤだし、名刺を作ってくれるサービスはたくさんあるのでなかなか手を付けられず・・・そんな時に見つけた記事がこれ。 ブロガー名刺、送料込みで1000円じゃすと! デザインにこだわりたかったし、値段も安かったのでこれは!と思い、早速申し込みました。 フルカラー100枚ながら1300円、加えて何度でもデザインをやり直してくれるという太っ腹ぶり。お言葉に甘え、仕上がりまで1ヶ月程度を要しましたが、ついに完成しました。 ブロガー名刺という話でしたが、最近勉強会で会う人などにはTwitterが最も通じやすいので、Twitterをメインにし、OpenSocial関係はおまけ。肩書きはSocialWeb Japanにしまし

  • Tender Surrender » Shindigのコミッターになりました

    「ウェブはソーシャルであるべきだ」。これは今の会社に 入社した2005年くらいからずっと訴えてきたことです。ソーシャルグラフをプラットフォーム化することで実現できることがたくさんあります。まずはポータルサイト全体をソーシャル化することを目標にし、作り上げたのがgooホームでした。 将来の構想はその時点で既にあって、いずれはポータル外のサイトとも接続して、インターネット全体がソーシャルグラフで繋がることをイメージしていました。そんな時に登場したのがFacebookです。 Facebookがやろうとしていたことは、SNSの中にサービスを取り込むという、僕の考えとは真逆でしたが、結果的にやろうとしていたことは似たようなもので、先に実現されたことにくやしい思いをました。そしてOpenSocialが登場します。 OpenSocialは仕様を民主的に決めて行くオープンなスタイルでした。オープン性のメ

    mainyaa
    mainyaa 2009/09/01
    がんばってください!
  • Tender Surrender » mixiアプリのガジェットXMLを覗き見るブックマークレット

    OpenSocialといえばmixiアプリ、いやむしろmixiアプリってそういえばOpenSocial?という感じの空気をひしひしと感じてますが、皆さんいかがお過ごしでしょうか。 今日はそんなmixiアプリの中身を覗き見るブックマークレットをご紹介します。 Peep mixi Appli XML これを読んでるであろう人に詳しい説明は不要なので、簡単に書きます。 上記リンクをブラウザのブックマークに保存してください。mixiアプリの画面を開いてそのブックマークをクリックすると、ガジェットXMLのソースページが開きます。SafariとFirefoxで動作確認済みです。 これで、ガジェットがどんな風にできているのか、気軽に覗き見ることができますね。 ※そういえばgooホームもOpenSocialです。

    mainyaa
    mainyaa 2009/06/19
    ※そういえばgooホームもOpenSocialです。
  • Tender Surrender » ガジェットのレンダリング速度を向上するPreload

    今回はOpenSocialでネット上にあまり情報のないPreloadについて、解説してみます。 ガジェットレンダリングの流れ 単純にRSSを表示するガジェットを例に説明します。あるコンテナSNS上でこのガジェットを表示する場合、下記のような手順を踏みます。 コンテナSNSのレンダリング ガジェットサーバーがガジェットをレンダリング ブラウザ上でガジェットのJavaScriptが初期化 外部サイトのRSSを取得するためのAjaxリクエストをガジェットサーバーに送信 ガジェットサーバーが外部サーバーにリクエストを送信(キャッシュがあればスキップ) ガジェットサーバーはレスポンスをブラウザに戻す ブラウザ上でガジェットのJavaScriptがレスポンス内容を元に記事一覧をレンダリング ざっとこんな感じになります。 OpenSocialコンテナの動きを理解していない人には若干分かりづらいかもしれま

  • Tender Surrender » content-rewite機能で外部ファイルのキャッシュを制御する

    先日のキャッシュに関する記事でPHP版Shindigではcontent-rewrite機能が使えないと書いたのですが、1.0.xの段階で、既に実装されているようです。 content-rewrite機能はOpenSocial0.9で提案された機能ではありますが、0.8や0.7でも実行できそうです。 使い方はこんな感じ。 <Optional feature="content-rewrite"> <Param name="expires">86400</Param> <Param name="include-url"></Param> <Param name="exclude-url">excluded</Param> <Param name="exclude-url">moreexcluded</Param> <Param name="minify-css">true</Param> <Pa

  • Tender Surrender » OpenSocialのOAuthまとめ

    OpenSocialでは、コンテナが外部サーバーとの通信を行う際、または外部サーバーがコンテナと通信を行う際、OAuthを使用して認可を行います。今回はOpenSocialにおけるOAuthについて、現段階でのまとめを書いてみます。 ※追記(2008/10/20):2008/10/4に書いたコチラの記事も必読です。 OAuthって何だったっけ? OAuthはユーザー、コンシューマ、サービスプロバイダの3者間でデータのやり取りを行うとした場合、ユーザーがコンシューマにクレデンシャル(IDやパスワード)を渡すことなく、ユーザーが所有するサービスプロバイダ上のリソースにコンシューマをアクセスさせるためのものです。 例えばユーザーがGoogle(サービスプロバイダ)のアドレス帳(リソース)をMySpace(コンシューマ)上で利用するシーンを思い浮かべてください。OAuthがなければ、MySpace

  • Tender Surrender » OpenSocialガジェット開発で注意すべきキャッシュ機能

    先日の記事でShindigが持つOpenSocialアーキテクチャの強力なキャッシュ機能について触れました。Shindigには大きく4種類のキャッシュが存在しています。 ガジェットXMLのキャッシュ makeRequestでアクセスされる外部APIのキャッシュ featureを固めたJavaScriptのキャッシュ JavaScriptCSS、imgなどHTMLからリンクされたリソースのキャッシュ ガジェットXMLのキャッシュ OpenSocialガジェットを開発し始めて最初につまずくのがこのガジェットXMLのキャッシュでしょう。ガジェットXML上で変更を行っても、それが実際のガジェット表示上に反映されない場合は、まずガジェットXMLがキャッシュされていることを疑いましょう。 ガジェットXML上でJavaScriptコードを修正しつつサンドボックス環境で動作確認しながら開発したい場合は、

  • Tender Surrender » OpenSocial(Shindig)のサーバーアーキテクチャ

    OpenSocialと関わるには コンテナになる ガジェットを開発する RESTを使ったクライアントサービスを作る といった選択肢が考えられますが、そのいずれを選択するにしても、アーキテクチャについて知っておくことはとても重要です。特にガジェットを開発するに当たっては、アーキテクチャを知っていることでより開発しやすい場面が多々あります。 そこで今回は、OpenSocialに対応するコンテナのほとんどで利用されているオープンソースのリファレンス実装、Shindigのアーキテクチャについて解説したいと思います。 ガジェットとSNSの関係 iGoogle(既にShindigが利用されている)ではどうやって第三者の作ったガジェットを表示しているかご存知でしたか?実は、別ドメイン(iGoogleならgmodules.com)上にレンダリングしたガジェットを、iframe内に表示しているのです。 理由

  • Tender Surrender » Google FriendConnect対応ガジェットが完成

    FriendConnectのメンバーが友達を紹介し合う文章が書けるFriend Introducerというガジェットを公開しました。このブログの画面左側に表示していますので、メンバーになってくれている方はぜひ、遊んでみてください。(なっていない方はメンバーになって遊んでください!) FriendIntroducerとは 主に3つのビューが存在します。1つはブログ上で表示されるprofileビュー。 FriendConnectメンバーの紹介文を最大5件表示します。ページングが可能で、それぞれのメンバーに書かれた紹介文がランダムで表示されます。 メンバーのサムネイル画像をクリックするとdetailビュー(OpenSocial的なビューではないですけどね)に切り替わります。 一人に対して複数の人が紹介文を書いている場合がありますので、detailビューでは、その人に関する紹介文をすべて閲覧するこ

    mainyaa
    mainyaa 2009/01/06
    detailビューなんてあるのか
  • Tender Surrender » SocialWeb Japanを立ち上げました

    そういえばソーシャルウェブ周りに関する勉強会をするコミュニティが存在しないなあと思い立ち、Google GroupsにSocialWeb Japanを立ち上げました。 SocialWeb JapanはOpenStackやFacebookを中心とした、ソーシャルウェブにまつわる技術の情報交換、勉強会の開催を目的としたコミュニティです。 これらのキーワードにピンときた方はぜひご参加を。 OpenID OAuth OpenSocial PortableContacts XRDS-Simple Google FriendConnect Facebook Connect MySpaceID Yahoo! Open Strategy etcZIGOROuさんと話してたら、ものすごい勢いでIRCも立ち上げて頂きw #socialweb-ja@freenode ご参加お待ちしております。

    mainyaa
    mainyaa 2008/12/12
    入った
  • Tender Surrender » iGoogleの進化に見るGoogleのソーシャル化

    iGoogleはこれまで複数のガジェットを1ページに表示するスタイルでしたが、最近「canvasビュー」が追加され、1つのガジェットを画面いっぱいに表示して利用できるようになったことは記憶に新しいと思います。canvasビューを使うことで、特にGmailやGoogle Readerのガジェットでは、単体サービスのかなりの機能がガジェット上でそのまま利用できるようになり、大幅に利便性が向上しました。 このiGoogleの変化は、既に明言されてはいますが、iGoogleのOpenSocial対応を予感させ、将来的にGoogle全体がソーシャルネットワークになっていくことを示唆しています。実は既にGoogleがそれ自体をソーシャルネットワーク化していく方向性は随所に見られます。 Googleのソーシャル化 Gmail連絡先(コンタクトリスト) ソーシャルネットワークを形作る上で最も重要になるソー

  • Tender Surrender » 米YahooがOpenSocialに対応

    日米Yahoo!から、Yahoo! Open Strategy 1.0として、ディベロッパ向けにYahoo! Application Platform (YAP), Yahoo! Social Platform (YSP), Yahoo! Query Language (YQL)がリリースされました。 Yahoo! Social Platform プロフィールやアドレス帳、更新情報等、ソーシャルにまつわるAPIをRESTベースで提供するものです。認証機構にはOAuthを利用し、PHP版、Flash版のライブラリも提供されていますが、このREST APIはOpenSocial互換ではありません。 Yahoo! Query Language SQLライクなコマンドを送信する事でYahoo! Pipesのようにデータ取得が可能なウェブベースのAPI。FacebookのFQLのようなもののようで

  • Tender Surrender » OAuthの署名方式を掘り下げる

    当ブログでこれまで何度かOpenSocialに絡んだOAuthについて取り上げてきましたが、MySpaceを参考にしていたため、署名方式としてHMAC-SHA1のみを対象にしてきました。しかしShindigを掘り下げる上でRSA-SHA1を避けて通ることはできず、むしろこちらについても十分な知識を得ていないとなかなか先に進めないことが分かりましたので、この機会にまとめてみます。(OpenSocialをある程度前提にしていますが、署名の話はOpenSocialに限らないものです。) 署名とは何か ITの世界で署名とは、問い合わせ元がその人であることを証明するための手段、と言えます。OAuthだと、コンシューマがサービスプロバイダに対して、名乗っている通りの者であることを証明することを意味します。これは、「自分」もしくは「相手と自分」にしか分からないものをリクエストに付け加えて送ることで実現さ

  • Tender Surrender » OpenSocial v0.8.1が公開

    OpenSocial v0.8.1仕様が公開されました。 OpenSocial Specification - Implementation Version 0.8.1(翻訳) OpenSocial RESTful Protocol(翻訳) OpenSocial RPC Protocol(未翻訳) ※翻訳については一部ベータ版からの修正内容が反映されていない箇所があります。誤りを見つけた際はご指摘ください。 リリースノートは下記の通り: OpenSocialリリースノート OpenSocialの仕様変更点 サーバーサイドAPIの変更 サーバー間通信機能に、よりシンプルなバッチ処理を可能とするJSON RPCプロトコルが追加されました。名前の一貫性を保つため、RESTful APIは今後RESTfulプロトコルと呼ばれます。 OpenSocial IDで許可する文字に”-”, “_”, “.

    mainyaa
    mainyaa 2008/09/30
    マイナーじゃない件
  • Tender Surrender » Data AvailabilityでOAuthを試す

    前エントリでの予告通り、実際にサーバーサイドでコードを書き、MySpaceのData Availabilityを使ってOAuthを試してみます。Data Availabilityという名前は大げさに聞こえるかもしれませんが、実際はOpenSocial RESTful APIです。ちなみにData AvailabilityではまだJSON形式のみのサポートで、AtomPubには対応していません(しかも404が返ってくる。これに相当ハマった○| ̄|_)。 今回はOAuthを使って認証・認可を取得し、Data Availability APIを叩くところまでを解説します。 下準備 まずはサンドボックス環境にMySpaceにアプリを作ってください。細かい手順が分からない方はこの辺を参考にしてください。 MySpaceではガジェットアプリも外部アプリも同じように扱われるようです。 Edit Deta

  • Tender Surrender » OpenSocialのOAuthまとめ

    OpenSocialでは、コンテナが外部サーバーとの通信を行う際、または外部サーバーがコンテナと通信を行う際、OAuthを使用して認可を行います。今回はOpenSocialにおけるOAuthについて、現段階でのまとめを書いてみます。 OAuthって何だったっけ? OAuthはユーザー、コンシューマ、サービスプロバイダの3者間でデータのやり取りを行うとした場合、ユーザーがコンシューマにクレデンシャル(IDやパスワード)を渡すことなく、ユーザーが所有するサービスプロバイダ上のリソースにコンシューマをアクセスさせるためのものです。 例えばユーザーがGoogle(サービスプロバイダ)のアドレス帳(リソース)をMySpace(コンシューマ)上で利用するシーンを思い浮かべてください。OAuthがなければ、MySpaceにGoogleのIDとパスワードを預けなければならなかったものが、OAuthを使うこ

  • Tender Surrender » FriendConnectから垣間見える未来のソーシャルウェブ

    今更ですが、先日サンフランシスコで開かれたGoogle I/Oに参加してきました。 その中でも特に印象に残ったのが、PlaxoのJoseph Smarr氏によるOpenSocial, OpenID, and OAuth: Oh My!というセッション。僕が見たセッションの中ではダントツの人気で、部屋に用意された椅子はもちろん、立ち見で人が溢れ返るほどの盛況ぶり。 内容は、ソーシャルウェブの未来について。現在はOpenSocialというソーシャルグラフを所有するサービスに閉じた世界が中心となりつつありますが、少し未来のウェブはOpenSocial, OpenID, OAuth, PortableContacts等の技術によって、よりグローバルな意味でのソーシャル化が図れるようになる、というものです。 詳細はGoogle Codeにビデオとスライドがアップされていますので、ご覧ください。かなり