タグ

perlとPerlに関するques9のブックマーク (336)

  • mizzy.org - Assurer - サーバテスティングフレームワーク #0

    Assurer - サーバテスティングフレームワーク #0 Posted by Gosuke Miyashita Fri, 05 Jan 2007 15:44:44 GMT 構築したサーバがちゃんと動作するかどうかのテストを自動化したいなー、とスクリプトを書こうと思ったのですが、Perler としてはここはやはり、Plagger とか Archer みたく、プラガブルで YAML で設定書けば OK みたいのを作るべきだろう、ってことで、Assurer (SVN) というサーバテスティングフレームワークをでっちあげてみました。 テストのことを Quality Assurance とか言ったりするし、Plagger や Archer が er で終わってるので、それに倣って命名してます。 今のところ Plagger や Archer からコピペして、ごく簡単な HTTP テストプラグインをつ

    ques9
    ques9 2007/01/08
  • blog.8-p.info: WWW::Mechanize で Vox に写真をアップロード

    Vox には Windows XP 対応アップロード用ツール というのがある。 XP 対応フォトアップローダーを使うと、アイテムとご近所さん へ簡単に大量の画像ファイルをアップロードする事ができます。 「フォトアップローダー」といっても実際はただの .reg ファイルだ。どうなっているのかというと、Windows XP の「Web 発行 ウィザード」という仕組みを使っている。 MSDN の Publishing Wizards を読むと、特別な API がついたミニブラウザを JavaScript からたたくかたちになっていて、Dashboard なんかによく似ている。 というか HTMLJavaScript を OS まわりにとりこんだのは Microsoft が明らかに早かったと思うので、Vista が Dashboard をパクってるとか信じているひとはもうね、いや、それはいま

    ques9
    ques9 2007/01/05
  • 【続】やはり Perl はメモリ喰いな言語。データ型の内部構造

    以前、「やはり Perl はメモリ喰いな言語。データ型の内部構造」という記事を書いたことがあるのですが、自分で書いておきながらしばらく立つと完全忘却してました。時代は変わって、今仕事で運用しているサーバは、64bit 版のOSです。 最近になって、DB のテーブルのデータを加工・集計しながら CSV にダンプするってプログラムが、データ数が非常に多いときに、1.5 GByte ほどメモリをいつぶしているってことに気がつきました。理由は至って簡単なのですが、結構ハマリどころなので備忘録として記事にしておくことにしました。 みなさん、仕事とかでは特にそうだと思うのですが、DBI の処理って何らかのラッパーを書いて使っていると思います。僕は適当に書くとよくやってしまいがちなのですが、イメージ的には、こんな処理の流れのコードを書いていました。 (・・・えっ?そんなへぼコード書いてない??・・・す

  • 遅延評価によるストリーム、Perl で。 : torus solutions!

    SICP の 3.5 節「ストリーム」に出てきたストリームを Perl で実装してみた。 意外と簡単に書けた。 SICP のお買い上げは、アマゾンの 『計算機プログラムの構造と解釈』 のページからどうぞ〜。 概要 ストリームを使うと、 プログラムに状態変化を持ち込むことなく、 物事の変化を扱うことができるらしい。 必要な時に必要なだけの計算をするのに、 実際に計算をする部分と、 その計算された値を使う部分を完全に分離した形でコーディングできるので、 非常に強力なテクニックとなり得る。 ストリームは遅延リストとして実装するので、 まず遅延評価を実現するための手続き delay と force をそれらしく作り、 その上にストリームを構成するいくつかの関数を書いてみた。 実装 以下に、 テキストに出てきた Scheme でのコードと、 それに対応する Perl のコードを順番に載せます。 スト

    ques9
    ques9 2006/12/04
  • TemplateToolkitで FOREACHELSE(foreachに渡す配列にデータが存在なかったときの処理)を記述する|Perlプログラムメモ|プログラムメモ

    PHPのテンプレートエンジンSmartyには foreachelse という便利な構文があります。 { foreach from=$item_loop key="key" item="value"} id: {$value.id} {foreachelse} データがありません {/foreach} これをTemplateToolkitで実現するには [%FOREACH value=itemloop%] id:[%value.id%] [%END%] [%UNLESS itemloop.0%]データがありません[%END%] と記述します。

    ques9
    ques9 2006/11/28
  • Win32::CaptureIE : blog.nomadscafe.jp

    Win32::CaptureIE 今日はsearch.cpan.orgが止まっていてとても仕事がやりにくいのだが、 blog.bulknews.netさんの記事にあった、Win32::CaptureIE、インストール&動作しました。 環境は、ActivePerl build 810です。 Win32::OLEは、 # ppm install Win32-OLE でOK。 Image::Magickは、ここからダウンロードして普通にインストール。 インストール後、環境変数「MAGICK_HOME 」の設定が必要になります。Cepheidさんのページを参考にしました。 Win32::Screenshotのppdはこちらにあります。 ppm install http://theoryx5.uwinnipeg.ca/ppms/Win32-Screenshot.ppd でインストールできました。 肝

    ques9
    ques9 2006/11/28
  • CLON - 2006/11/27 - 複数のアプリで共通のテンプレートファイルを使う

    アカウントとってみた。 shibuya.pmで話していたFirefoxの拡張便利。 firefox.exe -chrome chrome://s3fox/content/s3foxWindow.xul とかで単独起動できる。 にはどうしたらいいのかなーとおもってTemplateのdocを眺めていたら my $tt = Template->new({ LOAD_TEMPLATES => [ Template::Provider->new( INCLUDE_PATH => '/path/to/myapp/templates' ), Template::Provider->new( INCLUDE_PATH => '/path/to/common/templates' ), ], PREFIX_MAP => { default => 0, common => 1, }, }); こんな感じでやれ

    ques9
    ques9 2006/11/28
  • naoyaのはてなダイアリー - coLinux 上の Emacs の kill-ring の内容をWindowsのクリップボードと同期する by Perl

    Emacs を Meadow をやめて coLinux 上のものを PuTTY 経由で使うようにしたんですが、Emacs で killing にいれたものを Windows でペーストしたい、と思ったときに Meadow ですんなりできたそれができずにちょっとストレスになってました。そんな折、 http://d.hatena.ne.jp/odz/20061125/1164433815 http://d.hatena.ne.jp/odz/20061125/1164437987 Great Job! こういうのを Hack っていうんでしょうなあ。しかし、Python ! ここはいっちょ Perl で。 まず Windows 側に立てるサーバーを実装する。 ActivePerl + ppm で POE と PoCo::Server::IKC がすんなり入ったのでこれを使う。 クリップボードへの

    naoyaのはてなダイアリー - coLinux 上の Emacs の kill-ring の内容をWindowsのクリップボードと同期する by Perl
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 404 Blog Not Found:perl - the sort pragma

    2006年11月23日17:00 カテゴリLightweight Languages perl - the sort pragma いい機会なのでPerl 5.8のsortプラグマを紹介。 sawatの日記 遅いのはマージソートだからでいいのでは?ぎゃああ、元記事を別の記事で上書きしてしまったみたいだ。現在再執筆中....完了。 Perlでは、5.8以降はsort()のアルゴリズムにmergesortを採用している。ただし、実装で工夫しているので、実はPerl 5.6以前のquicksortベースのsortよりも、ほとんどのケースでは速度低下は見られないか、むしろ高速になっている。 とはいうものの、それでもquicksortの方がいいケースも残っているということで、これを切り替えるがsortプラグマなのだ。 NAME function - search.cpan.org Perl 5.6

    404 Blog Not Found:perl - the sort pragma
    ques9
    ques9 2006/11/25
  • ずんWiki - Perlでマルチスレッド

    目的 † 元々はメール配送システムを作ろうとしていた。 そのシステムでは複数の宛先へのメール配送を1通毎に並列にやりたかったし、 スレッドが無限に増えてしまってもリソースを消費しすぎて困るのでそれを制限したかった。 また、相手サーバの事情によっては纏めて数万通とか出すと怒られるときがあるのでメールの配送ペースも調整したかった。 以上がマルチスレッドプログラミングを勉強する目的だった。 ↑ ソース † 上記条件を満たすサンプルが出来たのでメモ。 ダウンロードも出来るようにしておく。 このソースには無駄なコードや、こうした方が良かったとか思うところがいっぱいあるんだが修正するのが面倒い…。 参考にする方は、とりあえず参考にするだけして、自分で色々試して良いと思った方法をとったほうが良いです ithread_test.pl #!/usr/bin/perl use strict; use thre

  • DBIでmysqlのmy.cnfを読み込ませる方法

    1つのサーバでmysqlを2台動かしてmy.cnfを分けたときに、DBIから接続する際にそのmy.cnfをdata sourceとして読み込ませる方法を初めて知った。。。(see also DBD::mysql) my $dbh = DBI->connect('dbi:mysql:foo;mysql_read_default_file=/path/to/my.cnf', 'root', '') or die $!; こうやるとできるみたい。もちろんmy.cnfの[client]セクションに接続したいmysqldの起動してあるポートとかを指定する必要があります。まぁ最近はサーバのコストも低くなってきているので、1台で複数のmysqlを動かすなんて機会がないっちゃないんですけどね…。 これは個人サーバでやりたかっただけです。

  • Catalyst::Helper::View::TTSite と TT の AutoWrapper

    Catalyst::Helper::View::TTSite を使ってみたら、雛形のテンプレートで TT の WRAPPER がみたことがない使われ方をしていたので、調べてみたら TT の Automatic Wrapper という仕組みだった、という話。 今までの自分の TT の使い方。 普段自分が Web アプリなんかで TT を使う時の使い方は、header.tt と footer.tt とか作って、tt_process で指定するテンプレがそいつらを含めてるという、↓のような感じ。 header.tt。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta

    ques9
    ques9 2006/11/22
  • ClearSilver の Perl バインディングを使う(Perlのテンプレートエンジンのベンチマーク) - spiritlooseのはてなダイアリー

    ClearSilverネタが続いてるわけだけど、今度はPerlバインディングを使ってみた。 ClearSilverをインストールすると同時にPerlバインディングもインストールされるんだけど、PODには何にも書いてない・・ ここにAPIがのってるだけ。 というわけでサンプルは以下。 #!/usr/local/bin/perl use strict; use warnings; use ClearSilver; my $hdf = ClearSilver::HDF->new; $hdf->setValue('message', 'hello world!'); my $cs = ClearSilver::CS->new($hdf); $cs->parseFile('hello.cs'); print $cs->render;気になった点は TTになれてるので、メソッド呼び出しができないのが一

    ClearSilver の Perl バインディングを使う(Perlのテンプレートエンジンのベンチマーク) - spiritlooseのはてなダイアリー
  • perl - Encode::Alias does not realias canonicals : 404 Blog Not Found

    2006年11月19日22:30 カテゴリLightweight Languages perl - Encode::Alias does not realias canonicals 全国のPerl Mongerのみなさんこんばんわ。Encode Maintainerの弾でございます。 非常に稀ながら、知っていないとbugと勘違いするfeature (少なくとも undocument だった!) があったのでお知らせします。 以下のtest scriptをご覧下さい。 use strict; use warnings; use Encode; use Encode::Alias; use Test::More tests => 3; define_alias( qr/sjis$/i => '"cp932"' ); # Look here! my $char = "\x{FF5E}"; my

    perl - Encode::Alias does not realias canonicals : 404 Blog Not Found
  • many-to-manyを殴り書き - Hatena::Diary::Neko::kak 500 Internal Server Error

    今のところ、あまり必要に迫られているわけではないのですが、 覚書程度にDBICのmany-to-manyを試してみます。 Memberテーブル:Addressテーブル = n : m みたいなな感じで。 package Proj::Schema::Member; use strict; use warnings; use base 'Proj::Schema'; __PACKAGE__->table('member'); __PACKAGE__->add_columns(qw/ id rid name created_on timestamp /); __PACKAGE__->set_primary_key(qw/id/); __PACKAGE__->has_many('member_address' => 'Proj::Schema::MemberAddress','member');

    many-to-manyを殴り書き - Hatena::Diary::Neko::kak 500 Internal Server Error
  • HTML::Selector::XPath をリリース: blog.bulknews.net

    HTML::Selector::XPath をリリース CSS Selector in Perl とか subtech - Bulknews::Subtech - CSS selector to XPath あたりで議論していた CSS 2 Selectors to XPath コンパイラなモジュールをつくって、CPAN に HTML::Selector::XPath としてリリースしました。 使い方は naoya さんが先に書いてますが、HTML から正規表現を使うことなくスクレイプするのに便利。たとえば Mixi にログインしてマイミク最新日記と、1件目のタイトル、文を抜き出すコードが、以下のようにかけます。 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use HTML::Selector::XPat

  • http://tociyuki.cool.ne.jp/archive/

  • MATSUNO Tokuhiro / Net-CIDR-MobileJP-0.07 - search.cpan.org

    The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

    MATSUNO Tokuhiro / Net-CIDR-MobileJP-0.07 - search.cpan.org
  • 404 Blog Not Found:perl - In-Memory File

    2006年11月08日04:30 カテゴリLightweight Languages perl - In-Memory File Perl 5.8以降では、このような場合にin-memory fileが使えます。 【続】やはり Perl はメモリ喰いな言語。データ型の内部構造 :: Drk7jp DB上の全レコードをいったん perl 側の配列に格納して、その結果を返す。ってコードなのですが、当然ながらレコード数が多くなればメモリをうのは当たり前なのですが、以前の記事の内容を完全に忘却してました。ここには落とし穴があるのです。使い方は、簡単です。 my @array = (0x21..0x7e); my $memfile; open my $wfh, '>', \$memfile or die $!; print $wfh chr($_), "\n" for (@array); clos

    404 Blog Not Found:perl - In-Memory File
    ques9
    ques9 2006/11/12