Practice of Programming

プログラム とか Linuxとかの話題

Perl

JSON, YAML & utf8 flag

------------------------------------------- JSON ------------------------------------------- SUBROUTINE INPUT OUTPUT ENCODE to_json(JSON) byte flag latin1 to_json(JSON) flag flag utf8 from_json(JSON) byte flag latin1 from_json(JSON) flag f…

compare Sub::Install/Data::Util/ExportTo for installing subroutine

To install subroutine, you can use Data::Util, Sub::Install or ExportTo. Rate sub_install export_to data_util_pp data_util sub_install 17980/s -- -65% -83% -90% export_to 51200/s 185% -- -50% -71% data_util_pp 103357/s 475% 102% -- -42% da…

Util::Any 0.19

I've released new version Util::Any 0.19. List::Pairwise functions are included in -list. use Util::Any -list; my @n = (1,2,3,4,5,6,7,8,9,10); mapp {$a *= 10; $b /= 2} @n; print "@n"; # 10 1 30 2 50 3 70 4 90 5

Unicodeブロックを組み合わせて正規表現で使う

Unicodeブロック使おうと思ってググってたら。 \p{InHalfwidthAndFullwidthForms} # 半角カナなど(※0-9とかA-Zにもマッチするみたい・・) http://blog.livedoor.jp/sasata299/archives/51194035.html あら、そうなんだ。perldoc unicodeを読み直すと、…

Module::Install で test ディレクトリに t/ 以外を追加する

どうやるんだっけーって、ソース見てて、あーこれでいけるっぽいやー。 って、思ってたら、前調べてた orz Module::Install の場合、 tests_recursive; って、書くらしい。 http://d.hatena.ne.jp/ktat/20080515/1210864386 ま...これは、t/以下を再帰的に追…

tran get/start/diff は -r リソース名 を必須にしました

今まで、 % tran get cpan Module::Nameみたいな感じでしたが、 % tran get -r cpan Module::Nameとしてください。 タイプ数増えた代わりに、デフォルトを設定出来るようにしました。 default_resource: cpanと、~/.tran/config.yml に設定しますと、-r を指…

tranにdiff追加した

翻訳で取りたい diff というと オリジナル - 翻訳間 オリジナル - オリジナル 翻訳 - 翻訳 て、感じ。3はおまけかな。 tran diff cpan Mooseとすると、オリジナルと翻訳のdiffが取れます。冒頭が微妙だったので、途中を抜粋。 --- /home/ktat/.tran/original…

tranだいたいできた

翻訳のためのバージョン管理ツール「tran」ですが、ある程度、動くようになりました。 http://github.com/ktat/tran/ガチャガチャ変更したりしていて、当初の config やオリジナルはもう使えません。 一旦全部捨ててください。もう構成の変更はしないつもり…

Test::Simple 0.94の翻訳完了

こちらよりどうぞtran の試し食いのために翻訳してみました。まぁまぁ、使えるかな。 まだちょっとconfigに影響を与えそうな変更があるので、実際使うのは、しばらく待ってもらった方が良いかと思います。

翻訳のバージョン管理ツール作り始めた tran

明けましておめでとうございます。本年もよろしくお願いします m(__)m 昨年末ころから、Perlのドキュメント日本語訳関係で動きがあったので、前から作ろうと思ったものをちょっと、作り始めてみた。 翻訳作業において、オリジナルがバージョンアップすると、…

JPAの翻訳文書(Moose関連)もPOD2で

svn co http://svn.coderepos.org/share/lang/perl/POD2-JA/から、どうぞ。 そういえば、そもそもPOD2って何だ、という話を書いてなかったので、ちょっとだけ。 POD2は、ローカライズされた pod を perldoc で読むための仕組みです。構造はいたって簡単で、-…

JPRPの翻訳文書をPOD2::JA対応

昨日一昨日は、perldocjp/new-perldocjp懇親会行ってきました。 皆様お疲れ様でした。いろいろ話せて有意義でした。弾さんに「真面目過ぎる」と怠惰分が足りないという指摘を受けましたwその後、なんとなく、POD2に準じた形でいけないかなぁと思って、ちょっ…

JPerl Advent Calendar 2009 12日目

JPerl Advent Calendar 2009 の Hacker Trackで、Tie::Traceについて書きました。Tie::Traceで簡単に変数の中身を追うちょっとコードが変だったんで、先ほど修正しました(余計なのがあったのと、コードとメッセージの不一致)記事をcommitする際に、gitリポジ…

Casual Talks#1

Casual Talks#1 http://perl-casual.org/2009/11/casual-talks1-1.html行ってきて、話してきました。 色々お話しできて楽しかったです。 みなさまお疲れさまでした。空気読まずに自分のつくったモジュールの紹介してきました。Util::Any http://rwds.net/sli…

Sporkにタイマーつけてみた

spork2 がYAPCで発表された当時に使ってみてたけど動かなくて、それ以来使ってなかったんですが、久しぶりにインストールしてみると、普通に動きました。○年ぶりのSpork。 S5プラグインも使えた。 config.yml plugin_classes: - Spork::S5 - Spork::S5Theme …

モジュールが変更されたら再起動

を書いてたら,Plack::MiddleWare::Restarter あるのを見つけた orz require Plack::Middleware::Restarter; $handler = Plack::Middleware::Resterter->wrap($handler, directories => ["./lib"]); これをすると、変更があると死ぬようなので、 % while tru…

Util::Any 0.17 リリース

先日、といっても、一週間ほど前になってしまいましたが、Util::Anyの0.17をリリースしました。細かくバグってて、あーもーと思って、0.15のコードを見直したら、なんだこりゃって状態だったので、整理しました。リリースするレベルじゃなかったです。ごめん…

@ARGVにUTF8フラグをたてる

@ARGVには、普通UTF8フラグはつきません。どうやってフラグをつけるのか調べてみました。その後、ブックマークコメントを見て、モジュール探したら見つけましたんで、追加しました。 -C か環境変数でやる こちらで見つけました. 起動オプション-Cか環境変数P…

Util::Any 0.12

バージョンあげまくってしまった... orz すみませんm(__)m。 結構テストは書いてたつもりなんですが、基本的な機能のテストが甘かったっていう。ぼけぼけな感じ。0.08 - 0.12までで、変わったところを列挙します。 継承できるモジュールにSub::Exporterを追…

KiokuDB::Tutorial 翻訳

YAPC::Asia 2009で行われた、「記憶」のセッションですが、相変わらず僕の翻訳が拙いので、英語が不得手な人には難しかっただろうと思いまして、訳しました(スライドを理解するために、半分くらいは訳してましたけど)。http://perldoc.jp/docs/modules/Kioku…

Util::All Perlのユーティリティを集めてみる

YAPC::Asia 2009 面白かったです。運営の皆様方、お疲れ様でした&ありがとうございました。 今回、「記憶」のセッションを訳したのですが、相変わらず拙くて申し訳なかったです。 Tutorialを訳し中なので、近々あげたいと思います。 で、YAPCで刺激をもらっ…

chromium で foxyproxy 相当がないのでHTTP::Proxyで

これで、Firefoxはたまにしか必要なくなった。 #!/usr/bin/perl use HTTP::Proxy; use strict; my $proxy = HTTP::Proxy->new(port => 8080); $proxy->push_filter(request => MyFilter->new($ARGV[0])); $proxy->start; package MyFilter; use base qw/HTTP…

LinkSeeker スクレイピングフレームワーク

最近、スクレイピングすることが多かったので、面倒くさくなって作りました。まだ、いろいろ途中ではありますが。 初Mouse、初git、初githubなんで、なんか変なことしてたらすみません。 http://github.com/ktat/LinkSeeker/ スクレイピングするときは、以前…

STDERRのテスト

(追記)id:nekokakさんにコメントでTest::Outputを教えていただきました。STDOUT/STDERRのテストができます。 STDERRの場合、stderr_is 無名関数, $message, $name; のように使えるようです。ただ、今回、Carpのテストもあったので、ちょっと使うのはやめまし…

ダブルクリックで動かすPerl scriptのためのCarp

なんだそりゃって話ですが、例えば、Windowsで、perlプログラムを作って、ダブルクリックで実行すると。 die したときに、あっというまにプロンプトが消えちゃって、わけわかんねってなっちゃいますが。(追記)charsbarさんによると、レジストリをいじること…

UtiL::Any 0.07 バグフィックス

バージョン上げました。 バグフィックスですんで、もし使ってらっしゃる方がいたら、バージョン上げてくださいませ。package変数の$Utilsは変更しちゃいけないんですが、Util::Any内で、変更しちゃってました。すんません。 cloneするようにしました。

Catalyst & Unicode

View::TT::ForceUTF8のレビューが☆一つだったので、そこのコメントを見たらリンクされてたのです。http://dev.catalystframework.org/wiki/tutorialsandhowtos/Using_Unicode元のURLを見たら良い話なんですが、適当に要約すると、 Plugin use Catalyst qw/..…

importメソッドが勝手に生やされて困る場合の対応

また、バージョンあげちゃいました。ので、下記の実装は最新版(0.06)とは若干異なっておりますが、大体同じ感じです。久々にUtil::Anyのバージョン上げました。 http://search.cpan.org/~ktat/Util-Any-0.05/lib/Util/Any.pm Util::Anyを継承したモジュール…

HTTP::Server::SimpleでPATH_INFOのslashがunencodeされるのを防ぐ

apache2だと、オプションを与えてやるらしいです。 これを解消するにはAllowEncodedSlashesをOnにします。 AllowEncodedSlashes On http://kawama.jp/archives/2007/04/path_info2f404a.html HTTP::Server::Simple::CGI使ってるんですが、これも、/ をunenco…

後置ループにもスコープがある?

%SIGに同じ関数登録しようとして、 local $SIG{$_} = sub {...} for qw/INT TERM ALRM .../; みたいなことをしたんだが。うまくいかなかった。 どうも、後置forの前は見えないスコープがあるようだ。localが効いてない。 ちなみに、if はそんなことはない。 …