タグ

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

  • YAPC::Asia 2012 に行ってきた - hide-k.net#blog

    YAPC に参加したのに blog を書かないと怪僧に激詰めされると聞いて、久々に blog 見たら前回のエントリーがまさかの YAPC::Asia 2011 のエントリーで特保コーラを噴射しました。 こんばんは。 今回は前回と違ってスピーカー登録をしていなかったのと、iPhone 5 の入荷仕事の関係上1日目の大半を抜けざるを得なかったので、参加したとは言い難いのですが、とりあえず行ってきました。 各トークの感想は他の blog に譲るとして、ちょっと気になったのが charsbar さんの CPAN Author の動向調査で全体的にアクティビティが下がってるのでは?という発表でした。これは最近思うことが色々あって、前日に自分から charsbar さんにお願いして出してもらったのですが、結果としてはだいたい予想通りでした。 ただ、これに対しては charsbar さんも壇上で言って

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

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

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

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

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

    kamipo
    kamipo 2011/04/18
  • 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

    kamipo
    kamipo 2010/11/19
  • 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

  • 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

  • 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

    kamipo
    kamipo 2009/06/04
    perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "CD", {use_namespaces => 1, debug => 1}, ["dbi:SQLite:cd.db","",""]'
  • ディストリビューションにおける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

    kamipo
    kamipo 2009/05/29
  • 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

    kamipo
    kamipo 2009/04/23
    perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")'
  • 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

  • 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()

  • hide-k.net#blog: Favicon::Gallery

    Image::Seekは結構面白いモジュールだなーなんて思ってたらyusukebeさんがYokohama.pmのLTでドンピシャのタイミングで紹介されてた(残念ながら行けなかったですが...)ので、ちょこちょこっと作ってみました。 Favicon::Gallery 入力されたURLからfaviconを持ってきて登録されている中から似たfaviconを探すだけの簡単なお仕事です。 あらかじめAlexaのトップ500のサイトから適当に入れてみました。 ちなみにImage::Seekはimgseekの実装でHaar waveletを用いて相関を求めてます。 精度に関しては?って感じではありますが、まーお遊びなので。

    kamipo
    kamipo 2008/08/29
  • 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: TTでDBICのmany_to_manyなメソッドを使う

    [% WHILE %] の中のこと その後 (日々のこと) と、思っていたら、多対多のときには _rs ではできないね。 そうそう。忘れてました。many-to-manyではできないんですね。 これはドキュメントにもちゃんと書いてあって DBIx::Class::Relationship - Inter-table relationships - search.cpan.org Many_to_many is not strictly a relationship in its own right. Instead, it is a bridge between two resultsets which provide the same kind of convenience accessors as true relationships provide. Although the ac

  • hide-k.net#blog: TTでDBICのhas_manyなメソッドを使う

    よくわからない表題ですが要は・・・ MyApp::Schema::TopicsとMyApp::Schema::Commentsが1:nの関係にあるとして package MyApp::Schema::Topics; use strict; __PACKAGE__->has_many('comments' => 'MyApp::Schema::Comments'); 1; こんなアクションで sub list : Local { my ( $self, $c ) = @_; my $topics = $c->model('Topics')->search({}); $c->stash->{topics} = $topics; $c->stash->{template} = 'list.tt'; } TTで素でやる場合 <html> <body> <ul> [% WHILE (topic =

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