一昨日に続いて、今日も海だよりに行ってきた。
アワビの刺身が目的だったわけだけど、
タコしゃぶとアサリの酒蒸しが旨すぎてしょうがない。
ほっけの焼き物も旨かった。
少しでも貢献できればいいなと思ったのでブログに書いてみる。
サイト: http://www.umidayori.sakura.ne.jp/
住所: 北海道札幌市北区北23条西3丁目 ダイアパレス北23条1F
地下鉄 南北線の北24条駅の4番出口から東に10mくらい行った場所にあります。
8月からマグロ祭(予定)らしいので待た行ってきます!
2010/07/30
2010/07/28
YAML 0.71でutf8 flagが自動で付与される
今日、はまったのでメモ
YAML 0.71からLoadFileで読みこんだデータはutf8 flaggedになっている。
まずは検証の準備
チェック用の簡単なスクリプトを用意
読み込むデータをdata.yamlとして保存
実行結果
YAML 0.71からLoadFileで読みこんだデータはutf8 flaggedになっている。
まずは検証の準備
yoshi@mb yaml% cpanm -l 0.71 http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/YAML-0.71.tar.gz yoshi@mb yaml% cpanm -l 0.70 http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/YAML-0.70.tar.gz
チェック用の簡単なスクリプトを用意
読み込むデータをdata.yamlとして保存
--- hoge: fuga
実行結果
yoshi@mb yaml% perl -I0.70/lib/perl5/ yaml-utf8-check.pl SV = PVMG(0x1008a5280) at 0x100830040 REFCNT = 1 FLAGS = (POK,pPOK) IV = 0 NV = 0 PV = 0x1006af9f0 "fuga"\0 CUR = 4 LEN = 8 yoshi@mb yaml% perl -I0.71/lib/perl5/ yaml-utf8-check.pl SV = PVMG(0x1008a56a0) at 0x100988908 REFCNT = 1 FLAGS = (POK,pPOK,UTF8) IV = 0 NV = 0 PV = 0x1006dec10 "fuga"\0 [UTF8 "fuga"] CUR = 4 LEN = 8
2010/07/12
MyOpera BlogをMT形式でExport
Opera BlogでJavaScirptが使えないのでBloggerに移行した。
しかしOpera Blogにはexport機能がないので、
しかしOpera Blogにはexport機能がないので、
- 過去データをmetaWeblog APIとWeb::ScraperでMT形式に変換
- http://code.google.com/p/google-blog-converters-appengine/のmovabletype2blogger.shでxmlに変換
2010/07/05
Plack::Middleware::Parallel::Scoreboard
ちょうどPlackでServerStatus表示機能が欲しかったところで、Parallel::Scoreboardの話しを聞いのでPlack::Middlewareにしてみた。
http://gist.github.com/464066
Opera blogはJavascript使えないから困る
http://gist.github.com/464066
Opera blogはJavascript使えないから困る
2010/03/30
MySQL Proxyをちょっと触った
MySQL Proxyを少し触ったのでメモ
MySQLサーバとクライアントに入るミドルウェア。
現在のversionは0.8.0でbeta状態。
--proxy-addressで自分の待ち受けポート等を指定できる。
FAQだとsocketで待ち受けはできないって書いてあるけど、すげー下の方にあるコメントを読むと待ち受けできるよ!って書いてあった。
実際できる。
ただし作成されるsocketの権限が1755で、オーナーが--userで指定したユーザではなく起動ユーザになっているので、
他のユーザから書き込めない可能性がある。
CentOS 5.4Finalのyumから入れたmysqld-serverだとデフォルトで作成されるsocketは1777になっていた。
同じパーミッションに変更してあげると普通にmysql-clientからも接続できた。
またmysqlはデフォルトでsocketとTCP接続の両方で待ち受けるけど、MySQL Proxyはどちらか片方でしか待ち受けできない。
localhost上にあるMySQLへの接続をProxyしようとすると、MySQL Proxyを二つ走らせる必要がありそう。
シグナルの処理がおかしい気がする SIGTERMとかSIGHUPを送っても反応がなかったりとか。
MySQLサーバとクライアントに入るミドルウェア。
現在のversionは0.8.0でbeta状態。
--proxy-addressで自分の待ち受けポート等を指定できる。
FAQだとsocketで待ち受けはできないって書いてあるけど、すげー下の方にあるコメントを読むと待ち受けできるよ!って書いてあった。
実際できる。
ただし作成されるsocketの権限が1755で、オーナーが--userで指定したユーザではなく起動ユーザになっているので、
他のユーザから書き込めない可能性がある。
CentOS 5.4Finalのyumから入れたmysqld-serverだとデフォルトで作成されるsocketは1777になっていた。
同じパーミッションに変更してあげると普通にmysql-clientからも接続できた。
またmysqlはデフォルトでsocketとTCP接続の両方で待ち受けるけど、MySQL Proxyはどちらか片方でしか待ち受けできない。
localhost上にあるMySQLへの接続をProxyしようとすると、MySQL Proxyを二つ走らせる必要がありそう。
シグナルの処理がおかしい気がする SIGTERMとかSIGHUPを送っても反応がなかったりとか。
2010/03/05
Mojoliciousのメモ
Mojoliciousをちょっと使ってて覚えたことをメモ。
まずリダイレクトではまった
Apache(mod_proxy)+Mojolicious(daemon_prefork)の構成
上記のように設定して、http://example.com/hoge/をhttp://example.com/hoge/fuga/xxxxxにredirectしようとredirect_toを使ったら、http://example.com/fuga/xxxxxにredirectされた。
原因はMojoliciousのredirect_toが吐き出すLocation headerが相対URLだったため、ProxyPassReverseでドメインが書き換えられなかったことだった。
解決策としてMojolicious::Controllerを継承したクラスにredirect_to_absを実装した。
次にpathのcaptureで時間を食ったのでメモ
pathをcontroller側でパラメータとして受けとる場合は下記のようにしないといけない。
"id => undef"がポイント。デフォルト値を与えない場合は明示的にundefを渡してやらないと、controller側で値を取得できない。
controller側では下記のようになる。
Catalystみたいに$cに続いてキャプチャできるのかと思ってたら、全然違ってハマった。
まずリダイレクトではまった
Apache(mod_proxy)+Mojolicious(daemon_prefork)の構成
ProxyRequests Off
ProxyVia On
ProxyPass /hoge/ http://localhost:3000/
ProxyPassReverse /hoge/ http://localhost:3000/
上記のように設定して、http://example.com/hoge/をhttp://example.com/hoge/fuga/xxxxxにredirectしようとredirect_toを使ったら、http://example.com/fuga/xxxxxにredirectされた。
原因はMojoliciousのredirect_toが吐き出すLocation headerが相対URLだったため、ProxyPassReverseでドメインが書き換えられなかったことだった。
解決策としてMojolicious::Controllerを継承したクラスにredirect_to_absを実装した。
package MyApp::Controller;
use strict;
use warnings;
use base 'Mojolicious::Controller';
sub redirect_to_abs {
my $self = shift;
my $url = $self->url_for(@_);
return $self->redirect_to( $url->to_abs->to_string);
}
1;
次にpathのcaptureで時間を食ったのでメモ
pathをcontroller側でパラメータとして受けとる場合は下記のようにしないといけない。
my $r = $self->routes;
$r->route('/hoge/:id')->to('example#hoge', id => undef);
"id => undef"がポイント。デフォルト値を与えない場合は明示的にundefを渡してやらないと、controller側で値を取得できない。
controller側では下記のようになる。
package MyApp::Example;
use strict;
use warnings;
use base 'Mojolicious::Controller';
sub hoge {
my $self = shift;
my $id = $self->param('id');
}
1;
Catalystみたいに$cに続いてキャプチャできるのかと思ってたら、全然違ってハマった。
登録:
投稿 (Atom)