タグ

perlに関するinit5のブックマーク (233)

  • perl - telnetコマンドを自作する : 404 Blog Not Found

    2007年05月11日12:00 カテゴリLightweight Languages perl - telnetコマンドを自作する Perl Cookbook (English) Christiansen / Torkington [邦訳: Perlクックブック] ないものは自作してみるということで。 Vista は telnet コマンドが無効化されている ところが Cygwin から telnet コマンドが使えなくて焦った。 Cygwin の setup を確認したり PATH を確認したり。 コマンドプロンプトからも駄目。ざっとこんなところか。 ptelnet.pl #!/usr/local/bin/perl use strict; use warnings; use IO::Socket::INET; my $addr = shift || die "$0 host [port]

    perl - telnetコマンドを自作する : 404 Blog Not Found
    init5
    init5 2007/05/12
  • ライブドアブログ|無料で豊富な機能が充実

    絵日記 グルメ ライフスタイル・暮らし ペット 旅行海外 日記 ニュース スポーツ ビジネス・経済 趣味・創作 音楽 書籍・雑誌 漫画・アニメ ゲーム 受験・学校 ヘルス・ビューティ IT・家電 学問・科学 まとめ

    ライブドアブログ|無料で豊富な機能が充実
  • Perl、PHPでGooglebotを一定の確率ではじく

    PerlPHPGooglebotを一定の確率ではじく 2007-05-01-2 [Programming] 「動的生成ページへのGooglebot(Googleのクローラ)のアクセス数 が多すぎてサーバに負荷がかかりすぎる問題」に悩まされています。 robots.txt の Crawl-delay は効かないし[2007-03-21-1]、 Googleウェブマスターツールでクロール率を低く設定しても ある回数よりも下がらないしで困っていました。 アクセス禁止にすれば完全解決なのですが、 それにより検索されなくなるのはファインダビリティが下がって嫌なので、 とりあえずランダムで 503 を返すことで対処しました。 ときどき503が出ることにより、しばらくするとGooglebotが 「サーバが混んでいるんだな」と思ってくれるみたいで、 結果としてクローラのアクセス数が激減、かつ、検索結果

    Perl、PHPでGooglebotを一定の確率ではじく
  • CPAN - URI::Escape::XS Released! : 404 Blog Not Found

    2007年04月28日02:30 カテゴリLightweight Languages CPAN - URI::Escape::XS Released! URI-Escape-XS を Release したのでお知らせします。 on CPAN (coming soon) URI-Escape-XS-0.01.tar.gz なぜ車輪を再発明したかといえば、今ある車輪のころがりがよくなかったから。 URI::Escapeへの不満は二つあって、一つは速度が不十分だったこと。LWPなどと組み合わせて使う場合は、正規表現ベースの変換でも、他のタスクの方がずっと重いので充分速いのですが、ログの解析する時などに利用すると、ずいぶんと遅く感じます。このあたりはある作業をしていて、気になってProfileしてみてはじめて気がつきました。 もう一つは、%uHHHHの対応。一応にぽたん作のURI::Escape:

    CPAN - URI::Escape::XS Released! : 404 Blog Not Found
  • perl - parser書くならgoto : 404 Blog Not Found

    2007年04月24日18:00 カテゴリLightweight Languages perl - parser書くならgoto しかし、当の当の番はこちらだったりする。 404 Blog Not Found:perl - POO と goto Perl 5のgotoは、仕組みを理解した上で使いどころを誤らなければかのごとく強力なのである。 前回の例では、それでも"One of many ways to do it"で、「知らなくても困らない」レベルのものであった。しかし、今回の例は、gotoがなければ当にきつい。 以下の例を考えてみよう。 入力: (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) 出力: [['define',['fact','n'],['if',['=','n','1'],'1',['*','n',['f

    perl - parser書くならgoto : 404 Blog Not Found
  • 404 Blog Not Found:perl - POO と goto

    2007年04月24日00:45 カテゴリLightweight Languages perl - POO と goto というわけで、番。 404 Blog Not Found:perl - 万能なnewの書き方 ここからが面白くなるのだが次のEntryへ譲るここに着目していただきたい。 sub init { my $self = shift; $self->{$_} = $default{$_} for keys %default; $self->SUPER::init(); } 初期化に限らず、自分で何かをしたら次のメソッドに振るというのは、OOでは非常によく見られる光景だ。特にpluginなどを使っている場合、それが著しい。 しかし、このコード、次のメソッドに振っているのはいいのだけど、振ってから戻ってくるのだ。メソッド呼び出しも関数呼び出しに過ぎないのだから、当然といえば当然だ

    404 Blog Not Found:perl - POO と goto
    init5
    init5 2007/04/24
  • 404 Blog Not Found:perl tips - Encodeを速く使う方法

    2007年04月23日01:30 カテゴリLightweight LanguagesTips perl tips - Encodeを速く使う方法 はっきり言ってこれはフェアではない。 みかログ: ErlangとPerlの速度比較 Perl側は,Encodeが遅い. Encode::from_toがinplaceでコンバートしてしまうために,直前に文字列コピーがあるのも影響しているのかも なぜなら、Encode::from_to()は速度ではなく、安全性に最適化しているから。 そもそもはじめからUTF-8、それもutf8フラグがたっている文字列にfrom_toを使うのはばかげている。 for(my $i = 0; $i < 0xffff; $i++) { my $str2 = $str; Encode::from_to($str2, "UTF-8", "Shift_JIS"); } は単に

    404 Blog Not Found:perl tips - Encodeを速く使う方法
  • ErlangとPerlの速度比較 - みかログ

    Erlangは並列処理が得意なので,それに関しては他の言語より圧倒的に速いのは確認したけれど, わたしがよく使う通常の処理に関してもどの程度違うのか測定してみた. 一般的な処理に関しては,The Computer Language Shootout Benchmarks にたくさん結果があるので,そちらが参考になる. 言語としては,どちらも動的型付けで,コンパイラで内部表現に直してからインタープリタで実行,というあたりは一緒. (ただしErlangはnativeコンパイラが別途ある) ほぼ同じくらいの速度が出ても良さそうなところ. Perlの代替を考えていたので,比較対象はPerl. Language Shootout によれば,Erlang の方が多くのテストで2~3倍前後高速.nativeコンパイルすると,その差がさらに広がる感じ. Erlang 5.5.4 と Perl v5.8.5

    ErlangとPerlの速度比較 - みかログ
  • 404 Blog Not Found:perl - Regexp::Assembleのススメ

    2007年04月19日15:00 カテゴリLightweight Languages perl - Regexp::Assembleのススメ というわけで、Regexp::Assembleのご紹介。 PERL HACKS(日語版) [英語版] odz buffer - それ Regexp::Assembleん?ループ云々を抜きにして、こういうのは Regexp::Assemble の出番じゃないの? すでにPerl Hackers御用達のモジュールとなっていますが、まだ知らない方もいらっしゃるかも知れないので。 何をするモジュールか、といえば、以下を見れば一目瞭然でしょう。 Regexp::Assemble - Assemble multiple Regular Expressions into a single RE - search.cpan.org use Regexp::Asse

    404 Blog Not Found:perl - Regexp::Assembleのススメ
  • WEB DB PRESS vol.38 - naoyaのはてなダイアリー

    WEB+DB PRESS Vol.38 の見誌が届きました。連載も今回で7回目。今回は POE の話の後編です。複数の HTTP サーバーに非同期で同時アクセスするクライアントプログラムを POE::Component::* に頼らずつくり、その後 POE::Component を紹介しつつ IRC bot を作る、という内容になってます。先日の前編の vol.37、それから先日の YAPC::Asia の資料とあわせてお読みいただけると理解が深まるかなと思います。 今月号は新連載が色々始まってたりして関心が高いわけですが、断固guy 小飼弾さん (http://blog.livedoor.jp/dankogai/) の Alpha Geek に逢いたいのゲストがIT戦記の id:amachang とあの"はまちちゃん"で、はまちちゃんの写真が載っていました。はまちちゃんの顔が見たい人は

    WEB DB PRESS vol.38 - naoyaのはてなダイアリー
  • 404 Blog Not Found:perl - to goto or not to goto, that's the continuation

    2007年04月18日06:45 カテゴリLightweight Languages perl - to goto or not to goto, that's the continuation Perlでもgotoを使えば、当の継続(continuation)が可能であることを示す。 継続ってなんのことだかさっぱりわからない一は、以下にあらかじめ目をとおしておいていただきたい。 なんでも継続 なんでも継続、Perl で。 : torus solutions! 404 Blog Not Found:継続は力なり Tociyuki::Diary - Perl 5.8 で似非継続 Perl 5のgotoには、3種類ある。 goto LABEL こちらはCなどで見られるgotoと等価である。 goto END; print "Hello\n"; END: print "Goobye\n"; G

    404 Blog Not Found:perl - to goto or not to goto, that's the continuation
    init5
    init5 2007/04/18
  • perl - 勝手に添削断念 - NNIPF : 404 Blog Not Found

    2007年04月15日07:30 カテゴリLightweight Languages perl - 勝手に添削断念 - NNIPF 「はてなブックマーク - タグ perl」で以下を発見して、SPAMとの戦いに日々うんざりしている私は期待に胸を踊らせたのですが、代わりに心臓が踊ってしまいました。 http://vrl.sys.wakayama-u.ac.jp/~twada/NNIPF.html NNIPFでは,我々が長年蓄積した100万通以上の大量のSPAMデータを詳細に解析した結果,最も有効であると思われる「送信者の情報」を特徴として利用しております.下記の二つを,指定されたURLからダウンロードして,下記の指定された名前でNNIPFのディレクトリに保存してください. -rw-r--r-- jcode.pl-2.13 http://www.srekcah.org/jcode/jcode.

    perl - 勝手に添削断念 - NNIPF : 404 Blog Not Found
    init5
    init5 2007/04/15
  • 2007/04/14 - memo - unknownplace.org

    Log::Dispatch は大好きなモジュールのひとつなんだけど、これだけだとイマイチ微妙。 Log::Dispatch::Config を使うことですげーー便利になる。必須。 miyagawa さんは 5 年以上も前にこれ作ったんだなぁ。 同僚から聞かれたので、僕のやり方を書いておく。 すでにCPANに Catalyst::Plugin::Log::Dispatch というのがあるのだけど、なんかいけてないのでそれは使わず、以下のようにしている。 まず MyApp::Logger とかいうのをかく package MyApp::Logger; use strict; use warnings; use Log::Dispatch::Config; use Log::Dispatch::Configurator::YAML; use Catalyst::Utils; use NEXT;

  • 404 Blog Not Found:ajax - 文字化け判定表

    2007年04月14日01:20 カテゴリLightweight Languages ajax - 文字化け判定表 「誰か」という時にhyukiさんの視線を感じたのは気のせいかしらん。 結城浩のはてな日記 以下のような「文字化け判定表」があるといいなあと思って作り始めましたが、飽きちゃいました(←おい)。誰か作って…。というわけで、そっこーで作ったのが以下。 を で表示 漢字、カタカナ、ひらがなの入ったquery。 これはUTF-8で書かれたテスト 文字化けを解決することは 鯖側のソースはこちら倉側はお使いのブラウザーで「ソースを見て」下さい。 Enjoy! Dan the Man with too Many Mojibake to Fix See Also: 文字化けクイズ(解答編) - 西尾泰和のはてなダイアリー 「Lightweight Languages」カテゴリの最新記事

    404 Blog Not Found:ajax - 文字化け判定表
  • 404 Blog Not Found:perl - warn()とdie()の振る舞いを変更する

    2007年04月12日01:30 カテゴリLightweight Languages perl - warn()とdie()の振る舞いを変更する こういった場合の対処法です。 shag の日記 - inetd 経由で起動されても peeraddr は取得可能 ところで Perl で inetd 起動のスクリプト書くと STDIN から入力を読み取って, STDOUT に出力すれば良いだけなんだけど、実は STDERR も inetd を通してネットワークストリームに出力されるので use warnings; する人は注意が必要です。これは、例を見てもらうのが一番速いでしょう。 #!/usr/local/bin/perl use strict; use warnings; use Fcntl; # for sysopen our $LOGFILE = 'warn.log'; warn $0;

    404 Blog Not Found:perl - warn()とdie()の振る舞いを変更する
    init5
    init5 2007/04/12
  • SSHサーバが受け付け可能な認証方法を列挙する - (ひ)メモ

    もっとスマートな方法ないかしらん。 #!/usr/bin/env perl use strict; use warnings; use Net::SSH::Perl; use Net::SSH::Perl::AuthMgr; QUICK_HACK: { package Net::SSH::Perl::AuthMgr; no warnings 'redefine', 'once'; *auth_failure = sub { my $amgr = shift; my($packet) = @_; my $ssh = $amgr->{ssh}; my $authlist = $packet->get_str; $amgr->{_done} = 1; $amgr->{__authlist} = [ split /,/, $authlist ]; }; *authlist = sub { my $

    SSHサーバが受け付け可能な認証方法を列挙する - (ひ)メモ
  • TAKESAKO @ Yet another Cybozu Labs: [YAPC] 正規表現にフォーカスしたPerl6入門

    YAPC::Asia 2007 Tokyo で発表した資料を公開しました。 Yoshinori Takesako - s/ Perl5 Regular Expression / Perl6 Regex and Rule /mixes; Perlの黒魔術の一つであった正規表現。後付の拡張を繰り返した結果、問題解決の強力な武器に成長した反面、人間にも計算機にも読みにくい諸刃の剣にもなってしまいました。そこで再設計されたのがPerl6! 正規表現の書き方がPerl5からどのように変わるのか、これからPerl6のプログラムを書いてみようという人向けにわかりやすく解説します。 Software Design 2007年2月号の巻末特別企画「先取り Perl6正規表現カタログ ~ Perl5からの変更点を徹底解説!」の記事がベースになっています。 Perl6ではPerl5からの後方互換性は考慮しなくな

  • Perl and UNIX Network Programming (YAPC::Asia 2007) - naoyaのはてなダイアリー

    YAPC::Asia で Perl UNIX ネットワークプログラミングについての発表をしてきました。UNIX ネットワークプログラミングの基礎の概論、I/O多重化の話、Perl のモダンなネットワークライブラリの話です。資料を以下に置いておきます。 http://bloghackers.net/~naoya/ppt/070404Perl_and_UNIX_Network_Programming.ppt (ppt, 122k) なお、会場では口頭で触れましたが、資料中のソースは簡単のためエラー処理を飛ばしています。また、途中で出てくる図は例えば vfs のページキャッシュをはしょってあったりとこれも簡単のため省略事項がある点にご注意ください。 それからフォントが Consolas なので Consolas が入ってない環境だと変になる、かも。

    Perl and UNIX Network Programming (YAPC::Asia 2007) - naoyaのはてなダイアリー
  • perl - $@%&*のよしあし : 404 Blog Not Found

    2007年02月25日03:00 カテゴリLightweight Languages perl - $@%&*のよしあし Matzさんからお返事が。 Matzにっき(2007-02-19) Perl出身の弾さんゆえ、Perlに親しんでおられるのはわかるが、 近代的言語においてsigilを採用するのであれば、 その示すべきものは絶対にデータタイプではない。 データタイプを表現するsigilなんてのは ユーザ定義データタイプを持たない旧式言語の名残でしかない。 これ、実は半分同感。 Matzにっき(2007-02-19) Perlでさえ、Perl5以降はリファレンスの導入により ほとんどすべてのものをスカラで表現できるようになったので、 旧来のデータタイプsigilの役割はずいぶん下がっている。 これがさらにPerl6になると、Rubyみたくすべての変数がオブジェクトなので、@arrayと%h

    perl - $@%&*のよしあし : 404 Blog Not Found
  • regexp - yet another fix for dodgy UTF-8 : 404 Blog Not Found

    2007年02月14日21:30 カテゴリLightweight Languages regexp - yet another fix for dodgy UTF-8 他の言語にも移植しやすいようにrefactorしてみました。 subtech - Bulknews::Subtech - Fix dodgy utf-8 bytes すでに utf-8 なバイト列を latin-1 と解釈して utf-8 に二重エンコードすることで起きる文字化け(を表現する短い言葉ってないのかな)を直すコード。sub fix_utf8 { my $bytes = shift; utf8::encode($bytes) if utf8::is_utf8($bytes); $bytes =~ s{ ([\xC2\xC3])([\x80-\xBF]) }{ chr( (ord($1) << 6 & 0xff) |

    regexp - yet another fix for dodgy UTF-8 : 404 Blog Not Found