第3回 Consumerの実装を知り、OpenIDを使ってみよう:OpenIDの仕様と技術(3)(1/3 ページ) 前回まではOpenIDの基礎知識として、根底にある考え方や用語を中心に解説してきました。今回はその準備を踏まえ、Perl、Catalystを活用し実際にConsumerサイトを構築してみましょう。(編集部)
牧大輔 (まき だいすけ) Japan Perl Association 代表理事 兼 endeworks 代表取締役 1977年生まれ、神奈川県出身 1歳からブラジルで暮らし、日本、ポルトガル、ブラジルなど各国を渡る。米Washington University卒業。2000年新卒で米Network Applianceに入社し、テストツールの作成に従事。これがPerlとの出合いとなる。その後、ネット上のPerlコミュニティで知り会った宮川達彦氏の紹介で2004年ライブドアに入社。米Lehman Brothersなどを経て、2006年endeworks設立。 ■endeworksは会社というより“工房” endeworks(エンデワークス)を創業したのは2006年。自社サービス開発を中心に受託開発もしています。社名の由来は、「“en”gineer+“de”signer」でendeworks
Introduction Welcome to the Class::DBI wiki. Although it could still use some improvement, the Class::DBI beginner's guide is a simple introduction to Class::DBI. There are also articles and conference talks that can serve as good introductions to Class::DBI, and there's always the Class::DBI documentation. Once you're familiar with Class::DBI, the Class::DBI cookbook is a useful resource.
Perlでutf-8って、何かと面倒くさいのね。前に使ってたのは5年ぐらい前に共用サーバでcgi書いてたぐらいだから全く把握してなかった。 まず判断が付かないのが、use utf8;した方がいいのかどうか。全部utf-8な環境では最初にuse utf8;しておくのが吉とdankogaiも言ってる。確かにマルチバイト文字列の長さを見たり、正規表現を通すには指定しておいた方がよさげ。でも、周りのライブラリがついてこなかったりして困る。 DBIで直接DBを叩いている古いスクリプトを移行したら、DBから取ってきたデータが文字化ける。DBIx::Classで取ってくるようにして、utf8_columns指定したら解決した。ただ、この状態でDB内のデータがどうなっているかとか、他のスクリプトとの連携がどうなるかは確認できていないので要調査。 DBからデータを拾ってくるのはよしとして、Template:
以前Sledgeについて書いたんですが、サンプルが無くて動作確認して無かったので、「まるごとPerl vol.1」のサンプルを使用して動かして見ました。 実際に動かしてみる際に以前の設定から変更した所があるので、再度エントリします。 Apacheの設定 まず、mod_perlを有効にします。また、apacheのSetEnvを使いたいので、mod_envも有効にしておきます。 $ sudo vi /etc/httpd/httpd.conf 206行目 #LoadModule env_module libexec/httpd/mod_env.so コメントを外す LoadModule env_module libexec/httpd/mod_env.so 239行目 #LoadModule perl_module libexec/httpd/libperl.so コメントを外す LoadMod
少し反応をいただいたので追記。 木村さんの「‘=>’の右辺にあるからリストコンテキストになるというのはちょっと違うような気がします。」について。実装の話ではなくあるべき仕様の話をしていま… 続きを読む »
神経質(A型)なPerlハッカーあるある ネタですが、実話です。 use Module; 宣言を書く時、全部ABC順にしないとイライラする。s///とかをs{}{}って書くとエスケープいらないのに、s/\\\/\\\/\\\\/g s/\\\/\\\//\\\\/gとか見るとイライラする。(追記:なんか一個抜けてた)qw// をqw()と書き直さずにはいられない。for(my $i = 0; $i < 10; $i++) とかを見ると for my $i (0..9)に書き直さずにはいされない他人からもらったファイルを開ける前はとりあえず perl -i -pe 's/\r\n/\n/g'if ( ... ) elsif (...) elsif (... ) else ... みたいなのを見るととりあえずディスパッチテーブルを書きたくなるif ($foo eq 'XXX' || $foo
Sledgeのソースを追った記録。 社内の共通言語がPerlなところに最近入社したわけですが、殆どのサービスがSledgeで作られているので、理解する必要がありありなんですけど、Perlが危ういレベルなので解説記事を見てもちゃんと理解できませんでした。で、最近「続・初めてのPerl」を読み出してようやくOOPerlをやる上で必要な情報に触れ出したので、ちゃんとソースコードを追いかけてみました。頭に残るようソースを追った記録を残しておきたいと思います。 あ、自分のPerl歴とかを書いておくと、 約1年前くらいに、man perlから情報を辿りながらちょっとしたテキストツールは作ったことがある。(dbのselectした結果をファイルに吐いて、正規表現で良い具合に整形して、何かとデータを付き合わせるみたいの) ちゃんとした勉強を開始したのは12/1から。 最初に初めてのPerlを読んだ。ただし、
@ [perl] Apache2 + mod_perl2.0.1 + Sledge-1.11 今週頭からずっとインストールにてこずっていたのですが、昨日朝方までかけてなんとかHello world!を出すところまでたどり着きました。 環境はDebian sarge + Apache 2.0.54です。Apacheはdebからインストールしている状態です。perlとmod_perlとlibapreqとSledgeはここで野良ビルドしてインストールします。 まずはperlのインストールから。http://cpan.org/src/README.htmlよりstableである5.8.7をダウンロードして解凍します。 $ tar xvzf stable.tar.gz $ cd perl-5.8.7 $ sh Configure -Dusethreads -Duselargefiles \ -Dus
CR+LF(0x0d, 0x0a)をLF (0x0a)にする。 sedの場合 # sed -e s/^v^m// foo.txt > bar.txt(Ctrl+v Ctrl+m と入力) viの場合 :%s /^v^m// trコマンド # tr -d < foo.txt > bar.txt dos2unixコマンド # dos2unix foo.txt perlで # Linux -> Windows # perl -pe 's/\012/\015\012/g' foo.txt > bar.txt # Windows -> Linux # perl -pe 's/\015\012/\012/g' foo.txt > bar.txt
2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl 日本語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ
2009年06月05日03:30 カテゴリLightweight Languages js/perl/python/ruby/scheme - 真偽のほどはいかに こちらでも調べてみた。 各言語におけるtrue/falseまとめ - 床のトルストイ、ゲイとするとのこと 追加で調べたのは NaNとInfの扱い - 作り方と真偽値 「ジェネリック」な真偽値 JavaScript Perlと以外と似ている。 NaNはNaN、InfはInfinityという名で組み込み ジェネリックな真はtrue、偽はfalse #!/usr/bin/js tell_me_the_truth = function(s){ var p; eval('p = ' + s); if (p){ print('\'' + s + '\' (' + p + ')' + ' is TRUE.'); } else{ print('
Perl を使って半角カタカナと全角カタカナの変換をするスクリプトを、標準モジュールの Encode.pm と Unicode::Japanese と Lingua::JA::Regular::Unicode を使ってそれぞれ変換スクリプトを書いてみる。 まずは、標準モジュールの Encode.pm を使った場合。 変換を文字コード euc-jp で行うために、変換前と変換後に utf-8 との文字コード変換を行う必要があった。 use Encode; use Encode::JP::H2Z; my $str_z = "Hello World.全角カタカナデス。 12345 67890"; my $str_h = "Hello World.全角カタカナデス。 12345 67890"; # 全角カナ→半角カナ Encode::from_to($str_z, "utf-8", "euc-j
Perl › 関数 › here 小数点を切り下げるには、POSIXモジュールのfloor関数を使用します。 use POSIX 'floor'; my $ret = floor $num; サンプル 小数点を切り下げるサンプルです。 use strict; use warnings; use POSIX 'floor'; my $num1 = 1.5; my $num2 = -1.5; print "(2)小数点を切り下げる。\n"; my $num1_floor = floor $num1; my $num2_floor = floor $num2; print "$num1の切り下げ : $num1_floor\n"; print "$num2の切り下げ : $num2_floor\n"; Perl › 関数 › here
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
TT (Template-Toolkit) で値にフィルタを掛ける時に [% value | replace('x','y') | uri | html %]みたいに書きますが、Text::MicroTemplate だと仮に replace(), uri() という関数を用意しても <?= uri( replace($value,'x','y') ) ?>こんな感じ。なんか読みにくい気がする。(まあ PHP だってそうだといえばそうなんだけど) <?= $value | replace('x','y') | uri ?>こんな風に書けたら素敵ですよね。ということでこんなのを書いてみた。 package Filter; use strict; require Exporter; our @ISA = qw/ Exporter /; our @EXPORT_OK = qw/ html uri
HTTP-Engine-0.03005 - Web Server Gateway Interface and HTTP Server Engine Drivers - metacpan.org local::lib で $HOME/perl5 以下をいろいろセットアップしてからインストール。一発で依存含めて全部入った。 HTTP::Engine, HTTP::Engine::Interface::ServerSimple の POD を読む SYNOPSIS 通りに書いてみる→エラー→タイプミスしてた→書き直し→動いた! HTTP::Engine::Request の POD も読む→ $req->param('key') とかできる HTTP::Engine::Middleware もインストールする HTTP::Engine::Middleware の POD も読む→なんとなく役割が
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く