タグ

ブックマーク / ks0608.hatenablog.com (5)

  • cpan module を並列でインストールする - skaji's blog

    先日行われた Gotanda.pm #5 でも発表させていただいたが、まさしく experimental な cpan client cpm を作った。 github.com Why new? cpan module の install にはいつも cpanm を使っており そのシンプルさと安定性には感心するばかりである。 が、cpanmにも不満がないわけではない。 perlである程度のことをやろうとすればすぐにcpan moduleの依存は 100を超える。 そういった場合、cpanmは直列でcpan moduleをインストールしていくため かなりの時間がかかる。 これをなんとかしたい。 Features of cpm cpm は如何に速くcpan module をインストールするか、しか考えていない。速くするために以下のようにしている。 cpanm を並列に使って cpan modul

    cpan module を並列でインストールする - skaji's blog
    shiba_yu36
    shiba_yu36 2015/07/09
    かっこいい
  • Carmel を読む - skaji's blog

    5/20 に 吉祥寺.pmミニ Carton/Carmelのコードリーディング が行われるので事前にCarmelを読んどく。 結論 読むなら Carmel::Setup/Runtime あたり! Carmel の基的な使い方 ほとんど Carton と同じにように使える。つまり cpanfile に依存を書いて、carmel install でインストールし、carmel exec で実行。 $ echo "requires 'Plack';" > cpanfile $ carmel install ---> Installing new dependencies: Plack ... ---> Complete! 1 cpanfile dependencies. 20 modules installed. $ carmel exec perl -V ... @INC: Carmel::

    Carmel を読む - skaji's blog
    shiba_yu36
    shiba_yu36 2015/05/29
    へー知らなかった
  • perl で複数のプロセスからログを吐くときは :unix layer で開いてもいい - skaji's blog

    File::RotateLogs が大変便利でよく使っているのだが、これはファイルへ書き込むときに print を呼んでいる。 一方 にひりずむ::しんぷる - perl で復数のプロセスからログを吐くときは syswrite または flock すべし によると長いログを吐くときは syswrite にしないと混ざるとある。 よって File::RotateLogs も実は混ざることがあるのかなと思い、複数プロセスから長いログを吐きまくってみたが一向に混ざらなかった。 いろいろ調べた結果、open layer に最も低級な layer である :unix を指定すれば print 時も 1 つの write(2) になるようだった。 > cat test.pl open my $fh, ">:unix", "test.txt"; print $fh "a" x (1024 * 100);

    perl で複数のプロセスからログを吐くときは :unix layer で開いてもいい - skaji's blog
  • Carmel 使ってみる - skaji's blog

    https://github.com/miyagawa/Carmel を使ってみる! 注:miyagawa さんに教えていただき cpanm インストール方法、例ともに修正しました https://gist.github.com/shoichikaji/5a951ab796ed0e596c47/revisions まず copy-build-artifacts ブランチの cpanm をインストール $ cpanm File::Copy::Recursive # 依存してるのではじめに入れておく $ cpanm git://github.com/miyagawa/cpanminus.git@copy-build-artifacts Carmel をインストール $ cpanm git://github.com/miyagawa/Carmel.git Plack のバージョン1.0033,

    Carmel 使ってみる - skaji's blog
  • App::RemoteCommand リリース - skaji's blog

    App::RemoteCommand というのを cpan にあげた。 cpan: https://metacpan.org/release/App-RemoteCommand github: https://github.com/shoichikaji/App-RemoteCommand インストール方法 > cpanm App::RemoteCommand > rcommand -v App::RemoteCommand 0.01 なにするもの? ssh で複数ホストにはいって並列にコマンドを実行するスクリプト。 なんで作ったか fabric や chef を使えば複数ホストに並列にコマンドを実行できる。 が、専用のシンタックスで書かなくちゃいけないしイマイチカジュアルじゃない。 ssh, xargs を組み合わせて > cat host-list.txt | xargs -P5 -L

    App::RemoteCommand リリース - skaji's blog
    shiba_yu36
    shiba_yu36 2015/01/16
    便利そう
  • 1