タグ

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

  • 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

  • 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: 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: Catalystでマルチバイトを取り扱うときのまとめ

    #前に社内wikiに書いておいたのを公開してみるテスト。 Catalystでマルチバイトを扱う機会があるのは主に ユーザーがフォームで入力する値 ($c->req->param()) データベースからの入出力 (DBIx::Class) それ以外の文字列の評価 View::TTによる出力の生成 FillInFormによるフォームの埋め込み HTTPレスポンス です。 ここでは以下の条件でまとめてみました。 文字コードはUTF8に統一 データベースにはmysqlを使用 下準備 テンプレート、perlのコードは全てUTF8で書きます。 mysqlの文字コードの指定は/etc/my.cnfに [mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysql] default-character-set

  • hide-k.net#blog: vimでJavaScriptを整形

    最近猛烈にJavaScriptを書く機会が増えたのでvimで整形ツール欲しいなと思っていました。 で、YappoさんのJavaScript::Swellを使ってみることにしました。 CPANでインストールしてこんなラッパー作って ~/bin/js_swell.pl #!/usr/bin/perl use strict; use JavaScript::Swell; my $data; while (<>) { $data .= $_; } close IN; print JavaScript::Swell->swell($data); .vimrcかなんかにこんな風に書いたら map ,jt <Esc>:%! ~/bin/js_swell.pl<CR> こんなコードが var i=0;if(i++){var a=-1;} vimから:,jtでこんな風になりました var i = 0; i

  • hide-k.net#blog: DBICでTwitterのユーザー関係を表してみる

    追記: 勘違いしてたので別エントリーで補足 Twitterで言うところのfavorites、followers、friends。 もごもごで言うところの片想い、想われ、両想いの関係をDBICで表してみました。 まず関係の定義から。 favorite(片想い): AがBをお気に入りに入れるとAから見てBはfavoriteな関係(片方向) follower(想われ): Bから見てAはfollowerな関係(片方向) friend(両想い): Aのお気に入りに入ってるBがAをお気に入りに入れると両方から見てfriendな関係(双方向) で、テーブル設計ですが、それぞれをテーブルとして持ってもいいのですが、関係を追加するごとにあちこちのテーブルを見なきゃならんので、一個のテーブルで済ましてみました。 要は user_linksテーブルを使ってusersを自己結合なmany-to-m

  • hide-k.net#blog: perlでポラロイド風に画像加工

    最近、またImageMagickをさわる機会があったので、ちまたで人気のPolaroizeと同じことがPerkMagickでできんかとこの辺を参考に試してみました。 手元にまともなImageMagickが使える公開サーバーがなかったのでスクリプトだけ。 Fedora Core 6の ImageMagick-6.2.8.0-3.fc6.1 ImageMagick-perl-6.2.8.0-3.fc6.1 で試しました。 poralize.pl use strict; use Image::Magick; my $input = 'image.jpg'; my $output = 'polaroid.jpg'; my $img = Image::Magick->new; $img->Read($input); $img->Border( width => 10, height => 1

  • hide-k.net#blog: Chained ActionでスマートなURL

    Chained Actionを使った例でこんな記事がありました。 /user/ ユーザー一覧 /user/add ユーザー追加 /user/[ユーザー名] [ユーザー名]の詳細 /user/[ユーザー名]/edit [ユーザー名]の編集 /user/[ユーザー名]/delete [ユーザー名]の削除 というURL構成を再現するのに package MyApp::Controller::User; use strict; use warnings; use base 'Catalyst::Controller'; sub _parse_PathPrefix_attr { my ( $self, $c, $name, $value ) = @_; return PathPart => $self->path_prefix; } sub root : Chained('/') PathPrefi

  • hide-k.net#blog: 使ってるCatalystのPlugins/Components

    こんなエントリーがあったので進行中のプロジェクトで今のところ使ってるのを晒してみる。 Catalyst::Action::RenderView Catalyst::Model::DBIC::Schema Catalyst::View::TT::ForceUTF8 Catalyst::View::JSON Catalyst::Plugin::Static::Simple Catalyst::Plugin::ConfigLoader Catalyst::Plugin::Dumper Catalyst::Plugin::StackTrace Catalyst::Plugin::Session::* Catalyst::Plugin::Authentication::* Catalyst::Plugin::FormValidator::Simple Catalyst::Plu

  • hide-k.net#blog: いつでもどこでも、すぐに Class::DBI を使いたい

    仕事でレンタルサーバー上でCGIを書く羽目になったのですが、root権限はおろかシェルも使えない環境なのでCatalystにどっぷりつかっていたボクとしては面倒くさくて気が狂いそうです。 特にDB周り。 DBI直たたきなんて非人間的な作業をやっているとバグつぶしだけで頭がおかしくなりそうです。 で、なんとかClass::DBIだけでも使えないか調べて見ました。 CDBIが依存しているクラスでXSを使っているのはversionとCloneだけです。 それならある程度環境が整っているレンタルサーバーならなんとかなるだろうってことで調べて見ると、都合のいいことにversionは--perl_onlyオプション付きでMakefile.PLすればPure Perlなクラスを作成してくれるし、CloneはClone::PPなるPure PerlなCloneクラスがありました。 で、やってみました。

    overtake
    overtake 2006/07/25
    レンタルサーバーでClass::DBI
  • 1