はじめに はじめまして。井上武(たける)といいます。 2007年後半はAtomPub(Atom Publication Protocol)に関するニュースが目白押しでした。7月には、日本で初めてのAtomPub接続実験(Interop)が行われました。10月にはIETFでRFCとして承認され、仕様が確定しました。11月になるとGoogleからOpenSocialが発表されました。OpenSocialは、AtomPubをベースとしたSNS APIです。12月にはAtomPubの理論的背景を解説した『RESTful Web サービス』の日本語版が発売されました。 このように、AtomPubを取り巻く環境は、理論から実装、基本から拡張までとても賑やかです。AtomPubを使うと、Webサービスをシンプルでわかりやすく仕上げることができます。これが、AtomPubが注目を集めている理由です。 この
指定したhook pointを実行し、順番にhook pointのコードを処理し、最初に戻り値があった時点で以降に登録されたコードの実行は行ないません Hook関連のメソッドは少なく、シンプルですね。 register_hookは主にPluginから利用されるメソッドになっており、hook pointとhook poinに対するコードをPlaggerに対して登録します。 Class::Triggerで言う所のadd_triggerになります。 実際のプラグインのコードを引用すると下記のように利用されます。 # Plagger::Plugin::Publish::CHTML sub register { my($self, $context) = @_; $context->register_hook( $self, 'publish.feed' => \&feed, 'publish.fi
FieldHashを使ったInside-Outクラスあれこれの続き。 結局のところ,FieldHashによるInside-Outクラスはハッシュリファレンスを用いたものより遅い。しかしそれにもかかわらず,FieldHashが非常に有効なケースがある。それは,Mixinクラスを作るときに本来のオブジェクトの実装に影響を与えずにプロパティを設定したいときである。 たとえば,DBIx::Classで使われているClass::Accessor::Grouped(v0.08002)には以下のような箇所がある: sub get_inherited { my $class; if (Scalar::Util::blessed $_[0]) { my $reftype = Scalar::Util::reftype $_[0]; $class = ref $_[0]; if ($reftype eq 'H
長かった。 mt-config.cgiを動かそうとすると、決まって「DBD::mysqlがない」って言われるので、cpanからインストールするようにすると、なぜかインストールの途中でこけたり、インストールされても mt-check.cgi に反映されないやらで困っていたのです。さんざんトライした挙げ句に、本日以下の方法でうまくいきました。備忘録として残しておきます。 0. 環境 MacOSX 10.5.2 Perl 5.8.8 MySQL 5.0.51(MacPortsからインストール。これが実はくせもの) MySQLはインストールが済んでいるという前提です。 1. まずDBIをcpanからインストールする mt-config.cgiでは「DBI入ってるよ」と言われるのだけれど、バージョン違いなどがあるかもしれないので、cpanから新しく入れてみる。 $ cpan cp
Devel::Caller が便利すぎる件について - IT戦記 Devel::Caller と PadWalker モジュールをわざわざインストールするのは面倒という方に arguments.xs を作りました。 以下のコマンドでarguments.xsをインストールできます。coderepos++ svn co http://svn.coderepos.org/share/lang/perl/arguments cd arguments cd trunk perl Makefile.PL make make test make install 使い方はこんな感じで JavaScript っぽい arguments.callee を使った再帰呼出が Perl でも綺麗に書けるようになります。 NAME arguments.xs - Perl extension for arguments
正月番組をみながら[http://perldoc.perl.org/perlxstut.html#EXAMPLE-3:title=perldoc perlxstut]を読んだ.メモをとったのでせっかくだからはっつけておくよ. ちょっとメモがはしょり気味なのと,うちの理解があやしいところがあってこころもとないですが,perlxstut読むときの参考にでもなればばば. Example1 $ h2xs -A -n Mytest で雛形がつくれる.生成されたMytest.xsにXSのコードを書く 値を返さないHello, WorldだとCODE:以下にprintfを書くだけでOK void hello() CODE: printf("Hello, world!\n"); CODE: みたいな部分はXS特有の書き方.あとで展開されてCのコードになる. $ perl Makefile.PL $ mak
id:tokuhirom さんが http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 で下地をつくってくださったので(perl-users.jp むけまとめも期待してます),ちょっとアドバンスドな話題を。 例題 http://www.sra.co.jp/people/m-kasahr/eb/ http://www.sra.co.jp/people/m-kasahr/eb/ の Perl binding を開発するとしましょう。 http://www.sra.co.jp/people/m-kasahr/eb/ の使い方は,たとえば次のような感じです。 EB_Book *book_pointer; book_pointer = (EB_Book *) malloc(sizeof(EB_Book)); eb_initialize_book(bo
RSS を読み込んでランダムな文章を生成する 2008-09-07-3 [Programming][NLP][IIR][WebAPI] 今日のIIR輪講[2008-09-07-2]の内容のフォローも兼ねて、ちょっとしたハックを紹介。 bigram language model に基づく、ランダム文生成を行います。 って、まあ、単純にある単語の次に現れる単語の分布を用いて、文章を生成していくだけですが。 以下、サンプルプログラムと実行例です。 サンプルコード rss-lm.pl #!/usr/bin/perl use strict; use warnings; use XML::RSS; use LWP::Simple; use XML::Simple; use URI::Escape; use utf8; binmode STDOUT, ":utf8"; my $appid = "Yaho
404 Blog Not Found:perl - myとourとscopeと みんな難しく考えすぎです。 (例外については後で考えることにして)とりあえず以下の基本をおさえておけば混乱することはないと思います。 ■ our 宣言について our はグローバル変数をスマートに使用するための宣言です。our は use vars と等価と考えてください。 our $var; は use vars qw($var); と等価。 our $var = 1; は use vars qw($var); $var = 1; と同じ動きをするもの、と覚えておけばOKです。それ以上の違いは基本的にないと考えて構いません。 ひとつ実用上の違いがあるとすれば、our は Perl 5.6 以降の built-in なのに対して、use vars は vars.pm の Perlスクリプトで実装されています。し
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く