tokuhirom's blog Search
  • 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)
  • TOEICで125点しかとれないような人でもできる英文バグレポートの方法。
    または、Pros と Cons をまちがえて書いてしまうような人でもできる英文バグレポートの方法。 まあ小手先のノウハウだけど、俺はこうやってるよ、という話。 #### ともかく再現可能なテストケ
    2010-03-15(Mon)
  • Test::More 0.95_01 にご用心
    Test::More 0.95\_01 の変更によりいくつか影響をうけているパッケージがあるようです。 自分が把握している範囲で2件あり、それは Net::Twitter と Test::Class
    2010-03-15(Mon)
  • Strawberry Perl Professional とかいうのやってるみたいすね。まだ alpha らしいけど。
    [ もともと、なんでもはいりまくりの Strawberry だったわけだが、そこにさらにいろいろぶっこんだパッケージを開発中みたい。 ``` All common graphical toolki
    2010-03-15(Mon)
  • Doxygen を github-pages にあげるのをお気楽にやる方法
    * github pages をつかうと簡単に HTML のページを公開できる。 * Doxygen をつかうと簡単に HTML のドキュメントを生成できる。 ってことは、この2つを簡単にくみあわせ
    2010-03-10(Wed)
  • Test::Class が SEGV する件
    SEGV の原因となっている、Perl5 のバグをつく Devel::Symdump をはずして MRO::Compat をつかうようにしたので、SEGV しなくなったはず。
    2010-03-10(Wed)
  • Pod パーザいろいろ
    #perl-casual でみんながつかってる pod parser をきいてみた。 #### いろいろ ##### Pod::POM おれがふだんつかってるやつ。POM っていうなまえだけど、
    2010-03-09(Tue)
  • cronolog と plackup の連携
    multilog に access log と error log をまぜてだすと、エラーでてんのかどうかよくわからなくなっちゃうので、まあわけた方がよろしい。 multilog でパターンマッチ
    2010-03-08(Mon)
  • Perl5 と奇妙な overload の冒険
    このコード、perl5.8.1 だと不思議な挙動をします(たぶん 5.8.5 以下で変な挙動をする)。 ``` use strict; use warnings; use Test::More te
    2010-03-08(Mon)
  • リアルタイムWebのためのPubSubHubbub の Subscriber を構築する方法
    PubSubHubbub(以下PuSH)は、フィードの更新をリアルタイムに通知するためのプロトコルである。 ウェブ上にころがっている"PuSH"の情報は、"Pub" の部分を実装する方法か、「Pu
    2010-03-06(Sat)
  • CPAN 関連の API などのメタデータについての雑感
    CPAN のメタデータは以下の3つにより配布されている。 * authors/01mailrc.txt.gz * modules/02packages.details.txt.gz * module
    2010-03-06(Sat)
  • multiperl は素人がつかう必要がない件について
    基本的に Perl5 は下位互換性が非常によく保持されていますから、use 5.10; などによる縛りをかけないかぎり、「過去バージョンでうごくのに最新のバージョンだとうごかないよう」ということはまず
    2010-03-04(Thu)
  • wrote multiperl command
    [ "multiperl" is perl5 interpreter installer for perl developers. #### \*Pros\* * simple * instal
    2010-03-04(Thu)
  • -s が NV をかえす件と、あれこれ。
    sizeof(IV) が 4 で、 sizeof(off\_t) が 8 だったりする環境では、-s (pp\_ftsize) が NV をかえす。 32bitシステムでは、現実的には NV の仮数
    2010-03-03(Wed)
  • Module::Build と EU::MM と M::I と dzil にかんする雑感(miscellaneous thoughts)
    僕は歴史家じゃないので、今自分がもってる感想をメモしておく #### Module::Build Module::Build の目標は make の排除だとおもうのだが、現実的には、EU::MM
    2010-03-02(Tue)
  • create pure perl extlib/ with cpanm/local::lib
    [ local::lib を利用して extlib/ を構築する方法が最近流行りだ。cpanm とくみあわせれば、capnm -l extlib/ Plack などとすれば一発で構築できる。 し
    2010-03-01(Mon)
  • What is the *correct* implementation of constraints?
    #### assumption * literal 1e100 is integer value. * literal "1e100" is integer value. * 1e100+0.1 i
    2010-03-01(Mon)
  • App::MyPort を書いた話
    諸事情により、頻繁にいろんなソフトウェアをいれているわけですが、入れるたびに「どこからイレるんだっけ」とおもって、さがすのがめんどくさいので、オレオレportsモドキをつくってつかっている。 she
    2010-03-01(Mon)
  • 「Yet another CPAN recent changes」つくったよーって話 in Japanese
    [ typester さんの CPAN Recent Changes が落ちっぱなしなので、こまったなーとおもってたら、tomi-ru さんが Y! Pipes でつくってくれて、便利だなーとおもっ
    2010-02-27(Sat)
  • create "Yet another CPAN recent changes"
    [ Now a days, typester's CPAN recent changes site is not works... I want to read it... then, I re
    2010-02-27(Sat)
  • 無圧縮zipを扱うライブラリをつくってみた
    [ pure perl で無圧縮zipの展開/パッキングをするためのライブラリをかいた。 pure perl なのと、メモリ使用量がすくないのが利点かなとおもう。 zip のフォーマットは、まあ
    2010-02-26(Fri)
  • git で cwd のカレントリビジョンを取得する
    ``` git show --format='%H' -s ``` とかでとれる。 miyagawa++ yappo++
    2010-02-24(Wed)
  • hbstudy で puppet の話をきいてきたことについて
    puppet は「俗人的な要素を排除する」という点がやはりおおきいのかな、とおもった。 いっぽうで、以下のような点を感想として得た。 * 新規にインストールするシステム以外には適用しづらい * 最
    2010-02-24(Wed)
  • cpan-outdatedを使うとメモリ制限のきついレンタルサーバーでもCPANモジュールが楽に更新できる
    [ 個人サイトで借りてる貸しサーバーはシェルが使えるんだけどroot権限が無く各種メモリの制限も強い。で、CPANコマンドを使うとlimit制限にひっかかってmoduleindexを伸張するところで
    2010-02-22(Mon)
  • How to optimize smart match operator in perl5 interpreter.
    This entry is just thinking note for me. ``` % perl -MO=Terse -e '1 ~~ 2' LISTOP (0x11ba080) leave
    2010-02-21(Sun)
  • dPOPTOPssrl のよみかた
    ``` dPOPTOPssrl; dPOPXssrl(TOP); SV *right = POPs; SV *left = CAT2(TOP,s); SV *right = POPs; SV *lef
    2010-02-21(Sun)
  • wrote tiny script named cpan-outdated.
    [ I wrote tiny script named cpan-outdated. It's so fast, lightweight version of 'CPAN::Shell->r'.
    2010-02-20(Sat)
  • Plack::Server::Standalone::Prefork::Server::Starter から Starman への移行
    ``` plackup -s Standalone::Prefork::Server::Starter ``` ってかいてあるところを ``` plackup -s Starman --work
    2010-02-19(Fri)
  • Plack まわりと XS の話
    * Plack コアは XS に依存しない * Starman は XS に依存する * PP がよければ Server::Simple のをつかう * Twiggy は XS に依存しない(よう
    2010-02-18(Thu)
  • Perl5.5 をサポートしようとしたら warnings.pm がなくて use warnings; できないよ、ってな場合の話
    warnings::compat をつかえばいい。 ``` # on pre-5.6 Perls, add warnings::compat to the prereq modules
    2010-02-18(Thu)
  • HTTP::Engine::Interface::Standalone の話
    いつもどおりチラ裏ですけど。 HTTP::Engine::Interface::Standalone は Catalyst の スタンドアロンサーバをコピペしたところからはじまったのだけど、あんまメ
    2010-02-18(Thu)
  • Mouse の起動がはやい理由
    [ > Class::MOP関連の処理を省いていたり、XSで実装されている部分が多かったりするので、Mouseのロード, インスタンスの生成, Mouseクラスに於ける処理の実行時のいずれもMoos
    2010-02-18(Thu)
  • !!1 とか !1 とかが PL_yes と PL_no になってるかどうか手軽にみる方法
    以下のように、-MO=Terse すると、コンパイル時に定数の畳み込み最適化的な奴でたたみこまれて sv\_yes とか sv\_no になってることがわかる。 ``` % perl -MO=Ter
    2010-02-16(Tue)
  • Perl の debbugging flag PL_debug を制御することと、実行時フラッグ -D を制御することについて。
    Perl5 のソースをよんでると DEBUG\_M() とかそういうマクロがときどき目にはいる。 この /DEBUG\_./ な関数は PL\_debug っていうフラッグのオンオフによって出力が制
    2010-02-14(Sun)
  • Perl5における組み込み関数printf()のソース
    sv.c の sv\_vcatpvfn にある。
    2010-02-12(Fri)
  • given-when を dispatcher としてつかう場合の注意事項
    せっかく given-when 構文をつかえるのだから、以下のように Dispatcher を書けばいいのではないか、という話があったので実際つかってみていたのだが、このような書き方は非常に低速である
    2010-02-12(Fri)
  • こんな標準モジュールあったんですねシリーズ - SelectSaver
    RAIIパターンを利用し、select $fh したものをスコープぬける時点でもどすというためだけのモジュール。select(2) するためのモジュールではないことに注意。 ``` use Scop
    2010-02-11(Thu)
  • テンプレートエンジンにかんする雑感
    テンプレートエンジンについて感じていることのメモ。 * HTML/XML に依存したテンプレートエンジンは、メールなどの生成にはつかえないので、二種類のテンプレートエンジンを修得しなくてはいけない
    2010-02-10(Wed)
  • Faster.pm とデバッグ
    ``` FASTER_VERBOSE=2 FASTER_DEBUG=1 perl -Mblib -MFaster -e 'use IO::Socket; IO::Socket->new()' ```
    2010-02-07(Sun)
  • Today's assertion failure on Perl5.10.1
    Perl5.10.1 をメインでつかっているのだが、あいかわらずすげー微妙なエッジケースにバグがある。5.8.9 よりもやはりバグを踏む可能性がちとたかい。とはいえ、すげーくさいところなので、普通の人
    2010-02-07(Sun)
Prev
Next
© tokuhirom