タグ

Perlに関するsassanoのブックマーク (267)

  • 「Load Image from URL」Widget で手軽な chumby ハック!

    「Load Image from URL」Widget で手軽な chumby ハック! 2008-05-17-2 [Chumby][Programming] 楽しいガジェット「chumby」[2008-05-16-5]のハックについて。 chumby をハックするにあたって、 ActionScript2 (AS2) で Widget を開発するってのは、 一番最初にやるタスクとしてはちょっと敷居が高いので (特に日フォントまわりとか)、もっと簡単なハックから始めます。 ちょうどタイムリーに 5/15 に chumby のサイトに追加されていた 「Load Image from URL」という Widget が使いやすそうです。 これは、事前に画像 URL を設定しておくとその画像を取って来て 表示するだけの Widget です(画像キャッシュの設定もできます)。 Load Image

    「Load Image from URL」Widget で手軽な chumby ハック!
    sassano
    sassano 2008/05/18
  • Hadoop Streaming - naoyaのはてなダイアリー

    id:naoya:20080511:1210506301 のエントリのコメント欄で kzk さんに教えていただいた Hadoop Streaming を試しています。 Hadoop はオープンソースの MapReduce + 分散ファイルシステムです。Java で作られています。Yahoo! Inc のバックエンドや、Facebook、Amazon.com などでも利用されているとのことです。詳しくは http://codezine.jp/a/article/aid/2448.aspx (kzk さんによる連載記事)を参照してください。 Hadoop Streaming 記事にもあります通り、Hadoop 拡張の Hadoop Streaming を使うと標準入出力を介するプログラムを記述するだけで、Hadoop による MapReduce を利用することができます。つまり、Java 以外

    Hadoop Streaming - naoyaのはてなダイアリー
    sassano
    sassano 2008/05/18
  • YAPC::Asia 2008 - naoyaのはてなダイアリー

    YAPC::Asia 2008 に来ています。ただいま二日目、昼休憩中です。 YAPC::Asia も今年で3回目ですが、配布されているスケジュールの冊子や会場案内の立て看板、全体の進行など...どこを見てもそのクオリティが年々上がっているように感じます。今年は昼が無料で配られていたり、懇親会も無料だったりと、とてもボランティアベースかつ参加料数千円のカンファレンスとは思えない雰囲気です。 1990年代後半の Java ブーム、昨今の Ruby ブーム、関数型言語ブームなどの毎、Perl はその荒波に晒されることもままあるわけですが、こうして 500 人もの人が集まり最新の技術トピックについてわいわいやっていると、この言語とコミュニティの息は思ったよりずっと長そうだし、他言語の流行には相乗りすることはあってもそれによって体が衰退するようなことはない...という力強さを感じます。 初日

    YAPC::Asia 2008 - naoyaのはてなダイアリー
    sassano
    sassano 2008/05/17
  • Perl 5.10 を Mac に入れてみた

    Perl 5.10 を Mac に入れてみた 2008-05-15-1 [Mac][Programming] (YAPC::Asia 2008 Tokyo からのネタ。 動画入りレポート記事は明日アップします。) で、 tokuhirom のプレゼンで Perl 5.10 がプッシュされていたので、 さっそく使ってみようかと。 MacBook に入れることにしました。 業界標準的な方法は macports とのことで、以下を実行。 sudo port install perl5.10 実行時の出力: ---> Fetching perl5.10 ---> Attempting to fetch perl-5.10.0.tar.gz from http://www.cpan.org/src/5.0/ ---> Verifying checksum(s) for perl5.10 ---> E

    Perl 5.10 を Mac に入れてみた
    sassano
    sassano 2008/05/16
  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • Unicode の16進数の実体参照を正規表現などで元に戻す

    Unicode の16進数の実体参照を正規表現などで元に戻す 2008-05-10-3 [Programming] 普段は適切に処理をされてて問題にならないんだけど、 ときどきひょんな局面で出会ってしまうのが、 "�" という形式の文字列、16進数の実体参照です。 Perl でデコードする方法をメモ。 pack と Encode::decode を使うと良いみたい。 #!/usr/bin/perl use strict; use warnings; use Encode; use utf8; binmode STDOUT, ":utf8"; my $a = "情報時代"; $a =~ s/&#x([0-9A-F]{4});/decode('UCS2', pack('H*', $1))/ge; print "$a\n";

    Unicode の16進数の実体参照を正規表現などで元に戻す
    sassano
    sassano 2008/05/11
  • 住所文字列を受け取って緯度経度を取得し地図を表示するサンプル CGI

    住所文字列を受け取って緯度経度を取得し地図を表示するサンプル CGI 2008-05-07-2 [Programming] 入力として住所文字列(例:渋谷区恵比寿)が渡されると、 API経由で緯度経度を取得し、 それをもとに alpslab base の地図ページを表示するという サンプル CGI (perl) です。 #!/usr/bin/perl -T use strict; use warnings; use CGI; use URI::Escape; use LWP::Simple; my $q = new CGI; my $ek = URI::Escape::uri_escape($q->param('q') || ""); my $apiurl = "http://base.alpslab.jp/position.rb?adr=$ek"; my $rslt = get($api

    住所文字列を受け取って緯度経度を取得し地図を表示するサンプル CGI
    sassano
    sassano 2008/05/08
  • Perlメモ/MeCabモジュール - Walrus, Digit.

    以下で、現時点での最新0.96版のPPDファイルと、PPMコマンドでのインストール方法が公開されています。 http://namazu.asablo.jp/blog/2007/06/28/1611341 私が使用しているWindows+ActivePerl 5.8の環境では、ここに書かれているとおり以下を実行することでMeCab?モジュールをインストールできました。 ppm install http://www.akaneiro.jp/PPMPackages/800/MeCab.ppd サンプルスクリプトを参考に、次のようなスクリプトを作成しました。 use MeCab; print $MeCab::VERSION, "\n\n"; my $sentence = "太郎 はこのを二郎を見た女性に渡した。"; my $tagger = new MeCab::Tagger(join " ",

    sassano
    sassano 2008/05/06
  • Unicode - 似た文字同士にご用心 : 404 Blog Not Found

    2008年05月02日04:00 カテゴリLightweight Languages Unicode - 似た文字同士にご用心 後者はハイフンでなくてマイナス記号でんがな。 [を] UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ で、元のテキストファイルの全角ハイフンを「od -t x1」 で見てみると「ef bc 8d」と「e2 88 92」の2種類が混じっていました。 前者は「\p{Hyphen}」にマッチするのですが後者はダメ。 まあ原因は分かったので、前処理でバイナリ置換して解決しました。 で、紛らわしそうなのを名前のHYPHENとMINUS SIGNでgrepするとこんな感じになる。 egrep '(HYPHEN|MINUS SIGN)' /usr/local/lib/perl5/5.10.0/unicore/Name.pl -002DHYPHEN-MI

    Unicode - 似た文字同士にご用心 : 404 Blog Not Found
    sassano
    sassano 2008/05/02
  • UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ

    UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ 2008-05-01-3 [Programming] UTF-8 の全角ハイフン(便宜上こう呼びます)を Perl の正規表現でマッチさせようとしてはまりました。 全角ハイフンってのは「−」です。 やろうとしたことは、テキストファイル(UTF-8)を読み込んで、 その中の全角ハイフンを半角ハイフンに変換するという作業。 Perl スクリプトはこんな感じ。 use utf8; use open ':utf8'; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; while (<>) { s/\p{Hyphen}/-/g; # または s/−/-/g; print; } 入力「12−234−5」に対して、 出力「12-234-5」を想定。 しかし一部の全角ハイフンだけが半角

    UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ
    sassano
    sassano 2008/05/02
  • Perl で切り上げの計算をする

    1 を足してから int します。負の値や整数に対しては、そのまま int です。 $one = ceil(19.1); # $one = 20 $two = ceil(-30.5); # $two = 30 $three = ceil(5); # $three = 5 sub ceil { my $var = shift; my $a = 0; $a = 1 if($var > 0 and $var != int($var)); return int($var + $a); }

    sassano
    sassano 2008/04/30
  • HugeDomains.com

    Captcha security check itsmemo.com is for sale Please prove you're not a robot View Price Processing

    HugeDomains.com
    sassano
    sassano 2008/04/13
  • Logarithmic Merging を理解するためのサンプルプログラム

    Logarithmic Merging を理解するためのサンプルプログラム 2008-04-12-1 [Algorithm][IIR] 「Introduction to Information Retrieval」[1]の第四章[2008-04-12-2]の「4.5 Dynamic indexing 」に出てくる Logarithmic Merging のアルゴリズム (Figure 4.7) を説明用に Perl で実装してみました。 といっても、説明用プログラムなので、実際とは異なります。 実際は postings のマージをやるんだけど、term のマージだけ。 indexes と Z と I がどのように変化するのかを追って処理の流れを確認するためだけのものです。 コード: #!/usr/bin/perl use strict; use warnings; my $cnt = 1;

    Logarithmic Merging を理解するためのサンプルプログラム
    sassano
    sassano 2008/04/12
  • 文字列の ID 化と相互変換を SUFARY を使って行う方法

    文字列の ID 化と相互変換を SUFARY を使って行う方法 2008-04-10-2 [Programming] 例えば、巨大なコーパスに対して出現する単語の共起情報を計算するときなどに、 (1) 各単語をあらかじめ ID (例えば整数) に変換して、 (2) その ID で内部処理を行い、結果をその ID で出力し、 (3) 出力結果 の ID を元の単語に戻す、 というロジックをよく使う。 機械学習の学習データの feature や、ログデータ分析なんかもこのロジックでやったりする。 SUFARY を用いてこの作業を効率的に行う方法をメモ。 速度よりも省ディスクスペースを優先する人向け。 巨大な単語集合(例えば100万とか1000万とか1億とか)に有効。 小規模なら、ありもののDBやハッシュで良いかと。 まず準備。 各行はキー文字列と付加情報をスペースでつないだもの。 mkary

    文字列の ID 化と相互変換を SUFARY を使って行う方法
    sassano
    sassano 2008/04/11
  • シンプルすぎるコンテンツマネジメントシステム「ebicoma」を公開しました

    シンプルすぎるコンテンツマネジメントシステム「ebicoma」を公開しました 2008-04-05-6 [Programming] シンプルすぎるCMS、「ebicoma」を公開しました。 コメント欄もトラックバックもいらないから簡単に扱えるCMSが欲しい、 ということでいろいろ調べていたのですが、 結局自作することで落ち着きました。 ドキュメントなどをまとめたので、ブログ合宿の成果として公開します。 よろしくお願いします。 どういうものなのかは、こちらの README をご覧ください。 http://coderepos.org/share/browser/lang/perl/misc/ebicoma/README こちらにソース一式の tarball を置いておきますのでよかったら お試しください。 http://chalow.net/misc/ebicoma-1.0.tar.gz また

    シンプルすぎるコンテンツマネジメントシステム「ebicoma」を公開しました
    sassano
    sassano 2008/04/05
  • Yahoo!日本語形態素解析APIをコマンドラインから使うサンプルプログラム

    Yahoo!形態素解析APIをコマンドラインから使うサンプルプログラム 2008-04-05-5 [Programming][NLP] とある経緯で、Yahoo!形態素解析API[2007-06-18-1]を使った Perl のサンプルプログラムを作りました。 車輪の再発明的ですが(だれか作ってた気がする)気にしない! - Yahoo!デベロッパーネットワーク - テキスト解析 - 日形態素解析 http://developer.yahoo.co.jp/jlp/MAService/V1/parse.html 以下コードです: #!/usr/bin/perl use strict; use warnings; use Encode; use URI::Escape; use LWP::Simple; use XML::Simple; use Getopt::Long; use

    Yahoo!日本語形態素解析APIをコマンドラインから使うサンプルプログラム
  • smart match 演算子は perl5.10 でつかえるだろうが - TKSKを作る人のネタ帳 〜人格崩壊〜

    id:dankogai/kogaidan も、id:lestrrat も、いったいなにをとちくるっているんだ。Perl5.10 がリリースされた今、smart match 演算子を使わずして、どうする。詳しくは、perlsyn を熟読せよ。 use strict; use warnings; use Test::More; sub orig { ( $_ eq 'XXX' || $_ eq 'YYY' ) ? 1 : 0 } sub smart { ( $_ ~~ [ 'XXX', 'YYY' ]) ? 1 : 0 } my @cases = qw/XXX YYY ZZZ/; plan tests => 1*@cases; for (@cases) { is smart(), orig(), $_; }

    smart match 演算子は perl5.10 でつかえるだろうが - TKSKを作る人のネタ帳 〜人格崩壊〜
    sassano
    sassano 2008/03/15
  • Text::MeCab 0.20005 - アップグレードしてください - D-6 [相変わらず根無し]

    Text::MeCab 0.20005 - アップグレードしてください 前のエントリで調査した結果、Text::MeCab に深刻なメモリーリークが発見されました。 メモリを解放する処理自体は問題なく呼ばれていたのですが、そのタイミングがperlプロセスが終了する時点まで待たされている状態でした。最終的には確実に解放されていたのでなかなか気づかなかったのですが、node->nextやnode->prevのような関数を呼ぶとperlが終了するまでメモリが解放されませんでした。特に形態素解析する文章が巨大な場合、これは一瞬でメモリリークとなり、問題が顕在化します。 先ほどアップロードした0.20005でこの不具合を修正してありますので、CPAN登録が済み次第アップグレードを推奨いたします。急いでいる場合はcodereposからも入手できます。 ちなみに最終的なフィックスの決め手はXML::Li

    sassano
    sassano 2008/03/07
  • Text::MeCabのメモリ管理(調査中) - D-6 [相変わらず根無し]

    Text::MeCabのメモリ管理(調査中) Text::MeCabがおかしい。某社社内より報告アリ。毎度ありがとうございます。 で、すでに数時間そのコードとにらめっこしている。なぜ思い通りに動かないのかよくわからない。根的な問題はわかった。Text::MeCab::NodeオブジェクトがDESTROYされるのがなぜかスコープを脱出した時ではなく、Global Destruction時のタイミングで起こっているのが問題。 どういうことかというと、Perlは2つのタイミングでガーベッジコレクションを行う。ひとつはステートメントとステートメントの間(スコープが変わる時も含む)、そしてもうひとつはPerlのインタプレタ自体がメモリから削除されるGlobal Destruction時。 現在のText::MeCabでは、以下のように$nodeオブジェクトをどんどん変更して行っても、さっきまで入っ

    sassano
    sassano 2008/03/07
  • Text::TinySegmenter(TinySegmenterのPerl移植版)リリース - spiritlooseのはてなダイアリー

    http://search.cpan.org/dist/Text-TinySegmenter/ TinySegmenterをPerlに移植した。 PurePerlでシンプルにさくっと分かち書き。 use utf8; use Text::TinySegmenter; my $str = '私の名前は中野です'; my @words = Text::TinySegmenter->segment($str); # got ('私', 'の', '名前', 'は', '中野', 'です') 工藤さんもおっしゃってるように品詞を特定するのはきつい。 そういうことやりたいならMeCabつかえってことで。

    Text::TinySegmenter(TinySegmenterのPerl移植版)リリース - spiritlooseのはてなダイアリー
    sassano
    sassano 2008/02/28