タグ

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

  • YAPC::Asia 2011 で基調講演らしきことしてきた - hide-k.net#blog

    久々に blog 書こうとしたら、パスワード忘れて、きーーーっとなってたら ID 間違えてました。 こんばんは。 そろそろ一週間になりますが、YAPC::Asia 2011 で基調講演らしきことをしてきたので、そのお話を。 今回、この話を受けた経緯としては irc で自重できない人たちの完全な悪のりに乗せられた感じですが、当日は握手会がなかったので引き受けました。 当日は、これまた自重できない人たちが何かピカピカ光る棒状の物を振ってたり、飲禁止のはずの講堂の壇上にテキーラが一瓶置いてあったりと、とても格調高い雰囲気の前で話させていただきました。 まじめな話、今回のテーマがEvolutionということで、自分みたいなマネージャーの立場から Perl monger といかに仕事をしているかというのを紹介させてもらって、マネージャーに興味を持って裾野が広がって、Perl仕事が増えて、みんな幸

  • 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。クライアントサイドフローとサーバーサイドフ

    dann
    dann 2011/04/16
  • 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

    dann
    dann 2010/11/19
  • PSGI/Plack で gadgets.io.makeRequest() の署名検証する - hide-k.net#blog

    エアRTは家庭崩壊を招きかねないので絶対にしちゃだめです。 こんばんは。 そろそろモバゲーも mixi さんに続いて Yahoo! と協力して PC版 OpenSocial アプリケーションプラットフォームをリリースするそうです。というかします。 で、OpenSocial JS API では、外部のサーバーと安全に通信するための仕組みとして、Gadget Server を Proxy してリクエストする gadgets.io.makeRequest() という、メソッドが用意されています。このメソッドはオプションでリクエストに署名をつけることができて、受け手でその署名を検証することによってリクエストの妥当性を保証することができます。 これを Perl で実装する場合、詳しくは mala さんの mixiアプリのOAuth署名の検証 の記事が詳しいのですが、もうちょっと突っ込んで説明して P

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

  • モバイルなプラットフォームでの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

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

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

    dann
    dann 2010/02/23
  • http://blog.hide-k.net/archives/2010/02/oauth_signature.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hidek+(hide-k.net

  • LDAPでシステムとSubversionとTracのアカウントを一元管理する - hide-k.net#blog

    以前から個人的にLDAPを導入しているのですが、意外と忘れがちなので備忘をかねてメモります。 昔のメモなので今と挙動が違うかもしれませんがご了承ください。OSはCentOS 5です。 まずはOpen LDAPのインストールと設定をします。 関連パッケージのインストール $ yum -y install openldap openldap-servers openldap-clients openldap-devel ディレクトリマネージャのパスワードを生成する $ /usr/sbin/slappasswd -h {SSHA} New password: Re-enter new password: slapd.confの設定 /etc/openldap/slapd.conf ...snip... access to attrs=userPassword by self write by a

  • 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.

  • ディストリビューションにおける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

    dann
    dann 2009/06/04
  • 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

    dann
    dann 2009/06/02
  • 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

  • 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

    dann
    dann 2009/02/17
  • 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

    dann
    dann 2009/02/04
  • 続: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: DBIx::Class::ResultManagerのdeprecatedに備える

    DBIx::Class::ResultSetManager - scheduled for deletion in 09000 - search.cpan.org DBIx::Class::ResultSetManager never left experimental status and has now been DEPRECATED. This module will be deleted in 09000 so please migrate any and all code using it to explicit resultset classes using either __PACKAGE__->resultset_class(...) calls or by switching from using DBIx::Class::Schema->load_classes()

    dann
    dann 2008/10/17
  • hide-k.net#blog: Kazuho式フレンド・タイムライン実装をDBICで表してみた

    Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践 奥さん人の中でブームが去った感もあるRDBMSで実現するフレンド・タイムライン処理ですが、そういえばDBICで使ってみたのを思い出したので晒してみます。 要はDBICからストアドプロシージャの叩き方を知りたかっただけなんですけどね。 パッケージ名はWebインターフェースはどーせCatalystで作るでしょってことでCatalyst + Twitter = Catatter…って安直なネーミングですね。 記事中ではプッシュ型とプル型が紹介されているのですが、データ量やfollow, removeの際のコストとか考えたらプル型の方が好みかなってことでプル型を採用してみました。 また、基的にスキーマやストアドプロシージャはオリジナルと同じですが、DBICでPKをマルチカラムにするとめんどっちーのでサロゲートキーを

    dann
    dann 2008/06/30
    dbicでtimeline
  • hide-k.net#blog: Catalyst::Controller::RequestToken 0.01 release

    あちこちで叫ばれている、むやみやたらにCatalystのPluginを作るべきではない運動。(この辺はトクヒロムさんがキャンペーンを張ってるので一読して方がいいです。) まー言われていることはもっともで、ComponentでできることはComponentにすべきなわけです。 で、拙作のCatalyst::Plugin::RequestTokenなる代物も一部finilizeを使っているものの、明らかにControllerにするべきなので、C::P::RequestTokenをdeprecateさせてCatalyst::Controller::ReqeustTokenってのをとりあえず作ってCPANでリリースしました。 使い方は package MyApp::Controller::Foo; use base qw(Catalyst::Controller::RequestToken);

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

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

    dann
    dann 2008/05/21
    cooooooooooooool