PerlとRubyがくしゅう帳

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_です。 最近は主にPerl関連の勉強会やコミュニティに参加しています。

kansaipmは、昨日のお酒が抜けるまでblogを書くまでがkansaipmとのお約束通り、感想を書いてみます。

トークの詳しい内容の解説とか、難しい部分は他の方のblogにお任せして、自分なりの感想を書いてみました。

  • 小規模チームで仕事を回すコツ「みんながリーダーシップをとる」「打ち合わせはダラダラしない」「最初は意見を否定しない」
  • 「ボケて」が爆発的に伸びたキッカケはNaverと2chまとめ( @yusukebe さん )
  • MovableTypeはフレームワークとしてのポテンシャルがあり、ブログ以外にも色々作れる(@junnamaさん)
  • ソースコード内のコピペ部分を検出、可視化する技術。凄い。Githubにソースコードが上がってるらしいので、見てみたい。(@goccy54さん)
  • kansaipmの活動報告。初参加でしたが、関連の勉強会などこれからもお世話になります。(@nqounetさん)
  • Perl入学式のこれまでとこれから。まさか自分が運営側に回るとは1年前には予想もしていなかった…(@__papix__ さん)
  • Perl Oceanを使えば、チャットの様なメッセージサービスが作れる。インストールして遊んでみたい。(@lapis25さん)
  • デプロイツールのお話。デプロイとはサーバーの設定や必要なファイルやモジュールをインストールする等のこと。VPSを契約したら色々参考にさせて頂きます。(@shiba_yu36さん)

今回参加した中での、サプライズな出来事
  • 「ボケて」の制作者であり「webサービスのつくり方」著者のゆーすけべーさんに、本にサインをしてもらった!懇親会では、perlやMojoliciousの話を直接聞けた。(Mojoliciouのアレやら、LDDのアレ、楽しみにしてます!)
  • Mixiさんのメモ帳を抽選でもらいました!(ありがとうございます)
 
今回、kansaipmは初参加だったんですが、昨年から勉強させてもらってる「Perl入学式」や「namba.pm」で見かけた方や、お話をした方が何名かおられたので、入りにくい感はすごく少なかった。色々な勉強会に積極的に参加しておくというのは大事なことだと思いました。特に地方の場合はコミュニティ規模が小さいので、とても効果がありますね。

そして夏に行った「Yapc::Asia2012」でトークされていた著名なPerlHackerに直にお話が聞けたりと、いい経験とモチベーションを頂けたのも大きな収穫でした。JPAの地方への講師派遣制度、本当に良かった!!
Yapcや100人規模の勉強会の懇親会とかなら、いきなり面識も無いのに著名な方に話しかけるとか、ハードル高杉というか、もう完全に無理ゲーです。
若い学生さんやこれからプログラミングを勉強していこうという真の初心者の方(自分も含めて)にも間口が広い、素晴らしいコミュニティなので、kansaipm、ぜひ参加してみると良いと思います。

また、今年もYapcがあるので、有給休暇とって参加したいですね。
 
「つくることの楽しさ」「コンピューターを操作する楽しさ」

2012年は一歩目を踏み出した年、2013年は更に突き進む年にしたいですね。

<メモ>今回ググった知らなかった単語
・バリデーション
・デプロイ

1月17日、新大阪コワーキングで開催されたPerl鍋#1に参加して来ました。
みんなで集まって、なにか作って教えあうPerlの勉強会です。Perl入学式の様な講師による講義を受講する形式ではなく、自分で何か作ってみて、アドバイスを受けたり教えてもらったりする勉強会です。

今回は、Perl CPANモジュールガイドから自分の好きなモジュールを何か選んで自由に作るというお題でした。まずは始まったばかりの勉強会なので、感想とか思ったこととか・・・

  • いい雰囲気の勉強会。初心者でも気軽に参加できる感じがとても良いです。対象者が、Perl入学式を一通り受講程度以上であれば誰でもOKという、敷居が適度に低く内容の自由度も高いのが良いです。
  • 「自分で何かを作ってみる」がテーマなので、プログラムを作ってる感がとてもあってGood。
  • 平日の夜なので、仕事帰りにフラッと寄れる。
  • 平日の夜なので、時間が短い。一応2時間を目処に終電時間の許す限りの時間設定。(コードを書いたり、調べたりしていると集中しているのであっという間に時間が経つ。かつ、初心者なので、コードを書くスピードが遅いのでさらに)
  • 鍋なのにピザ。美味しかった。
自分としては、もっと時間内に書ける量が多くなるよう、頑張っていこうと思います。


P.S 他のPerlの勉強会の名前って、perl-beginnersとかperl-casualとかお洒落な感じですが、関西のPerlの勉強会の名前って、「入学式」とか「鍋」とか、もっちゃりした感じが大阪っぽくて良いですね。親しみやすい感じがするのは、自分だけ? 

Yusukebeさん著の「webサービスの作りかた」を読み始めて、「とりあえず手を動かす」は、重要だなぁと再認識したので、何かを作って見ることにしました。

年末年始の休暇の時間を使って、Perl入学式で学んだこと、ネットの情報、CPANモジュールガイドを駆使して自作プログラムを書ければいいなぁ...と。

とりあえず、最終目標は、基準日から3日毎に、メールでリマインダを送るプログラム。
今使ってるTodoのサービスは、毎日、毎週、毎月の様な繰り返しタスクは自動で設定できるのだけれど、3日毎にTodoを自動予約するパターンが出来ないので、自分で自分のiPhoneにリマインダメールを送るプログラムを書いてみる事に決定。

メールを送る部分はCPANモジュールで何とかなりそうな予感。常時動かしておくサーバーはどうしようか、、、3日毎の定時(決められた時間に)に発動するような事ができるのだろうか???

思いついた部分だけまずはコードにしてみました。

・スタートの基準日をコマンドライン引数にして渡す。
・引数の日と現在日付を比較して、 3の倍数なら、当たりの日(メールを送信する)

日付の比較は、Excelの様に日付をシリアル値に変換して引き算すれば良いかなぁと考えてみたけれど、どうやらPerlの日付は秒数?でカウントされているらしい。日付のシリアル値は無いみたい。

と言うことは、日付からシリアル値を生成する関数を自分で書くしか無いので、とりあえず書いてみました。うるう年の判定ですね。

sub date_tosirial{
    my ( $year,$month,$day) = @_;
    my $ans = 0;
    if( $year < 1900){
        die;
    }elsif( $year == 1900){

    }elsif( $year <= 2000){
        $ans += int(($year-1900)/4)+1+($year-1900)*365;
    }else{
        $ans += int(($year-1900)/4)+1+($year-1900)*365+1;
    };
    my @month_sirial;
    if(($year % 4 == 0)^(($year % 100 != 0)||($year % 400 == 0))){
        @month_sirial = (0,31,29,31,30,31,30,31,31,30,31,30);
    }else{
        @month_sirial = (0,31,28,31,30,31,30,31,31,30,31,30);
    };
    my $item = $month - 1;
    do{
        $ans += $month_sirial[$item];
        $item -= 1;
    }while($item >= 0);
    $ans += $day;
    return $ans;
}; 

 とりあえずは動いているようなので、次はこのサブルーチンのテストを書く事にもチャレンジしてみようと思います。
しかし、正しい答えを計算するExcelが家には無い・・・表計算ソフトが無い・・・
OpenOfficeかGoogleDocsでも計算できるのかなぁ?

このページのトップヘ