tokuhirom's blog
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)
Module::CoreList web ui
[ This is 習作 for xslate. source is here: [ see also [
2010-05-09(Sun)
Perl 5.12.0 でフラッグの扱いがちがうケース
``` perl -E 'use bytes; use charnames ":full"; say(utf8::is_utf8("\N{DIGIT SIX}") ? 1 : 0)' ``` の結果
2010-05-08(Sat)
Carp::Always::Color
Carp::Always をつかうと、簡単に croak/carp が stacktrace がとれて便利だが、いかんせん長くて、みづらくなるので、それを適当に色をつけてくれるもの。
2010-05-08(Sat)
B::Compiling
rafl ware. "Expose PL\_compiling to perl" ということで、PL\_compiling という internal variable をとってこれる。 これによ
2010-05-08(Sat)
Amon の速度がでないときは
V::MT のキャッシュがオンになっているか確認してください。
2010-05-06(Thu)
benchmarking Variable::Magic and tie
I taken benchmark between Variable::Magic and tie. In this case, Variable::Magic is 3.1x faster tha
2010-05-06(Thu)
first impression for Text::Xslate
僕がつくってるフレームワークであるところの Amon に Xslate 対応をいれてみた。 かなり TT とおなじ感覚でつかえるかんじ。テンプレートの継承が追加されてるぐらいで、基本は TT とおな
2010-05-02(Sun)
validate content-length with plack
[ I wrote broken webapp, it outputs invalid content-length. Then, I want validator :P ``` package
2010-04-26(Mon)
最近うってるこまんど
[ ``` % history -n 1 | awk {'print $1'} | sort | uniq -c | sort -k1 -rn | head 206 git 130
2010-04-06(Tue)
Math::Random::MT versus embedded function rand()
``` 5.010001 Math::Random::MT: 1.10 Rate mt rand() mt 714566/s -- -96%
2010-04-03(Sat)
vim でファイル保存時に package 宣言をチェックする
のがほしいなーっていってたら mattn さんがかいてくれました! YATTA! これで package 宣言まちがえてはまることがなくなるのでオヌヌメ。 [
2010-04-01(Thu)
Text::ClearSilver のベンチマークをとってみた
【追記】ごめん。うそなんだ。。。本当は一番はやいのが cs です。 [id:gfx]( が clearsilver binding をかいたということなので、ベンチマークをとってみた。 結果をみて
2010-04-01(Thu)
html2text ってどうかくのが楽なんだっけ?
なんか適当にこうしてみたけど、div タグで改行とかしてくれなくて悲しい。もっとうまい方法があった気がするが、おもいだせない。 ``` sub html2text { my ($html)
2010-03-30(Tue)
sphinx 等でドキュメントを自動生成している場合に更新を自動検知してドキュメントを再生成してくれる web サーバーをかいた
Plack つかうとこういうの簡単にかけてよい。 ``` use common::sense; use autodie; use Plack::Runner; use Plack::App::Dir
2010-03-27(Sat)
Plack と FCGI の話
[ FCGI つかってる人はチェックすべし。
2010-03-26(Fri)
robots.txt で適当に拒否る設定についてかんがえた
なんかこういうかんじでやるのが簡単にできる Middleware はどうか lang:ja ``` enable sub { my $app = shift;
2010-03-25(Thu)
local-lib-profiles をみたメモ
[ インストールすると local-lib-profiles\_bashrc っていうファイルが /path/to/perl/bin/ あたりにインスコされるので、そうすると、ファイルができるから、
2010-03-25(Thu)
AE::HTTP で HTTP::Request をなげるには
HTTP::Request をつかって呼ぶのはそんなにむずかしい話ではない。という。たとえば、以下のようにすれば、普通によべる。 ``` sub http_request_by_http_reque
2010-03-24(Wed)
Crypt-OpenSSL-RC4 を Module::Build に移行してみた
Crypt-OpenSSL-RC4 では Module::Install を利用していたのだが、libs('-lcrypto') を指定しても Solaris の場合だけリンカ実行するときに -lcr
2010-03-23(Tue)
perl5 でファンクションプロトタイプをつかっちゃいけない理由と使われる理由。
Damian Conway の Perl Best Practice は関数プロトタイプを非推奨扱いにしているが、一方で巷の Perl Hackers はこれを使いまくっている。このような状況が初心者
2010-03-23(Tue)
Amon::Web::Dispatcher::Lite をかいたこと
Router-Simple をつくったり MojaMoja をかいたりしていたのだが、Amon でかいたちょっとしたアプリで、コントローラクラスが数個にしかならないような規模の場合に、いちいち MyA
2010-03-22(Mon)
Qudo をためしてみた
Qudo についてる SQL をつっこむ。 ``` % sqlite3 /tmp/qudo.db < doc/schema-sqlite.sql ``` ワーカースクリプトをかいてみる。 ```
2010-03-22(Mon)
Router-Simple を書いた理由
数年前に HTTPx::Dispatcher というのを書いたのだが、HTTPx::Dispatcher は declarative interface が主にたっちゃってるのが失敗したなあ、とおもっ
2010-03-21(Sun)
virtualenv っぽい plenv っていうスクリプトをかいてみた
同じ名前空間ですが、まったくちがうツールとしてうまれかわりました。後日かいたほうのエントリを参照してください。 → [ ~~python の virtualenv っぽい感じで local::lib
2010-03-21(Sun)
Released Router::Simple 0.01
[ ``` my $router = router { connect '/' => {controller => 'Router', action => 'index'}; submapp
2010-03-19(Fri)
NYAOS で cpanm --look がイヤンなかんじになるとき
環境変数 COMSPEC または Shell を指定しよう。
2010-03-17(Wed)
Why I use DBIx::Skinny instead of DBIx::Class.
最近DBIx::Skinnyをプライベートでは利用しているのだが、その理由。主にDBICのここが嫌だ、的だが。 #### DBIC が 'me' とか名前つけるのが嫌だ。 うん。嫌だよね。 ##
2010-03-17(Wed)
DeNA テクノロジーセミナーきいてたら簡単なディスパッチャができた
Perl5.10 以後のみ対応だけど、5.10 以後ならこんな簡単なのでいいのかも。 ``` package MojaMoja; use strict; use warnings; use pare
2010-03-16(Tue)
Prev
Next