タグ

perlに関するCuckooのブックマーク (27)

  • 連載企画 第1回 Perl で DSL する方法 - tokuhirom's blog

    昨年の YAPC の頃に書こうと思ってたネタを id:cho45 さんのひとことで不意に思いだしたのでここに記す。 まず、DSL とはなにか。この連載企画では↓こういうのを DSL とよぶことにします。 session 'testuser' => run { flow 'log in and out' => check { flow 'log in' => check { get 'http://localhost/'; fill form 'login' => { username => 'testuser', password => 'drowssap', }; content should contain 'log out'; }; flow 'log out' => check { get 'http://localhost/'; click href 'log out'; };

  • Perl で 8ビット CPU を作る - naoyaのはてなダイアリー

    CPU を作る、と言ってもハードではなくソフト、仮想機械です。 2001 年から UNIX USER で連載されていた西田亙さんの「gccプログラミング工房」。いまさらながら、バックナンバーを取り寄せて初回から順番に読んでいます。とてもためになる連載です。 この連載中で第10回から数回に分けて開発されていた octopus という 8 ビット CPU の仮想機械があります。オリジナルは C 言語で書かれていたのですが、その設計を見て、これは他の言語でも作れるのではないか、と思い Perl に移植してみたところなんとか動作させることができました。以下の URL にコードを公開します。(西田さんに確認を取ったところ、オリジナルのソースは Public Domain とのことでした。オリジナルは http://www.skyfree.org/jpn/unixuser/ からダウンロード可能です。

    Perl で 8ビット CPU を作る - naoyaのはてなダイアリー
  • perl - 配列をハッシュキーとして扱う : 404 Blog Not Found

    2007年10月24日20:00 カテゴリLightweight Languages perl - 配列をハッシュキーとして扱う コメント欄にも「教科書解」がなかったので。 Perl勉強中 - YoshioriのBlog #!/usr/bin/perl use strict; use warnings; my @array = qw/1 2 3/; my @array2 = qw/1 2 3/; my %hash; $hash{@array} = 'foo'; # ちょっと変更 print $hash{ @array2 }; # foo みたいなこと出来ないのかな? 教科書解は、こちら。 $hash{ join($;, @array) } = 'foo'; これは、 $hash{1,2,3} = 'foo'; $hash{qw/1 2 3/} = 'foo'; という、配列リテラルをキーに

    perl - 配列をハッシュキーとして扱う : 404 Blog Not Found
  • Web::Scraper で XPath と CSS セレクタを混ぜて使う例 - Tociyuki::Diary

    Web::Scraper はいたれりつくせりの仕掛けが仕込んであって、便利ですね。私が、割と良く使っている機能は以下 2 つです。 process の第一引数に、CSS セレクタだけでなく、XPath も指定できます。ただし、XPath を指定するときは先頭を必ずスラッシュ(/)で始めなければいけません。 process の第二引数以降の、値をどこから取得するかを指定する部分に、コード・リファレンスを置くこともできます。これを使うと、DOM ツリー中の値を加工して抽出することができます。 具体例として、デイリーポータルZアーカイブ一覧の中からべつやくれいさんのエントリを抽出してみることにします。まず、アーカイブ・ページのエントリ部分を取り出してやると、こうなっています。 <TD width="580" valign="top" class="tx12px"> <P> <B><FONT c

    Web::Scraper で XPath と CSS セレクタを混ぜて使う例 - Tociyuki::Diary
  • XML::Simpleの簡潔さにひざをポンとたたいてしまう

    PerlプログラマーがXMLをうまく活用する場合、XML::Simpleを使いこなすのは基中の基と言える。まだXML::Simpleを知らないあなたもこれを読めば「XML::Simpleの簡潔さは感動的」と思わず口に出してしまうことだろう。 PerlでXMLを処理するために、ほとんどの場合で必要なすべてのものがそろう魔法のツール、XML::Simpleについては、はてなの伊藤直也氏が執筆する「作って学ぶ、今どきのWebサービス:第3回 XML::SimpleであらゆるXML文書を料理する」でもその魅力を十二分に解説しているので、すでにご存じの方も多いと思う。 そんなXML::Simpleについて、IBM developerWorksに掲載された稿では、XML::Simpleを取得した上で、それを使って2行のコードで構成ファイルからパラメーターを読み込む方法や、元のXML文書に含まれる

    XML::Simpleの簡潔さにひざをポンとたたいてしまう
  • OpenCVを使って画像の物体認識をするPerlモジュール作った - spiritlooseのはてなダイアリー

    作った。 http://search.cpan.org/dist/Image-ObjectDetect/ http://d.hatena.ne.jp/darashi/20070223/1172232765でRubyの拡張ライブラリを公開されていたので、こりゃやらなくちゃ・・・と思った次第です。すみません。 こんな感じで使えます。Imagerで顔を囲んでみた。 #!/usr/local/bin/perl use strict; use warnings; use Imager; use Image::ObjectDetect; my $file = 'picture.jpg'; my $image = Imager->new->read(file => $file); my $cascade = '/usr/local/share/opencv/haarcascades/haarcascad

    OpenCVを使って画像の物体認識をするPerlモジュール作った - spiritlooseのはてなダイアリー
    Cuckoo
    Cuckoo 2007/03/09
  • 404 Blog Not Found:perl - 顔を認識するcgi

    2007年03月08日22:45 カテゴリLightweight Languages perl - 顔を認識するcgi というわけで、やってみた。 spiritlooseのはてなダイアリー - OpenCVを使って画像の物体認識をするPerlモジュール作った これでとりあえずPerlのみで顔認識のWebサービスとかつくれると思います。 Source http://www.dan.co.jp/~dankogai/img-objdetect/detect_face.src 仕様上の注意 顔検出したい画像のURLを、 http://www.dan.co.jp/~dankogai/img-objdetect/detect_face.cgi/ の後ろにつけるだけ。 完全なα版。「動かない」「検出しない」とか文句を言わないように。 FreeBSDで動かすのはちょっと大変だった。ports版のopenc

    404 Blog Not Found:perl - 顔を認識するcgi
    Cuckoo
    Cuckoo 2007/03/09
  • PerlによるCSVファイルの高速集計 2:CodeZine

    open(OUT, '>result.csv'); open(IN1, 'enquate.csv'); # アンケートデータを1行ずつ処理する while(my $line1 = <IN1>){ # 1行を4つに分ける chomp($line1); my ($id, $ans1, $ans2, $ans3) = split(/,/, $line1, 4); # この行にマッチする顧客データを検索する my $name = ''; my $address = ''; open(IN2, 'address.csv'); while(my $line2 = <IN2>){ chomp($line2); my ($tmp_id, $tmp_name, $tmp_address) = split(/,/, $line2, 3); if($tmp_id eq $id){

  • 勝手に添削 - PerlによるCSVファイルの高速集計 2 : 404 Blog Not Found

    2007年03月07日01:00 カテゴリLightweight Languages 勝手に添削 - PerlによるCSVファイルの高速集計 2 前回に引き続き、今回も引き続きcodezineさんの添削。 添削後のコード #!/usr/local/bin/perl use strict; use warnings; use Text::CSV_XS; my ($rfh, $wfh, %name_of, %addr_of); my $tc = Text::CSV_XS->new({binary=>1}); # to handle non_ascii; my $addr_file = shift or help(); my $q_file = shift or help(); my $out_file = shift; open $rfh, "<", $addr_file or die "$a

    勝手に添削 - PerlによるCSVファイルの高速集計 2 : 404 Blog Not Found
  • 404 Blog Not Found:勝手に添削 - Ajaxでデバッグしよう - @IT

    2007年03月07日11:00 カテゴリLightweight Languages 勝手に添削 - Ajaxでデバッグしよう - @IT 記事そのものはまあいいのだけど、CGIの部分があまりにひどいので。 Ajaxでデバッグしよう - @IT 私の仕事の現場ではJavaを開発言語として使用することが多いので、JSPやServletとして実装していますが、今回はレンタルサーバでも利用しやすいようにPerlで作成しました。以下のソースを参考にしてください。 Before まあご覧下さい。前世紀末においてすら[これはひどい]レベルです。著者はJava屋さんとのことなのでその点を甘く見ても、一体何を参考にして書いたのか是非お聞かせください。 local %params; # エージェントはGETメソッドだけを使用するのでPOSTは考慮しない # リモートログエージェントから送られてたログ情報を環

    404 Blog Not Found:勝手に添削 - Ajaxでデバッグしよう - @IT
  • CSVデータをお手軽/高速に扱うモジュール作った。 - spiritlooseのはてなダイアリー

    CSVファイルを処理することがあったので、いつもどおりText::CSV_XSを使おうかなぁと思ったんだけど、最近libcsvっていうのを見かけたので試してみることにした。 というわけでPerlから使いたいので、適当にモジュール作った。 http://search.cpan.org/dist/Text-CSV-LibCSV/ 使い方は use Text::CSV::LibCSV; csv_parse($data, sub { my @cols = @_; # なんか処理 }); こんだけ。楽チン。 こんなスクリプトでベンチとってみたところ、Text::CSV_XSの倍以上速い。 そんなわけで、そこそこ使えるんじゃないかと思います。 libcsv入れるのがちょっとめんどくさいけどね。 なんか作者にチラッと10行ぐらいのメールしといたら5倍ぐらいになって帰ってきてる・・・ バグ報告もたっぷり。

    CSVデータをお手軽/高速に扱うモジュール作った。 - spiritlooseのはてなダイアリー
    Cuckoo
    Cuckoo 2007/03/03
  • ITmedia エンタープライズ:第3回 XML::SimpleであらゆるXML文書を料理する (1/2)

    第3回 XML::SimpleであらゆるXML文書を料理する:作って学ぶ、今どきのWebサービス(1/2 ページ) RSSにおけるXML::RSSのように、専用のモジュールがある場合にはそれを使えばよいのですが、そうでない場合は汎用のXMLパーサーモジュールを使ってパースすることになります。今回は、XML::Simpleを使ってあらゆるXML文書を料理できるようにしてみます。 前回まででXML::RSSによるRSS料理方法は分かったとして、ではRSS以外のXML文書を料理する場合にはどうしたらよいのでしょう? RSSにおけるXML::RSSのように、専用のモジュールがある場合にはそれを使えばよいのですが、そうでない場合は汎用のXMLパーサーモジュール*を使ってパースすることになります。 XML文書からPerlのデータ構造を作るXML::Simple Perlの代表的なXMLパーサーである

    ITmedia エンタープライズ:第3回 XML::SimpleであらゆるXML文書を料理する (1/2)
  • Thinkpad で Pacman を Play

    Thinkpad x60s が届き、だいたいセットアップが終わったのでさっそく遊びだしています。とりあえず、HDDセンサー付きのPCで一度やってみたかった miyagawaさんのGoogle Maps tilt をやってみました。これは楽しい。わずか数行のコードで Perlからマシンの傾き値が取れるのか。 なら、何か他にも遊んでおきたいな、ということで、古典的ゲーム「パックマン」をThinkpadを傾けて操作するっていうのをやってみることに。それなりにゲームできたので、動画。 JavaScriptで動くPacman を見つけてきて、元記事みたくActiveX でという作戦でもいけると思んだけど、同じだとつまんないので、Thinkpad の前後左右への傾きが上下左右キーを押したのと同じになるようにするコードを書く方向で検討開始。 Perl からキーボード操作をする方法を探そうと CPAN の

    Thinkpad で Pacman を Play
  • Six Apart - Tech Talk Blog:f ウェブアプリケーションのテストの仕組みを読み解こう

    はじめまして。Vox 開発エンジニアの谷です。 突然ですが、Vox の開発はいつから始まったのでしょうか。当ブログの以前のエントリーにもありますが、Vox はプレビュー版として3月にサービスが開始されていることからもわかるように、開発は去年から行われていました。となると、もうそれなりに期間の長いプロジェクトですし、アプリケーションの規模でも今では弊社の他の製品に引けを取らないほどになっています。 私が Vox の開発に加わったのは今年の8月なのですが、既に大きく成長していたアプリケーションを前に、最初は「Vox を壊してしまわないだろうか…」という不安を抱えていました。しかし大量のテストコードのおかげで既存のアプリケーションを壊さずに、簡単、確実に機能を追加していくことができたのです。(実際にはテストのおかげで壊れているのが発覚したりしたのですが…) 前置きはこれぐらいにして、Vox は

  • javascript - Text to HTML Entities Encoder : 404 Blog Not Found

    2006年10月06日17:30 カテゴリTips一日一行野郎 javascript - Text to HTML Entities Encoder Sourceを貼付ける際に実体参照化するとき、みなさんはどうしていますか? 404 Blog Not Found:ソースを貼付ける50の方法 コピペのしやすさでtextareaで囲む方法に比べて一歩及ばず、そしてtagの実体参照化が必要だという欠点はあります。 私はPerlのOne-Liner、 perl -Mencoding=utf8 -MHTML::Entities -ple '$_=encode_entities($_, "<>&")' でやっていたのですが、どうせならブラウザーを離れずに出来た方がいいですよね。というわけでこちら。 Text -> HTML Entities Encoder 何度目の車輪の再発明かわかりませんが、気に入

    javascript - Text to HTML Entities Encoder : 404 Blog Not Found
  • 名前のない配列のmapに関する世にも奇妙な物語 - bonar note

    perlの中で便利だけどちょっぴりなものに$_があります。普通のグローバル変数とも振る舞いが違っていて、 sub foo { print "$_\n"; map { foo; } (0..2);とかやると、0から2までの数字が見事に表示されます。つまり、呼び出し先の関数の中でも通用していて、しかしながらmapの後に空になっています。 これだけだと当たり前じゃん!って言われて終わりそうなのですが、、例えば下のようなコードを考えてみます。 #!/usr/bin/perl use strict; sub foo { $_++; print "in func foo($_)\n"; map { $_++; print " - innner map:$_\n"; } (0..2); } sub bar { $_++; print "in func bar bar($_)\n"; } map { pr

    名前のない配列のmapに関する世にも奇妙な物語 - bonar note
    Cuckoo
    Cuckoo 2006/09/11
  • no warnings 'uninitialized'なんてしちゃいけません - Charsbar::Note

    ストロング弾が変なことを言うのはいつものことですが、こいつは著書でtaintチェックしろと言う人の言葉とは思えませんなあ。 no warnings 'uninitialized'; これが一番基的な対策になります。 http://blog.livedoor.jp/dankogai/archives/50622749.html こういうのは対策とは言いません。こんなことをするくらいなら最初からuse warningsしない方がましです。perl 5.6以前の世界になりますが、これはDamianセンセもPerl Best Practicesの中で認めていること。日語版は持っていないので英語版から引っ張ってくると(p.432) Note that it may still be appropriate to comment out the use warnings line when you

    no warnings 'uninitialized'なんてしちゃいけません - Charsbar::Note
    Cuckoo
    Cuckoo 2006/09/11
  • Catalyst勉強会資料 - IT戦記

    けっこう前ですが、会社の勉強会で Catalyst についてやりました もったいないので、共有しときます。 http://sample.ecmascript.jp/Catalyst.ppt そんな矢先ですが、 Catalyst が 5.7 になったようですね。ちょっと調査しないと

    Catalyst勉強会資料 - IT戦記
    Cuckoo
    Cuckoo 2006/07/13
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • daily dayflower - 半角←→全角変換,Unicode::Japanese に未公開機能が…

    2008-10-21 追記 いまだに(ありがたいことですが)検索で飛んできたりブクマされたりというのがちょいちょいあるので,最新動向を書いておきます。 id:tokuhirom さんが Lingua::JA::Regular::Unicode という Pure Perl Module をリリースなさいました(→ http://d.hatena.ne.jp/tokuhirom/20081018/1224300947)。 あなたが作っているアプリで文字列まわりを Unicode::Japanese インスタンスですべて持ちたいわけでなければ(そして,たいていのばあい,持つ必要はないのですが),この Lingua::JA::Regular::Unicode を使うのがベターです。依存性もなく,とても軽量ですので。 2008-10-21 追記おわり ウェブアプリを作っていると,ユーザが入力した半角

    daily dayflower - 半角←→全角変換,Unicode::Japanese に未公開機能が…