タグ

ブックマーク / mt.endeworks.jp (11)

  • YAPC::Asia Tokyo 2011 振り返り - D-6 [相変わらず根無し]

    YAPC::Asia Tokyo 2011 振り返り 2011年10月16日 17:33 D | ブログ記事のURL | コメント(0) | トラックバック(0) YAPC::Asia Tokyo 2011の運営側の話は大分参加者側とは違うとは思いますが、一応記録として書いておきますね。あと以下様々な情報は私lestrratからみた一方的な話なのでひょっとしたら間違ってるかもしれませんが、その場合は随時ご指摘をお願い致します。 今年のYAPCの準備 ぶっちゃけ運営側、そして少なくとも僕の視点からは941さんとのタッグがあまりにもキレイに連携できてて、YAPCの準備は恐ろしいくらい負担の少ない感じでした。 最初から去年より責任機能を大幅に委譲しようというコンセンサスも取れてたし(例:懇親会手配、Tシャツ準備、プロジェクター等の備品準備等はDeNA/mixi社からの方達と分担しました)、去年

  • say no to system perl - システム標準Perlを使わないススメ - D-6 [相変わらず根無し]

    say no to system perl - システム標準Perlを使わないススメ 2011年4月30日 10:06 D | ブログ記事のURL | コメント(0) | トラックバック(0) LinuxMac OS Xを使っていれば、大抵の場合/usr/bin/perl などの位置にPerlが入っていますが・・・これらを使うのはやめたほうがいい、というのが段々定説になりつつあります。 厳密に言うと、別に簡単なスクリプトを書くのにシステム標準Perlを使うのは問題ないのだけれども、CPANからモジュールをインストールするつもりならシステム標準Perlを使わないほうがいいでしょう、という事ですね。 自分としてはシステムPerlを使わない理由はふたつある。 ひとつはシステムPerlはそれに依存するものがあるため、それに変更を加えると何かが壊れることがあること。例えばついうっかりモジュールのバ

    kits
    kits 2011/04/30
    CPANモジュールがOSのパッケージシステムで管理されててややこしく思うこともある。
  • Perlでファイルの一括読込 - D-6 [相変わらず根無し]

    Perlでファイルの一括読込 2011年4月27日 01:19 D | ブログ記事のURL | コメント(0) | トラックバック(0) なんかtwitter見てたらこういうのを貼ってる人がいたので、一応書いておく。 Perlでファイルを一気に読み込むのは local $/; <$fh> が一番速い。 open my $fh, '<', "/path/to/file.txt" or die "failed to open file: $!"; my $content = do { local $/; <$fh> }; いずれにせよ大きいファイルを処理する場合はこういう風に一気に読み込むのは効率悪い。それを分かった上で、それでも1行ずつ改行コードが取り除かれた状態で配列に読み込みたいならこれをsplitするのが一番速い。 open my $fh, '<', "/path/to/file.

    kits
    kits 2011/04/27
  • perlbrew - D-6 [相変わらず根無し]

    perlbrew Perl 5.6 とか Perl 5.8を今だに使ってるあなた!そうです、これを読んでるそこのあなたです。Perl5の開発チームは後方互換に関しては大変神経をつかっていますので、 Perl 5.6とかで動いてたコードをいきなり 5.12で走らせても基的には動くはずです(多分警告とかは一杯でるだろうけど)。でもだからといって新しいバージョンで施されている様々な最適化や新しい機能を使えないのはちょっと悲しくないですか? ということで新しい Perlを使いましょう!最新安定版は5.12.1ですよ!ちなみにどのバージョンを2010年8月時点で使うべきか、はこちらのエントリを参照してください。 え?アップグレードできない?システム管理者が許してくれない?前入れてたアプリが壊れる?いやいやいや、全然いけますって。自分用のPerlをインストールすればいいんですよ! ここではそれを簡単

    kits
    kits 2010/08/03
    perlbrewの奨め。/ perlbrew install (-fなし) でテストに失敗した時は build ディレクトリに行って make install でもよいような。
  • CGIをPlackで開発(2) - D-6 [相変わらず根無し]

    CGIをPlackで開発(2) 前のエントリ書いたら宮川さんにオススメ方法を教えてもらった http://twitter.com/miyagawa/status/10271128928plackup \      -L Shotgun      -MPlack::App::WrapCGI      -e 'Plack::App::WrapCGI->new(script => "/path/to/cgiscript.cgi")' だそうです!これなら全ての要件を満たせるもよう!そしてapp.psgiを作る必要ありません。 今これやってみて一つだけ問題点。多分POD入りのCGIは動かない。それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました! カテゴリ 開発 タグ cgi perl plack 2

    kits
    kits 2010/03/11
    Plack::App::WrapCGI が必要とする CGI::Emulate::PSGI, CGI::Compile は、cpanの install Plack では自動的に入らなかった。/ 有難うございます! id:miyagawa "install Task::Plack"
  • $. と <> と for と while - D-6 [相変わらず根無し]

    $. と <> と for と while forでは$.はカウントされない ちょっと違うので横から。 これはforの動作というより、式の評価コンテキストの問題。 forはその性質上、捜査対象は配列になる: for (<>) { .... } # 上記はこれと同等 my @lines = <>; for(@lines) { .... } なので、<>も配列として評価されるべく*まず最初に*<>を最後まで読み切って、行区切りの配列を作ってからforに渡す。このときファイルハンドルを読み切っているので、当然 $.はファイル全体の行数になる。 これに対して、whiileは対象を毎ループ評価するので、1行ずつの読み込みになる。だから$.は行毎の値になる。B::Deparseを使うとちょっとわかるかも。 # こっちはちょっと正直わかりにくいとは思うけど・・・ daisuke@beefcake $ p

    kits
    kits 2010/02/23
    <>をforで扱うのは誤解の元になりそうな気がする。(slurpするかwhileを使うかにした方がよさそう)
  • @INCとuse - D-6 [相変わらず根無し]

    @INCとuse ちょっとずれてるので横からコメント unshift、push で変更を加えた @INC(モジュール検索PATH)が使用されない。 起こってる現象とこの認識はちょっと違う。 具体的に何が起こっているか説明する前に、Perlにはコンパイル(BEGIN) フェーズとランタイムフェーズという、2回コードが実行されるタイミングがある(まぁ厳密にはもう少し色々フックすることが可能だけど、とりあえず一般的にはその二つで大丈夫)。 これがどういうことかというと、順番にコードを書いているつもりでもコンパイルフェーズで評価される部分とランタイムフェーズで評価される部分があるということ。わかりやすい例としてはこんな感じか: #!/usr/bin/perl use strict; print "Runtime!\n"; BEGIN { print "Compile time!\n"; }

    kits
    kits 2010/02/19
    use と BEGIN { } はコンパイル時、その他は実行時に処理。
  • Script::Sub::Importが大変いただけない件 - D-6 [相変わらず根無し]

    Script::Sub::Importが大変いただけない件 スクリプトからサブルーチンだけをインポートするScript::Sub::Importというモジュールを作成しました http://d.hatena.ne.jp/perlcodesample/20091130/1258979624 これは大変いただけない。perlcodesampleというIDがさらに初心者に信用させがちだからさらにいただけない。なので苦言を呈させてもらう。 命題はスクリプト内で使っている巻数のテストをしたい、なんだよね。なら、いくつかこんなひどいハックじゃないやり方がある。 まず第一の、そして一番まともな方法としては「モジュール化」を考えるべき。元のスクリプトがこんな感じだとする: #!/usr/bin/perl use strict; main(); sub main { # pseudocode... foo(

    kits
    kits 2009/12/08
  • FUDを広げるのは誰の特にもならないと思うんだ。 - D-6 [相変わらず根無し]

    FUDを広げるのは誰の特にもならないと思うんだ。 以下、まぁ書き散らかしです。あんまり推敲してません。すまそ。ちなみに、下記記事に対するブクマはDISも多いけど、素直な反応もちらほらあるようで興味深い。 僕にとってのJavaは2001年に終わってますが・・・。同じ事何回も書かなくちゃいけない言語なんて死んだも同然ですよ。ライブラリもちらばってて何がどこにあるのかわかんないし。 って、書くのは簡単です。多分元記事をテンプレ化してほぼ同じ事をどの言語に対しても僕は書けます。 ただ、エンジニアという職種の人がそんなことしてるのはどうかなぁ、と。エンジニアの使命を問題を解くことです。何でつまづいたかとか、なにがむずかしかったとか、何ができなかったとかそういう事をちゃんと書いて欲しいなと思う。CPANのアップロードとかも状況に対しての認識もなく、「回数」という一面だけで判断をばっさりしてていいのでし

  • モダンPerl入門とどいた - D-6 [相変わらず根無し]

    モダンPerl入門とどいた 「モダンPerl入門」が届きました。翔泳社様、ありがとうございます>< 嬉しい限りなんですが、でももう怖くてひらけねぇ。間違いとかあったら嫌だー。こわいー。僕はテレビとかでBGMが怖い感じになるとチャンネルを変える人なのです。中味を読んで万が一いやな内容があったらいやだからもうしばらくあけないぞ! なんて事は言っていても見ないわけにはいかないので見たわけですが、装丁とか、僕の予想をはるかに超えていてすごい嬉しいです。内容も実は結構良い内容だとは思っております。自信がないのは文章の書き方とかだけで、ここまでターゲットを絞ってMooseの実践的な使い方とかを解説したは現在他には存在しないはずだし、その辺り興味のある方には我ながらちょうどいいと思います。 ちなみにこの、執筆時には全てPODで書きました。=head1 チャプタータイトルみたいな感じ。表とかはas-

    kits
    kits 2009/02/03
    PODで執筆
  • 神経質(A型)なPerlハッカーあるある - D-6 [相変わらず根無し]

    神経質(A型)なPerlハッカーあるある ネタですが、実話です。 use Module; 宣言を書く時、全部ABC順にしないとイライラする。s///とかをs{}{}って書くとエスケープいらないのに、s/\\\/\\\/\\\\/g s/\\\/\\\//\\\\/gとか見るとイライラする。(追記:なんか一個抜けてた)qw// をqw()と書き直さずにはいられない。for(my $i = 0; $i < 10; $i++) とかを見ると for my $i (0..9)に書き直さずにはいされない他人からもらったファイルを開ける前はとりあえず perl -i -pe 's/\r\n/\n/g'if ( ... ) elsif (...) elsif (... ) else ... みたいなのを見るととりあえずディスパッチテーブルを書きたくなるif ($foo eq 'XXX' || $foo

    kits
    kits 2008/03/14
    eq || eq は正規表現マッチより効率いいんじゃなかったっけ / dankogai氏指摘済みだった。
  • 1