タグ

perlに関するstealthinuのブックマーク (145)

  • Docker Hub Container Image Library | App Containerization

    stealthinu
    stealthinu 2013/03/01
    perlでオブジェクトメンバーへの検査も行うuse fieldsを有効に使うための方法について。perlでMooseとかを使わない時のよりベターなOOP手法。
  • 第17回 Webアプリケーションのパフォーマンス改善(1) | gihyo.jp

    大きな効果を上げるために チューニンガソン#1~#3の改善率を見ると、アプリケーションや全体のアーキテクチャに手を入れないで改善できるのは最大でも10倍以下です。もちろん数倍速度が違えばサーバ台数を大きく減らせるので有意義なのは間違いないのですが、ISUCONやチューニンガソン#4のような飛躍的な高速化は望めないことがわかります。 つまりチューニングでは、単にパラメータ設定を変更するのみではなく、ボトルネックになっているコードやクエリ、アーキテクチャに的確に手を入れていくことで大きな効果を上げることができるのです。 ボトルネックの発見と解消が大事 システム全体の処理時間についてパレートの法則(経験則)を適用すると、「⁠全体の処理時間の80%は20%の部分で発生している」ということになります。実際にシステム全体で一番ボトルネックになっている部分を解消しないことには、ほかの部分に手を入れても大

    第17回 Webアプリケーションのパフォーマンス改善(1) | gihyo.jp
    stealthinu
    stealthinu 2013/02/19
    パフォーマンスチューニングに使うツールや手法
  • Perlの謎(その10)サブルーチンの呼び出し方 - 旧燈明日記

    予告したサブルーチンの呼び出し方の謎です。 しかし、予告した割りには、上手くまとまらなかったのですが・・・以下のようになりました。 ◆ イントロ まず、Perlでのサブルーチンは関数と等価です。 そして、関数の呼び出し方には、『&』のファニー文字を付けたり、付けなかったり・・・。 また、関数名の後に『()』小カッコを付けたり、付けなかったり・・・。 またまた、『&』も『()』も付けなく、ベアワードになったりと・・・。 これらは、『組み込み関数やインポートしたモジュール関数』と『ユーザ定義関数』で意味が違ってきます。 なので、各々について対比して解説をしてみました。 尚、以下は、あくまでも私のコーディング方針で、強制的なものではありません。 ◆ 『&』ファニー文字について 組み込み関数やインポートしたモジュール関数は、『&』ファニー文字は付けない。 組み込み関数等に『&』を付けるとエラーにな

    Perlの謎(その10)サブルーチンの呼び出し方 - 旧燈明日記
    stealthinu
    stealthinu 2013/02/18
    そういや昔は関数呼び出しで必ず「&」付けるようにしてたな。いつから付けないのが普通になったんだろう?あと自分はなるべく()でくくるようにしてるけどこれって最近の書き方ではない感じ?
  • 文字化け - (゚∀゚)o彡 sasata299's blog

    2009年02月22日22:31 Perl perlの波ダッシュの文字コード変換のまとめ perlの文字コード周りはなかなかカオスです。外部エンコードとか、perl内部での文字コードとか、UTF8フラグとか。UTF8フラグ?なにそれ?な人は、こことかここを見てみると良いかも。(・∀・) 基的には外部から入ってきた時点でdecodeして、出力時にencodeしてやれば全て解決するんですが、「〜(波ダッシュ)」と「−(全角マイナス)」だけは特別です。注意が必要なのはこの2パターン。 ① utf8⇔shift_jis ② utf8⇔euc-jp ①については以前、perl utf8→sjisで文字化けという記事で紹介しましたが、encode時に、'sjis'では無くて、'cp932'を指定すればOK。※「〜」とか「−」はsjisには含まれていない文字なのが原因。 今回紹介したいのは②の場合です

    stealthinu
    stealthinu 2013/02/05
    波ダッシュ問題、perlでの解決方法。utf-8の~とーをtrで問題ないコードの方に変換しておく。その後好きな文字コードにencodeする。
  • Unicode::Japanese::JA

    NAME Unicode::Japanese::JA - 日語文字コード変換 概要 use Unicode::Japanese; use Unicode::Japanese qw(unijp); # convert utf8 -> sjis print Unicode::Japanese->new($str)->sjis; print unijp($str)->sjis; # same as above. # convert sjis -> utf8 print Unicode::Japanese->new($str,'sjis')->get; # convert sjis (imode_EMOJI) -> utf8 print Unicode::Japanese->new($str,'sjis-imode')->get; # convert zenkaku (utf8) -> hank

    Unicode::Japanese::JA
    stealthinu
    stealthinu 2013/01/30
    perlで半角カナ全角カナ変換するのにはUnicode::Japanese使う
  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

    開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽

    開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
    stealthinu
    stealthinu 2013/01/29
    Plackを使ってポータブルな環境でテスト可能な環境を作ってからリファクタリングしてく。
  • perlfilter - Source Filters - Perldoc Browser

    CONTENTS NAME DESCRIPTION CONCEPTS USING FILTERS WRITING A SOURCE FILTER WRITING A SOURCE FILTER IN C CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE WRITING A SOURCE FILTER IN PERL USING CONTEXT: THE DEBUG FILTER CONCLUSION LIMITATIONS THINGS TO LOOK OUT FOR REQUIREMENTS AUTHOR Copyrights #NAME perlfilter - Source Filters #DESCRIPTION This article is about a little-known feature of Perl called

    stealthinu
    stealthinu 2013/01/11
    perlfilterという機能を使うと簡単な書式でソースにフィルタ掛けてからパーサに渡してくれる!こんなん知らんかった。
  • Encodeでラクラク日本語処理 - JPerl Advent Calendar 2009

    こんにちは!ラブプラスとときメモ4の狭間で揺れ動いているxaicronです!! 今日は日でプログラムを書いていたら避けては通れない気がする、Encodeの話をしようと思います! はじめに まず、この記事を読む前に、Perlのバージョンの確認をしてください。以下のようにやればバージョンが表示されます。 % perl -v ここで、5.8.1より下の数字ができてきた方は、Perlのバージョンアップをしてください。5.8.1より下のバージョンでは、Perlの内部文字コードが安定していないので、いい感じになりません。できれば5.8.8以上のバージョンを使いましょう。 それから、文字コードってなによって人も適当にWikiとかで調べてから読んだ方がいいと思います!! Encode.pm Encodeは昔のjcode.plやJcode.pmに代わる、現在の文字コード処理のスタンダードModuleです。

    stealthinu
    stealthinu 2012/12/27
    perlの文字コードの扱いとEncodeの使い方についてもろもろ。内部では flagged utf8 という形で扱う。そのために decode する。
  • tokuhirom's blog.

    stealthinu
    stealthinu 2012/12/26
    LWP使って一旦decoded_contentしてから日本語の文字列を比較してテストする例 Test::WWW::Mechanize::CGIのcontent_containsでの日本語テストが上手く通らなかったので真似してみた。
  • Selenium WebDriver を使った JavaScript 関連のテスト

    こんにちはこんにちは! エンジニア川端です。 春ですね。花見ですね。フェンリルでも、大阪城公園に花見に行ってきました。 花は桜木、男は岩鬼。美しい桜を見てリフレッシュです。 「Sleipnir 3 for Windows」を始めとする各プロダクトの開発者の面白い一面なども見る事ができ、楽しゅうございました。 花見に行くためには定時ダッシュしたいわけですが、そんな時に限ってバグを発見したり、テスト用のチェックシートが積み上がっていたりするものです。 繰り返し繰り返し行うテスト(レグレッション・テスト)は、できるだけ人手をかけずに行い、とっとと花見に 効率的な開発を行いたいもの。開発者のみなさんは色々工夫をされていることと思います。 私はラクダスキーなので、大体のものは Test::More とかでやってしまいますが、最近はちょっと「Selenium」も触ったりしてます。 「Selenium」

    Selenium WebDriver を使った JavaScript 関連のテスト
    stealthinu
    stealthinu 2012/12/20
    selenium webdriverをperlから使うための例。本体がperlで書かれてるからテストもperlで書きたいのでありがたい。
  • Exporter - Implements default import method for modules - Perldoc Browser

    CONTENTS NAME SYNOPSIS DESCRIPTION How to Export Selecting What to Export How to Import Advanced Features Specialised Import Lists Exporting Without Using Exporter's import Method Exporting Without Inheriting from Exporter Module Version Checking Managing Unknown Symbols Tag Handling Utility Functions Generating Combined Tags AUTOLOADed Constants Good Practices Declaring @EXPORT_OK and Friends Pla

    stealthinu
    stealthinu 2012/12/13
    perlでパッケージ名指定せずに使えるようにするためのuse Exporter 'import'の使い方。
  • Test::WWW::Mechanize::CGI

    NAME Test::WWW::Mechanize::CGI - Test CGI applications with Test::WWW::Mechanize SYNOPSIS use Test::More tests => 3; use CGI; use Test::WWW::Mechanize::CGI; my $mech = Test::WWW::Mechanize::CGI->new; $mech->cgi( sub { my $q = CGI->new; print $q->header, $q->start_html('Hello World'), $q->h1('Hello World'), $q->end_html; }); $mech->get_ok('http://localhost/'); $mech->title_is('Hello World'); $mech-

    Test::WWW::Mechanize::CGI
    stealthinu
    stealthinu 2012/12/13
    cgiをわざわざhttpd立てずにエミュレートして手軽にテストできる。
  • あらゆるメモ Perl5.12.xで生じるjcode.plの「defined(%hash) is deprecated」エラー

    CGIのエラーで defined(%hash) is deprecated at jcode.pl line 684. (Maybe you should just omit the defined()?) defined(%hash) is deprecated at jcode.pl line 693. (Maybe you should just omit the defined()?) というのが出てしまう。 原因はPerlのバージョンアップ?5.10までくらいなら問題ない。らしい。 1.Perlのバージョンダウン 2.エラーのあるdefined部分の削除 のいずれかで解決するっぽい?? 参考 perlのバージョンを5.10から5.12に上げたら、jcodeのエラーが出るようになった。 CGI全体でエラー(コメント欄に回答?がある) で、jcode.plからエラーのあったdefin

    stealthinu
    stealthinu 2012/12/13
    5.12.xだとjcode.plでエラーが出る件の対応方法。該当行でハッシュをdefinedで見てるのをやめるようjcode.plを修正する必要がある。出来ればEncode使うように修正するのが一番良いと思うが。
  • Perl の Unicode 対応

    UTF-8 フラグ? 自分がわかりにくかったところとか、重要そうな点をまとめておきます。 まず UTF-8 フラグについて。UTF-8 フラグという名前だからややこしいんだけれども、結局のところ、Perl の内部でマルチバイト文字を 1 文字として扱える状態というのが UTF-8 フラグがついた状態です。そしてそれはあくまで Perl の内部で使うためのもので、そのままの状態で外部へ出力できるわけではありません。 UTF-8 フラグがついた文字列というのは、UTF-8 だとかそういうのとは全く別の文字コード体系、だと考えればいいと思います。(それはそれで正確ではないかも知れませんが。。ASCII は UTF-8 と同じようですし。) さて、ここまできて、取るべき選択肢は 2 つあります。まず、1 つめ。マルチバイト文字はこれまでどおりバイトコードとして扱う。2 つめは、Unicode に対

    stealthinu
    stealthinu 2012/12/12
    perlでUnicode使う場合にSTDOUTなどの出力エンコードを指定する方法
  • 図解: Perl と Unicode 文字列 - daily dayflower

    id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202

    図解: Perl と Unicode 文字列 - daily dayflower
    stealthinu
    stealthinu 2012/12/12
    perlでUnicode利用する場合に気をつける点
  • Test::Moreでテスト事始め - JPerl Advent Calendar 2009

    はじめまして。 最近Perlを始めたmyfinderです。 ほかの方が書いたCPANモジュールを紹介したりそれらを使ったTipsを書くCasual Trackということで、今回はテストに関連するモジュールについて書きます。 プログラムの「テスト」 テストを書くというのはデンタルフロスを使うようなもので、誰もが良いことだといいつつ、実際には軽視されがちだ。 なんて言われることもありますが、実際テストがないとプログラムの改修とか引き継ぎとかが非常に大変になりがちです。 また、CPANにアップされているモジュールの中には、モジュール体よりもテストコードの量の方が多いものも多々あります。 なのでプログラムの質を保証したり、内容を的確に伝達するにはテストが欠かせないものであることは間違いないと思います。 早速使ってみる 例えば消費税の計算をしてくれるConsumptionTax::JPというモジュ

    stealthinu
    stealthinu 2012/12/07
    Test::Moreの簡単な使い方まとめ
  • Test-Pretty/README.pod at master · tokuhirom/Test-Pretty · GitHub

    stealthinu
    stealthinu 2012/12/07
    Test::Prettyって… プリキュア5からきてんのかよ orz Test::Pretty is a prettifier for Test::More だそうな。
  • Tora! Tora! Tora! : Test::Pretty の歴史

    October 25, 201208:22 カテゴリ Test::Pretty歴史 Test::More に subtest 機能がはいったのが 0.94 で、0.96 あたりから done_testing が不要になって、0.98 で $? の扱いがなおった、なんかそういうかんじの歴史がある(つまり現状は 0.98 に依存しないとまともにはつかえない)。 で、Test::More の subtest は TAP を拡張する形で実装されているわけだけど、まあみづらい。得に、subtest の結果が main test の方にもフィードバックされるという形式なんで、それがまあきつい。 そこで、対策として Test::Flatten というのができたりしている。 http://blog.livedoor.jp/xaicron/archives/52299545.html ここまではみ

    stealthinu
    stealthinu 2012/12/07
    Test::PrettyはTest::Moreをnodeのmochaっぽく読みやすくしたものって感じらしい。今度やるperlのプロジェクトでこれテストに使ってみたい。
  • CPAN::shellよ、さようなら。そして新たなPerlライブラリインストーラー·cpanminus MOONGIFT

    cpanminusはCPAN::shellに変わるPerlのライブラリ管理システム。 cpanminusはPerl製のオープンソース・ソフトウェア。MOONGIFTではスクリプト言語の中では圧倒的にPerl製のソフトウェアを紹介することが少なかった。要因の一つにとにかくCPANを使ったインストールが面倒くさいというのがあった。 どんどんインストールされていく 起動しようとしてエラー、CPANでインストールして再実行、またエラー…そして最後の最後でCPANモジュールが依存できない。そんなことを繰り返しているとストレスで自然と避けてしまうというものだ。だが今後は違う、cpanminusを使えば良いのだ。 cpanminusはCPAN::shellに変わるCPANライブラリ管理システムだ。CPAN::shellの欠点として、依存するモジュールがある時に都度y(とは限らないが)で答えないといけない

    CPAN::shellよ、さようなら。そして新たなPerlライブラリインストーラー·cpanminus MOONGIFT
    stealthinu
    stealthinu 2012/12/06
    cpanminusってapt的なといえばいいのかbrew的といえばいいのか、そういうcpanのパッケージマネージャなのか。移行しよう。
  • なんてこった…CPANモジュールをnode.jsで動かしてしまうライブラリ「node-perl」 - tokuhirom's blog

    なんてこった…CPANモジュールをnode.jsで動かしてしまうライブラリ「node-perl」 https://github.com/tokuhirom/node-perl/ ここ最近、プログラミング言語同士の壁が徐々に破壊されている気がします。あるプログラミング言語上で別なプログラミング言語を動くようにしたり、置き換えてしまったりするような類です。今回はその一つ、CPAN moduleをnode.js上で動かすという、かなり無茶な気がしなくもない、そんなソフトウェアnode-perlを紹介します。 var Perl = require('../index.js').Perl; var perl = new Perl(); perl.use('LWP::UserAgent'); var ua = perl.getClass('LWP::UserAgent').new(); var res

    stealthinu
    stealthinu 2012/08/28
    nodeから「CPANモジュール」を使えてしまうというライブラリ。ただしブロックするよとのこと。でもすげええええ。本格的に作る前にプロトタイプ作りたい時なんかにも良いのでは?