OpenIDでテキストを共有できます
- 新規作成
- OpenIDで認証してエントリーを新規作成します
- 共有
- エントリーにはOpenIDで閲覧と編集に制限かけることができます
- 変更履歴
- 編集履歴もあるので、コラボレーションにも活用できます
新着エントリー
lumilic初体験
形態素解析の勉強をしてたら偶然blog.nomadscafe.jpにたどりつき
limilicにたどりつきました。
しんぷるなつくりに惚れぼれ。
でも、はてなの記法はわかんないや。うひょー。
FormValidator::LazyWay
Index: lib/FormValidator/LazyWay.pm =================================================================== --- lib/FormValidator/LazyWay.pm (revision 14373) +++ lib/FormValidator/LazyWay.pm (working copy) @@ -72,7 +72,16 @@ $storage->{has_error} = ( $storage->{has_missing} || $storage->{has_invalid} ) ? 1 : 0 ; $storage->{success} = ( $storage->{has_missing} || $storage->{has_invalid} ) ? 0 : 1 ; - return FormValidator::LazyWay::Result->new($storage); + { + no strict 'refs'; + my $resclass = 'FormValidator::LazyWay::Result'; + *{"${resclass}::valid"} = sub { + return $_[0]->{valid} if @_ == 1; + return $_[0]->{valid}->{ $_[1] } if @_ == 2; + }; + } + + FormValidator::LazyWay::Result->new($storage); } sub _set_error_message_for_display {
LWP::ConnCacheテスト
LWP::ConnCacheの効果を確認してみる
Webサーバは、MacOS X 10.4.11の素のApache。
KeepAliveがOnで、Timeout 15、MaxRequestが100になっているようです
スクリプト
#!/usr/bin/perl use strict; use warnings; use Benchmark qw(:all); use LWP::UserAgent; use LWP::ConnCache; my $conncache = LWP::ConnCache->new; cmpthese(1000, { 'no-keepalive' => sub { my $ua = LWP::UserAgent->new; $ua->get("http://127.0.0.1/", ':content_cb' => sub { } ); }, 'keepalive' => sub { my $ua = LWP::UserAgent->new; $ua->conn_cache( $conncache ); $ua->get("http://127.0.0.1/", ':content_cb' => sub { } ); } });
結果
$ perl keepalive_bench.pl
Rate no-keepalive keepalive
no-keepalive 463/s -- -19%
keepalive 568/s 23% --
20%ぐらい早い。
ちゃんと動きそう
テスト
編集してみる
OpenID をいろいろと試してみる
どこのどのサービスが一番使いやすいだろう?
ここはどうだろうか?
機能的には、やや劣るような気がする。
OpenID4UがOpenID2.0対応
OpenID4UがOpenID 2.0に対応したようです
id:lopnor++
しかも、OpenIDに"openid4u.net"と書くだけでログインできる。
openid4u.netに飛んだ後、どのサービスを利用するかを選んで、選んだidentityで最終的に認証されると。
スバラシス。
memcached-1.2.5-rc1 noreplyを試す
memcached-1.2.5のrc1がでたので試す
(今夜にもリリースされるとか)
個人的な目玉はnoreplyの追加
Cache::Memcached::FastのAuthorのTomash Brechkoが提案していたもの
簡単にいうと、setやadd、deleteした場合に、結果を返さないでそこで終了するもの
Fastやlibmemcachedにはnowaitってのがあったんだけど、これはreplyを待たずにクライアント側で終了するだけ、
noreplyは実装をサーバ側にもひろげて、reply自体を削った感じ。
Cache::Memcached::Fastは既にこれに対応していて、付属のbenchmarkスクリプトでテストができる
noreplyを使うときは以下のようになるっぽい
my $new_noreply = new Cache::Memcached::Fast { servers => [ { address=> 'localhost:11211', noreply => 1 } ], ketama_points => 150, connect_timeout => 5, io_timeout => 5, };
ベンチマークの結果から'set'の部分だけ抜粋
(set_multiはFastのオリジナルの機能)
Rate set set nowait set noreply set_multi (%h) set_multi (@a) set_multi nowait set_multi noreply
set 73.9/s -- -3% -83% -86% -87% -88% -92%
set nowait 76.0/s 3% -- -83% -86% -87% -88% -92%
set noreply 436/s 490% 473% -- -19% -25% -31% -53%
set_multi (%h) 538/s 628% 607% 23% -- -8% -15% -42%
set_multi (@a) 581/s 687% 665% 33% 8% -- -8% -37%
set_multi nowait 634/s 759% 734% 46% 18% 9% -- -32%
set_multi noreply 928/s 1156% 1120% 113% 73% 60% 46% --
通常の4倍以上。noreply++ Tomash++です
incrやdecrにもnowaitが効くみたいんだけど、結果どうなるのか要調査