Perl

mod_psgi を実装してみた

http://github.com/spiritloose/mod_psgiPSGI を実装したApache2モジュール。 % make && make installでインストールできて、 LoadModule psgi_module modules/mod_psgi.so <Location /psgi> SetHandler psgi PSGIApp /path/to/app.psgi </Location> で動く。 がーっと書いたのでまだま…

zshでcpanコマンド補完

すでにあるかなと思いつつも書いてみた。 以下のファイルを「_cpan」として$fpath に入れる。 とこうなる。 $ cpan -[TAB] -A -- Shows the primary maintainers for the specified modules -C -- Show the "Changes" files for the specified modules -D --…

Mojolicious::Lite

id:charsbarさんより。 Mojolicious::Lite - Charsbar::Note Mojolicious::Lite 全く知らなかったです。よさそうですね。 HTTP::Engine使ってるSchenkerにも色々と利点があると思うので、細々とやっていこうかなとおもいます。(H::E::Interfaceいろいろ選べ…

Schenker - RubyのSinatraのようなフレームワーク作成中

http://github.com/spiritloose/Schenker 前に Ruby の Sinatra を触ってみていいなとおもったので最近作り始めた。ひととおり機能はそろってきたので公開してみる。 HTTP::Engine + HTTP::Engine::Middleware + HTTPx::Dispatcher + Sinatra風インターフェ…

UTF-8 の範囲外の文字かどうか調べる

UTF-8 の範囲外の文字かどうか、どうやって判別したらいいのだろう - @kyanny's blog こんなんでどうでしょうか。 check_utf8.pl #!/usr/local/bin/perl use strict; use warnings; use Encode; while (<>) { eval { decode_utf8($_, Encode::FB_CROAK); }; …

Text::TinySegmenter(TinySegmenterのPerl移植版)リリース

http://search.cpan.org/dist/Text-TinySegmenter/ TinySegmenterをPerlに移植した。 PurePerlでシンプルにさくっと分かち書き。 use utf8; use Text::TinySegmenter; my $str = '私の名前は中野です'; my @words = Text::TinySegmenter->segment($str); # g…

今日の.perlshrc

perlsh - one-line perl evaluator with line editing function and variable name completion function - metacpan.org sub s2x { HTML::Selector::XPath::selector_to_xpath($_[0]) } CSS selector -> XPath をさくさく確認。

mod_perlとCatalyst::Plugin::Form::Validator::Simple

mod_perlで複数のCatalystアプリケーションを動かしていて、複数のアプリケーションでCatalyst::Plugin::Form::Validator::Simpleをつかっている場合にうまく動かない。メッセージが共通になってしまう。 原因は、FormValidator::Simpleで __PACKAGE__->mk_c…

Catalyst::Plugin::Authentication::Credential::Livedoor

livedoor Auth がでたわけですが、そのCatalyst::Plugin。http://search.cpan.org/dist/Catalyst-Plugin-Authentication-Credential-Livedoor/機会があったら使わせていただこう。 many parts of this module are copy paste from Catalyst::Plugin::Authent…

実行時に動的にパッチをあてる

404 Blog Not Found:perl - パッチなしでパッチする動的にサブルーチンを書き換える話。 はてなブックマーク > 404 Blog Not Found:perl - パッチなしでパッチする 2007年04月09日 kazuhooku perl source filter でロード時にパッチあてるとかできないのかな…

Image::DecodeQR 0.01リリース

http://search.cpan.org/dist/Image-DecodeQR/ この前つくったやつをとりあえずリリース。本体をいろいろいじってみてたんだけど、きりがないのでリリースした。

Yahoo::BBAuth0.50リリース

http://search.cpan.org/~jlev/Yahoo-BBAuth-0.50/ Yahoo.comの中の人へ引継いだ。Yahoo MailのJSONAPIができたみたい。 お知らせでた↓http://developer.yahoo.net/blog/archives/2007/03/mail.html

Image::ObjectDetectを使った顔認識サービスまとめ

この前 http://d.hatena.ne.jp/spiritloose/20070308/1173314595 で作ったImage::ObjectDetectですが、Perlな方々にいろいろと遊んでいただいているようで、どうもです。 とりあえず以下自分用まとめ。 Perl & Image::ObjectDetect404 Blog Not Found:perl -…

OpenCVを使って画像の物体認識をするPerlモジュール作った

作った。http://search.cpan.org/dist/Image-ObjectDetect/ http://d.hatena.ne.jp/darashi/20070223/1172232765でRubyの拡張ライブラリを公開されていたので、こりゃやらなくちゃ・・・と思った次第です。すみません。 こんな感じで使えます。Imagerで顔を…

libcsv 1.0.0、Text::CSV::LibCSV 0.10リリース

http://sourceforge.net/forum/forum.php?forum_id=671902 http://search.cpan.org/~jiro/Text-CSV-LibCSV-0.10/ libcsv メジャーバージョンリリース。libcsvのインターフェースを変更してもらった。 libcsv使ってた方はスミマセンがインターフェースが変わ…

XSモジュールでプロトタイプ宣言

http://subtech.g.hatena.ne.jp/yappo/20070302/1172797971 XSでどう書くか分からないけど use Text::CSV::LibCSV; csv_parse { my @cols = @_; # なんか処理 } $data; とか書けるようになると、どうなんだろう。 宣言部分を void csv_parse(callback, sv_da…

Text::CSV::LibCSV 0.02リリース

http://search.cpan.org/~jiro/Text-CSV-LibCSV-0.02/ 昨日作ったText::CSV::LibCSVの0.02をリリース。 libcsvの作者のRobert氏に詳細なバグレポートをもらったので修正した。ヌル文字が入ってるとおかしくなるというしょーもないバグとか・・・ このモジュ…

CSVデータをお手軽/高速に扱うモジュール作った。

CSVファイルを処理することがあったので、いつもどおりText::CSV_XSを使おうかなぁと思ったんだけど、最近libcsvっていうのを見かけたので試してみることにした。 というわけでPerlから使いたいので、適当にモジュール作った。http://search.cpan.org/dist/T…

OpenCVのPerlモジュール作成中

OpenCVが1.0リリースされたのをきっかけにPerlモジュールを作ってて、APIの量が多すぎて放置気味だったんだけど、すこしやる気が出てきたので実装中。なんとなくガワはできてきた。 今のところこんな感じのことが出来る。かなり一部だけ紹介。 my $image = O…

Geo::Coder::Ja に郵便番号からの変換機能を追加した

Geo::Coder::Ja に郵便番号からの変換機能を追加してみた。 http://search.cpan.org/~jiro/Geo-Coder-Ja-0.03/ 一応デモの方も対応した。http://spiritloose.net/misc/geocoder/?q=1500002 こんな感じで。

オープンソースの GeoCoder 「geocoder.ja」がすごい

http://www.postlbs.org/postlbs-cms/ja/geocoderオープンソースの GeoCoder。「ジオコーダーじゃ」と読むらしい。これはすごいな。 早速使ってみた。まずデータを揃えるのが結構大変。 ゆうびんホームページの郵便番号データと国土交通省から街区レベル位置…

Catalyst で Yahoo! BBAuth

モジュール作った。 Catalyst-Plugin-Authentication-Credential-BBAuth-0.03 - Yahoo! Browser-Based Authentication for Catalyst. - metacpan.org 作ったのはいいけど、いまのところ用途が思い浮かばない。そもそも使いにくいしなぁ。

Perlでセル内改行つきのCSVファイルを処理する方法

PerlでExcelとかで作ったセル内改行(複数行にわたるレコード)つきCSVファイルを処理する方法。意外と知らない人がいたので。Text::CSV_XS を使って。 #!/usr/local/bin/perl use strict; use warnings;use IO::File; use Text::CSV_XS;my $fh = IO::File->ne…

Vimの中からprove

unwind-protect: Emacs の中から prove Emacsの中からproveを実行するという設定らしい。 自分の環境のVimでは以下のように設定している。 autocmd BufNewFile,BufRead *.t set filetype=perl autocmd BufNewFile,BufRead *.t nnoremap <F5> :!prove %<CR>1行目で、.</cr></f5>…

Plagger で取得した記事のスクリーンショットを出力する

Plagger::Plugin::Publish::Screenshot。CrenaHtml2jpg を使って、Plagger でスクリーンショットを出力してみる。 キャプチャには Win32::CaptureIE とかその辺のモジュール使えばPerlで完結するけど、試した中で一番安定してたのでCrenaHtml2jpgを使ってみ…

Vimで選択したテキストを Google Notebook に保存する

とりあえず WWW::Google::Notebook っていうのを作った。WWW-Google-Notebook-0.01 - Perl interface for Google Notebook - metacpan.org http://d.hatena.ne.jp/bonar/20061002/1159745024 で紹介されている Python の Google Notebook のライブラリを見て…

HTTP::MobileAgentのIPアドレス判定プラグイン

プラグイン機構がついて、こんなことがキレイに出来たらいいな。勝手サイトとかでUA偽装されてる可能性があるときに、本当にそのキャリア使ってんのか判定できる。かなりの信頼性で。 別にプラグインじゃなくても Net::CIDR::MobileJP を普通に使えばいいん…

Yahoo-BBAuth-0.01をリリース

Yahoo-BBAuth-0.50 - Perl interface to the Yahoo! Browser-Based Authentication. - metacpan.org 一昨日作った Yahoo-BBAuth をCPANにあげた。 数名から要望があったのと、typesterさんがあげてほしいとのことだったので(どうもです)、あげてみました。 …

携帯キャリア各社のIPアドレス帯域を取ってくるスクリプト

前に作ったやつをsoftbankに対応させてみた。HTML::Selector::XPath を使ってみたかったのだけど、HTMLが微妙なため挫折。 #!/usr/local/bin/perl use strict; use warnings; use utf8; use Jcode; use LWP::Simple; docomo(); au(); softbank(); willcom();…

Yahoo! BBAuth のモジュールを作ってみた。

Yahoo::BBAuthっていうモジュールを作ってみた。Yahoo! Browser-Based AuthenticationのAPIをハンドリングするモジュール。 サンプルはこちら。ログイン成功すると、自分のアルバム(のカバー写真)一覧を表示する。 ソースはここに。本家のPHPのモジュールを…