タグ

perlに関するsbg3のブックマーク (320)

  • 続・技術的負債の把握と改善を促すために - mixi engineer blog

    こんにちは, 先日Kansai.pmで発表させて頂いたgoccyこと五嶋@たんぽぽグループです. 今回は, 前回紹介した技術的負債の把握と改善を促すためにの続編として, 僕が作ったPerl5コードのコピペ検出器について紹介させて頂きます. はじめに 今やPerl, Ruby等さまざまな言語で, 便利なライブラリ群やフレームワークを利用できる時代になりました. これらを使うことでソフトウェアの開発コストは格段に下がり, より素早く開発することができるようになっています. しかし, 当初予定されていた機能を実装して, 「よしできたから終わり!」というわけにもいきません. 何か物を生み出せば, 必ずそれを保守・運用するコストが発生します. 開発することが便利になった今, 開発物を保守・運用することを支援するツールも求められています. ですが, 保守や運用, とりわけ保守に関して支援するツールはそ

    続・技術的負債の把握と改善を促すために - mixi engineer blog
  • 安定的な Perl アプリケーション運用のための perlbrew 運用テクニック - tokuhirom's blog

    前提知識Perl5 は minor version 間ではバイナリ互換性が保証されているPerl5 の minor update では、bug fix しか基的に行われないPerl5 Porters の保守的さ度合いは信用できるperlbrew でセットアップするときに気をつけることインストール名をデフォルトの perl-5.16.3 などとせず、perl-5.16 と minor version を含めないようにする。 例: perlbrew install perl-5.16.2 --as perl-5.16セキュリティフィックスがでた場合の処理chromaticの記事で知ったのだが、perlbrew には upgrade-perl というコマンドがあり、最新のバージョン(マイナーアップデートのみ)にアップグレードすることが簡単にできる。 perlbrew upgrade-perl

  • plagger - otsune FreeStyleWiki

    Plagger 注意 このページは単なるインストール手順のメモです。Plaggerは開発が活発なので、ここの情報は古くなっていることが多いです。 Plaggerについての正確な説明は Plagger公式サイト Shibuya.Plaggers Plagger Plugin はてなブックマーク - タグ plagger などを参照してください。 概要を知りたい場合は公式サイトのPresentationsにある「YAPC::Asia 2006 Tokyo」「Plagger Conference 1 Keynote」のスライドを参照するとよいでしょう。代表的なデモとしてElementary, ... Googleで「はらへった」と検索するとピザが届くようにするまでがあります。 解説 Plaggerは、mixiやBloglinesやWebサイトなど様々なところからデータを取って来て、いろいろなフィ

  • Plagger インストールメモ - yoya's diary

    久々に利用しようと思って Wikipedia から公式(?)サイトに辿ったら、出会い系になってるし。ML のアーカイブ一覧を見ると Fuck とかの文字が並んでるし、なんというか。。なんて言うんですかね。 ちょっと精神削られました。(普段奇麗な世界に住んでるもので) 環境 Debian 6 (squeeze) 64bit 環境 Sakura VPS install module yoya@sakura:~/svn/plagger$ perl Makefile.PL Can't locate inc/Module/Install.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib

    Plagger インストールメモ - yoya's diary
  • perl - 最速のUTF-8処理法 : 404 Blog Not Found

    2013年03月04日14:45 カテゴリTipsLightweight Languages perl - 最速のUTF-8処理法 Perl Cookbook (English, Kindle Ed.) Christiansen / Torkington [邦訳: Perlクックブック] というわけで解説。 2013/03/04:Unicode::UTF8 がガチ爆速すぎる - bayashi.net encode より decode のが差が大きい感じ。encode だけだと、文字列長くなると Encode の方が速いっぽい。 まずは改めて検証してみましょう。 https://gist.github.com/dankogai/5079930 確かにその通りになっています。Unicode::UTF8はEncodeはおろかPerl組み込みのutf8::decodeより高速なのか(文字列をコピ

    perl - 最速のUTF-8処理法 : 404 Blog Not Found
  • おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史

    最近同僚が次々とCPAN Authorになってて良い流れだなーとか思っています。 ただ、CPANへのモジュールの上げ方がわからないとか、M::Iを使えばいいのか M::Bを使えばいいのか、それらがそもそも何やってるのか分からないという話も 聞くので、僕自身もその辺の知識を整理してアップデートしました。 とりあえず、今はModule::Buildを使っておけば良いんじゃないかと 思っていますが、そこに至る歴史的経緯をまとめてみます。 大体、以下に書いてあることに加えて、最近の動きを書いています。 Module::Build:MakeMakerの後継者を目指して PerlでCPAN形式のモジュールを配布する場合は、Makefile.PLなりBuild.PLなりを モジュール作者が用意して、それがインストールに必要なファイル類を自動生成 するという流れになっています。 既存の雛形を使うと色々ファ

    sbg3
    sbg3 2013/02/20
  • Log::Pony::Emotional もつくってみた - tokuhirom's blog

    ref. http://d.hatena.ne.jp/hirose31/20130215/1360908384 継承でかけるので楽。 package Log::Pony::Emotional; use parent qw(Log::Pony); our $EMOTION = { DEBUG => '(☼ Д ☼)', INFO => 'm9(^Д^)', WARN => '(´・ω・`)', CRITICAL => '(; Д ) ゜ ゜', }; sub process { my ( $self, $level, $message ) = @_; my $time = $self->time(); my $trace = $self->trace_info(); if ( $self->color ) { $message = $self->colorize( $level, $mess

  • Perl のウェブアプリケーションのディレクトリ構成をわかりやすく説明するよ - tokuhirom's blog

    ディレクターの人にわかりやすいように、Amon2 をつかった一般的なプログラムのディレクトリ構成をわかりやすく説明していくよ。

  • MooX::late をためす - tokuhirom's blog

    MooX::late は Any::Moose や Moose なモジュールを Moo に移植するためのつなぎのモジュールとなってくれる存在です。 Moo では Moose の、なんか気をきかせてくれてるっぽいけど実装を複雑にしてしまう機能や、なんかつかってみたら微妙だったんじゃね? とみんなが薄々おもっているあんな機能やらが削られているので、そのへんのケアをしてくれるのが MooX::late となります。 isa => $string をつかえるようにするMoose では has foo => (isa => 'Str');などと書けますが、この機能は Moo ではつかえません。 文字列でかけるのが便利なようですが、この文字列の部分のネームスペースがグローバルなのがちょっと難。 あと、この部分の実装は結構複雑になりがちです。このへんの面倒を MooX::late はみてくれます。 ただ

  • Proclet で tail -F をつかうと便利 - tokuhirom's blog

    最近は Proclet で local の開発環境を構築している(そして staging で daemontools で確認する)。 Proclet で memcached, STF, plackup, nginx などを起動してしまうというワケ。 で、ここで問題となるのが、File::RotateLogs をつかってログをとっている場合、ログはファイルにかきこまれるってこと!(あたりまえ) まあ nginx のログとかもそうだけどね。 そんなときは、素直に Proclet を起動しているスクリプトの中で、 run('app-log', 'tail -F /var/log/app.log');とかすればいいというワケ! これで File::RotateLogs もこわくないぞ!!

    sbg3
    sbg3 2013/02/07
  • plenvを使ってみた. - Masteries

    2013-01-21 plenvを使ってみた. @tokuhiromさんがplenvという, Perl 5のインストール管理ツールを開発されたそうです. ブログ記事やREADMEをまとめてみると, plenvの特徴は... Rubyのrbenvから影響を受けている. perlbrewと違って, プロダクトごとにperlのバージョンを指定することができる. とても高速で, インストールも簡単. perlbrewのような機能を持つが, 完全な上位互換ではない. ...という感じっぽい. こういう時はグダグダ言わずに入れて試してみるに限る, というわけでさっそく導入してみましょうー! インストール plenvを導入する為にはCPAN/brew/gitを使う方法がありますが, 今回はgitを使って入れてみます. ただ特徴にも書いてあるとおり, どの方法を使うにせよインストールはとても簡単です

  • rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ

    rbenvを使ってみる - すぎゃーんメモの続き。 現時点でのrbenvのバージョンは0.2.1。 rbenvを使っていると.rbenv-versionファイルの有無でrubyコマンド打ったときに実行されるrubyが違うものになる、というのがちょっと新鮮で、これはどういう仕組みで動いているのだろう?と思って少し調べてみた。 上記記事のようにrbenvの設定をした環境では、 $ which ruby /Users/sugyan/.rbenv/shims/rubyとなり、${RBENV_ROOT}/shims以下のrubyを指すことになる。ここへのPATHは$HOME/.rbenv/libexec/rbenv-initに echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"' と書かれているので、eval "$(rbenv init -)"してあれ

    rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ
  • 2013年 のPerl5 の OOP について考える - tokuhirom's blog

    Moo今年の命? 新しくつくるならこれが無難な気がします。速度的にも Mouse とあまりかわらない。 若干依存がおおい気もするけど、インストールベースがふえれば気にならなくなるかな、ともおもいます。 Class::XSAccessor とかつかってるんで、速度的にもホットスポットは速いのがよい。 なお発音はムーだとおもう。 (http://www.forvo.com/word/moo/) Mouse完成している感じがする。得にわるい点もないが、あえていうと xs 部分がおおいので、gfx 以外がメンテできないかんじがするのが欠点か。 Xslate をつかっている場合は自動的に xslate が mouse つかってるので、自然と Mouse がロードされるので、そういった意味では Mouse つかってもいいかなとおもっている。

  • Email::Sender will switch to Moo? - tokuhirom's blog

    Email::Sender の TRIAL version が cpan にあがっていますが、なんと Moo に移行しています。Moose をつかっているからという理由で Email::Send にこだわったり、Mail::Krohn とかいう alternative をつくったりする時代の終焉がちかそうです。 Mail::Krohn はつくったはいいけどもう will be deprecated になる気がします。 @rjbs++

    sbg3
    sbg3 2013/01/08
  • Perl の最新バージョンを表示させる - tokuhirom's blog

    以下のようなコードで可能。 metacpan++ といわざるをえない。 <!doctype html> <html> <body> <script>function write_version(dat) { document.write(dat.version); }</script> <script src="http://api.metacpan.org/v0/release/perl?callback=write_version"></script> </body> </html>↓実際の挙動。

  • Shipped DBD::PassThrough 0.02 - tokuhirom's blog

    DBD::PassThrough という module を shipped です。 DBIx::* なモジュールの中には $dbh を引数としてうけとらないものが多いのですが、これを無理矢理うけとれるようにするという画期的なモジュールです。 my $dbh = DBI->connect('dbi:PassThrough:', '', '', { pass_through_source => $orig_dbh, });という風に、$orig_dbh をわたすと、$dbh への操作がすべて $orig_dbh にデリゲートされます。 この機構により、DBIx::Handler のような、$dbh をうけとってくれない DBIx::* モジュールを利用する場合にも、無理矢理ねじこむことが可能となります。 使用例は以下のとおり。 my $handler = DBIx::Handler->new(

    sbg3
    sbg3 2012/12/12
  • #10 2012年に作ったものを振り返りつつProcletマジ便利 - KAYAC Engineers' Blog

    2012年も残すところあと20日ほどとなりましたが皆様いかがお過ごしでしょうか。@fujiwara です。 このエントリは tech.kayac.com Advent Calendar 2012 10日目の記事です。 テーマが「私の中のマイイノベーション 2012」ということで、まずこの1年に作ったものを自分の blog エントリから振り返ってみますと… Perl から Fluentd にログ出力 - Fluent::Logger リリース 今年一番話題になったミドルウェアといえば fluentd でしょうか。その fluentd に Perl からログを出力するためのモジュールです Parallel::Benchmark というモジュールを書きました 並列にプロセスを起動して負荷を掛けるベンチマークを簡単に作るためのフレームワークです。弊社の主にソーシャルゲーム案件で、リリース前の負荷テ

    #10 2012年に作ったものを振り返りつつProcletマジ便利 - KAYAC Engineers' Blog
  • #6「Shardingマジ怖い」tech.kayac.com Advent Calendar 2012 - KAYAC Engineers' Blog

    最近子供が産まれたaraga(@ken39arg)です。 このエントリはtech.kayac.com Advent Calendar 2012 6日目の記事です。 テーマは「私の中のマイイノベーション 2012」 2日目の記事を見て、条件反射的に僕もおっぱいについての記事を書こうと思いましたが、 産まれた子供が「お父さんはいつもおっぱいのことばっかり考えていて気持ち悪い」と思ってしまったらと思うと、こんな危険な橋を渡るわけには行かず、 実際いつもおっぱいのことばかり考えているんですけど、おっぱいのことなんて全然興味ないです。 息子よ、父さんはいつだってまじめに働いているよ! というわけで今年作った"まじめな"ツールのMySQL::Sharding::Clientを自画自賛したいと思います。 MySQL::Sharding::Client MySQL::Sharding::Clientは一言

    #6「Shardingマジ怖い」tech.kayac.com Advent Calendar 2012 - KAYAC Engineers' Blog
  • EBook::EPUB is awesome. - tokuhirom's blog

    I used pandoc first to generate epub from markdown text. But I can't generate the epub has satisficated format. Then, I try to generate epub by Perl5. There is EBook::EPUB module on CPAN. EBook::EPUB is great module. It can generate good epub. Here is a source code to generate perl-testing-handbook.epub. #!/usr/bin/env perl use strict; use warnings; use utf8; use 5.010000; use autodie; use EBook::

  • Test::Pretty supports prove! - tokuhirom's blog

    Test::Pretty now supports prove command! You can use it as following command line: % prove -PPretty t/Output is here: Yes. It's not modified. But you adds '-v' option to prove, then you get cool output. % prove -PPretty -v t/ If you are testing only one file, output is more optimized: % prove -PPretty t/02_op.tResult code is here: That's all. Enjoy testing!

    sbg3
    sbg3 2012/11/08