perl
認証が不要で、結果をJSONPで返してくれるAPI。大体は高速化の為にmemcachedを使用し、cacheが存在すればcacheから、存在しなければDB等から引いてcacheに入れ、その後結果を返す設計になってるはず。 URL: http://api.example.com/count?user_id=12345&entr…
大量にアクセスがあってMaxClientを大きく設定したい場合、Apacheの1プロセスあたりのメモリを少なくするのが重要。当然アプリ側で大きなライブラリを読み込まずに画像の変換はGearmandにタスクとして投げたりとかの工夫するのも有効だが、fork元になるApach…
10MBのダミーデータをメモリ上に確保しようと思ったらよくわからないことが。 [hideden@hideden-x61]$ perl -e '$a = "." x (10*1024*1024); sleep 60;' & [1] 7433 [hideden@hideden-x61]$ perl -e '$a = "."; $a x= 10*1024*1024; sleep 60;' & [2] 7434 […
メモっとく。 use strict; our $hoge = 'HOGE'; my $hoge = 'hoge'; print $hoge; # hoge print ${hoge}; # hoge print $::hoge; # HOGE print $main::hoge; # HOGE print $::main::hoge; # HOGE print ${*hoge{SCALAR}}; # HOGE 型グロブからスカラー変数の…
オブジェクトのリファレンスがつまった配列@arrayを$#arrayで短くしたとき、ちゃんと中身が開放されるのかなーって思って参照カウンタをみてみた。 #!/usr/bin/perl use Devel::Peek qw/SvREFCNT/; my (@a, @b); push(@a, \$_) for (1 .. 10); @b = @a; $#a …
結構つまったのでメモ。Win32では通常、ユーザーが再起動またはログアウト処理を開始すると全てのWindowに対してWM_QUERYENDSESSIONというメッセージが送られてくる。これを受信した際に各種終了処理(データを保存したり接続を切ったり)を行い、その結果終…
ぼーっとClass::DBIのソースを眺めてたら、 @data{@columns} = $self->get(@columns);なんてのがあった。CSVファイルなんかをハッシュの配列にする時とかに、 my @tmp = split /\t/, $_; push(@data, { id => $tmp[0], name => $tmp[1], age => $tmp[2], add…
Y.Sawaさんがまたd:id:succeed:20051114でアドバイスしていただいたのでそれをふまえて色々と。CGI::ConvertParamはすごく汎用性があり素敵な実装だと思います。 use CGI; use CGI::ConvertParam::UTF8; my $org_cgi_q = new CGI; my $q = CGI::ConvertParam…
見ての通りはてな初心者なので毎日いろんな機能を試して喜んでたら、なにやらidトラックバックとやらが!なにげにblog系の物を使ったのが初めてなので地味にうれしかったり。笑 で、見てみたらShibuya.pmでICFPへのPerlでの参加結果を発表しておられたY.Sawa…
昨日に引き続き、Win32系を。OLEオートメーションでは一部のソフトの操作しかできないため、いわゆるマウス・キー操作マクロのようなモノを実現してみる。使うモジュールはWin32::GuiTest。ActivePerlのppmだと古いバージョンしか登録されていないので、CPAN…
Perlを使い出すと結構なんでもPerlでやりたくなる。ま、楽だし。でも結構、Windows上でスクリプトのテストや簡単な計算以外で使ってる人ってあんまり見ない気がする。って事で、何気に結構CPAN上にいっぱいあるWin32モジュール群の一部を紹介でもしてみよう…
文字コードの変換とかが面倒なのでCGI.pmを継承して、自動で文字コード変換をしてくれるモジュールを作ってみた。Perlで他のモジュールを継承するのは簡単。 package CGI_JP_conv; use base qw(CGI); sub new { my $class = shift; my $self = $class->SUPER…