「XML::Simpleは処理速度が遅い」説といえばNDO::Weblogさんの記事 Perl で XML の処理はどれが速いかベンチ がすぐに思い浮かびます。初見した時はずいぶん感心した覚えがあり、以来、業務で XML::Simple を使う事に多少なりとも躊躇するようになったものです。そんな中、現在仕事で XML parsing with Perl な案件を受け、CPANにUPされている様々な XML 解析系モジュールの処理速度を計測しているのですが、その際気付いた、XML::Simple の意外な落とし穴についてまとめてみました。 目次: まとめ デフォルトで呼ばれるXML::SAXパーサーの確認方法 ベンチマーク比較 関連情報 まとめ だらだら説明するのもナンなので、いきなり結論から。XML::Simple は、デフォルトの状態だと XML::SAX がインストールされている場合、
« 続きを読む記法を使うことにした | トップページ | Windows XPにメイリオフォント » UTF-8のファイルがLatin1に文字化けしてたら「Encode::DoubleEncodedUTF8」 [Perl] よりによって、このChangeLogをエディタで開いたら文字化けしていました。 文字化けの具合を見ると、定番のダブルエンコード(二重エンコード)で、latin1になっていました。 そんなわけで、miyagawaさんのPerlモジュール「Encode::DoubleEncodedUTF8」で文字化けを解消しました。 - fixdoubleencoded.pl #!/usr/bin/perl use strict; use warnings; use Encode; use Encode::DoubleEncodedUTF8; while (<>) { my $li
やはりやっつけで。Joke module です。 いろいろ書きたいことがあるけど,そのうち(追記するかも)。 libv8 と XS の間をとりもつ bridge.cc。 /* bridge.cc */ #include <v8.h> #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" /* harmful macro!, but, but, ... */ #undef New #include "bridge.h" using namespace v8; class V8Context { public: V8Context() { HandleScope scope; Handle<ObjectTemplate> global = ObjectTemplate::New(); Handle
split の研究 split 関数の挙動が言語ごとに微妙に異なると知人と話題になったので調べてみました。結果はまとめをどうぞ。 Ruby まずはRubyから調べてみます。irb を使って調べました。 % irb ... まずは普通に分割 >> "a,b,c".split(",") => ["a", "b", "c"] 末尾に空要素があると、省略されてしまう >> "a,,c,,".split(",") => ["a", "", "c"] 末尾の空要素を省略しないためには -1 が必要 >> "a,,c,,".split(",", -1) => ["a", "", "c", "", ""] 空文字列だと結果も空 >> "".split(",") => [] -1 をつけても同様 >> "".split(",", -1) => [] 分割パターンを指定しない場合も同様 >> "".split
CGI からは Cache::File は使わないことにした 2008-08-29-3 [Maintenance] 先日、私が借りているさくらのレンタルサーバのうちの一つで、 全ての CGI が動かなくなっていた。 EReK や発想支援ナビや Wadazon など 10 個ほどのサービスを 動かしているサーバー(ref. [2008-08-24-3])。 原因はある CGI (perl) で使っていた Cache::File モジュール。 キャッシュ管理用のファイルが壊れているかロックされているかで、 その CGI がいくつも暴走していて、負荷が上がったのが原因。 こういうことはこれまでも度々あったので、安定運用のため、 今後、この手の CGI では Cache::File を使用しないことにする。 って、 Cache::File を使っていたのって、 この CGI だけだったんだけどね。
More than 5,000 companies count on our digital courses and more to guide their teams through the tools and technologies that drive business outcomes. We can help yours too. New AI policy for O’Reilly authors and talent O’Reilly president Laura Baldwin shares the company’s ethical approach to leveraging GenAI tools and ensuring O’Reilly experts are compensated for their work. See it now It’s time t
というわけで、現在はてなサマーインターンに参加中です。 インターン期間も半分が過ぎ、いよいよ佳境に入っていくわけでありますが、このエントリで話したいことは、Perlについて。 ご存知のようにはてなではPerlを使ってサービスが実装されていますが、私はこのインターンが決まるまでまったくPerlを触ったことがなく、たまに見かけるPerlのコードを見かけては、$@%など記号が多くてよくわからない言語だと思っていました。一方で、Plaggerなどが代表的なCPANモジュールという他の言語にはない魅力があったので兼ねてから勉強したかった言語でもあります。 んで、インターンが始まってから2週間、毎日というわけではありませんが、Perlに触れてきて、それなりに自分で書きたいものが表現できるようになってきたので、今現在のPerlへの感想について。 前提 私の母国語はJavaで経験は大体3年ぐらい。 作った
形態素解析器として圧倒的な性能を誇るMeCabですが、出来る事は形態素解析にとどまりません。公式ページにも載っているように、辞書さえカスタマイズすればひらがな⇔カタカナ変換やAutoLinkの作成といったことまで出来ます。 WikipediaのデータとMeCabを使えば、高速なキーワード抽出が出来ないかなと思い試してみました。辞書の定義にコストを書けば、長いキーワードを優先して抽出する最長一致法が出来そうです。それが出来れば、辞書にキーワードを登録すればおっけいかなと思い実験です。 準備 ・Mecabのインストール 省略 ・Wikipediaのダウンロード wikipediaからコーパスの作成を参照 ・辞書生成用のCSV作成 xml2sqlで作ったpage.txtを変換します。 この際、(曖昧さ回避)は除いておきます。 併せて、カンマが入っている見出し文は、別のものに置き換えておくこと c
昨日のはてなのホットエントリーに『入門ベイズ統計』の読みどころという記事が載っていました。ベイズ理論の人気は根強いですね。 ベースとしての数式は割とシンプルなので、自分で実装してもそれ程手間は掛からないかもしれません。しかし、CPANのモジュールとして提供されているので、そちらを使用するのも良いかと思います。私が知っている所では、Algorithm::NaiveBayesが簡単で使いやすかったです。 昔書いたコードですが、下のサンプルでは簡単なスパムフィルターを作っています。spam.txtとham.txtは、それぞれのコーパスを形態素解析して作った単語のみのリストです。test.txtは、判定したい文章から抽出した単語のリストです。スパムとハムの量を増やせば、これだけでも割と使い物になります。 応用例としては、スパムとハムの2種類のカテゴリだけではなく、複数種類のカテゴリを作ればブログの
The TPF guys were probably surprised that I'm here, like I myself was surprised to receive the award (I wasn't notified about that at all), because they think I actually live in Japan for organizing such a wonderful conference YAPC::Asia 2008. I didn't have a chance to speak using the microphone so instead I'm gonna blog this: I really want to say thanks to the YAPC::Asia core organizers team, esp
オープンソースのプログラミング言語であるPerlは、多くのボランティアの努力によって支えられている。白駱駝賞(The White Camel Awards)は、そうしたコミュニティ活動における貢献者を称えるため、1999年のPerlカンファレンスではじまった。現在ではPerlファウンデーションが毎年OSCONで発表する形となっており、昨年はティム・オライリー(Tim O'Reilly)氏も受賞している。 今年の白駱駝賞は、7月21日から25日まで開催されているOSCON 2008の2日目夜のイベント「Tuesday Evening Extravaganza(火曜の夜は大騒ぎ)」で発表された。受賞者は、宮川氏のほか、オーストラリアのPerlコミュニティからヤシンタ・リチャードソン(Jacinta Richardson)氏と、イスラエルでYAPC::Israelなどを主催するガボール・ザボ(
初登場になります、酒井といいます。 今回は Six Apart のサービスで使われている MogileFS というファイルシステムを紹介したいと思います。MogileFS については、日本語の情報はあまり…、というかほとんどない状況ですので参考にしていただければと思います。では早速。。。 MogileFS とは MogileFS とは、Perl で記述されているオープンソースな分散ファイルシステムです。 プロジェクトホームページ http://www.danga.com/mogilefs/ メーリングリスト http://lists.danga.com/mailman/listinfo/mogilefs 上記のホームページ内でも紹介されていますが、主に以下のような特徴があります。 アプリケーションレベルでの実装なので特殊なカーネルモジュールいらず。 ファイルを複数ホストに自動コピー / バ
« IIS のログを tail -f | メイン | Lingua::JA::Summarize 0.02 » 2006年04月26日 キーワード抽出モジュールを作ってみた 一昨日、同僚の竹迫さんに、文書内からのキーワード抽出技術について教えてもらっていた時、わざわざ TF-IDF注1 用に別のコーパスを用意しなくても、MeCab だったら生起コストを辞書内に持っているんだから、それを使えばいいのではないか、という話になりました。 竹迫さんがその日のうちに作ってくれたプロトタイプで、アルゴリズムの改善とパラメータのチューニングを行ったところ、十分な品質が出そうなので、書き直して公開することにしました。 普通の Perl モジュールなので、 perl Makefile.PL && make && make install すれば使うことができます (15:50追記: すみません。 MeCab
ブログを更新したら、ブログを更新したことをPingサーバに通知してやることにより、サイトが更新されたことに気付いてもらえるようになります。 更新を知らせる方法は、PINGサーバによって、違ったりもしますが、今回は、XMLRPCで更新を伝えるスクリプトを書きます。 Perlでやる場合は、PerlモジュールのXMLRPC::Liteを使うと簡単にできます。 #!/usr/local/bin/perl use strict; use warnings; use XMLRPC::Lite; my $result=XMLRPC::Lite -> proxy('http://ping.fc2.com/') -> call('weblogUpdates.ping', "薫のHack", "http://paranoid.dip.jp/kaworu/") -> result; print $result-
Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが… 同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFire
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く