タグ

ブックマーク / bayashi.net (7)

  • perl5.22 おれの注目 features(changes)

    perl5.22 が登場したということで一通り Changes 読んでみた上で気になった点を列挙しておく。 キャプチャしない正規表現オプション n Non-Capturing Regular Expression Flag 正規表現に n オプションというのが加わったようだ。これまでは (?:nocapture) というように ?: を使っていたのが、/(nocapture)/n という風に n オプションで明示できる。これで ?: だか :? だか迷う必要がなくなった! Unicode 7.0 対応 Unicode 7.0 is supported ロシア通貨のルーブルの通貨記号文字が使えるってことですね! 無限大や数値ではない引数を渡すと、死ぬ Packing infinity or not-a-number into a character is now fatal chr("foo

    perl5.22 おれの注目 features(changes)
    n2s
    n2s 2015/06/03
  • bayashi.net

    {{tag: amazon, bluetooth}} 年内に書こうと思っていたけど、年も明けてもうだいぶ時間がたってしまった。去年買って良かったもの3選です。ご査収ください。 USB TYPE-C マグネットアダプタ これは同僚に便利ですよと教えてもらって導入したもの。USB-C の口をマグネットで接続できるようにするもの。 [[https://amz... つづきを読む

    bayashi.net
    n2s
    n2s 2013/11/21
    plackup -eによるワンライナーとかデバッグとか
  • Perl を学ぶとき、真っ先に覚えたいモジュール

    春ですね! 新年度ですね! Perl 書くことになってしまいましたか! 奇遇ですね! sigil が意味わかりませんか! 特殊変数がググれませんか! リファレンスが謎ですか! 1; の存在が不明ですか! オブジェクト指向が難しいですか! むしろオブジェクトじゃないコードの方がゆるくて大変ですか! XS が読めませんか! ええ、XS は僕もあんまり読めません>< さて、この春から Perl を学ぶことになった人も多いかと思いますが、なにはなくともこれまず覚えたら後が楽になるんじゃないかというモジュールを、いくつか紹介したいと思います! (まあ、自分の初期を思い返すと、この辺はやく知っておきたかったなあというリストです) Data::Dumper, YAML 変数(リファレンス)やオブジェクト(blessされたリファレンス)をダンプする用途では、Data::Dumper が一番メジャーのような

    Perl を学ぶとき、真っ先に覚えたいモジュール
    n2s
    n2s 2013/04/15
    Data::Dumper, YAML, Test::More, Devel::Peek, B::Deparse(-MO=Deparseで使用) / YAML以外はcore module / ともあれ、Test::More使え、printテストから卒業しろ>自分
  • Unicode::UTF8 がガチ爆速すぎる

    あんまり深読みしてないんだけど、Unicode::UTF8 が超速い。 おなじみ Encode との比較で、PODには 600% 速いって書いてあるけど、手元で試す感じだとだいたい 350~650% 速い。つまり、マジ速い。 Benchmark: timing 350000 iterations of Encode, Unicode::UTF8... Encode: 5 wallclock secs ( 4.41 usr + 0.00 sys = 4.41 CPU) @ 79365.08/s (n=350000) Unicode::UTF8: 0 wallclock secs ( 0.72 usr + 0.00 sys = 0.72 CPU) @ 486111.11/s (n=350000) Rate Encode Unicode::UTF8 Encode 79365/s -- -84%

    Unicode::UTF8 がガチ爆速すぎる
    n2s
    n2s 2013/03/04
  • 生のハッシュリファレンスを return したら遅い

    ハッシュリファレンスは畳み込み的に定数扱いじゃなかったのね、ってのに気づいて驚いた(というのが当に遅い原因か確定させて無いけど)(【追記2】参照)。 #!/usr/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; my $HASH = { foo => 123, bar => 456, baz => 789, }; my $result = timethese (750_000, { 'VAL' => '&logic1;', 'RAW' => '&logic2;', }); cmpthese $result; sub logic1 { _logic1()->{foo}; } sub _logic1 { return $HASH; } sub logic2 { _logic2()->{foo};

    生のハッシュリファレンスを return したら遅い
    n2s
    n2s 2013/01/13
    via id:entry:128177666 / return +{} は中身がリテラルだけど毎回オブジェクトが生成されるから非効率的、と
  • git で設定しとかないと捗らないだろってののまとめ

    TIPS 扱いされてることも多いけど、いやいや、この辺はどんなプロジェクトでも基礎中の基礎の超捗る設定じゃないですか、ってのをまとめてみる。 .git-completion.bash git コマンドやブランチ名、その他をTAB補完してくれるのと、プロンプトにブランチ名が出せる。 git のソースに含まれるファイルか、このあたりで提供されるものを取ってきて設置して、.bashrc に以下を追記。 if [ -r "$HOME/.git-completion.bash" ]; then . $HOME/.git-completion.bash PS1="[\u@\h\$(__git_ps1 \" %s\") \w]\n\\$ " fi これでブランチ名が長くても安心だし、ブランチ名に dev- とか fix- とかプリフィックスつけとく意味が増す。 似たような設定で、.gitconfig で

    git で設定しとかないと捗らないだろってののまとめ
    n2s
    n2s 2012/11/04
  • Text::Xslate で HTML 吐くときに human readable に dump する

    dump 関数に decoded を吐かせると、、 テンプレに渡されるパラメータを、ダンプして確認する機会というのは多いと思うのです。Text::Xsalte にはもちろんビルトインで dump 関数が用意されています。 <: $foo | dump :> しかし、この dump 関数は Data::Dumper でダンプする(だけ)という素直な実装になっています。したがって、通常 decoded な値をテンプレートに渡すと思うのですが、そうした値がエスケープして表示され、人間には読めないのですね。 例えば、こんな風です。 { foo => "\x{fffd}\x{fffd}\x{fffd}\x{142}\x{fffd}\x{fffd}H\x{fffd}\x{5c2}\x{fffd}\x{fffd}\x{fffd}" } 元は use utf8; +{ foo => 'おでんべたい' }

    Text::Xslate で HTML 吐くときに human readable に dump する
  • 1