そんなforth学習の一環として、手始めに
・ワード定義
・スタック操作
・文字列操作(?)
あたりを一気にやってみたので、メモを残しておきます。
: ddup ( a b -- a b a b )
over over
;
s" ほげ" ddup
type type cr
bye
$ gforth hoge.fth ほげほげ
: ddup ( a b -- a b a b )
over over
;
s" ほげ" ddup
type type cr
bye
$ gforth hoge.fth ほげほげ
~ $ mkdir ~/src
~ $ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.8.1.tgz
~ $ mv mongodb-linux-x86_64-1.8.1.tgz ~/src/ ~ $ cd ~/src ~/src $ tar zxvf mongodb-linux-x86_64-1.8.1.tgz ~/src $ ln -s ~/src/mongodb-linux-x86_64-1.8.1.tgz ./mongodb以上でインストール自体は完了です。なまら簡単だべ?
~ $ mkdir ~/src/mongodb/data/db -pこれだけです。
~ $ ~/src/mongodb/bin/mongod --dbpath ~/src/mongodb/data/dbフォアグラウンドで起き上がってきて、ログをだくだく吐き出したら、無事に起動できています。止めるときはCtrl+Cすれば止まります。
Thu Apr 14 11:14:40 [websvr] web admin interface listening on port 28017のような記述が見受けられます。見ての通り、「Web管理インターフェースがポート28017で待ち受けている」ということです。試しにブラウザでVPSの28017番ポートにアクセスしてみると、以下のようなページを見ることが出来ます。
package Plack::Middleware::OreOre;
use strict;
use warnings;
use parent qw/ Plack::Middleware /;
### enableでオプションを受け取る時に使用
# use Plack::Util::Accessor qw/ oreore watewate soregashisoregashi /;
our $VERSION = '0.01';
sub call {
my ( $self, $env ) = @_;
### ここに処理をかく ###
$self->app->( $env );
}
1;
__END__
Plack::Middleware::*を作るには、Plack::Middlewareを継承する必要があります。package Plack::Middleware::Hogehoge;
use strict;
use warnings;
use parent qw/ Plack::Middleware /;
use Plack::Util::Accessor qw/ jump_url listen_path /;
our $VERSION = '0.01';
sub call {
my ( $self, $env ) = @_;
return [ 301, [ 'Location', $self->jump_url ], [''] ] if $env->{ PATH_INFO } eq $self->listen_path;
$self->app->( $env );
}
1;
__END__
この場合、実際に使うときは以下の様なpsgiになります。use Plack::Builder;
my $app = sub { [ 200, [ 'Content-Type', 'text/html' ], ['<h1>hoge!</h1>'] ] };
builder {
enable "Hogehoge", listen_path => '/yahoo', jump_url => 'http://www.yahoo.co.jp/';
$app;
};
これをplackupすると、/yahooにアクセスしたときだけYahoo!Japanにリダイレクトされ、それ以外は"hoge!"とかかれたページが表示されます。$XML::Simple::PREFERRED_PARSER = 'XML::Parser';という具合に、XML::Simpleが内部的に使用するパーサにXML::Parserを指定すれば良い。
use WebService::Simple;
my $ws = WebService::Simple->new(
base_url => 'http://example.com/api',
param => { api_key => '***' },
);
my $res = $ws->get( 'hoge/fuga', { q => 'piyo' } );
my $xml = $res->parse_response;
use WebService::Simple;
use WebService::Simple::Parser::XML::Simple;
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
my $ws = WebService::Simple->new(
base_url => 'http://example.com/api',
param => { api_key => '***' },
response_parser => WebService::Simple::Parser::XML::Simple->new( xs => $xs ),
);
my $res = $ws->get( 'hoge/fuga', { q => 'piyo' } );
my $xml = $res->parse_response;
この様な具合でresponse_parserを食わせてみると、文字化けが治ったりするかもしれない。