タグ

関連タグで絞り込む (341)

タグの絞り込みを解除

perlとPerlに関するnipotanのブックマーク (742)

  • それでも私が Perl を使いつづける理由 - kazuhoのメモ置き場

    元ネタ: http://d.hatena.ne.jp/tokuhirom/20100120/1263958061 なぜ俺が $@%* を使いつづけるのか。* とか良く分かってないけど。 システムプログラミングができる 例えば低水準I/Oが標準で用意されているとか。 gccがない環境にも入っている gccがない環境にも入っている。XenServerのDom0とかにも入ってる。確かLSB 3.2で必須になったらしいので、普及度が上がることはあっても下がる可能性は低い。 インタプリタである Un*x系なら大抵どこでも動く 豊富で(かなり)安定したライブラリ群 CPANのライブラリの量はすごい。それにAPIを無闇に変更したりするとDISる文化が定着してるっぽいので、比較的安心して使える。 まとめ ウェブアプリとか管理ツールとか C/C++ じゃなくてもいいケースで生産性を上げるために使ってる。それ

    それでも私が Perl を使いつづける理由 - kazuhoのメモ置き場
    nipotan
    nipotan 2010/01/20
  • それでも私が Perl5 を使いつづける理由または、Why I still use Perl5? 的な。 - tokuhirom's blog

    それでも私が Perl5 を使いつづける理由または、Why I still use Perl5? 的な。 なぜ俺が $@%* を使いつづけるのか。 Fast Enough もっとはやいといいな、とおもうときはあるけど、他の LL とくらべても速い部類。 Reference Counter である XS かくときとかにはめんどくさいけど、RAII っぽく書けるとか、開放のタイミングがわかりやすいとか、利点もおおい。 スコープぬけたときに開放されることが保証されてるので、メモリ使用量とかが読みやすいのもいいなーと。 Perl is DSL for CPAN である やっぱり CPAN はすごく便利。得に Testers が便利。 Perl community is so good Perl コミュニティは質問とかにもわりと答えてくれるし、一緒に開発してて楽しいですね。 I know perl

    nipotan
    nipotan 2010/01/20
  • Perl Monger は Test::More の subtest が便利すぎるので頭にいれておくべきだと主張したい俺がいる件 - tokuhirom's blog

    Perl Monger は Test::More の subtest が便利すぎるので頭にいれておくべきだと主張したい俺がいる件 Test::More の 0.94以後(2009-09-02)では subtest という機能が導入されており、これが非常に便利なのだが意外と利用されていないようなので、ちょっと宣伝させてもらいますね。 以下は Data::Recursive::Encode のテストケースなのだが、似たようなケースが頻出するわりに、抽象化するのが面倒だし、わけわからなくなること必至であり、かつまた、こんなものを複数のファイルにわけていてはメンテナンスが面倒なことは考えるまでもない。 チミチミと似たような数行のテストをかいたファイルを複数つくるぐらいならば、このように subtest の利用を考えるべきだとおもう。 ただし、これも他のツール同様、なんにでも適用すればいいというもの

  • Data::Recursive::Encode を書いた話 - tokuhirom's blog

    Data::Recursive::Encode を書いた話 Data::Visitor::Encode というモジュールがあって、複雑なデータ構造の中にはいっているデータを操作するには大変便利です。 私は mobirc という IRC2HTTP gateway を開発しているのですが、こちらはユーザの環境にインストールしてつかっていただくソフトウェアであるという関係上、XS に依存したくありません。 しかし、やたらと依存モジュールが多く、得に XS が必須であり、かつまたメモリを大く消費してしまうのが難点です。また、ソースコードが複雑で、なにかあったときに読む気がしないというのも難点です。これらの欠点は、質的には Data::Visitor の問題点であって、Data::Visitor::Encode の問題ではないのですが、依存している以上、どうしようもないことです。また、Data::

    nipotan
    nipotan 2010/01/20
    そういえば、U::RD いじってて気付いたんだけど、最近リファレンスのリファレンス \\$data みたいなのは UNIVERSAL::isa() で REF ってなるね。
  • nopan っていうレポジトリから直接ソフトウェアをインストールするインストーラを作り始めた件 - kazuhoのメモ置き場

    perl の場合、CPAN モジュールは sudo cpan -i Module の1コマンドでインストールできる。でも、svn や git レポジトリのコードは、チェックアウトして perl Makefile.PL && make all test && sudo make install とか、めんどくさい。 なので、svn や git レポジトリからソースコードをダウンロードしてインストールするツールを作り始めた。名前は、CPAN モジュール以外も簡単にインストールできるところから、Not-only CPAN、略して nopan。 こんな感じで動きます。まだ適当だけど。 $ sudo nopan http://github.com/kazuho/kaztools.git downloading files from URL:http://github.com/kazuho/kazto

    nopan っていうレポジトリから直接ソフトウェアをインストールするインストーラを作り始めた件 - kazuhoのメモ置き場
  • Catalyst::View::TTSite Example Page - perldoc.jp

    some アップロード, some ディストリビュート some モジュール, some アップローダ

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • おさかなラボ - Coroの並列をあっさり理解するための3つのサンプルスクリプト

    Coroが非同期にルーチンを扱う(コルーチンを扱う)モジュールだということはご存知だと思うが、いまいちピンと来ていない人も多いのではないだろうか。これは、1つにCoroやCoro::Introの例題が悪すぎると思う。例えば、Coro::Introのサンプルスクリプトはこうだ。 use Coro; async { print "async 1\n"; cede; print "async 2\n"; }; print "main 1\n"; cede; print "main 2\n"; cede; このスクリプトは確かに面白い挙動をするが、スレッドを実現してるんだよと言われるとちょっと「?」である。こんなのgoto文でできるじゃんみたいな。そしていきなりセマフォやチャネルの話に飛んでしまい、肝心の「Coroはスレッドが実現できるんだよ」というところが分かりにくい。そこ

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • YAPC::Asia2009の特別研修「Moose入門、モダーンなオブジェクト指向システム」が超良かった! - こんにちはこんにちはmonmonです!

    Shawn Moore(Sartak)の講義でした。同時通訳。 感想。 超楽しかった!!sartakがとてもいい人だった!ちょっとした質問でもコード書きながら教えてくれた。 もっとみんな受けたらいいのに!もう終わっちゃったけど! 機能毎に、講義→実習→講義→実習、の繰り返し。 これがとても楽しかった。 1日最後まで楽しくコード書いて過ごせた。 実習の内容も、既にあるテストが通るようにモジュールを作成してテストが通ったら「やったー!」みたいな。 gitに資料があるのでみんな落としてやったらいいよ!ccのライセンスで公開してるので。 きっとtestファイル自体もキレイに書いてあるはずだから見たらいいと思うよ JPAにすごい感謝でした。3日間全部受けておけば良かったと思った。 以下メモ。 Part0: Mooseのコンセプト perl6からいろんなアイディアをもらってる まずはざっくりMoose

    YAPC::Asia2009の特別研修「Moose入門、モダーンなオブジェクト指向システム」が超良かった! - こんにちはこんにちはmonmonです!
  • YAPC::Asia 2009 特別研修 - Moose 入門

    先週末の YAPC::Asia 2009 のカンファレンスに引き続き、特別研修『Moose入門、モダーンなオブジェクト指向システム』に参加してきた。 研修の内容は、Moose とはなんぞやから始まり、以下(だいたい)7 部構成の入門講座。 Moose Concepts : コンセプト ざっと機能一通りみてみる なぜ Moose なのか Classes : Class の基礎から使い方 Moose::Object が何持ってるかとか BUIDLARGS, extends, override, super の使い方 Moose 使ったあとの後始末 (no Moose;) Role : Role の基礎から使いかた Role の持つ意味 使い方 alias で衝突回避 Basic Attributes : Attribute いろいろ required, default/builder, laz

  • HTTP::Parser::XS - a PSGI compatible, fast http parser - kazuhoのメモ置き場

    んー、と思って、書いた。GitHub - kazuho/p5-http-parser-xs: a fast http parser BLURB は、 PSGI のリクエストオブジェクトを返す 高速 同期 httpd, 非同期 httpd のどちらを実装する際にも使用可能 POST コンテンツのハンドリングはご自分で いったんファイルに入れたり、いろいろ要件があるし、パース作業は発生しないので Perl でもあまり遅くならないため てな感じです。以下ベンチマーク。 $ ./http-parser-vs-xs-benchmark.pl Rate HTTP::Parser HTTP::Parser::XS HTTP::Parser 2978/s -- -95% HTTP::Parser::XS 54348/s 1725% --ベンチマークに使ったコードは、以下のとおり。 #! /usr/bin/

    HTTP::Parser::XS - a PSGI compatible, fast http parser - kazuhoのメモ置き場
  • YappoLogs: HTTP::Enginについて

    HTTP::Enginについて 昨日のHTTP::Engineは死なないよってのは間違いじゃないけど、プロジェクト的には老後生活に入る方向になってました。 仕様は PSGI になり、 Interface 実装は PSGI 実装に、 Request の実装は PlackX::Request に移る方向性っぽいです。 具体的に言うと PSGI の実装を Interface レイヤで使って、Request部分を PlackX::Request を使うラッパーという形になります。 来の HTTP::Engine も Interface の部分からデータを受け取って Request オブジェクトを作って、アプリケーションのコールバックを呼んで アプリケーションから帰って来たResponseオブジェクトを受け取って、それをWebサーバに戻すんですが、これをこれから PSGI実装からPSIGプロトコル

  • YappoLogs: HTTP::EngineとPSGI - HTTP::Engine is died?

    HTTP::EngineとPSGI - HTTP::Engine is died? HTTP::Engine は元々 ・各種Webサーバに依存した処理がWAF毎に分散してるのをまとめたい! ・Request/Responseも共通化したい! という所からスタートしたプロジェクトな訳ですが、今回PSGIが始まる事によって前段の部分をPSGIに委譲して、Req/Resの共通化は今まで通りありますよと言う話。 今回のPSGIは「HTTP::EngineのInterfaceのレイヤとReq/Resのレイヤが絡み付いてて良く無いんで、良い感じに分離したいよね」という所から始まった感じ。 結局はPSGIは仕様なので、それを実装するのはHTTP::Engineの内部になるかもしくはRack的な物を外に作ってやるかという事になるけど(後者の方向)、HTTP::Engineの内部でPSGIと既存のReque

  • Mooseの速度が遅いという議論のまとめと感想 - Islands in the byte stream (legacy)

    Adam Kennedy (ADAMK)が「Array::CompareでMooseを使わないようにしてくれ」とRTでチケットを作成したことがきっかけとなり,Mooseの速度について議論が起きています。以下ラフなまとめ。 #49270: Remove the use of Moose - RT Array::CompareではMooseを使わないでほしい。Mooseを使いつづけるならばコマンドラインアプリケーションでは使うに堪えないし,PadreでもArray::Compare依存をなくすつもりだ。 Moose or No Moose - Perl Hacks (Array::Compareの作者ブログ) 最近いくつかのモジュールをMoose化しはじめたのだが,「Mooseを使うな」と言われてしまった。Mooseは楽なので使い続けたいが,どうしたものか。 Re: Moose Or No M

    Mooseの速度が遅いという議論のまとめと感想 - Islands in the byte stream (legacy)
  • 生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic

    ちょっと前まで DBI で非同期アクセスなエントリが各所で上がっていましたが皆さん如何お過ごしでしょうか? さてと、、、歴史的な経緯とか歴史的な経緯とかで生 DBI 相当を使ってる方もそれなりにいるでしょう。奥さん、大事な事なんで二度言いましたよ! DBI のインターフェースってまぁそんな使いやすい物じゃないんですが、工夫次第で出来る事もあります。 ちなみにサンプルデータベースとして、MySQL Documentation - Example Databases の world データベースを使っています。 fetchall_arrayref でデータ整形 まず以下のように使ってみます。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use DBI; use Perl6::Say; my $dbh =

    生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic
  • perl - & はいつ使うべきか : 404 Blog Not Found

    2009年07月22日21:30 カテゴリLightweight Languages perl - & はいつ使うべきか 鋭い質問です。 Perlの謎(その10)サブルーチンの呼び出し方 - 燈明日記 組み込み関数と同名のユーザ定義関数を定義したときは、どうしても『&』付きでないと呼び出せないのです。id:chaichanPaPaの主張は、以下のとおり確認できます。 #!/usr/bin/perl use strict; use warnings; sub atan2{ "atanatan"; } print atan2(1,1), "\n"; しかし、実際にはビルトイン関数を上書きしているモジュールは少なくありません。たとえばCGI::Carpはdie()やwarn()を上書きしています。 それでは、ビルトイン関数の上書きはどうやるのでしょうか?そして、一旦上書きされたビルトイン関数を呼

    perl - & はいつ使うべきか : 404 Blog Not Found
    nipotan
    nipotan 2009/07/28
  • Test::系のモジュールを書いている人は要注意 - Charsbar::Note

    詳細はuse Perl;の記事とコメントにある通りですが、最新の開発版Test::Moreでサブテストの導入が始まっています。これをサポートするためにTest::Builderに修正が加わったため、Test::Builder->newがシングルトンを返すことを前提にしているテスト系モジュールは今後期待した動作をしなくなる可能性があります。 http://use.perl.org/~Ovid/journal/39193 dagolden氏が用意したfalse-positiveなものを含むリストによると、あぶないのはこのあたり。 GFUJI/Test-LeakTrace-0.08.tar.gz GFUJI/Test-LeakTrace-0.09.tar.gz KOGA/Test-Perl-Metrics-Simple-0.1.tar.gz MIYAGAWA/Test-Synopsis-0.04

    Test::系のモジュールを書いている人は要注意 - Charsbar::Note
  • Imager::Graph のサンプル - 日向夏特殊応援部隊

    今、ちょうど簡単なお仕事でグラフ出さないといけないので、適当に書いてみた。GD::Graph の出力はどう見ても切ない貧弱な表示なので今回は触れない。 #!/usr/bin/perl use utf8; use strict; use warnings; use Carp; use Imager; use Imager::Graph::Pie; my $chart = Imager::Graph::Pie->new; my $font = Imager::Font->new( file => '/path/to/example.ttf', aa => 1 ); $chart->set_style('primary'); $chart->set_font($font); my $img = $chart->draw( width => 500, height => 500, font =>

    Imager::Graph のサンプル - 日向夏特殊応援部隊