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

  • eachの途中で止めると再開が途中からになる話 - Perl日記

    Rubyのeach_with_indexは添字と要素が一度に取れるのでとても便利なときがある。 Perlで同じことをするには、5.12までは、ループ外に変数を置いて、ループ内でインクリメントするのが一般的だったけれど 5.12からはeach()が配列に対しても使えるようになって、添字と要素が一度に取れるようになった。 が、これを途中で止めて、再度eachを使用すると、その途中からループが始まってしまう。 内部的なイテレータの状態を保持しているらしい。 use strict; use warnings; package Hoge { sub new { bless [[1..10],[11..20],[21..30]], __PACKAGE__; } sub print_key { my $self = shift; while (my ($i, $elm) = each @$self) {

    eachの途中で止めると再開が途中からになる話 - Perl日記
  • 開発チーム内で自分が気をつけていること - Perl日記

    文化されていないので、開発チーム内では自由だけど、自分は気をつけていることメモ チャットの個人チャンネルで仕事を進めない 仕事に関することは、関係者がいるところに書く。 Wikiの個人ページに仕事のことを書かない 他の人も編集する可能性がある内容は、みんなが見られるところに書く。 hotfixはmasterブランチから切る hotfixってそういうものだと思う。 hotfixはmasterとdevelopブランチにマージする hotfixってそういうものだと思う。 Gitコミットメッセージに「指摘反映」とか「fix bug」ではなく変更内容を書く Gitのコミットメッセージってそういうものだと思う。 Pull Request上で指摘された内容を反映させたときは、3行目に、「ref. https://xxx/xxx」として参照先を載せている。 サーバ内での作業時はscreenを使う インタ

    開発チーム内で自分が気をつけていること - Perl日記
  • コードに嘘を書かない - Perl日記

    久しぶりにブログを書く。リハビリがてら最近思ってることとか。 最近は、コードレビューのときの「承認」ボタンを押す自分の中のハードルが、とても下がったように感じる。 少し前までは、 インデントが揃ってない コードが稚拙だ コードが過剰に複雑だ N+1になっている コントローラに処理が集中している ビューに処理を書きすぎている 引数が多すぎる Gitのコミットが大きすぎる Gitのコミットに余計なものが混ざっている PRの説明が簡素すぎて謎 など、割と基的なところも指摘するようにがんばっていた。 しかし近頃は、(誤解を恐れず言えば)その辺は半ば諦めていて、締め切り優先という大義名分のもと、「あ、それで動いたんですね、オッケーです、承認」みたいな雰囲気で、意識的に軽く「承認」ボタンを押すようにしている。(それについてはまた何か書くかもしれない) ただその中でも一つだけ譲れないところがあって、そ

    コードに嘘を書かない - Perl日記
  • PerlでPDFに他のPDFのページを差し込む - Perl日記

    http://r9.hateblo.jp/entry/20120513/p1r9.hateblo.jp の続き。(もう3年も前だ) PDFに表紙PDFのページを差し込む 漫画の単行をスキャンして自炊するときには、白黒の体部分と、カラーの表紙部分に分けてスキャンをしている。 それらを合体するやり方がわかったのでメモ。 ライブラリ http://search.cpan.org/~ssimms/PDF-API2-2.023/lib/PDF/API2.pm 何をするか 表紙PDFは4ページあって、1ページ目と2ページ目をPDFの先頭に、3ページ目と4ページ目をPDFの末尾に差し込みたい。 use PDF::API2; # 保存用 my $pdf = PDF::API2->new(); # PDF my $mainpdf = PDF::API2->open("/path/to/y

    PerlでPDFに他のPDFのページを差し込む - Perl日記
    perlcodesample
    perlcodesample 2015/06/02
    PDF::API2を使って、PDFを編集。
  • 2013年振り返り - Perl日記

    2013年は社会人になってから一番いろいろあった年だったとおもう。 初めてインフルエンザになった 初めて転職した 初めて外人と一緒に働いた 否が応でも英語を覚える羽目になった 文化の違いに四苦八苦した テスト書いて自動で回した 興味の移ろい ちょうど去年の今頃くらいまでは、具体的にプログラムの実装の役に立つばかりを読んでいたのだけれど、 たまたま借りて読んだアジャイルサムライが面白かったのでそこから興味が「どうやって開発するか」という点から「チームとしてどうやって最高のパフォーマンスを出せるか」という円にシフトしたようにおもう。 もちろん規約ではないから、どんなを読んだところで、そこにはいま現在のチームの開発スタイルの正解は書かれていない。 なのでいまも手探りを続けている。「こういう方法もあるってに書いてた」という引き出しを作るために読んでいる感じ。 まとめ 無事に生きられたのでまあ

    2013年振り返り - Perl日記
  • Test::Specその3 - Perl日記

    they 単なるitのエイリアス 複数形の言い回しに向いてる xdescribe/xcontext/xit/xthey それぞれdescribe/context/itの代わりに使う 要はpending扱いにしてくれる TODOラベルを貼る必要がない spec_helper 各テストファイルで共通のものを書いておいて、spec_helperでそのファイルを各テストファイルから呼び出す shared_examples_for も置ける ただし変数スコープは存在するので、共有にはshareを使わないといけない use strict/warningsしなくても、その恩恵には与れる share 同じテストファイル内で変数を受け渡すなら、そのファイル内のトップレベルに変数を宣言すればいいけれど、各テストで共有したいときにshareを使う spec_helper.plに使うのが便利そう 使用範囲がそのブ

    Test::Specその3 - Perl日記
  • 「RubyistのためのPerl」で発表した - Perl日記

    毎週末の(Rubyメインの)勉強会で 「RubyistのためのPerl」というタイトルで90分くらい喋った。のどが疲れた。 発表資料 http://dl.dropbox.com/u/9152456/perl_for_rubyist/slide.html こういう発表みたいなのしたことなかったから勝手が分からなかった スライドの書き方とか 90分でイチから説明始めて起承転結で終わらせるのは難しいなと思った 途中gdgdした感 いかに難しいところを説明せずに、90分で収めるかみたいなところに腐心してた 急にPerlを書け、と言われると、最近はRubyに浸されてきてて、あれ?どう書くんだっけ?となるくらいには混ざってきた

    「RubyistのためのPerl」で発表した - Perl日記
  • どこまで分割する? - Perl日記

    PerlのWebプログラミング効率化のTips」を読んだ感想 - サンプルコードによるPerl入門 http://d.hatena.ne.jp/perlcodesample/20120609/1339246531 短くて再利用性がなく、細かくしてもメリットがないような処理は、処理2のように直接書いてしまっても良いと思う。 いつも悩むところを思い出したので。 たとえばあるプロジェクトの中でコード書いているときに、 実行時時点の「年(数値4桁)」がほしいとき sub index_controller { ... my $now_year = (localhost)[5] + 1900; # 直接書く ... } みたいにした方が可読性高くていいのか、 sub index_controller { ... my $now_year = get_now_year(); # サブルーチンにする .

    どこまで分割する? - Perl日記
  • printとstatでつまづいた話 - Perl日記

    statの挙動なんだっけーと思いつつ以下のようにしたらエラーになった。 $ perl -le 'print (stat("test.pl"))[9]' syntax error at -e line 1, near ")[" え、statは配列を返すからそのスライスってことであってるでしょーと文句を言いたくなったけれど、 右ばっかり見てて、よく見たらprint()してた。 つまりこう解釈されてたわけだ。 # error $ perl -le 'print(stat("test.pl"))[9]' 「関数呼び出しに添え字なんてつけられません」ということだった。 だからまあきっちりやるなら # ok $ perl -le 'print ((stat("test.pl"))[9])' かっこで外側をくくってやればよい。

    printとstatでつまづいた話 - Perl日記
    perlcodesample
    perlcodesample 2012/04/24
    [Perlprintとstatでつまづいた話。
  • Mo.pmを読んだ - Perl日記

    こんばんは。 面白そうだったのでMoを読んでみた。 http://search.cpan.org/~ingy/Mo-0.30/lib/Mo.pod Moとは Moose is huge. Moose led to Mouse led to Moo led to Mo. M is nothing. Mo is more. Not much.Moose、Mouse、Mooからできたlessなやつ。 VERSIONは0.30だった。 コード Mo.pm package Mo; $VERSION='0.30'; no warnings;my$M=__PACKAGE__.::;*{$M.Object::new}=sub{bless{@_[1..$#_]},$_[0]};*{$M.import}=sub{import warnings;$^H|=1538;my($P,%e,%o)=caller.::;

    Mo.pmを読んだ - Perl日記
    perlcodesample
    perlcodesample 2012/04/20
    Mo.pmというモジュールを読んでみたようだ。
  • WEB+DB PressのOAuthコードをPerlで書いてみた - Perl日記

    WEB+DB PRESS Vol.63 作者: 竹迫良範,和田卓人,じゅんいち☆かとう,太田昌吾,小野修司,ミック,嶋田裕二,個々一番,みやけん,清水亮,おにたま,中島聡,角田直行,はまちや2,上谷隆宏,青木俊介,大塚知洋,生尾剛士,大和田純,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2011/06/24メディア: 大型購入: 20人 クリック: 434回この商品を含むブログ (22件) を見る TwitterのOAuthでトークンもらう、つぶやく、タイムライン取得する、という機能がPHPで書かれていたので、Perlにしてみた。 TwitterにごにょごにゅしたいならNet::Twitterが常套だろうけれど、あえてOAuth::Lite::Consumerを使って理解した気になってみた。 conf.yaml cons_key: XXXXXXXXXXXXXXX

    WEB+DB PressのOAuthコードをPerlで書いてみた - Perl日記
  • ラベルでつまる - Perl日記

    いまテストをこんな風に書いている。 GET_COOKIES : { local $ENV{HTTP_COOKIE}; local $ENV{COOKIE}; ... my %result = get_cookies(); ... } SET_COOKIES : { stdout_is { set_cookies( ... ); } } テストするサブルーチンの名前をそのままテストブロックのラベルに使用している。 大文字にすればかぶらないと思って。 で。 ちょとややこしそうなテストがあったので先に以下のように書いておいたらエラーになった。 ... CRITICAL_ERROR : { } GET_COOKIES : { ... $ prove -l t/01-cm.t syntax error at t/01-cm.t line 17, near "GET_COOKIES " Executi

    ラベルでつまる - Perl日記
    perlcodesample
    perlcodesample 2010/07/15
    ラベルはループの戻り先を指定するために使用するのだと思います。テストの中のラベルの部分は、コメントでよいのでは。
  • 1