Perl

YAPC::Asia 2014で自然言語処理について発表してきました。

YAPC::Asia 2014 で 自然言語処理を支える技術 〜要素技術とPerlの活用〜 というタイトルで発表してきました。発表はペース配分を間違えて、時間切れになってしまい、見に来て頂いた方々には申し訳ないです。発表資料は以下です。 ビギナー向けという位置づ…

MinillaでModule::Build::XSUtilを使う

もう先週の話になりますが、拙作 Module::Build::XSUtilがサポートされたMinilla 0.7.0がリリースされました。 Module::Build::XSUtilとは? Module::Build::XSUtilはModule::Install::XSUtilと同等の機能をModule::Buildで実現するためのモジュールです。以…

Module::Build::Pluggable::XSUtil と Minilla の相性が悪いので Module::Build::XSUtil 作りました

Minillaを使い始めたのですが、MinillaとModule::Build::Plaggableは共にModule::Build::subclass()を使用していて、Module::Build::subclass()は多重に使えないという制約のため一緒には使えません。XSモジュールではModule::Build::Pluggable::XSUtilを使…

Digest::MurmurHash3::PurePerl released!

MurmurHash3をpure perlで計算する。Digest::MurmurHash3::PurePerlをCPANにリリースしました。もともと、Algorithm::HyperLogLog::PP用に作っていた murmur32( ) に murmur128() を加えて、独立したモジュールとしました。 CPANTestersでもいまのところ問題…

CPANモジュールでサポートしていないOSのTest ReportをNA(Not Available)にする

CPANモジュールでサポートしていないOSのTest ReportをNA(Not Available)にしたい場合はMakefile.PLやBuild.PLで以下のようにする必要があります。 unless ($^O eq "MSWin32" || $^O eq "cygwin") { die "OS unsupported\n"; } CPAN Testersのツールは以下の…

Digest::SpookyHash released!

SpookyHash の Perl バインディング、Digest::SpookyHashをCPANにリリースしました。 SpookyHashとは JenkinsHash*1の作者として知られるBob Jenkinsによる128bitの非暗号論的ハッシュアルゴリズムです。特徴としては キーが短い(192byte未満)場合の最適化が…

cpanfileを使うようにしたらTravis CIでテストがコケた件

cpanm(App::cpanminus)は1.6000でcpanfileをサポートしましたが、Travis CIでcpanfileを使用したモジュールのテストがコケるという現象が発生していました。 原因 --notestオプションが指定されると、cpanfileの on 'test' で指定されたモジュールがインスト…

Shipped Algorithm::HyperLogLog 0.01!

HyperLogLogアルゴリズムをPerlから使用するためのモジュール、 Algorithm::HyperLogLogをCPANにリリースしました。 XSモジュールですが、XSが使えない場合はPure Perlでも使えるように作ってあります。 HyperLogLog とは? HyperLogLogは、ある集合の異なり…

MetaCPANで++してくれた人を探す

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Any::Mooseやめた

FormValidator::Lite::Constraint::MooseでAny::Mooseを使っていましたが、Any::Mooseはdeprecatedってことで使うのをやめました。今後、Mouseの型をFormValidator::Liteで使いたい場合は、FormValidator::Lite::Constraint::Mouseを使用してください。 use …

PlackでREPL付きエラー画面

Rails4に間に合うか、REPL付きエラー画面「Better Errors」がイイ感じ:Rails Hub情報局:エンジニアライフPlackでもREPL付きのエラー画面を出せるMiddlewareは既にあります。それが、Plack::Middleware::InteractiveDebuggerです。エラー発生時に以下のよう…

Module::Build期が来てる

いま自分の中で空前のModule::Build期が来てます。先日リリースしたArangoDBについてもModule::Buildを使用しています。さらに、Do not ship modules with Module::Install 1.04 – Tatsuhiko Miyagawa’s Blogこの件で、改めてModule::Installをバンドルする…

Chiba.pm #1 に行ってきた ( #chibapm )

10/20(Sat)に開催されたChiba.pm #1に行って来ました。ほとんどPerlを触ったことがないという方も、近くでやっているということで来てくれたようです。 今回はじめてLTをやったという人もいたので、こうして発表する人の裾野を広げていけるといいですね。千…

ArangoDB client for Perl released!

I released ArangoDB client for Perl.https://metacpan.org/release/ArangoDBThis module is supporting the following features. Collection Document Edge Index(Hash / Skip-List / Geo / Cap Constraint) Simple Query (all / by_example / first_examp…

コードの行数カウント

コードの行数のカウントツールはいろいろありますが、コマンドラインツールでは CLOCが対応言語が多く、なおかつPerl製なので自分でいじるのも楽ってことで使ってます。ただ、この手のツールで扱いに困るのが、拡張子が無かったり、拡張子では言語が特定でき…

PocketIO on docCloud

Hachioji.pmで作ってる Yairc(仮) の関係で、PocketIO(Socket.IOのPerl版)をdotCloudで動かす方法を調べました。 dotCloudでPocketIOを動かすには dotCloudでは本家Socket.IOが動きますし、WebSocketのサポートがアナウンスされていたので動くだろうとは思っ…

Niigata.pm Tech Talk #1 に行ってきた

4/28(Sat)にNiigata.pm Tech Talk #1に行って来ました。以前から Niigata.pm に行ってみたかったし、ちょうど連休だったので新潟まで足を伸ばしてみました。 自分の発表 自己紹介も兼ねて、Githubで公開しいる過去の成果物についてある程度反響があったもの…

Perl のプラグマモジュールの作り方

autolocale を作る際に Perl のプラグマモジュールの作り方について調べたので、書き残しておきます。 プラグマモジュールとは strict.pm や warnings.pm のようにレキシカルスコープで振る舞いを変更するモジュールをプラグマモジュールと呼び、通例として…

Perl の locale 設定

下記のTwitterでの発言に関連してメモ。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platf…

FormValidator::Lite::Constraint::Moose Released!

FormValidator::LiteのバリデーションルールとしてMo[o|u]seの型制約を使えるようにするFormValidator::Lite::Constraint::MooseをCPANにリリースしました。FormValidator-Lite-Constraint-Moose-0.13 - Use Moose's type constraints. - metacpan.org結局、…

FormValidator::Lite::Constraint::* について

昨日Twitterで、 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widget…

YAPC::Asia 2011 で発表してきた

Perlの祭典、YAPC::Asia 2011 に参加してきました。昨年 YAPC::Asia に初参加した際は2日目だけしか参加できませんでしたが、今回は10/13の前夜祭から、10/15の勝手に後夜祭まで参加できました。さらに、今回は念願のスピーカーとしての参加でした。去年のYA…

Perlのメトリクス計測

ソースコードの品質向上のための効果的で効率的なコードレビュー にメトリクス計測ツールがでてきますが、Perlにももちろんあります。Perl-Metrics-Simple-0.18 - Count packages, subs, lines, etc. of many files. - metacpan.orgまたPerl::Metrics::Simpl…

YAPC::Asia Tokyo 2011 に行こう!

Perlの祭典 YAPC::Asia Tokyo 2011 が 10/13-15にかけて東京工業大学 大岡山キャンパスで開催されます。Perlの話題だけではなくサーバの運用やWebアプリケーションのセキュリティなど様々な発表があるのでPerl使わない人でも楽しめると思います。YAPC::Asia …

ターミナルで特定のキーワードに色をつける

Twitter見てたら「"error"とか特定のキーワードに色を付けたい」みたいなのを見かけたので書いてみました。簡単なものならsedでもいいわけですが・・・ ちゃんとやるなら、正規表現はRegexp::Assemble使って作って、色付けはTerm::ANSIColorを使えばいいわけ…

MetaCPAN APIを使用してモジュールの更新をGrowlで通知する

MetaCPAN APIを使用してモジュールの更新をGrowlで通知する metacpan-growlerというものを作ってみました。

PerlでWebSocketを使いたい時はPocketIO

先日Twitterでも言及したけど、PerlでWebSocketを使いたい場合は、Socket.IO(WebSocket未対応のブラウザの場合はFlash Socket, Ajaxなどで同等の処理を実現できる)のサーバサイド実装であるPocketIOが使えます。 CPANには同作者のPlack::Middleware::SocketI…

好きな名前空間

なんか、カジュアルなPerlユーザなのに今すぐフォローすべきPerl界のスーパーエンジニア - すぎゃーんメモに挙げられてしまったので、ちゃんとPerlネタを書こうかと。というわけで好きな名前空間 Best3!!!

Template::Plugin::JA::Fold-0.01 released.

だいぶ前に作ったTT2のプラグインモジュールTemplate::Plugin::JA::FoldをCPANに上げました。今更敢えてTT2を使う機会は少ないとは思いますが。。。

Perlでノンブロッキングなパケットキャプチャ

パケットキャプチャを取って分析する必要があったので、Perlでノンブロッキングでパケットキャプチャする方法調べてみた。 tcpdumpの出力を取るっていう方法もあるけど、自分でパースするのは面倒なのでCPANモジュールを使う。 AnyEvent::Pcap Net::PcapのAn…