2008年03月27日

女子小学生と仲良くなるLife Hack

さっき電車の中に乗っていて、座席の隣が10歳くらいの女の集団だった訳ですよね。
自分の隣は、その集団でもさらにロリっぽい女だった訳なんだけど、僕は女子大生くらいが好みなのでどうでも良かったのですよね。
しばらくしたら、そのロリ女が人の事を指差しながらコソコソ耳打ちとかしながら騒ぎだしてたわけなんだけど、眼中無いから気にすらしてなかったんですよ。
いつの間にかロリ女の仲間にまで教えだして、みんなで人の事を指差しながら笑ってるわけですよ、人の事を。

なんかポケットとか言ったり出てるとか言ってるので、もしかしたら自分の性器がポケットからはみ出てたのかもしれないと焦ったのですが、そんな事は無くポケットには携帯しか入れてないのでスルーしてたわけです。

なんだかロリ女の彼氏集団も乗ってたらしくて、ロリ女に「何何?」とか聞き出して、小学生らしいおっきな声で「こっちきてよ教えてあげる!」とか良いながらポケット指差しながら笑ってるわけ。
いつのまにかロリとかショタに囲まれてた、普通の電車なのに。

で、奴らはおしりとかかじりむしとか騒ぎながら電車降りてったんだけど。

そう、自分の携帯にはおしりかじり蟲のぬいぐるみを付けていて、そいつがポケットからはみ出してたんですよね。

結論としては、女子小学生と仲良くなりたい大きなお友達は、おしりかじり蟲のぬいぐるみもって接触するとナンパ率が上がるんじゃないかという仮説が成り立ったのでした。

そんなので盛り上がれるって良いですね。

おしりかじり虫 ハンドパペット
サンアンドスタ- (2007/09/28)
売り上げランキング: 1275

Posted by Yappo at 15:08 | Comments (0) | TrackBack

2008年03月26日

nipotan niteでプレゼンしてきました

nipotanお別れ会とnagayamaお別れ会とkiyoheroお別れ会のnipotan nite行ってきました。

nipotanの上司の前でnipotanがいかに素晴らしいかをアピールしてnipotanの給与を上げてもらって、その上がった給与でnipotanに奢ってもらう作戦でプレゼンをしてきました。
資料はhttp://svn.coderepos.org/share/docs/yappo/20080325-nipotannite/nipotan.plにて、別途Plusenが必要です。

バランスWiiボードでページをめくるメソッドだったのですが、自分は疲れていたためnipotanに代わりにページを捲る仕事をしてもらってプレゼンしました。
人にページをめくってもらうと楽ですね!

nipotan nite最後にはnipotan胴上げと、社長のご家庭の都合で京都に行く事になってしまったid:nagayamaとid:kiyoheroの胴上げもして締めくくられました。

川崎(kawa.net的な意味で)さんがWii板に興味を示されたようです。あとは二次会とかでdanさんと何故かCamelBonesどうにかして欲しい的な話で盛り上がりました。

もし来月以降のnipotanの給料が上がっていたらご飯奢ってもらうためだけにアメリカに行こうかと思います。

関係無いけどやぱりhibomaはnaoyaさんに似てると思った。

Posted by Yappo at 17:36 | Comments (0) | TrackBack

2008年03月18日

【重要】n.+ niteにいってきます

にぽたん氏がどっかいっちゃうらしいので(詳細を書くと一本背負いされそうなので自粛)、壮行会的なn.+ niteに参加します。
なんでnipotan niteと書かないかというと、社長の家庭的な事情(この話本当?)で京都に引っ越しをする事になったnagayama君の送別会も兼ねるという噂があるからです。
なんで28日にnagayama君の送別会を別でやらないのかというと、イベントのバッティングをすることで有名なklab勉強会が開催されてnagayama君を見送る人はだいたいそっちに参加するからです。
大人の事情って恐いですね。

沢山の参加者からプレゼントをもらって動けなくなるnipotanを観察する事がメインだとか言う噂があるようなので、僕も!staticな実用品を選んで持って来ます。

気分が良くなると人に奢る事で有名なにぽたんさんを皆で奢る事が出来るという貴重なイベントです。
さらにスペシャルイベントとして、dankogaiのマネをするnishiohirokazuのマネをしたnipotanのマネをするnishiohirokazuのマネをするdankogaiというショーが催されるようです(という噂ですが[謎])!
ニポタンさんに感謝の念をもってる人は是非とも参加してお別れしましょう!

ま、ネットに繋げばいつでも会えると思うけど。

Posted by Yappo at 17:40 | Comments (1) | TrackBack

2008年03月03日

誰でも簡単にOpenID 2.0なOPを作る方法 and CodeReposでOpenID(2.0対応)プロバイダの提供始めましたのお知らせ

先週のbuilder techtalkから俄然としてOpenIDが熱くなって来た今日この頃いかがお過ごしでしょうか。
先日参加して来たOpenID Hackathonの成果として、CodeReposがOpenIDのOpenID 2.0 Providerになりましたことをお知らせします。
CodeReposのアカウントをお持ちの方は、fastladderとかLIMLICとかのOpenIDでサインオンできるサービでOpenID URLをcoderepos.orgとだけ打ち込んでログインしてみて下さい。
2.0に対応していない所だったらhttp://coderepos.org/share/wiki/Committers/usernameとでも入れればいいと思います。
はてなもOpenIDでログイン出来るはずなのにOpenID URL入れる所が無くてドン引きした。
暫定でIdentityをhttp://coderepos.org/share/wiki/Committers/usernameという形にしてありますが、もっと良い案がありましたら教えてくださいまし。

OpenID Hackathonに参加するまでは今イチOpenIDの仕様が判ってなかったですがようやく判って来ました。
なんだかPerlでOpenID 2.0 Serverに対応してるモジュールが無かったっぽいんですが、code.sixapart.comのリポジトリkazeburoさんのパッチをあてたら普通に2.0のOP作れてビックリしました。
このパッチもOpenID Hackathonの成果でしたっけ?

本来ならtracにOpenID OP pluginか何かを入れてやるんでしょうが、今回は勉強しながら作ったのでいびつな構成かもしれませんし、きっとZIGOROuさんがDISってくれるので、そのDIS記事見ながら改善します。

超簡単なOpenID 2.0対応のOP作り方

仕様を咀嚼してないのですが、CodeReposではこうやったよ!という例をメモります。
CodeReposのOpenID対応に関しての必要なコードやらテンプレートもCodeReposにコミットされてるので詳細はそっちで。

自分なりの用語の理解として

  • OP=認証サーバ
  • RP=OPの認証を貰う外部サイト
  • xrds=認証に必要な情報を入れた容器
  • Identity=ユニークなIDになれるURL
こんな感じ

server xrdsをRPに見つけてもらう。

RPのOpenID URLにcoderepos.orgとかを入れた時にRPはどうやって認証URLを見つけるかというと、その入力されたドメインのHTTP HEADにあるX-XRDS-Locationというヘッダに入っているURLに書いてあるファイルを見てend pointを探します。
(余談だけどHackathonでDavidに、それDNSのTXTレコードとか使えば良いんじゃないか?と聞いてみたら「更新に時間がかかるでしょ」と。納得。)

Apacheの設定だと

Header add X-XRDS-Location http://openid.coderepos.org/server.xrds
を入れるだけ。
mime typeも合わせとかなきゃいけないので
AddType application/xrds+xml .xrds
も必須。
中身は
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
    xmlns:xrds="xri://$xrds"
    xmlns:openid="http://openid.net/xmlns/1.0"
    xmlns="xri://$xrd*($v*2.0)">
  <XRD>
    <Service priority="0">
      <Type>http://specs.openid.net/auth/2.0/server</Type>
      <URI>http://openid.coderepos.org/auth</URI>
    </Service>
  </XRD>
</xrds:XRDS>
こんな感じす。

認証する仕組みを作る

さっきのNet::OpenID::Serverにkazeburo patchを当ててhttp://svn.coderepos.org/share/websites/coderepos.org/openid/ここにあるようなコードを書いた。

IdentityのHTML中にメタ情報を入れる

RPはOPから渡されたIdentity URLに実際アクセスをして必要な認証情報の妥当性を見つけようとしてるらしいので、tracのテンプレートに

<?cs if:title ?><?cs if:string.find(title, 'Committers/') == 0 ?>
<link rel="openid2.provider" href="http://openid.coderepos.org/auth" />
<link rel="openid.server" href="http://openid.coderepos.org/auth" />
<?cs /if ?><?cs /if ?>
を追加してCommittersページの時だけlinkタグを出すようにした。
これ書くことでOpenID 1.1のOPにもなれてるんだと思う。
そして、大事な物としてIdentity URLのRespons HEADで吐くX-XRDS-Locationの中身をさっきのとは違うのにしとかなきゃいけなくて
<Location /share/wiki/Committers>
    Header unset X-XRDS-Location
    Header add X-XRDS-Location http://openid.coderepos.org/signon.xrds
</Location>
と書いて対応。
中身は
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
    xmlns:xrds="xri://$xrds"
    xmlns:openid="http://openid.net/xmlns/1.0"
    xmlns="xri://$xrd*($v*2.0)">
  <XRD>
    <Service priority="0">
      <Type>http://specs.openid.net/auth/2.0/signon</Type>
      <URI>http://openid.coderepos.org/auth</URI>
    </Service>
  </XRD>
</xrds:XRDS>
こんなのになる。
これが良くわかってなくて一番はまった。

認証を実装

さっきPerlで書いたっていった認証 CGIの部分は実際は認証処理をしてません。
というかBasic認証でやっちゃいますので。その認証URLを見るにはBasic認証が必要なように設定します。
svnもtracもBasic認証使ってるからこそできる手抜きですね!
ただ一点気をつけないといけないのはPOSTの時は認証しないようにしとくこと。
何でかって言うとRPが認証URLにPOSTで何かしにくるから!何してるか良くわかんないけど何かPOSTしてる!

おわりに

以上の手順でOpenID 2.0対応のOPを簡単に作ることができました。
CodeReposのアカウントを持っている人は全員プログラムのコードを書けることが保証されていて(ISPのSLA的な意味で)、アカウント持ってる人数も250人を越えているので、CodeReposがOpenIDプロバイダになることは結構面白い試みなんじゃないかと思います。(OpenID Hackathonに参加する口実で作り始めただけだけど)

どう書く?.orgとかCodeGolfとかがOpenIDのRPになって連携出来るようになると面白そうですね。
OAuthとかにも対応するともっと夢が膨らむでしょうか?

海外向けに英語の記事でも書いて自作自演digしたい所だけど、英語で長文書くのがしんどいからAjiajinで英語版の記事を誰かが書いてくれるのを気長に待つ。

という事で、CodeReposのコミッターの方々はどうぞご利用ください。

追記

kazeburo patchは# 2008年03月03日 miyagawa miyagawa openid will commit on Monday. Thanks!!CommentsAdd Starらしいのでpatchもうちょっとしたらコミットされるね。

Posted by Yappo at 16:06 | Comments (1) | TrackBack