タグ

moduleに関するkwryのブックマーク (85)

  • ウェブサービスのクライアントライブラリやHTTPをつかったミドルウェアのクライアントを作成する際に気をつけるべきこと - tokuhirom's blog

    ウェブサービスのクライアントや、Net::Groonga::HTTP のようなミドルウェアのクライアント、いろいろありますが、HTTP サーバーへの簡単なアクセスを提供するライブラリをつくるときに僕が気をつけていることをここに記す。みんな気をつけたほうがいいです。 HTTP Client Library の引数を変更できるようにするか、HTTP Client Library のインスタンスをさしかえられるようにする変更できないライブラリとか利用価値がないです。。 タイムアウトの設定もかえられないライブラリとか、たまにありますが、ちょっとひどいですね。 生のレスポンス情報がとれるようにするHTTP::Response なり Furl::Response なりをそのままとれるようにすべき。 たとえば、$client->last_response のようなメソッドを用意し、最後のレスポンスオブジ

    kwry
    kwry 2013/04/26
  • すぐれた PHP ライブラリとリソース

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    すぐれた PHP ライブラリとリソース
  • Perl を学ぶとき、真っ先に覚えたいモジュール

    春ですね! 新年度ですね! Perl 書くことになってしまいましたか! 奇遇ですね! sigil が意味わかりませんか! 特殊変数がググれませんか! リファレンスが謎ですか! 1; の存在が不明ですか! オブジェクト指向が難しいですか! むしろオブジェクトじゃないコードの方がゆるくて大変ですか! XS が読めませんか! ええ、XS は僕もあんまり読めません>< さて、この春から Perl を学ぶことになった人も多いかと思いますが、なにはなくともこれまず覚えたら後が楽になるんじゃないかというモジュールを、いくつか紹介したいと思います! (まあ、自分の初期を思い返すと、この辺はやく知っておきたかったなあというリストです) Data::Dumper, YAML 変数(リファレンス)やオブジェクト(blessされたリファレンス)をダンプする用途では、Data::Dumper が一番メジャーのような

    Perl を学ぶとき、真っ先に覚えたいモジュール
  • Hokkaido.pm #9

    自己紹介 twitter @xaicron works :DeNA CPAN https://metacpan.org/author/XAICRON 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 また、スピリチュアルトークはできません。 というわけで 今日は、最近使ってるモジュールの話とかを中心にまったりやっていこうと思います。 いきなり題に入る前に 自分がどんなふうに使うモジュールを選んでいるのか CPAN モジュールの選定基準 2008年ごろ書かれたいい記事があります。 CPANソムリエになる方法 ざっくりまとめると 最終更新日時がふるいモジュールは危険 テストが超絶少ないモジュールは危険 バグレポート溜まってるモジュールは危険 って感

  • リストを任意件数ごとにぬるぬる処理する用のモジュール書いた

    なんらかのリストの要素、要素に処理をするなんて場面よくありますよね。んで、そんなとき、リストが長大で 1 件ずつやってたら埒が明かなくて、適当な件数ごとに分割してぬるぬるしないとやってられない、みたいな深遠な事情もありがちですよね。 さて、まあ、そんなのを、毎度書くのに飽きたので、少し楽できそうなモジュール書いてみました。 Sub::Sequence こんな感じです。 use Sub::Sequence; my @user_id_list = (1..10_000_000); seq \@user_id_list, 50, sub { my $list = shift; my $in_id = join ',', map { int $_; } @{$list}; # UPDATE table SET status=1 WHERE id IN ($in_id) sleep 1; }; us

    リストを任意件数ごとにぬるぬる処理する用のモジュール書いた
  • Sub::Inspector というモジュールを書いた - Cside::Weblog

    https://metacpan.org/module/Sub::Inspectorcoderefから以下の情報を簡単に取り出すモジュールです。 アトリビュート プロトタイプ 元のメソッドが定義されているファイル 元のメソッドが定義されている行番号 名前 いずれも標準モジュールの B.pm を使えば出来ることですが、いちいち使い方を調べるのもしょうもないのでモジュール化するに至りました。インターフェイスは以下のとおりです(PODそのまま)。 use Sub::Inspector; # get file, line, name (oo interface) use File::Spec; my $code = File::Spec->can('canonpath'); my $inspector = Sub::Inspector->new($code); print $inspector->

  • Guard vs Scope::Guard - D-6 [相変わらず根無し]

    Guard vs Scope::Guard perl 5.8.8 で GuardとScope::Guardを比較してみた。関数が終了したタイミングでコールバックが走るようにした状態で比較。Guardはスコープ終了時に走るscope_guard()とダイナミックガードであるguard()両方で試してみた。 use strict; use Benchmark qw(cmpthese); use Scope::Guard; use Guard; cmpthese(500_000, { scope_guard => sub { my $guard = Scope::Guard->new(sub { 1 }); }, guard_dynamic => sub { my $guard = guard { 1 }; }, guard => sub { scope_guard { 1 }; } }); 結

  • Mod cidr lookup - KLablabWiki

    Overview mod_cidr_lookupは、アクセスしてきたクライアントのIPアドレスが、起動時に読み込んでおいたCIDRブロック群のいずれかにマッチするかどうかを判別するためのモジュールです。Apache 2.0と2.2系に対応しています。 マッチした結果は、環境変数 (X_CLIENT_TYPE) とHTTPリクエストヘッダ (X-Client-Type) にセットするので、Apache自身とバックエンドのWebアプリの両方で同じ情報を参照することができます。 使用例 ※IPアドレス帯域の正確性などについては、情報提供元にお問い合わせください。 クローラからのアクセスは別のサーバにreverse proxyする モバイル用のクローラには、送信元IPアドレスを公開しているものがあります。 Google モバイルウェブクローラー モバイル版Yahoo! livedoor De

  • Memoize::Class::Constructor作った - 時計を壊せ

    GitHubに上げました。 名前のとおりクラスのコンストラクタをメモ化するモジュールです。 前回の反省*1を踏まえてもうちょっとIFやらなんやら煮詰めてみようって言う目論見です。 How to use こんな感じで使います。 use HeavyClass; use Memoize::Class::Constructor qw(HeavyClass); もちろん複数指定することも出来ます。 use HeavyClass; use FatClass; use Memoize::Class::Constructor qw(HeavyClass FatClass); 他にもコンストラクタを明示的に指定したり、 use HeavyClass; use FatClass; use RikishiClass; use Memoize::Class::Constructor ( 'HeavyClass',

    Memoize::Class::Constructor作った - 時計を壊せ
  • インストールされているPerlモジュールはinstmodshで見れる - 徒書

    Perlで、インストールされているモジュールの一覧を取得するには ExtUtils::Installed を使うとよいという記事をよく見かけていたので、自分もよくそのようにしていました。 新しいPerlに今まで使ってたモジュールをまとめてインストールする - 酒日記 はてな支店 cpan コマンドでインストールしたモジュールを調べる - Yet Another Hackadelic しかし日、perlbrewでperl-5.12.2をインストールした後、bin/ 配下に置かれるコマンドをなんとなく眺めていたところ、instmodsh というコマンドがあることに気付きました。これを使うと、 $ instmodsh Available commands are: l - List all installed modules m <module> - Select a module q - Q

  • Class::Accessor::Fast とかの継承の罠 - tokuhirom's blog.

    2010-12-06 Class::Accessor::Fast とかの継承の罠 package Parent; use parent qw/Class::Accessor::Fast/; な Parent クラスがある場合に、これを継承したクラス Child をつくる場合に package Child; use parent qw/Parent/; __PACKAGE__->mk_accessors(qw/foo/); などとしてしまいがちだが、基的に Parent の作者は、C::A::Fast をつかっているところは別に仕様だとは考えていないので、途中で不意に Class::Accessor::Fast から Moose に転向したりする場合がある。というわけで、そういう場合には package Child; use parent qw/Parent/; use Class::Ac

  • Smart::Argsの素晴らしいところ

    Sub::Argsというものを作っていながら、 Smart::Argsを紹介します。 一言でいうとSmart::Argsの良さは型チェックができるとかそんなことではなく、 argumentsをhashと同じキー名の変数でうけとれることでしょう。 サンプルコード use strict; use warnings; package Your::Class; use Smart::Args; sub foo { args my $self, my $fh, my $bucket => {optional => 1}, my $ext => {optional => 1}, ; } package main; foo(fh => $fh, bucket => $bucket, ext => $ext); # or foo({fh => $fh, bucket => $bucket, ext =>

  • Don't use base.pm, use parent.pm instead! - Islands in the byte stream (legacy)

    「使っちゃいけない標準モジュール」*1の反響を見ていると、baseが非奨励ということに驚かれた方が少なくありませんでした。そこで、baseについて補足します。 まずbase.pmのドキュメントの最初の文は以下のようになっています。 Unless you are using the fields pragma, consider this module discouraged in favor of the lighter-weight parent. (拙訳: fieldsプラグマを使用しているのでないかぎり、このモジュールは勧められない。かわりに軽量なparent.pmを使う方がよい。) fieldsプラグマは、ハッシュリファレンスのキーを固定したオブジェクトを作成するための機能ですが、あまり一般的ではないためここでは解説しません。特に理由がない限り、ここは素直に忠告に従った方がいいでし

    Don't use base.pm, use parent.pm instead! - Islands in the byte stream (legacy)
  • Devel::Size - Perl 5 マスター Wiki

    Perl 5 マスター Wiki perl 5 まとめウィキ トップページページ一覧メンバー編集 Devel::Size 最終更新: tomyhero 2009年04月13日(月) 10:16:19履歴 Tweet 変数が使用しているメモリ量をしらべることができます。 #!/usr/bin/perl use warnings; use strict; use Devel::Size qw(total_size size); my $ref ={ hoge => 'hogehoge' , hage => 'hageghe' }; printf("%d\n", size ( $ref )); printf("%d\n" , total_size ( $ref ) ); size と total_sizeの違い sizeは、参照を深追いしないのに対して、total_sizeは参照先のサイズもカウ

    Devel::Size - Perl 5 マスター Wiki
  • Module::Pluggable::Fast Source Code Reading - 日向夏特殊応援部隊

    そもそも論ですけど Similar to C but instantiates plugins as soon as they're found, useful for code generators like C. ってあるように、Module::Pluggableと同じインターフェースな訳じゃなくて似てるモジュールです。 似てる 速い すぐインスタンス化する ってのが特徴ですね。 同様にimport経由でpluginの読み込みを行います。 Module::Pluggable::Fast import() sub import { my ( $class, %args ) = @_; my $caller = caller; no strict 'refs'; *{ "$caller\::" . ( $args{name} || 'plugins' ) } = sub { my $sel

    Module::Pluggable::Fast Source Code Reading - 日向夏特殊応援部隊
  • Module::Pluggable Source Code Reading - 日向夏特殊応援部隊

    Module::Pluggable import() まずModule::Pluggableってのはuse時に各種パラメータを指定して使うモジュールなんで、 まずはimportメソッドから。 sub import { my $class = shift; my %opts = @_; my ($pkg, $file) = caller; # the default name for the method is 'plugins' my $sub = $opts{'sub_name'} || 'plugins'; # get our package my ($package) = $opts{'package'} || $pkg; $opts{filename} = $file; $opts{package} = $package; my $finder = Module::Pluggabl

    Module::Pluggable Source Code Reading - 日向夏特殊応援部隊
  • Devel::KYTProfをもっと便利に

    Devel::KYTProfに3つ程パッチを送ったら取り込んでいただけたのでその機能の部分だけでもご紹介。 http://github.com/onishi/perl5-devel-kytprof 1:カラースキームの指定 use Devel::KYTProf; Devel::KYTProf->color_info('magenta');とかすると、表示される文字の色を変える事ができます。 人によってターミナルの背景色がちがったりするので、環境に合わせて指定できるようになりました。 2:Cache::Memcached::Fast使用時のキー表示 Devel::KYTProfでは自動でCache::Memcached::Fastをhookして、 勝手にプロファイルをとってくれるのですが、memcachedの肝となるキャッシュキーを表示できてなかったので 表示するようにしました。 これでど

  • OFPM: Our Favorite Perl Modules

    on CPAN strict (19111) Test::More (14383) warnings (13270) Carp (8166) Test::Pod (7947) vars (6985) Test::Pod::Coverage (6274) Exporter (6010) lib (2838) Data::Dumper (2717) » The most used modules on CPAN

  • perl - Data::Decycle で悪循環を断とう! : 404 Blog Not Found

    2010年08月23日08:00 カテゴリLightweight Languages perl - Data::Decycle で悪循環を断とう! Data::Decycleというモジュールをリリースしたのでお知らせします。 /lang/perl/Data-Decycle/trunk - CodeRepos::Share - Trac dankogai's p5-data-decycle at master - GitHub Dan Kogai / Data::Decycle - search.cpan.org Perlは循環参照が苦手 有名な話ですが、Perlで循環参照を作ると、プログラムが終了するまでその分のメモリーは解放されません。 perlobj - search.cpan.org use strict; use warnings; { package Dummy; sub new

    perl - Data::Decycle で悪循環を断とう! : 404 Blog Not Found
  • Data::Util

    NAME Data::Util - A selection of utilities for data and data types VERSION This document describes Data::Util version 0.67 SYNOPSIS use Data::Util qw(:validate); sub foo{ # they will die if invalid values are supplied my $sref = scalar_ref(shift); my $aref = array_ref(shift); my $href = hash_ref(shift); my $cref = code_ref(shift); my $gref = glob_ref(shift); my $rx = rx(shift); # regular expressio

    Data::Util