tokuhirom's blog
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)
Faster.pm のベンチ結果メモ
今んとここんなかんじだ。ここまで恣意的な例だと、さすがに差がかなりでる。 ``` tokuhirom@gpath% time FASTER_VERBOSE=1 perl -Mblib -MFaste
2010-02-07(Sun)
XSで書いた方がはやいかどうか
[ > ということを考えると,プロファイラでボトルネックを探してその部分をXS化するほうがずっと簡単だ。 というのはたしかにそうで、得に NYTProf がでてから、プロファイリングするのが非常に
2010-02-07(Sun)
YAML::XS の話
bricas さんとかは YAML::XS が production ready だとかんがえてるっぽいですが、僕はそうはおもってないかんじ。 まず、テストこけすぎ。 ``` PASS (886)
2010-02-05(Fri)
Faster.pm の現状と課題
ちょっとみてみたかんじで、いくつか感じたことをメモしておく。 JIT 素人すぎるので、まとはずれなこといってるとおもいますけど。 #### 不安定 ``` perl -Mblib -MFaste
2010-02-05(Fri)
Faster.pm の最適化
Faster.pm がやってることは、基本的には Perl VM がやってる処理を C のコードにかきくだしただけなのです。生成されてる C のコードは以下のようなかんじだ。 ここからさらに最適化で
2010-02-05(Fri)
Faster.pm が 5.10.1 と 5.8.9 でうごくようにしてみた。
5.10.0 でしかうごかないことで有名な Faster.pm ですが、コードをよんでみたところ、ロジックがちがうくさいので、なおしたら 5.10.1 ではうごいた(in\_perl の部分)。 あ
2010-02-05(Fri)
LL脳な人でもこれぐらいは覚えておくとうれしいgdbのつかいかた。または猫でもわかるgdb講座
LLつかってても「ばすえらーになるー」っていう状況ってたまにあるわけですが、LL しか普段つかわないゆとりは、ここでお手あげになってしまったりすることがままあります。 で、「ばすえらーになるんですが
2010-02-05(Fri)
Faster.pm の中身の話
mlehmann の Faster.pm という Perl 用 JIT があるのだが、これの仕組み。 * op\_entersub をフックする * op\_entersub にはいるタイミングで発
2010-02-04(Thu)
OSS とテスティングと CPAN Testers の話
[ URL とあんま関係ないかんじのチラ裏ですけど。 実際、オープンソースのプロダクトって、作者の環境とちがう環境だとうまくうごかないみたいなことはあって、memcached は Solaris
2010-02-02(Tue)
How to manage Gearman worker processes.
[ ^^ I don't like this approach. Gearman のワーカーの管理はこういう風にするのが個人的にはおすすめ。 * make workers as prefork
2010-02-01(Mon)
xtrabackup を使ってみた
xtrabackup とか前からつかってみたかったのでつかってみた。データセットが 500 MB ぐらいなので、サクサクいける。500MB のうちほとんどはクローラちゃんがとってきたデータ。500MB
2010-01-31(Sun)
TAP で改行をふくむテスト名をつけた場合の挙動
``` tokuhirom@gpath% perl -e'use Test::More; ok 0,"foo\nbar";' not ok 1 - foo # bar # Failed test
2010-01-30(Sat)
Plack::Request と Hash::MultiValue の話
HEAD の Plack::Request では Hash::MultiValues が導入されてる。Hash::MultiValue は多値をストアできるハッシュ風オブジェクト。 ``` use
2010-01-29(Fri)
CPANPLUS 雑感
ただのチラ裏ですが。 何年か前に typester さんが CPANPLUS かわゆす的なことを言ってて、へえ、そうなのか、とかおもってたけど自分ではとくにモチベーションがなくて移行しなかったら、流
2010-01-25(Mon)
mobirc3 は Plack + AnyEvent になる件
HTTP::Engine つかっていたところを Plack にします。 POE つかっていたところを AnyEvent にします。 それ以外はあんまりかわりません。いままでのものは maint-
2010-01-22(Fri)
オススメCPANモジュールその1。 AnyEvent
というわけで、俺の独断と偏見によるオススメモジュールのコーナーです。 AnyEvent は poll/select/kqueue/epoll(4) などのイベントループを抽象化するライブラリです。似
2010-01-22(Fri)
俺が信頼しているモジュールを列挙していくスレ
なんか、俺が AUTHOR/MODULE を信頼してつかってるモジュールを列挙してくこころみを、気がむいたときベースでやっていきたいなーとおもっている今日この頃ですが、まだ一個もかいてない。
2010-01-21(Thu)
Data::Recursive::Encode 0.03 でました
[id:gfx]( によって、0.0\[23\] で * サイクリックリファレンス時に infinite loop しない * 速度の向上 がはかられてます。 gfx++
2010-01-21(Thu)
それでも私が Perl5 を使いつづける理由または、Why I still use Perl5? 的な。
なぜ俺が $@%\* を使いつづけるのか。 #### Fast Enough もっとはやいといいな、とおもうときはあるけど、他の LL とくらべても速い部類。 #### Reference Co
2010-01-20(Wed)
Perl Monger は Test::More の subtest が便利すぎるので頭にいれておくべきだと主張したい俺がいる件
Test::More の 0.94以後(2009-09-02)では subtest という機能が導入されており、これが非常に便利なのだが意外と利用されていないようなので、ちょっと宣伝させてもらいますね
2010-01-18(Mon)
Data::Recursive::Encode を書いた話
Data::Visitor::Encode というモジュールがあって、複雑なデータ構造の中にはいっているデータを操作するには大変便利です。 私は mobirc という IRC2HTTP gatewa
2010-01-18(Mon)
Prev
Next