タグ

ブックマーク / r9.hateblo.jp (9)

  • 開発時に出会いたくないパターン - Perl日記

    悩んだりうまくいかなかったり解決したり。だらだら書いた。 手作業症候群 とにかくなんでもかんでも手で確認・作業する必要があると思い込んでしまう病。 そりゃiOSアプリとかAndroidアプリとか最終的には実機確認は必須だけれども。 その前にやれることは多々あるはず。リグレとか。 あと「デプロイ職人」も不要にするべき。わかってる。 自動化できない要素を突っ込んでる方が悪いのだ。なんとかする。 masterブランチぶっこみ志向 masterブランチに直接コミットを重ねていくことにより開発速度をアップさせることができる。 ただし孤独な背水の陣を構えることになる諸刃の剣。 おとなしくtopic branchを切って作業するのが安心への近道であり王道である、 とか言ってたらみんなちゃんと切ってくれるようになった。めでたし。 チケットそっ閉じ症候群 来はリリースしたりデータを修正したりしてチケットと

    開発時に出会いたくないパターン - Perl日記
    gfx
    gfx 2013/11/06
  • 別の場所で読み込んだモジュールが他でも無条件に使えるのはイヤなところである - Perl日記

    まあPerlに限らずなんだけど。 Cacooで画像作ってみた。 ここでB.pmはCに関してまったく無関係のはずなんだけど、実際にはCパッケージの関数を使用できる。 どうも他人の庭の道具を無断使用しているみたいで気持ち悪い。 このへんも完全にスコープ切り分けできればよかったんだけど。 もちろん実際の実装では、B.pmもuse C;するんだろうけど、上記でも動いてしまう、というのがちょっとアレな感じ。 メリットとしては、他でも読み込んでいるモジュールは、それ以外で読み込まれていても再読み込みをしなくて済む、ってことだろうか。 つまりグローバル変数ならぬグローバル読み込みってところかな。 どこで何を使ってるかは、明確に記述しておかないといけないね。

    別の場所で読み込んだモジュールが他でも無条件に使えるのはイヤなところである - Perl日記
    gfx
    gfx 2012/04/30
    node.jsというかCommonJS/Modulesはこのあたりを解決していて綺麗だなあと思う。
  • Digest::SHAはマルチバイト文字列でも大丈夫だけどDigest::MD5だとエラーになる - Perl日記

    同じDigest::*だと思ったら大間違いという話。 -MDigest::SHA=sha512_hexだと use Digest::SHA qw/ sha512_hex /; use utf8; use Encode qw/ encode_utf8 /; print sha512_hex("あいうえお"),"\n"; #=> ed8ad6b03b7cb459... print sha512_hex(encode_utf8("あいうえお")),"\n"; #=> ed8ad6b03b7cb459... 動くし、同じ値になる。 -MDigest::MD5=md5_hexだと use Digest::MD5 qw/ md5_hex /; use utf8; use Encode qw/ encode_utf8 /; print md5_hex("あいうえお"),"\n"; #=> Error:

    Digest::SHAはマルチバイト文字列でも大丈夫だけどDigest::MD5だとエラーになる - Perl日記
    gfx
    gfx 2012/03/20
    「テキスト文字列(decoded string)はPerlの外にあるAPIに与えられない」という基本から考えるとむしろDigest::SHAのほうがおかしいと思います。
  • perldoc perlperfに宮本武蔵の言葉があった - Perl日記

    ... If you want the condensed version, perhaps the best advice comes from the renowned Japanese Samurai, Miyamoto Musashi, who said: "Do Not Engage in Useless Activity" in 1645. 役に立たないことはするな 五輪書 - Wikipedia

    perldoc perlperfに宮本武蔵の言葉があった - Perl日記
  • Perl5.8.5から5.14.2にしたら文字化けした話 - Perl日記

    RHEL4のサポート期間が延長なしだと今日で最後。 Red Hat Enterprise Linux - Wikipedia 標準のPerlのバージョンは5.8.5。 というわけで先日RHEL5にすると同時に5.14.2にしてやるぜ!、と意気込んでperlbrewで入れたら(RHEL5のデフォはPerl5.8.8)、既存のシステムで文字化けした。 実際に文字化けしたのは、Encode.pmのdecode_utf8()を使用している箇所。 Perl5.8.5のEncode.pmのバージョンは2.01、Perl5.14.2の方は2.42_01だった。 めっちゃちがうな! あまり深追いしなかったけれど、2.01のPP版のdecode_utf8は以下のコードだった。 sub decode_utf8($;$) { my ($str, $check) = @_; if ($check){ return

    Perl5.8.5から5.14.2にしたら文字化けした話 - Perl日記
    gfx
    gfx 2012/03/01
    Encode::decode_utf8()の違いについて
  • 5.8.5での正規表現とクラス名ではまる - Perl日記

    メモ。 5.8.5を使用しなければならない中で、簡易なViewクラス作ったら見事に動かなかった。 __PACKAGE__が正規表現内でクラス名にならない いや、正確には取れるんだけど、その中でeオプションで更に評価したらとれない感じ。 正規表現内で正規表現を使う(?)と*** glibc detected **が出る 上のs///eeで実行したときのはなし。 5.14.1で動いたので、バグだったのか改良なのか良く分からない。 tmpl/basic.html [% __PACKAGE__->render('tmpl/include/header.html', { title => 'BASIC', }) %] <body> <h1>[% $vars->{h1} %]</h1> </body> </html> tmpl/include/header.html <!doctype html> <

    5.8.5での正規表現とクラス名ではまる - Perl日記
    gfx
    gfx 2011/12/13
    5.8.9あたりで修正されているよう。cf. https://gist.github.com/1469894
  • Text::Xslate::Bridge::TT2Likeの改行のやつ - Perl日記

    いつのまにかText::Xslate::Bridge::TT2Likeのhtml_line_break()他3つがデフォルトでHTMLエスケープされるようになってた。 もうこんなことしなくていいんだね。やったね。 [% html_line_break(html_escape(report.item1 || "")) %]↓ [% html_line_break(report.item1 || "") %]Amon2で使ってるのでうれしいな。

    Text::Xslate::Bridge::TT2Likeの改行のやつ - Perl日記
    gfx
    gfx 2011/09/21
    アナウンスし忘れてましたが、特別の工夫がいらなくなりました!
  • MooseのBUILDARGSで - Perl日記

    URIオブジェクト作るんだけど、プロパティとしても同じことができないかなんとかしたい。おお、何言ってるのか分からない。 package WWW::ImagePager; use Any::Moose; use URI; has 'basepage' => (is=>'rw', isa=>'URI'); sub BUILDARGS { my ($self, %args) = @_; $args{basepage} = URI->new($agrs{basepage}); # ここと return { %args }; } around 'basepage' => sub { my $orig = shift; my $self = shift; return $self->$orig() unless @_; return $self->$orig(URI->new(shift)); # こ

    MooseのBUILDARGSで - Perl日記
    gfx
    gfx 2011/07/04
    coerce使うのがいいんじゃないすかね。 e.g. https://gist.github.com/1063372
  • map()で少しはまった - Perl日記

    map()について少しはまったのでメモ。 AI_1 UEO_1 AI_2 UEO_2 AI_3 UEO_3..... 上記のような要素が入った配列を作成したい。 で、初めは以下のように考えた。 my @array = map { "AI_$_", "UEO_$_" } 1 .. 10; print "@array\n"; しかしこれではsyntax errorとなる。 % ./48test.pl syntax error at 48test.pl line 5, near "} 1" ?、展開させてるのが悪いのかなと思って、以下のようにしてみた。 my @array = map { "AI_".$_, "UEO_".$_ } 1 .. 10; print "@array\n"; AI_1 UEO_1 AI_2 UEO_2 AI_3 UEO_3..... できた。 とはいえ、このままだと気持

    map()で少しはまった - Perl日記
    gfx
    gfx 2009/12/23
    mapのsyntaxについて
  • 1