tokuhirom's blog
あれ。
[ 自分なら Perl でこう書く。かな。 ``` use perl5i::2; my @x = qw(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
2010-08-20(Fri)
Plack-0.9945 で任意の CGI スクリプトを実行可能になっていた件
[ これまで Plack には Plack::App::CGIBin というモジュールが付属していたが、これは Perl script の実行しかサポートしていなかった。 しかし、Plack 0
2010-08-20(Fri)
乱数と Perl5 にかんする蘊蓄の話
Perlの乱数についてIRCで盛り上がったのでまとめておく。 結論からいうと、srand()はPerl5組み込みのものでよい。乱数の生成はMath::Random::MTがよいとおもう。 Per
2010-08-19(Thu)
HTTP クライアントのテストを Plack でやる方法について
勝手に添削なかんじで。 [ をみていておもったのですが、変にがんばるよりも、Test::TCP を直接つかってかいちゃった方が楽なのでは。 ``` use strict; use warnin
2010-08-18(Wed)
fork した後に srand を自動的によぶには
srand() をよんだあとでfork(2) を call した場合、子プロセスと親プロセスでおなじシードをもっているために、複数プロセスで生成される乱数がおなじになってしまうということがある。
2010-08-18(Wed)
Sledge の PSGI 対応についておもいをはせた
Sledge のよさのひとつは、非常に枯れているところなのであるが、一方でアクティブなメンテナがおらず、PSGI ブームなどにものっているのかのっていないのかわからないし、テストスイートはたぶん誰もう
2010-08-18(Wed)
-DDEBUGGING つきでコンパイルした Perl5 を用意しておいてバグレポートに活用する
perlbrew を利用している場合、用意に -DDEBUGGING つきの perl5 をビルドすることができる(利用していなくても容易にビルド可能だが、より容易となる)。 ``` perlbre
2010-08-16(Mon)
indirect.pm が segv した話
[ ``` use indirect; BEGIN { indirect::unimport(__PACKAGE__, ":fatal") }; my ($y); "@{[ a->$y ]}" ``
2010-08-15(Sun)
perl5i について
最近、ことあるごとに perl5i がヨイヨーといっている。 perl5i は、perl5 + i ということなのであって、perl6 にたいする洒落なのであって、かつこの i とはいうまでもなく
2010-08-15(Sun)
Perl でカレンダーをかきたいときにつかうモジュール
Calendar::Simple がよさそう。結局、HTML を吐いてくれるタイプのものは、つかいがってがわるい。 二次元配列でだしてくれるので便利。DateTime に依存しているが、DateTi
2010-08-15(Sun)
DBIx::Skinny->search_by_sql の第三引数について
$skinny->search\_by\_sql の引数は、コードをみると $skinny->search\_by\_sql($sql, \[$bind, \[$opt\_table\_info\]\
2010-08-14(Sat)
Imager::File::PNG が別distになってる件
メモ。 ``` 18:39 tokuhirom: なんか Imager が dist わけにかかってる? 18:41 tokuhirom: 18:41 tokuhirom: Imager::Fil
2010-08-13(Fri)
.pl な config ファイルのコンパイルがとおるかチェックしてみる
こんなかんじか。 ``` use strict; use warnings; use Test::More; use Path::Class; use IPC::Open3; use POSIX;
2010-08-13(Fri)
perl5 における strftime の速度にかんするベンチ
``` use strict; use warnings; use Benchmark qw/cmpthese/; use POSIX (); use Time::Piece; cmpthese(
2010-08-12(Thu)
Log::Dispatch::* にかんするパッチ2種
Log::Dispatch にくわせる文字列は以下の2条件をみたすべきだとおもう。 * 末尾に改行をつける必要がない * flagged utf8 をうけつける しかし、この条件でつかおうとすると
2010-08-11(Wed)
MobaSiF::Template と Text::Xslate の比較
> 40 :デフォルトの名無しさん:2010/08/01(日) 21:43:47 > xslateというテンプレートエンジンが速いそうですが、mobasifと比べてどっちが速いでしょうか。 >
2010-08-11(Wed)
適当なscriptでは use autodie; する
> chdirのときもエラー処理は必須ですな〜自分で使うスクリプトだからええ加減な書き方してた〜反省 #ubuntu #perl > > [ perl5.10.1 以後では autodie.pm が
2010-08-10(Tue)
Tfall あらため Tiffany
Tfall は、よみかたがわからないといった声があったので、miyagawa さんからつけてもらった Tiffany というのおに名前をかえました。 あと、Factory メソッドもついて ```
2010-08-09(Mon)
Tfall - Template for all
[ web application framework を書くときに、MyWAF::View::\* を一生懸命かくのは馬鹿馬鹿しいので、共通でつかえるようなインターフェイスをつくった。これは基本的
2010-08-07(Sat)
Xslate のベンチマーク。本日時点。
Xslate は XS 有効なら圧倒的に高速。PP 版はやはり perl にコンパイルする TMT が圧倒的に高速。とはいえ、PP でも十分な速度はでているので、普段 XS でつかってて、どうしても
2010-08-05(Thu)
xslate.org はじめました
[ ちゃんとしたプロダクトつくったら、サイトつくって紹介するべきだから、やりなはれ!と [id:gfx]( にいったところ、「ドメインとサーバーがあればコンテンツはつくるよ」というので、ドメインとっ
2010-07-30(Fri)
cpan-outdated が local::lib に対応してた
cpan-outdated という、使っている CPAN module が古くないかどうかを確認できる便利なスクリプトがありますが、その cpan-outdated さんが local::lib に対
2010-07-29(Thu)
Rakudo* がでてたのでためしてみる
[ Rakudo\* という Perl6 の Early Adapter むけの useful and usable distribution がでていたのでためしてみる(自分は二ヶ月に一回ぐらい
2010-07-28(Wed)
Text::Xslate で commify とかしたいときのやりかた
``` use 5.12.0; use Text::Xslate; my $xslate = Text::Xslate->new( module => ['Number::Format' =
2010-07-27(Tue)
Archive::Tar にディレクトリトラバーサル脆弱性
[ つかってる人はアップグレードしておいた方がいいですね。
2010-07-27(Tue)
Web Application Framework ではなく、コードジェネレータでいいのではないか
Web Application を構築するための部品が十分にそろいつつある今日この頃ですから、今となっては Web Application Framework をつかうのではなく、ライブラリの glu
2010-07-25(Sun)
given-when における method call について
``` use strict; use 5.10.0; { package xai; use constant {cron => 1 }; } given (2) { wh
2010-07-22(Thu)
超適当な http client
``` use strict; use warnings; use 5.10.0; use IO::Socket::INET; use HTTP::Response::Parser qw/parse
2010-07-22(Thu)
Text::Xslate::Bridge::TT2Like を拡張した話
Text::Xslate でつかえる標準の組み込み関数/フィルタは、わりと簡素なものしか用意されておらず、いざ作業をしていると、自分で用意しなくてはいけないものがおおくて面倒だったりする。 そこで、
2010-07-21(Wed)
Perl5 のバージョンごとの使い分け
Perl5 をつかって新規のシステムを構築する場合に、どのようにバージョンを選択するべきかという話。 #### 5.6以前 現状、CPAN モジュールにおいて5.6系に対するサポートは、toolc
2010-07-21(Wed)
Perl5 における HTTP Client library の選び方
blocking I/O を利用するライブラリ限定のはなしだけど。 #### HTTP::Lite 依存すくないのがうり。速度重視じゃないし、機能もすくない。インターフェイスも、LWP にくらべる
2010-07-19(Mon)
Perl5 によるメール送信 - 実践的な Email::Sender の利用方法
Perl5 では、E-mail の送信をするためのモジュールが多数 CPAN にアップロードされているが、現在もっともまじめにメンテされていて質がよいのは Email::Sender らしい。 E
2010-07-19(Mon)
モダンな Perl の開発環境の構築方法
一般的な OSX 環境および Linux 環境における、モダンな Perl 開発環境の構築方法についてまとめてみたよ。 #### 下準備 * コンパイラなどをまずインストール。OSX なら Xco
2010-07-15(Thu)
Common Context Object Interface(仮称) について
Application Framework における Context Object が共通のインターフェースを採用することにより、reinventing the wheel をふせぐことができるのでは
2010-07-12(Mon)
DBIx::Skinny::Schema::Loader にパッチ2つ送付した
[ * DBI 接続時に connect\_options をつかえるようにするパッチ * 複合PKをサポートするためのパッチ 昔は複合 PK をそもそも skinny がサポートしてなかったりと
2010-07-06(Tue)
fatpacker の typo なおして release した件
[ fatpacker の doc issue をだいぶ前に Tatsuhiko Miyagawa が fixed in repo な状態にしているにもかかわらず、リリースされていないため、まんまと
2010-07-06(Tue)
Gearman の使いどころについて
「Gearman って gearmand がおちたら、キューにはいってるジョブがふっとんじゃうんでしょ?」とか「ワーカーがしんだらジョブきえちゃうんでしょ?」とかいう話があるわけですが、そもそもそうい
2010-07-05(Mon)
gearman の worker process にスコアボードをつけてみる
[ ↑でつくったスクリプトに score board 機能をつけてみた。 で、これかいてからきづいたんだけど、Parallel::Prefork には Parallel::Prefork::Sp
2010-07-05(Mon)
Pure Perl Sinatraish WAF in One File
Some perl web application tutorial says "First, install WAF from CPAN..., and drink a espresso". heh
2010-07-03(Sat)
Plack::App::WrapCGI にちゃんとした CGI 実行機能をつける話
P::App::WrapCGI は、perl でかいた CGI しか実行できないので、ちゃんと exec してうごく一般的な CGI がうごくようにしてみる施策。 環境変数をセットアップして、双方向
2010-07-01(Thu)
display Gearman status with pure perl
gearmand の様子をモニタリングするための mod\_gearman\_status ってのが gearman の ml にあがってたけど、C でかいてある意味がわからないし、適当なかんじコード
2010-06-30(Wed)
119行でPlack対応のWeb Application Framework を書いてみる
拡張性等を考慮しなければ、以下のように簡単にかくことができる。 View を XSlate きめうち。ルータは given-when で、設定ファイルは .pl という構成。だいたいのウェブアプリケ
2010-06-27(Sun)
Spreadsheet::ParseExcel でシート名を一覧をだす
``` use strict; use warnings; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::FmtJapan; m
2010-06-27(Sun)
mac ports やめました! ー homebrew で快適 OSX 生活!
[ 昨日 mac mini を購入しまして、「さて、mac ports いれなきゃなあ。でも mac ports での環境構築って時間かかるし、CPU パワーもくうし、電気代かかるしエコじゃないし」
2010-06-25(Fri)
Perl 5.13.2 がもたらした package NAMESPACE BLOCK 構文があたえるもの
開発版の Perl 5.13.2 がリリースされたが、5.13.2 の目玉はなんといっても package NAMESPACE BLOCK 構文だろう。 ``` use 5.13.2; use wa
2010-06-23(Wed)
Proc::Guard - サーバープロセスを起動するライブラリ
[ テストなどで memcached やら ttserver やら gearmand やらを起動するにあたって、サーバープロセスを起動するとかいった場合に、サーバーの種類ごとにライブラリを書くのも馬
2010-06-18(Fri)
mobirc 3.0 にむけてのプラン
いろいろ、2010年代仕様にむけて変更中 * HTTPx::Dispatcher → Router::Simple * HTTP::Engine → Plack * POE → AnyEvent *
2010-06-14(Mon)
HTTP::Session の distribution を分割した
[ [ [ 端末IDをセッションIDとして利用可能なモジュールをいれていたのだが、これを core distribution からはずした。 基本的にはもういいかげんつかわない方がいいんじ
2010-06-14(Mon)
Text::VisualWidth::PP をだした
[ Text::VisualWidth をつかうと、文字の見た目上の幅で trim ったり width をはかったりすることができるのだが、XS が必須なので、XS がいらないバージョンをつくった
2010-06-14(Mon)
today's segv
OK. I know the code is sucks. But, interpreters should not dump core :P ``` use strict; use warning
2010-06-10(Thu)
Path::Class 0.19 がイケてるっぽい件
slurp で io layer が指定できるようになってる ``` my $lines = $file->slurp(iomode => '<:encoding(UTF−8)'); ``` su
2010-06-07(Mon)
HTML::TreeBuilder のメソッドを覚えるには人生はみじかすぎる件について
HTML::TreeBuilder の ->lookup だの ->find だのを覚えるのは、学習の効率がよくない。つぶしがきかないので、もっと一般的な CSS Selector や XPath な
2010-06-07(Mon)
Template-Toolkit のよくない点について
TT はすばらしいテンプレートエンジンだが、いくつかの点ですぐれていない点がある。その中でもっとも気にくわない2つは以下のもの。 * Speed * too many plugins on cpan
2010-06-07(Mon)
絵文字を [emoji:1] みたいにかいとくとそれなりに変換してくれるライブラリ
[ !emoji:1( みたいな形式で絵文字を記述しておくと、それを各キャリヤにあわせた表記に変更してくれるライブラリ。 数字部分は docomo の絵文字番号です。 拡張絵文字を利用したい場合
2010-06-06(Sun)
evhttpd と kyotocabinet をくみあわせた trivialspeed というのをつくってみた
[ kyotocabinet などの DBM にデータをつっこんでおいて、それを httpd から放出してみた。とくに目的があるわけではなくて、かきたいからかいただけですが。evhttpd とか久々
2010-06-03(Thu)
AnyEvent で HTTP::Response::Parser をつかってみる。
AnyEvent で HTTP::Response::Parser(picohttpparser の xs wrapper) をつかうとどんなかんじかなーということで、かいてみた。SSL, リダイレク
2010-06-02(Wed)
Re: LLごとの標準的なHTTPクライアントで100リクエスト投げた時のベンチマーク
[ mala のベンチマークにおいて、気になる点がある。それは、「HTTP プロトコルにたいするベタなライブラリ」と「HTTP プロトコルをつかうための高レベルなライブラリ」のベンチマークがまじっ
2010-06-01(Tue)
古い perl を perlbrew で管理する
perlbrew は本来、あたらしい perl をつかうことが主眼だが、古い perl でテストする目的にも使用することができる。 ``` % perlbrew install perl-5.8.9
2010-05-31(Mon)
the repository of madeye was moved to github!
[ I DON'T WANT TO USE SUBVERSION TODAY! THANKS.
2010-05-28(Fri)
shirokaned - messagepack rpc + kyotocabinet + AnyEvent + Perl による適当な KVS の実装
[ * HTTP でデータを取得できる * そして、その httpd を外部にみせても大丈夫 * インメモリデータベース * LRU support * それなりにはやい * 同時1000接
2010-05-27(Thu)
Prev
Next