タグ

ブックマーク / blog.hide-k.net (12)

  • DB Magazine 8月号に寄稿しました - hide-k.net#blog

    メガネをまた無くしました。 しかもしらふで。 今年で早くも3つ目です。 メガネを消耗品感覚で購入していることに何のためらいも感じなくなりました。 こんばんは。 すでに発売されていますが DB Magazine 8月号の第1特集「「モバゲータウン」構築/運用のすべて」というタイトルで会社の人たちと寄稿させていただきました。 自分のパートは Part 2の「誰でも公開できるモバゲーアプリの作り方」と言うタイトルで、ZIGOROuさんと共著で書かせてもらいました。みんな大好き PSGI/Plack による携帯向けソーシャルアプリ構築方法とか書いてます。 他にもモバゲー全体構成の話やインフラ部隊の監視の話とか書いてあって面白いと思うのでよかったら読んでくださいまし。 DB Magazine (マガジン) 2010年 08月号 [雑誌]posted with amazlet at 10.07.01

    lyokato
    lyokato 2010/07/01
  • Plack::Middleware::Auth::OAuth を作ってみた - hide-k.net#blog

    最近、咳のしすぎであばらにヒビが入りました。 大多数の人は心配をしてくださってありがたいのですが、ごく一部の極道達がおもしろ画像を連投して笑わせてくるおかげで全治が大分先になりそうです。 こんばんは。 先日、「モバイルなプラットフォームでの OAuth Signature の検証」ってエントリーを書いた際にPlack::Middlewareとかでやるべきとか書いておいて放置していたのですが、某極道が「とっとと書かないと笑わせてあばらへし折るぞ!ごるぁ!」と脅してきたのでサクッと書きました。 GitHubに置いてあります。 Plack-Middleware-Auth-OAuth 使い方は簡単。 use Plack::Builder; my $app = sub { return [200, ['Content-Type' => 'text/plain'], ['Hello World']];

  • Arduinoを買った - hide-k.net#blog

    年始から5kgほど減量したのに、先日飲み会で某メガネダンディーなエンジニアに「当に痩せたのー?」と嫌というほど首の肉をつままれ泣きそうになりました。こんばんは。 今更感がとってもありますが栗原さんに触発されて、Arduinoを買いました。 Arduinoとはフィジカルコンピューティングのためのオープンソースプラットフォーム...アラフォー的に一言で言うといわゆるマイコンです。 デジタルIOピンとアナログIOピンを備えていて、ここにフィジカルデバイスをつないで遊べるという代物です。 今風なのがブレッドボードを使ったパッチングでデバイスをつなぐのでハンダ付けがいらないことと、USBポートを備えていて、ここからスケッチと呼ばれるプログラムをアップロードしたり電源を取ることができます。 また、シールドと呼ばれる拡張キットもあって親亀小亀よろしくピンをバイパスして乗っけて拡張することができます。

  • モバイルなプラットフォームでのOAuth Signatureの検証 - hide-k.net#blog

    相変わらず、題名にセンスがありません。こんばんは。 さて、ようやくローンチしたモバゲーオープンプラットフォームですが、仕組み的にはmixiさんのモバイル版とほぼ同じアーキテクチャで Gadget Server がプロキシー的な役割をする感じになってます。 大人の事情がかなり反映された仕組みなのですが、この仕組みで非常に重要なのがGadget ServerからのリクエストをSAPがいかに信頼するかという部分です。いわゆる 2-legged OAuthでAuthorizationヘッダに含まれるOAuth Signatureの検証する部分。その部分のコードスニペットをご紹介。(mixi 用のは公開していいかどうかわかんないのでモバゲー向けだけ) use OAuth::Lite::ServerUtil; use OAuth::Lite::Util qw/parse_auth_header/; u

  • namespaceを使ったDBIx::Classのスキーマ構成 - hide-k.net#blog

    良くあるDBICのサンプルではDBIx::Class::Schema::load_classes()を使ってクラスのロードを行っています。 CD.pm package CD; use strict; use warnings; use base 'DBIx::Class::Schema'; __PACKAGE__->load_classes; 1; load_classes()はクラスを指定しないと CD Album Track という構成において自動的にクラスをロードすることができます。 ここでResultSetの拡張をしたいと考えます。例えば CD/ResultSet/Album.pm package CD::ResultSet::Album; use strict; use warnings; use base 'DBIx::Class::ResultSet'; sub search

  • hide-k.net#blog: MooseとClass::MOPでメタプログラミング始めた

    今、超熱いMoose始めたよ。 で、Moose理解するにはClass::MOP理解しなきゃいけなくて、Class::MOP理解するにはMOP理解しなきゃいけないので、ircでえろい人たちに色々教わったのでメモ。 メタプログラミング メタプログラミング - Wikipedia ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法 んで、これを実現するために必要なのがメタクラスとMOP。 MOP(メタオブジェクトプロトコル) メタクラスを通してオブジェクトシステムへアクセスするAPI メタクラス クラスの振る舞いを定義したクラスでイントロスペクション(introspection)とインターセッション(itercession)を備える イントロスペクション オブジェクトの属性を得る能力 ex) 何のクラスを継承してい

  • hide-k.net#blog: 巻き込み重要

    新しい会社に入って3ヶ月が過ぎて、ようやく試雇採用期間も終わり無事正式採用されました。 周りは若い人ばっかりで、なかなか活気があるのですが残念ながら業務の仕組みややり方が古いのも、また事実。僕が思うくらいだから、結構古い。というかベンチャーにありがちな勢いで来ちゃった感じ。 一人、新しいことに敏感な方がいらっしゃるのだが、なかなか忙しい人なので周りを巻き込むまでには至ってなかった感じ。 まぁ、そこはそこ。まだ小回りが利くうちに変えちゃえってことで、勝手気ままに色々巻き込んじゃった。 IRC 元々あって、僕が来たときには結構ログ流れてたんだけど、その前は全然使われてなかった感じだった。くだらないことから何から片っ端から流し始めてマネージャーにも強制参加させたら、みんなちゃんと使うようになった。 wiki 部内wikiみたいなのが元々あったんだけど、ちょっと停滞気味な感じは否めなかったの

    lyokato
    lyokato 2008/03/10
    会社どこだろう
  • hide-k.net#blog: DBIC::InflateColumnで勘違い

    DBIC::Inflateを作ってこんなコードを作ってたのに動かなかった。 __PACKAGE__->inflate_column( name => { inflate => sub { my ( $value, $obj ) = @_; warn "inflate name\n"; return "inflate: $value"; }, deflate => sub { my ( $value, $obj ) = @_; warn "deflate name\n"; return "deflate: $value"; }, } ); inflateは動くけどdeflateは動かない。 で、よくよく調べてみました。 というかDBIx::Class::InflateColumnのpod読みました。 It will handle all types of references except

  • hide-k.net#blog: C::P::FV::Simpleをmod_perlで動かすときの注意

    Catalyst::Plugin::FormValidator::SimpleでmessagesのYAMLを指定する時やCatalyst::Plugin::FormValidator::Simple::AutoでprofilesのYAMLを指定するときに __PACKAGE__->config( validator => { messages => 'messages.yml', profiles => 'profiles.yml', }, ); てな風にします。 これだとCatalystビルトインのサーバーで動かす分にはいいのですが、mod_perlで動かす場合にはフルパスで指定する必要があります。 いちいち指定するのも面倒だしポータビリティもよろしくない気がするので C::P::FV::Simpleは if ( $setting && exists $setting->{message

  • hide-k.net#blog: SH901iCの悲劇

    lyokato
    lyokato 2006/07/25
    ぐはっ
  • hide-k.net#blog: DBIx::Class::ResultSetManagerでResultSetにメソッドを追加

    ActiveRecordなORマッピングはJavaのTorqueを大昔に触ったきりなのでこんな実装デザインが正しいのかどうかわかりませんが、DBIx::Classで package CD::Schema::Albums; use strict; use warnings; use base qw/DBIx::Class/; __PACKAGE__->load_components(qw/Core/); __PACKAGE__->table('albums'); __PACKAGE__->add_columns(qw/ id artist title /); __PACKAGE__->set_primary_key('id'); __PACKAGE__->belongs_to('artist' => 'CD::Schema::Artists'); __PACKAGE__->has_many(

  • hide-k.net#blog: Catalyst::Model::DBIC::Schemaを使ってみた

    Catalyst::Model::DBIC::Schemaを使ってみました。 DBIx::Classで新しくなったSchemaモデルをCatalystのModelとして使うクラスなのですが、今までのModelと大きく違うのはモデルをアプリケーションの外に追い出すことが出来る点です。 例えば、複数のアプリケーションで認証情報を使いまわしたい時には便利かと思われます。 まずはスキーマを作ります。(Perl/DBIC - Nekokak's core dumpに大変わかりやすい説明があります。) Schema/ Account.pm Account/ Users.pm Schema/Account.pm package Schema::Account; use strict; use warnings; use base 'DBIx::Class::Schema'; __PACKAGE__-

  • 1