| Subcribe via RSS

PHPで2-legged OAuth( GDD Devquiz )

8月 26th, 2010 | No Comments | Posted in Diary, programming, web | このエントリをはてなブックマークに登録

Google Developer Day 2010 は、参加するためにDevquizっていう問題がいくつか出て、それを解いた点数の高い人から参加できるっていう仕組みなのです。

いくつか問題があって、

・簡単なgoogleのサービスに関する問題

・html5の文法間違い探し

・2-legged OAuthをやる

・Google Map APIを使ってTSP

・しりとりで相手に勝つ

・PACMAN

なんかがあったような気がします。

それぞれ

  • 簡単なgoogleのサービスに関する問題
  • 普通にググって考える。

  • html5の文法間違い探し
  • 自分で見ても間違いが分からなかったからHTML5の文法チェックツールが早くも登場 ? Publickey を使った。

  • 2-legged OAuth
  • ググって近いプログラムを見つけて、それを元にプログラム書いた(後述)。
    しかし、OAuthの仕様について 〜署名?それっておいしいの?〜 (Yahoo! JAPAN Tech Blog) の最後にある確認ツールを使えば簡単にできるらしい。

  • Google Map API
  • javascript書いてレベル2まで普通に解けたのに、レベル3でうまく行かず、面倒だったのでやめた。

  • しりとり
  • 辞書の解析だけプログラムでやって、手動で解いた。レベル3は何度か負けたけど、相手の戦術を逆に使う方法を考えてできた。

  • PACMAN
  • 時間がなくてやってない。

これじゃ合格点に行かないような気もする。


以下はPHPで2-legged OAuth。
PHPを選んだ理由は、書ける言語の中で一番最初に、よさそうな参照できるコードが見つかったから。

指定されたのは、CONSUMER KEY、 CONSUMER SECRET、POSTするメッセージボディ、realmとターゲットURLで、あとHMAC_SHA1を使うことも指定されたような。



<?php
require_once 'OAuth.php';
define('CONSUMER_KEY', 'your consumer key');
define('CONSUMER_SECRET', ''your consumer secret);

function OAuthConsumerRequest($method, $url, $data=NULL) {
    $consumer = new OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    $signature_method = new OAuthSignatureMethod_HMAC_SHA1();

    //与えられたメッセージボディ
    $params = array("hello" => "world");
    // access protected resources
    $oauth_request = OAuthRequest::from_consumer_and_token($consumer,
                                       NULL,
                                       $method,
                                       $url,
                                       $params);

    $oauth_request->sign_request($signature_method,
                                 $consumer, '');

//与えられたrealmはここで使う
    $headers = $oauth_request->to_header('devquiz');
    $prequest = "hello=world";

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array($headers));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $prequest);
    curl_setopt($curl, CURLOPT_POST, TRUE);

    $result = curl_exec($curl);
      if ($result === FALSE) {
         return curl_error($curl);
    }
    curl_close($curl);
    return $result;
}

//与えられたURLはここで使う
$ret = OAuthconsumerRequest('POST', 'target url';);
print($ret);
?>

を参考にしました。


このエントリをはてなブックマークに登録

Tags: ,

Discussion about Internet of Things

7月 1st, 2010 | No Comments | Posted in Diary, web | このエントリをはてなブックマークに登録

Internet of Things (IoT)に関するとある会議?を聴きに行きました。

やっぱりこの辺のInternetとReal Worldがつながる世界で何か面白いことをやりたいな、と感じた。
Real Worldというとアバウトだけど、それは人だったりモノだったり環境だったり。
Webに人間が作るコンテンツ(UGC)が増えたら少しずつ世界が変わっていったように、モノが作るコンテンツ(Things-generated content?)あるいはコンテキスト(Things-generated context)が増えたらまた世界が変わるんじゃないか。Web3.0みたいな。

Extend Internet to real world と言っていたが、Internetの視点から見るかreal worldの方から見るか、両方がありえて、Internetにはfacebookとかtwitterとかリッチなサービスというかプラットフォームがいろいろあるのにreal worldからの人の多くは可視化したりtwitterに繋げて満足して終わっていたりして、その先をもっと考えてもいい気がしている。


この間にくるのがたぶんarduinoだったりandroidだったりで、敷居が下がってきているというか環境が整ってきているんで、新しくて面白いことをやるチャンスかもしれない。
もちろん、みんながそんなようなことを考えている中で違ったことをやるのは難しい。

でも、arduinoもandroidもInternetの方の人がReal Worldの方に来るためのもの、つまりextend internet to real worldであって、extend real world to the Internetなプラットフォームがない、ような気がしている。

pachubeはReal WorldからInternetにつなぐよさそうなPlatformかもしれない。

他にも自分の身近にもこのあたりをいろいろ考えている人はいる。CastanetやTangram。
自分も何かやりたいけど、今の場所で研究していてもこの先ができない感じがしている。内定先の会社に入ってもできないし。


関連のありそうなWebサイトをいろいろ教えて貰ったのでまとめておきます

  • Web of Things | Architecting the Web of Things, for techies and thinkers!
  • Real worldとWebをつなげるアーキテクチャ

  • IPSO Alliance: Promoting the use of IP for Smart Objects
  • IPをSmart Objectsにも利用しようというalliance

  • pachube :: connecting environments, patching the planet
  • Store, share & discover realtime sensor, energy and environment data from objects, devices & buildings around the world.
    Pachube is a convenient, secure & scalable platform that helps you connect to & build the ‘internet of things’.
    世界中のセンサやアクチュエータをRESTfulなInterfaceでつないでやろう、というプラットフォーム。

  • touchatag
  • モノにタグをつけたりするソリューション?

  • MIRASENSE
  • ケータイからバーコードを読んで、商品の感想などを共有するサービス

  • my2cents.mobi
  • my2cents is a mobile app to share comments on products.
    上のやつと似てる。

  • AppAware.org Social Market for Android
  • Install / Uninstall したAndroidアプリケーションを共有するサービス

  • Augmented Reality Browser: Layar
  • たぶんセカイカメラのようなAR実空間タグ付けアプリ。たぶんいろいろなレイヤーにタグが分類されるから、レイヤーの切り替えとかをすると見たい情報だけ見ることができる。

  • I-LAB
  • アフリカでケータイを使った保険サービスをやってる?
    ドイツ語なので分かんない。
  • Amazon Mechanical Turk – Welcome
  • ソフトウェアが判定できない問題を、人間を使って解決する仕組み。


このエントリをはてなブックマークに登録

Tags: , , ,

foursquareはじめました

1月 25th, 2010 | No Comments | Posted in Diary, web | このエントリをはてなブックマークに登録

位置情報を使ったSNSみたいなやつ。
foursquare :: Junichiro T.

最近とりあげられて日本でもユーザが増えてきているらしいです。

Twitterの次はこれじゃね?今一番イケてる(と僕が思っている)『foursquare』について調べてみた – IDEA*IDEA ? 百式管理人のライフハックブログ

古くは、自分の先輩のudanaさんが未踏でやっていたserendiの頃から位置情報を友達と共有してなんかやろう、っていうのはあるけど、ケータイのGPS機能やiPhoneのようなアプリケーションプラットフォームが充実してきてようやくユーザに受け入れられたという感じだろうか。


まだfriendが一人しかいないので自分の行動ログにしかなってないけど、いずれ友人に使う人が増えて、他の人が残した情報が増えれば面白くなるのかもしれない。


このエントリをはてなブックマークに登録

Tags: ,

follow meバッジをブログにつけた

10月 1st, 2009 | No Comments | Posted in twitter, web | このエントリをはてなブックマークに登録

右についてるやつね.

Twitter “Follow” Badge for your site / blog

で,アカウント名いれて,「follow me」にして,色決めて,上からの位置決めて,update codeすると,javascriptのコードが出るので,それをコピーしてブログやサイトのbodyタグ内にいれるとできると思います.

follow me
IE6じゃ見られないらしい.


このエントリをはてなブックマークに登録

Tags:

mixiアプリはじまった

8月 26th, 2009 | No Comments | Posted in web | このエントリをはてなブックマークに登録

なんかまだバグが多いけど、何か作ってみようかなあ。

練習として、latitudeと連携して、自分の居場所をマイミクに見せたり、近くにいるマイミクを表示したり、なんてことができそう。

問題はマイミクにgoogle latitudeやってる人がいないところか。


このエントリをはてなブックマークに登録

Tags: ,

google latitudeでの自分の居場所をブログに貼り付ける

8月 9th, 2009 | No Comments | Posted in web | このエントリをはてなブックマークに登録

ググってもちょっと分かりにくかったのでメモ。

まずlatitudeに登録。

Google Latitude

で、

Google Latitude拡張機能

でどの程度公開するか、を指定して、これをどのくらいの頻度でリマインダーして貰うか指定します。

で、出てくるコードをそのまま貼り付ければ自分の居場所がブログなどで公開できます。

こんな感じ。








このエントリをはてなブックマークに登録

Tags:

自分のウェブページ作った

8月 9th, 2009 | No Comments | Posted in Diary, web | このエントリをはてなブックマークに登録

tjun logs




ウェブでのアウトプットをもっとやっていこうと思って。(このブログもその一環)

基本的にrssを取得して並べてる。

flickrは少し苦戦した。

latitudeの公開に関しては別に書いておきました。

google latitudeでの自分の居場所をブログに貼り付ける | tjun blog



ボタンの画像とfaviconはちゃんと作った方がいいかもな。


このエントリをはてなブックマークに登録

Tags: ,

Deliciousからはてなブックマークへデータを移す

7月 23rd, 2009 | No Comments | Posted in web | このエントリをはてなブックマークに登録

Firefoxアドオンの使いやすさからこれまではdeliciousを使っていたけど、はてなもfirefoxアドオンを出してなかなか評判がよいみたいなので、移行することにした。

はてぶでは、Deliciousからの移行にも対応と書いてあり、deliciousでエクスポートしたものをそのままインポートするだけでデータが移せるみたい。

まずはdeliciousからエクスポート。

deliciou の右上settingsの”Export/Backup Bookmarks”から行けます。

次にこれをはてなブックマークの設定の”データ管理”からインポート。

本当はこれでうまく行くらしいのだけど、自分の場合はブックマークとそれに対するコメントがずれてしまって、またブックマークの一部しかインポートされなかった。

解決法

先に解決法から。
deliciousからインポートしたファイルを文字列検索/置換が行えるエディタで開き、
  1. “<DD>” を全て削除
  2. “</A>” を “</A></DT><DD>”で全て置換
  3. “<DT>” を “</DD><DT>”で全て置換
  4. 一番最初と一番最後のhtmlタグがおかしくなるのでそこを修正(一番上エントリの</DD>を削除し,一番下のエントリの最後に</DD>をつける


こうやって新しくできたhtmファイルをはてなブックマークでimportしてやれば正しく移行されます。

原因

deliciousからexportしたhtmファイルのソースと、正しくimportされたはてぶを見比べると、どうもインポートの際にコメントをつけたブックマークの数だけしかインポートが行われず、全てのブックマークにコメントがあるものとしてインポートするから、ブックマークとコメントがずれてしまうみたい。

つまり、

<DL><DT><A HREF="http://example.com" LAST_VISIT="1248093454" ADD_DATE="1248093454" TAGS="tag1,tokyo,example">ブックマークその1</A>
<DD>コメント1
<DT><A HREF="http://www.example01.com/a.html" LAST_VISIT="1248071261" ADD_DATE="1248071261" TAGS="iphone, aaaa, tag2">ブックマークその2</A>
<DT><A HREF="http://bookmark.com/" LAST_VISIT="1247826901" ADD_DATE="1247826901" TAGS="tag3, blog">ブックマークその3</A>
<DD>コメント3
<DT><A HREF="http://example.net/2009/aaa.html" LAST_VISIT="1247763108" ADD_DATE="1247763108" TAGS="tag4,database">bookmark4</A>
のようなコードがあった場合、ブックマーク1と3にはコメントがあることを意味していて、この場合インポートされるのは
ブックマーク1とコメント1 → 正しい
ブックマーク2とコメント3 → ずれてる
の2つだけで、コメントもずれてしまう。

上の解決法で、正しくタグを閉じてやるようにすると、正しくインポートされる。

どうも、全てのブックマークにコメントをつけていない限りこの問題が発生する気がする。
はてなの対応が甘いのかもしれないが、deliciousからエクスポートされるコードが正しくないのがそもそもの原因。


このエントリをはてなブックマークに登録

Tags: ,

Dropboxをアップグレード

5月 17th, 2009 | No Comments | Posted in Diary, web | このエントリをはてなブックマークに登録

先日VISAのカードを作ったので、ついにDropboxをアップグレードしました。
Dropbox_logo
Dropboxは異なるPC間とwebでフォルダを同期するサービス。
普通のフォルダとして使っていると勝手にファイルが同期されるのでとても便利。
Dropboxを使い始めてからはUSBメモリをほとんど使わなくなった。


で、無料のやつだと2GBまで使えます。
2GBを超えるとどうなるのかよくわかりませんが、結構いっぱいになっていたのでこれを機会にアップグレード。


有料には、
Pro( $9.99 per month or $99.00 per year で50GB使える)と
Premium( $19.99 per month or $199.00 per year で100GB)
がありますが、今回はProにしました。


高いと感じるか安いと感じるかは人それぞれだと思いますが、複数のPCを使う人なら、ファイルの同期ができてバックアップにもなって、バージョン管理にもなる(過去のバージョンもwebから取得できる)のでかなり便利かと思います。


MacやLinuxでもあるので、異なるOS間でも同期できます。
iPhone版もあります。


50GBにした場合、iPhoneに入らない部分はどこにいくのだろう。。。


このエントリをはてなブックマークに登録

Tags: , , , , , ,

How to ムーンウォーク!!

6月 27th, 2008 | No Comments | Posted in tips, web | このエントリをはてなブックマークに登録

Michael Jackson Star

Image via Wikipedia


みなさん御存じのムーンウォーク.

そう,歩いているのに後ろに進んでいくという,マイケルジャクソンのダンスでおなじみのあれです.

まずは本家マイケルジャクソンの動画をご覧ください.


やっぱりうまい.かっこいい.

もちろんマイケルジャクソンのようにはいきませんが,練習すればちょっとそれっぽく見えるかもしれません.

どうやったらいいのかを教えてくれる動画があるので紹介します.
それを見ると,ポイントは
  1. 滑らかな床と靴・・・足が滑るように動かせないとだめです.
  2. 基本となるLポジション・・・後ろの足のつま先を地面に付ける
  3. そこから前の足を軽く踏み込みながら(つま先側を地面に付けたまま),足を後ろに滑らせる
  4. で、足が入れ替わってLポジション
  5. これの繰り返し
ビデオを見て練習してみよう.

Zemanta Pixie


このエントリをはてなブックマークに登録

Tags: