タグ

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

  • PerlでOAuth 2.0を使ってみた - hide-k.net#blog

    携帯の緊急地震速報の音が怖いので、「会いたかった」に変えるHackを募集しています。 こんばんは。 OAuth 2.0は仕組も特徴も理解していたのですが、実際に実装の必要が出てきたので今更ながら初めて使ってみました。 仕様は現在draft15というステータスで公開されています。(The OAuth 2.0 Authorization Protocol) OAuth 2.0の特徴としてはHTTPSを使って通信経路を暗号化することによりトークンを直接やりとりすることが可能となっています。そのため署名が必要なくなり、あの悪夢のような署名検証をしなくて済むようになったのが大きなメリットです。 とはいえ、読んでもよくわかんないのでコードにしてみます。Authorization ServerとResource Serverとして使ってみるのはFacebook。クライアントサイドフローとサーバーサイドフ

  • Perlの開発環境構築メモ - hide-k.net#blog

    最近、社内で初対面の人に自己紹介すると「あ!twitterでfollowしてます。AKB好きな方ですよね?」と辱めを受けてることが多くて色々反省しています。 こんばんは。 先日、会社で新しいMac Book Airを支給されて開発環境を再構築して、せっかくの機会だったので自分の環境をメモりました。 YAPC::Asia 2010でtokuhirom氏の「モダンな Perl5 開発環境について」で大きく取り扱われたり、あちらこちらで散々エントリされていますが毎回ぐぐるのも面倒なのではっときます。 0. 下準備 gccや各種ライブラリが必要なので何はなくともXcodeをインストールします。僕はiOS SDK付きをダウンロードしてインストールしました。 ついでにhomebrewもインストールしておきます。 sudo dscl /Local/Default -append /Groups/staf

  • 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']];

  • YAPC::Asia 2009でmoder Catalystについて話してきた - hide-k.net#blog

    YAPC::Asia 2009でmodern Catalystと称してトークをしてきました。 多分Perl史上良くも悪くも最も多くの人が開発、利用に携わったWeb Application Frameworkで、未だに現場で多く使われているCatalystがメジャーバージョンアップをしたのでその辺を話してきました。 Moose-ified = modernという訳ではないし、自分はMoose廚ではないのですが多くの時間を割く結果になりました。当は抽象化やTest周りやおすすめのPlugin/ComponentとかTipsとかDBIC周りにも触れたかったのですが20分では無理だったので、またの機会に。最後の方でちらっとだけPSGIにも触れさせてもらいました。 Modern CatalystView more presentations from Hideo Kimura.

  • YAPC::Asia 2009 で「modern Catalyst」について話します - hide-k.net#blog

    このところ、MySQL と Catalyst と 豆しば 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、Catalystで動くアプリケーションを、今まさに作っている、という理由があるからです。 ただ、ブログエントリだとどうしても細切れになるので、一連のモジュールやプログラムを組み合わせて、どうやってスケールするウェブアプリケーションを作るのかという話を YAPC::Asia 2009 でさせていただくことにしました。 YAPC::Asia 2009 は9月10日(木)と11日(金)の2日間、東京工業大学大岡山キャンパスで開催されます。今日からチケット販売も始まったので、興味のある方はお越しいただければ、と思います。 YAPC::Asia 2009 modern Catalyst 【参考文献】 http://developer.cybozu.co.jp/kazu

  • Catalyst::Controller::ActionRoleを使ってみた - hide-k.net#blog

    最近Catalystをご無沙汰してたのでリハビリがてらJPA セミナーでも紹介されていたCatalyst::Controller::ActionRoleを触ってみました。 要はこのコントローラを継承することでMoose::Roleで書いた機能をメソッド attributeで呼べるようになります。 lib/MyApp/ActionRole/Bar.pm package MyApp::ActionRole::Bar; use Moose::Role; after execute => sub { my ($self, $controller, $c) = @_; my $body = $c->response->body || ''; $c->response->body($body . 'Bar'); }; 1; lib/MyApp/Controller/Foo.pm package MyA

  • 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

  • ディストリビューションにおけるPerl 5.10の普及率 - hide-k.net#blog

    先日、カジュアルな飲み会の席でPerl 5.10が2007年12月19日にリリースされてから早1年半が経ったけど何か普及してなくない?って話をしてました。 そんな中、ノートのOSをUbuntu 8,04から9.04に変えてUbuntuは8.10からすでに5.10がデフォルトでインストールされてるということを知り、5.10は普及してないというのは自分の単なる思い込みかもしれないと思い、ちょっと調べることにしました。 で、見つけたのがDistroWatch.comという、300ちかいのLinux/BSDのディストリビューションの情報が紹介されているサイトで、ここからWeb::Scraperで各ディストリビューションの最新バージョンのPerlのバージョンをスクレーピングしてみました。ついでに最近見つけたChart::Clickerというモジュールでグラフを作ってみました。 結果は 5.10.01

  • local::libを使ったCatalyst5.7と5.8の比較テスト - hide-k.net#blog

    JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。 お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。 まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。 $ cd $ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")' 次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。 $ cd $ perl -MCPAN

    jazzanova
    jazzanova 2009/04/23
    local::lib
  • Catalyst 5.8がリリース - hide-k.net#blog

    Catalyst 5.8系、通称catamooseの最初のリリースバージョンであるCatalyst::Runtime 5. 80001がCPANにアップされました。 [Catalyst] [ANNOUNCE] Catalyst Runtime 5.80001 The Catalyst Core Team is proud to announce that we've just shipped the next major release of the Catalyst framework, version 5.8001. This release is the result of the helpful contributions of a large number of people, comprising documentation, new features, bug fixe

  • local::libを使った非rootでのCPAN環境構築 - hide-k.net#blog

    miyagawaさんが紹介されていたlocal::libを使って非rootでのCPAN環境を作ってみました。平たく言えばさくらインターネットのレンタルサーバで一般ユーザーでCPAN環境を作ってみました。 とはいえ、多くは先人たちの otsune's FreeBSD memo :: ユーザー領域にCPANをインストールする方法 さくらインターネットでCPAN - Charsbar::Note と大差ありません。 まずはlocal::libのアーカイブを取得・解凍します。最新のバージョンは1.003001です。 wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.003001.tar.gz tar xzvf local-lib-1.003001.tar.gz cd local-lib-1.003001 ots

  • DBDでUTF8 flaggedな文字列を返す - hide-k.net#blog

    \mysql_enable_utf8 => 1 で DBIC::UTF8Columns 要らなくなるっぽい - 僕ト云フ事@はてな出張版 恥ずかしながら知りませんでした。 DBIx::Classの場合、DBIx::Class::UTF8Columnsを使ってutf8_columns()でUTF8フラグを立てたいカラムを指定するのですが、特定のカラムだけにUTF8フラグを立てるというのは稀で、全ての文字列のカラムに立てるのが多くの場合だと思います。 ので、DBDのレイヤーで吸収するこの方法が個人的にもベストプラクティスだと思います。 vkgtaro++ 備忘でまとめておくと各DBDの接続オプションで mysql: mysql_enable_utf8 postgresql: pg_enable_utf8 sqlite: unicode に1を指定することにより、全ての文字列のカラムの値にUTF

  • 続:Catalystでマルチバイトを取り扱うときのまとめ - hide-k.net#blog

    以前、Catalystでマルチバイトを取り扱うときのまとめという記事を書いたのですが、情報が少し古いので、最近僕がやっている方法を紹介します。 この記事では Catalyst 5.7015 Catalyst::View::TT 0.27 Catalyst::Plugin::ConfigLoader 0.22 Catalyst::Plugin::FillInForm 0.10 Catalyst::Plugin::Static::Simple 0.20 Catalyst::Plugin::Unicode 0.8 の環境で紹介しています。 また、基的にDBICに関しては以前の記事の通りDBIx::Class::UTF8Columnsを使うという感じです。 まず、こんな感じのアプリケーションを用意します。 MyApp package MyApp; use strict; use warnings

  • hide-k.net#blog: Shibuya Perl Mongersテクニカルトーク#10で話します

    来る11月27日(水)にShibuya Perl Mongersテクニカルトーク#10が行われます。 今回は何と4部構成で計15ものトークがあるという豪華編成。 これを平日の夜から行おうというのだから正気の沙汰ではありません。 とはいえ今回はPerl以外の話もちょこちょこあるのでPerlユーザーだけじゃなく、全ての人が楽しめそうな感じです。 で、ボクは第二部 特別企画「最速Perlフレームワーク研究会」の頭にBenchmark of Perl Web Application Frameworks と題して話します。 ベンチマークを晒すだけじゃなく、何故21世紀にもなってCGIなのか?何故ベンチマークなのか?あたりを熱く語りたいと思います。 追記: 3部どころじゃなくて4部構成でした><

  • hide-k.net#blog: MooseのPODの翻訳始めたよ

    YAPCでのMichael Schwernのトーク、"perl is unded"を聞いて、Perlは確かに死んじゃいないけど新しい人材は必要だよねって思ったわけです。 で、今年のYAPCには会社の若い子たちを誘って行ったんだけど、口を揃えて言うのが難しい上にさらに英語だからたまらんと。 気持ちは分からんでもないんですよ。僕もあまり得意な方じゃないし。 で、未熟な僕でも何かできないかなーと思ったのがpod(マニュアルね)の翻訳。 しかもMooseなら、敬遠されがちなPerlのややこしいオブジェクト指向プログラミングを分かりやすく書けるので、他の言語の人にも受け入れられやすいかなーと。 まぁ単に今はやりだってだけだけどね(Yapooさん曰く来年にはないらしいけど)。 で、やったもん勝ちってことで、つたない翻訳だけどとっとと始めちゃいました。 とりあえず、日人が多いってことでcod

    jazzanova
    jazzanova 2008/05/21
    hidek++
  • hide-k.net#blog: YAPC::Asia 2008

    今年もYAPC::Asiaに参加してきたよ。 今年は前夜祭からHackathonまで猛烈に堪能してきました。 各セッションの感想は山ほど上がってると思うので個人的な感想を書くよ。 去年辺りから積極的に勉強会やカンファレンスで周りに声をかけるようになったせいで、今年は顔見知りも多くなり、また違った空気を楽しめました。 タバコミニケーションではYusukebeさんとオッパイDetect論をしたり、弾さんとSQLをdisったり、飲み会ではオヤジクラスタのZigorouさんやcharsbarさんと新橋的なノリで話したりと編以外のとこでもかなり楽しませてもらいました。 あと、毎度のこと感動するのがスタッフのホスタビリティ。takesakoさんを初めとするスタッフの方々には足を向けて寝れないっす。当にありがとうございました。 typesterさんに誘ってもらったHackathonでは酒も一滴も

  • 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: Catalyst::Model::AdaptorでTheSchwartzをModel化

    今さらTheSchwartzを使い始めました。 で、jobの状態を監視するWebインターフェースをCatalystで作ることになったのですが、いちいちTheSchwartzのインスタンスを作るのが面倒くさい。 でもそのためにModel作るのもアホらしい。 で、Catalyst::Model::Adaptorを使ってMyApp::Model::TheSchwartzを作ってモデルとして使うのをやってみたのでメモ。 HelperスクリプトでMyApp::Model::TheSchwartzを作成 script/myapp_create.pl model TheSchwartz Adaptor TheSchwartz 出来上がったMyApp::Model::TheSchwartzを変更 package MyApp::Model::TheSchwartz; use strict; use w

  • hide-k.net#blog: Shibuya.pm Teck Talk #8行ってきました

    Shibuya.pm Teck Talk #8に参加させていただきました。 というわけで、出遅れ感てんこ盛りなのでかいつまんで感想です。 (以下表題は敬称略で) Class::Component (Yappo) Class::Componentは使いこなせないまま投げ出したのですが、今回のプレゼンを見てまた触りたくなりました。喫煙所でDanさんの「あのサンプルだとC::Componentのありがたみないねー」のツッコミに対して「サンプルですから」とつぶやいたYappoさんの目が印象的でした。 Practical Web Scraping with Web::Scraper (miyagawa) ちょうどのめり込んだ後だったのでわかりやすく聞けました。CUIは知らなかった。便利そうなので使ってみたいと思います。 Perlで入門テキストマイニング (Tatsuwo) あーゆーアルゴリズ

  • Fedora Core 6 に Flex 2 をインストールして遊ぶ

    最近、仕事でFlex2を触り始めました。結構楽しいです。 Flashアプリケーションが無料で、しかもタイムラインとか意味不明なことを考えずに作れるのがとっても魅力です。 で、Fedora Core 6にインストールしたのでその手順のメモ。 まずはJavaの環境が必要なので整えます。 せっかくなのでJDK 6をインストール。(日フォントの設定などは今回関係ないので省きます。) SUNからパッケージを持ってきてインストール。 $ sudo ./jdk-6-linux-i586-rpm.bin Javaの環境設定。 .bash_profile export JAVA_HOME=/usr/java/jdk1.6.0 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$