SEEDS Creator's Blog

perl

#isucon 4 予選に参加しました(スコア 37513)

@memememomo (uchiko) と onihsiと@cs_sonar(僕)で参加しました。 チーム名は「京都スイーツ」です。 結果としては本戦出場はできそうにないスコアで残念でした・・・。 (2014/10/06 追記。失格になってました。) 以下備忘録です。 インスタンス立ち上げ AMI…

isucon#3 オンライン予選を総合4位で暫定通過しました

isucon#3 オンライン予選2日目に、 @memememomoと「進撃の超大型パティスリー兄弟」として参加してきました。 現在はまだ暫定ではありますが、2日目の1位(総合4位)で予選通過予定とのことです。 過去に isucon#1, isucon#2 と参加してきて、 思ったような…

isucon3 予選で敗退しました(うさぎ工房)

isuconは初回からずっと出ているのでこれで3回目。 いつもは同僚の@shokiri @memememomo (Uchiko) 、僕、の3人で出場するのですが お互いの予定の折り合いがつかず、僕は出場できない可能性が出てきました。 でも僕はどうしても出場したい・・・! そこで…

メールを大量にテスト受信するサーバを作ってみた話

とにかく大量のメールを受信するだけサーバが欲しかったのでPerlで作ってみました。 Net::Server::Mail::SMTP + Parallel::Preforkを使ったプリフォーク型サーバにしました。 Net::Server::Mail::SMTPでSMTPコマンドそれぞれの処理を書き、 Parallel::Prefor…

Perlに関する情報の調べ方・集め方

Perlに関する情報の調べ方や集め方、有益なサイトや書籍などをまとめてみました。 Perl入門に関する情報 サンプルコードによるPerl入門(サイト) http://d.hatena.ne.jp/perlcodesample/ サンプルコードがたくさんあってとても分かりやすいサイトです。 現代…

Perlのコンテキストについて

Perlを書いていると次のような部分で引っかかることがあります。 スカラー変数($hoge)と配列変数(@hoge)のどちらを使うか 関数の引数の渡し方 関数の返り値の受け取り方 これらは様々なパターンがあるので、Perlを普段から書いていないと迷ってしまいます。 …

perlbrewで構築するモダンなPerl環境

モダンなPerl環境構築方法をご紹介したいと思います。 perlbrewは、ホームディレクトリに複数のperlをインストールして切り替えをしてくれるツールです。 perlbrewのインストール 以下のようなコマンドを実行すると、prebrewをインストールできます。 $ curl…

CGIプログラムをPlack::Testでテストする

以下のようなCGIプログラムのテストを書きたいとします。 fizzbuzz.cgi #!/usr/bin/perl use strict; use warnings; use CGI; my $q = CGI->new; my $number = $q->param('number'); unless (defined $number) { print $q->header( -status => 2…

自動テストのためにメールサーバを一時的に起動する

メール本体を組み立てるロジックとメール送信部分が結合しているようなシステムを自動テストする際に、 一時的に立ち上がるメールサーバが欲しくなります。 また、メールサーバにどんなメールが届くのかをチェックできると嬉しいですね。 Test::TCPとNet::Se…