タグ

CPANとPerlに関するkazuph1986のブックマーク (53)

  • List::Util#pairmap|pairkeys が便利 (Re: ハッシュっぽい配列からkeysだけ取り出したい) 追記有り | おそらくはそれさえも平凡な日々

    List::Util#pairmap|pairkeys が便利 (Re: ハッシュっぽい配列からkeysだけ取り出したい) 追記有り http://hisaichi5518.hatenablog.jp/entry/2013/03/25/151942 Github::Hooks::Manager作ってるときに、HTML::Shakanに手を入れたりしてて、その流れでHTML::Shakanのオーナーになったりしてたのですが、その際に知った List::Util#pairmapが便利だった。 PSGIのSPECでも使われていたりしていることも関連しているのか、最近key valueのペアが入った配列を見かける頻度が上がってきたように思います。 で、そういうのを上手く扱う方法が無いのかなーとかみんな思っていたかとおもうのですが、灯台下暗し、List::Utilにpairmap()ってのがありまし

    List::Util#pairmap|pairkeys が便利 (Re: ハッシュっぽい配列からkeysだけ取り出したい) 追記有り | おそらくはそれさえも平凡な日々
    kazuph1986
    kazuph1986 2013/11/24
    便利。
  • CPANモジュールは依存モジュールのバージョンを固定しない方がいい | おそらくはそれさえも平凡な日々

    Perl界隈ではCarton周りのtoolchainが整ってきて「これからはsemantic versioningやー」みたいな意識が高まりそうですが、そういうルールに則ってバージョニングをするのは大いに結構だとは思うのですが、バージョン違いのモジュールを同一プロセスで共有するとかそういうことはPerlではできないのでどちらにせよ注意が必要です。 まあ、バージョン違いのモジュールを共有できたところで、バージョン違いのオブジェクトが変なところに渡って死ぬみたいな話もあったりなかったりするらしいので夢を見過ぎるのも良くないですね。 それとタイトルのとおりですが、CPANに上げるモジュールの場合はバージョンは固定したり最大バージョンを決めない方が良いでしょう。 例えば、 Super::ORM が Mouse 2.0に固定依存 Hyper::WAF が Mouse 3.0に固定依存 だったりすると

    CPANモジュールは依存モジュールのバージョンを固定しない方がいい | おそらくはそれさえも平凡な日々
  • Test::Mock::Guard Released - 日向夏特殊応援部隊

    さっき nekokak さんと xaicron さんにそそのかされて Test::Mock::Guard ってモジュールを書いてみました。 そもそも Perl には Test::MockObject と言う汎用の Mock モジュールがあるんですけど、あれこれ余計な機能がたくさんついてたり Mock 化すると多分元に戻せないと言うのがあってもっとシンプルな奴がほしいなと思って作ってみた次第です。SYSNOPSIS のコピペですけど、 use Test::More; use Test::Mock::Guard qw(mock_guard); package Some::Class; sub new { bless {} => shift } sub foo { "foo" } sub bar { 1; } package main; { ### このスコープでは Mock 化されてる my

    Test::Mock::Guard Released - 日向夏特殊応援部隊
  • Perlなんて大嫌いですし、YAPC楽しみです - アルミ缶の上にアルフォート

    Perlなんて大嫌いです。 モジュールの最後の「1;」のダサさったらないし、$@とか諸々の省略形に吐き気がするし、オブジェクト指向は完全に後付けで「bless」でまず脱落しそうになったし、クラスメソッドとインスタンスメソッドの区別もないし、アンスコ始まりをprivate methodとみなす紳士協定だし、インスタンス変数は外からいじり放題だし、$@がグローバル変数なのも罠だし、Test::Moreなどのモジュールはsub{}で頑張ってDSLっぽくしようとしているのがなんだか涙ぐましいし、ググり方次第でインターネット黎明期のしょうもないCGI記事がわんさか出てくるし、そもそもPerlのスローガン「TMTOWTDI(やり方は1つじゃない)」とか大嫌いだし(初心者は酷い書き方ができてしまうし、ベストなやり方を模索する必要があるし、それでいて他人と開発するときは全てのやり方を把握していないと読めな

    Perlなんて大嫌いですし、YAPC楽しみです - アルミ缶の上にアルフォート
  • YappoLogs: YAPC::Asia 2013 #yapcasia

    YAPC::Asia 2013 #yapcasia 今日みた夢が「blog 書かないと干すぞ!」ってがちぎれる941さんとlestrratさんがでてきたので書く事にした Yappo です。みなさん週末はいかがお過ごしでしたか?僕はカート大会いって箱根で温泉と美味しいご飯べてきました。 編発表資料 社内開発簡単化と世界で戦う開発を考える技術 明らかに会場でかくていっぱい人見に来る、裏発表の DeNA の人が Yappo に負けないクオリティにする!的な宣言してて泣きそうになったのでささやかな反撃でタイトルぱくりました。 1日目の午後一から40分の枠をもらったので、仕事向けのアプリケーション開発で考えなきゃいけない事と、雛形スクリプトを作る時に便利なKsgkの紹介をしました。基的にはコピペ脳は害でしか無いのでいかにしてコピペを排除するか、ちゃんと自分の頭で考えていくか。のような話をしまし

  • はてなのサーバ管理ツールの話 - YAPC::Asia Tokyo 2013

    はてなの自社製サーバ管理ツールの思想と設計を紹介します。 はてなでは数千台のホストを運用しており、運用を効率化するためにサーバ管理ツールを自社で開発しています。 このセッションでは、「はてなにおけるサーバ運用に求められるもの」と「パフォーマンスメトリクスの可視化」の話をしたいと思います。 実装言語はもちろんPerlです。 はてなにおけるサーバ運用に求められるもの 数千台ホストの管理 デプロイツール(Capistrano)、監視ツール(Nagios)、プロヴィショニングツール(Chef)との統合 自社データセンタ環境とクラウド環境(AWS)の透過的な管理 パフォーマンスメトリクスの可視化のしくみ MySQLNginxなどの様々なミドルウェアのメトリクスを取得するためのエージェントの実装 メッセージキュー(TheSchwartz)を用いたエージェントのタスクマネージメント RRDToolを用

  • リクエストパラメータを整形して出すPlack Middleware - Cside::Weblog

    2013-06-10 リクエストパラメータを整形して出すPlack Middleware CatalystはリクエストパラメータをこんなふうにASCII Tableに整形して出力してくれるのだけど、これが地味にデバッグに役立つので、Plack Middlewareとして切り出したものを書いてみた。https://metacpan.org/module/Plack::Middleware::DebugRequestParams 自分の作ってきたCPANモジュール、ほとんどがPrint Debugのお供みたいなやつで、知性がない感じだから何とかしたい。 Cside 2013-06-10 09:43 Write a comment Prev. entry

    kazuph1986
    kazuph1986 2013/06/27
    いいね!!!
  • Web::Queryのメソッド解説 - Cside::Weblog

    1999-11-27 Web::Queryのメソッド解説 解説する前に あんなに便利なのにネット上に情報が少ないワケ そもそもWeb::Queryは、jQueryというJavaScript用フレームワークと全く同じ使い方で使うことができる(jQueryを使い慣れた人にとっては学習コストがゼロに等しい)のがウリなものなので、「jQuery知ってれば解説はいらないっしょ?的な理由でネット上に情報が少なかったりする。まぁ、gistを探せばサンプルはあるっちゃぁあるけれど。 最新版を入れる バージョンが上がっていろいろ変更が加わったので、最新版のものを入れなおしてください。 cpanm --reinstall Web::Query さて、たとえば、こんな構造のHTMLをもったWebサイトがあったとして。(URLはhttp://localhost/) <html> <head> </head> <b

  • #cpan モジュールを書いてみた話(主にGetopt::Longについて) - After Coding

    2013-06-17 #cpan モジュールを書いてみた話(主にGetopt::Longについて) #cpan Authorになったよ / “Acme::EvaTitlenize” http://t.co/zh3Sk5Qn6a— 進撃のさいさ (@saisa6153) 2013, 6月 16Acme::EvaTitlenizeを書いた。 id:papixが送ってくれたプルリクによって僕のコードはほぼ無くなったけどね♡今回はMinilla使ったりコードレフ使ったり新しいことだらけだった。 id:kazuph1986先輩がその点をブログに書いていて分かりやすかった。EvaTitlenizeでは同じコマンドライン引数を複数回使うことを最初に考えていた。 $ evatitlenize -j 家畜の -l 安寧 -j 虚偽の -l 繁栄 家 畜 の安寧 虚 偽 の繁栄 みたいに。 そのためにG

  • http://papix.hateblo.jp/entry/2013/02/02/235800

  • quickrun.vim + Project::Libs の組み合わせが便利 - Cside::Weblog

    2012-09-02 quickrun.vim + Project::Libs の組み合わせが便利 perl vim VimPerlを書いている人なら、編集中のテストでquickrunして「Can't locate ...」が出てやる気をくじかれた経験があると思います。パス通ってないからそりゃこうなりますね。で、そういうときは、Vimを抜けてプロジェクトのトップディレクトリでproveするか、テストに use lib '../lib'; を書き足したりするわけですが、いちいちこの作業するのは面倒くさいし、筋に関係ないコードでテストを汚したくない。自動にパスを通すのを、Vim側でやってほしい。ではどうするか。結論から言うと、.vimrc にこの設定を書き足せば、自動でパスが通った状態でquickrunできる。(cpanm Project::Libsしてね) let g:quickrun_

    kazuph1986
    kazuph1986 2013/06/08
    quickrun実行時にわざわざlibとかにパスを通してくれるようにできる。
  • http://papix.hateblo.jp/entry/2013/05/23/215529

  • DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記

    既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる $ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","password"]' やりかた。 まず、クラスを作りたいディレクトリ付近に移動 さっきのコマンドの dump_to_dir: の箇所にクラスツリーの起点となるディレクトリを指定 make_schema_at の第一引数に生成する Schema のパッケージ名を指定 外部キー制約とかを考慮して has_many とか belongs_to とかを自動で設定して欲しい場合

    DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記
  • scan-prereqs-cpanfile - Scan prerequisite modules from the code and generate cpanfile - tokuhirom's blog

    https://metacpan.org/module/TOKUHIROM/App-scan_prereqs_cpanfile-0.02/script/scan-prereqs-cpanfile This script scans prerequisite modules from your code, and generate CPANfile. You can also list missing prerequisite modules. 日語でもうしあげますと、 $ scan-prereqs-cpanfileと実行すると、カレントディレクトリから情報をかきあつめまして、cpanfile を生成して表示します。 $ scan-prereqs-cpanfile --diff=META.jsonまたは $ scan-prereqs-cpanfile --diff=cpanfileとすると

  • リソースモニタリングツール「CloudForecast」入門 - As a Futurist...

    kazeburo さんが開発をされているサーバリソースの可視化ツール「CloudForecast」ですが、個人的に使ってみていてとても使いやすいなと思っています。もっと使ってくれる人が増えるといいなと思い、自重せずに入門エントリを書いてみました。 CloudForecast って何? そもそも何なの?という話ですが、CloudForecast とはリソースのグラフ作成ツールとして有名な「RRDTool」の薄いラッパーとして作られています。記述言語は Perl ですので、Perl と RRDTool の使い方が大体分かっている人にとっては導入さえしてしまえばかなりかゆいところまで手が届く=カスタマイズが簡単かつ自由自在なツールだと思います。とりあえずのイントロとしては kazeburo さんの YAPC::Asia 2010 でのこちらのスライドをご覧頂ければと思います。 RRDTool っ

    リソースモニタリングツール「CloudForecast」入門 - As a Futurist...
  • Millaで呼吸をするようにgithubでperl モジュールを開発しcpanにアップする - Debuginfo

    Module::Setupを使ってモジュール書くぞ、と思ってた矢先に CPAN モジュールの開発についての最近の風潮という@tokuhirom氏のブログのエントリを読みました^^;; minillaでもよかったのですが、全体像がわからなかったので今回は@miyagawaさんの秀逸なscreencastを参考にmillaを使ってみることにしました。 Milla, a Dist::Zilla profile that doesn’t suck (screencast) 基的にscreencastそのままやればいいのです。 依存関係が沢山あって時間がかかるのでscreencastを見てる裏でcpanm Dist::Millaを走らせましょう $ cpanm Dist::Milla githubにpushするためにApp::phを使います。(Rubyistの人はhubも使えるようです。) $ c

    Millaで呼吸をするようにgithubでperl モジュールを開発しcpanにアップする - Debuginfo
  • 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

  • 最近使ってるモジュールの話 - Hokkaido.pm#9

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

  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

  • Perlで日付・時間を操作 - DateTime モジュールの使い方 (iandeth.)

    Perlには、日時の加・減算を扱うモジュールが標準でついてきません。僕の仕事場ではずっと、同僚が作ったオリジナルモジュールを皆で使いまわしていたのですが、今になって、世間的 (CPAN) にはどんなものがあるのか気になって調べてみました。※参考になったのは miyagawa 氏のメールマガジンの過去記事と、perl.com の The Many Dates and Times of Perl なるエントリでした。 今回は数ある日付関連モジュールの中から、Dave Rolsky氏の DateTime モジュールについて、その基的な使い方について簡単にまとめたので共有してみます。 同氏は上記 perl.com 記事の執筆者であり、この前の YAPC::Asia で DateTime project について講演してくれていた人です。気合の入ったモジュールを作ってくれた事に感謝。 目次 基