tokuhirom's blog
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)
Amon と Helper と Catalyst と Model の話
Akismet の perl モジュールをさがしてる途中で、Catayst::Model::Akismet ってのをみつけた。昔の Cat はこんなものをいちいち CPAN にあげてたのかー、とおもう
2010-01-12(Tue)
スパム対策に Net::Akismet をつかった話
コメントスパム対策をしようとおもったが、うちにきてるスパムは IP がまちまちで、DNSBL にも URLBL にもひっかからなくてうっとーしいかんじになってきたので、Akismet をつかってみた。
2010-01-12(Tue)
HTML::Shakan::Model::DBIxSkinny かいた
チャチャっとウェブアプリケーション書くには DBIx::Skinny が便利だなとおもって、プライベートでは最近は DBIx::Skinny をメインでつかってる。DBIC とおなじ感覚で書けて、DB
2010-01-11(Mon)
Moxy を Plack に port した
英語圏の人にとってとくに意味のない話題なので日本語で。Mobile ウェブ開発用プロキシアプリケーションであるところの Moxy は HTTP::Engine で書かれていたのだが、この際なので、Pl
2010-01-11(Mon)
integrate Plack::Middleware::ReverseProxy & nginx
[ use this configuration. ``` server { listen myhost:80; server_name myhost; location / {
2010-01-11(Mon)
Run smolder on Plack
I want to run Smolder on Plack.Because I'm already running a lot of perl web app on damonetools+Plac
2010-01-10(Sun)
Planet Perl Iron Man and non-english entries
Planet Perl Iron Man がはじまった当初は、英語の他には空気読まない日本人ばかりだったわけだが、最近はロシア語やら、右から左に書く言語やらいりまじってておもしろい。 non-eng
2010-01-04(Mon)
Perl5.11.2 の Perl_keyword_plugin ハックがまじアツイゼ!の巻。
最近、さっぱり Perl のことを書かないので、Go に改宗したかとおもわれがちな tokuhirom ですこんばんわ。 [ をみてたら、Perl5.11.2 でクールなハックがはいってることを
2009-11-21(Sat)
Golangで共通的な実装をまとめるの法
[ なんか、こんなかんじで、.a にしないと、うまく import できなかったんですが、たぶんうまくやる方法があとおもわれる。 ``` include $(GOROOT)/src/Make.$
2009-11-21(Sat)
自分のサーバの性能を知っておく
[ ↑kazuhoさんがCで書いたエコーサーバーと、そのベンチマークツールによって、自分のサーバでどんぐらいのQPSがでるのかがわかる。 たとえば自分のマシン(SC440)だと ``` ./
2009-10-01(Thu)
Module::Install::ForC で C のプログラムを簡単に構築する
[ Module::Install のアーキテクチャを利用した configure/SCons 等のサブセットをつくりました。 記法は SCons を参考にしており、Rake のような黒魔術的で
2009-09-30(Wed)
Coro とは結局なんだったのか
Coro は first class の co-routine を実装しようとおもって開発してたら、「あれ、これ co-operative thread にできるのでは?」とおもいはじめたわけなのであ
2009-07-21(Tue)
makemaker_args is too low level API
makemaker\_args is very low level interface for M::I. But, we need to write a some makemaker\_args
2009-07-21(Tue)
Coro and AnyEvent as good friend
Coro と AnyEvent はどういう関係なのかを整理しておく。 #### Coro → AnyEvent Coro は AnyEvent に依存している(requires 扱い)。 Cor
2009-07-21(Tue)
Test::Cukes に関するメモ
Test::Cukes には2つ問題があって、1つは 5.10 に依存してることで、もう一つは既存の Test::\* 系の DSL がつかえないってこと。 そのへんがなんとかなれば、つかいたい、
2009-07-06(Mon)
about Test::More::done_testing
Test::More::done\_testing が導入されているわけですが、みなさんつかってますか? Test::More の 0.87\_01 から導入されてる新機能なんですが ``` 0.
2009-07-06(Mon)
prototype() をつかった方がいいケースを発見した
Test::More のメソッドをいくつかフックしたいという場合において、is とかは prototype が ($$;$) とついているが、is\_deeply には prototype がついてい
2009-07-06(Mon)
DynaLoader に関する基礎知識
Perl で XS をよむには DynaLoader か XSLoader をつかうのだが、XSLoader は DynaLoader を簡単によぶためのラッパーにすぎない。いうなれば ExtUtil
2009-03-13(Fri)
perl で fork をよぶ方法(linux x86 編)
``` use DynaLoader; my $s = join('', "\x31\xc0", # xor %eax,%eax "\xb0\x02", # mov $0x2,%al
2009-03-12(Thu)
fork したくてたまらない貴方に。
2009-03-11(Wed)
Dan the API shell 書いた
[ Dan さんの perl eval API が便利だとおもった。どんなコードが実行できるのかためしたかったので、shell っぽく eval することにした。 Term::ReadLine で
2009-03-11(Wed)
perl is DSL という考え方
[ で ``` 「PerlはCPANを使うためのインターフェース」が持論のオレ的には、やりたいことをサクっと解決できるCPANという仕組みはとてもすばらしいと思っています。 ``` と [id
2008-12-23(Tue)
2008年末に osx にいれてるソフトウェアについてのまとめ
# iusethis つかってるからそれでいいじゃんという話もあるんだけど * adium * dropbox(なんかどうでもいいものをいくつかいれてる) * evernote * firefox
2008-12-23(Tue)
クリスマスにむけて irssi をはじめました
osx で limechat をうごかすと、ひ弱な旧世代 macbook が悲鳴をあげるので、パワーが ありあまっている自宅サーバ SC440 で irssi をうごかすことにした。 irssi
2008-12-23(Tue)
2008年末の firefox 環境についてのまとめ
どっかでやってるのみたので、自分の環境をかいときますね。 addons * adblock plus * evernote clipper * firebug * google gears(ほとん
2008-12-22(Mon)
two face scalar の boolean での評価
``` package Bar; use overload '0+' => sub { warn '0+' }, '""' => sub { warn '""' }; sub new { my $c
2008-12-16(Tue)
Source Filters in @INC
perl5.8.9 から入ったという、@INC のなかに coderef ぶっこんどいて、ソースフィルタするという機能。 をためしてみる。 ``` package OreOreFilter; u
2008-12-16(Tue)
perl5.8.9 がでてる件
個人的には * @INC でソースフィルタ * SWASHGET の XS 化 という2点が backport されたのが大きいんではないかと思います。 はい。マニアックですね。
2008-12-16(Tue)
技術的アドベントカレンダーの有用性について
続かないかと思われていた JPerl Advent Calendar ですが、意外にも折り返し地点をまわっております。 [ 15日目は [id:miyagawa]( さんです。perldoc の使
2008-12-16(Tue)
今日のDSL
``` use DateTime; use Time::Duration::Parse; use DateTime::Duration; sub say { my $s = shift;
2008-11-20(Thu)
Web Application Framework とはなにか
ウェブアプリケーションフレームワークとは、ウェブアプリケーションを書く上で、アプリケーションの本質的なもの以外のことを一手にひきうけてくれるもの、じゃないかな。
2008-11-20(Thu)
WWW::HatenaDiary の件
* [ * [ このへんの経緯についてメモっておきますね。 はてなグループを Perl から更新したくて、それを実現するためにスクリプト書こうかと思ったのだが、WWW::HatenaDiary 的
2008-01-14(Mon)
Prev
Next