Yokohama.pm#6 x PerlCasual#3

前回のPerlCasual#2もすごく楽しく、絶対次も参加するぞと思い今回も楽しみにしていました。
しかも今回はYokohama.pmと一緒との事で、どんなカジュアルな話からコアな話まで聞けるんじゃないかという点にも楽しみにしていました。


もうすでにたくさんの方が詳しくすばらしい感想を書かれているので、被り気味になるかと思いますが簡単に感想を。
(参考にさせて頂きました!ありがとうございます!)

リソース監視ツール・フレームワークCloudForecastの紹介 by kazeburoさん

  • CloudForecastについては、下記のkazeburoさんのブログも読ませてもらっているのでとても聞きたかったのですが、仕事終わりではやはり間に合わず。。残念です!
  • 最後の方を少しだけ聞くことが出来たのですが、「リソース監視が簡単に出来て」、「個人ユースから大規模環境まで利用出来る」との事でとても興味を持ちました。

WebアプリケーションエンジニアのためのiPhoneアプリ開発入門 by typesterさん

  • iPhoneアプリというとObjective-Cを連想し、よくわからないイメージがあったのですが、今回のセッションを聞いて作ってみたいと思うようになりました。(MacbookProを先月に購入したこともありますので。)
  • iPhoneアプリと言えども、やはりWeb APIを利用したものが多く、その際の注意点などを説明してくださり、作った経験もないのになるほどなぁと思いながら聞いていました。というかPerlでWeb APIを使って遊んだりしているなら是非ということでした。
    • Web APIを利用する際は、標準で用意されている「NSURLRequest」はややこしいので、「ASIHTTPRequest」や「libcurl」を使用するといいとのことでした。
    • JSONを利用する際は、nilに注意との事でした。(nilはデータの終端として処理されるため)
  • また、実際にTwitterAPIのコードを利用したアプリのコードを使いながらの説明もあり、Objective-Cのコードはよくわかりませんでしたが、「HTTPリクエスト投げてコールバック関数にレスポンスの処理を書く」という形はよく書いたりするので、試してみたいなと思いました。しかもスレッド処理もシンプルに書けそうですし。
  • iOS4になって、APIが強力になっているということは初めて知りました。

Any::Mooseではじめるオブジェクト指向プログラミング by gfxさん

  • MooseといったらMouseです。
  • 牧さんも会場で「買って!」と言われていた「モダンPerl入門」を読み、Mooseを使いたくなったのですが、Mooseは依存関係が多くインストールなどが大変だなと思っていたとき、軽量版のMouseというモジュールがあることを知り本当に感動しました。しかもAny::Mooseなんてモジュールがあることを知りさらに感動していたので、今回gfxさんによるセッションもとても楽しみにしていました。

モダンPerl入門 (CodeZine BOOKS)

モダンPerl入門 (CodeZine BOOKS)

  • パソコンが固まる(!?)トラブルもありながらでしたがとても勉強になり、話を聞いてMouse(Any::Moose)を使わない理由はなく、自分自身もちょうど使い始めたばかりだったのでこれからもどんどん使っていこうと思いました。
  • コアモジュール以外の依存がないことも嬉しいですが、さらに要求バージョンが5.6.2と5.6でも動くというのに驚きました。
  • lazy_buildなど様々なアトリビュートに対するオプションの活用法を学ぶことで、オブジェクト指向に対する理解も深まりそうな気がしました。
  • Moose、Mouse、Any::Mooseというモジュールが登場したことで、他の言語と比べ弱いと言われていたオブジェクト志向周りが強化され、ますますPerlという言語の魅力が増したと感じたセッションでした。

PerlCasual 初心者向け勉強会:Web APIの基礎 by yusukebeさん

  • YahooやGoogleDeNAmixiTwitterなどの企業が自社サービスに対するWeb APIを公開しており、それらWeb APIPerlから利用してみることでPerlを学ぼうというものでした。
  • とにかくyusukebeさんの説明がとても丁寧で、Perlを始めたばかりの方でもわかるようにという意思を強く感じました。まさにカジュアルPerlというセッションでした。
  • TwitterAPIを利用する方法として、日本語の扱い方を含め下記の流れを一つひとつ丁寧に説明にしてくださりました。
    • URIの構築(URIモジュール)
    • APIにリクエストを投げる方法(LWP::UserAgent、WebService::Simple)
    • 投げたAPIから返ってきたレスポンスを処理(パース)する方法(JSONWebService::Simple)
  • この辺りを学ぶ本として下記の「ウェブを支える技術」をオススメされていました。ちょうど先日購入したので早く読もうと思います。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

  • また8月末に発売される「WEB+DB PRESS Vol.58」に今回説明されたことが載るそうなのでそちらも絶対チェックしたいと思います。
    • 感想にyusukebeさんの記事面白かったと書くのも忘れずに!
  • 気軽に巨大サービスが持っている多くの情報を、自分のサービスに活用出来ることって、本当に贅沢な環境だなと思いました。

http://www.slideshare.net/yusukebe/perlweb-api
http://yusukebe.com/archives/10/07/26/084325.html

PerlCasual 初心者向け勉強会:Twitter ボット by sugyanさん

  • 始まる前からTwitterのTL上では全裸というキーワードが飛び交っており、始まる前から楽しみにしていました。
  • ライブコーディングは前回の牧さんの時もとても面白くとても期待していました。しかも今回も前回のTwitterAPIを使うという共通点があり、お二人の違いという点も注目していました。
  • 実際のコーディングを見ると、本当に流れるようなコーディングでスゴいの一言です。しかもあんなに沢山の人に見られている中で、、スゴいです。
  • また、Net::TwitterやConfig::PitやYahooの形態素解析APIの使い方など、勉強になることが沢山ありました。配列からランダムな要素を取り出す時にrand関数を使う方法などはなるほどなぁと思いました。
  • 実際のコードを見てみるとzenra botが50行くらいで作ることが出来るって本当にすごいなぁと思いました。
  • コーディングの合間にあるyusukebeさんの説明や補足もとてもわかりやすく、いいコンビだなと思いました。
  • ペアプロならむ、ペアライブコーディングも面白いなぁと思いました。

http://d.hatena.ne.jp/sugyan/20100724/1279910155
http://gist.github.com/487308

HTML5時代的位置情報 by yappoさん

  • HTML5時代になり、位置情報の取得がjavascriptのGeolocation APIなどを利用することで簡単に出来るのでどんどん使いましょうというお話でした。(常識的なブラウザでは使用可能。)
  • その際、測地系の違いでGeolocation APIlivedoor地図情報のAPIでは取得できる位置にズレがあるなど、全く知らなかった情報があり、とても勉強になりました。
  • またyappoさんによるGeo::Coordinates::Converterや、miyagawaさんによるGeo::Coder::Googleなど、位置情報に関するモジュールもたくさんあり、Perlでも利用できる状況になっているとのことでした。
  • 位置情報を使ったサービスについては、foursquarelivedoorのロケタッチなどこれからもどんどん増えそうですので、勉強したいなと思いました。

http://search.cpan.org/~yappo/Geo-Coordinates-Converter-0.02/
http://search.cpan.org/~miyagawa/Geo-Coder-Google-0.06/lib/Geo/Coder/Google.pm

みんな大好き Encode by xaicronさん

  • Perlで日本語を扱う際に必須となるEncode.pmについてのお話でした。
  • 外部からの入力をdecodeして、ごにょごにょしてencodeして外部に出力するということが基本で、自分自身もこれを理解するまでは苦労させられました。
    • 標準入力やDBなどからPerl内部に入ってくる値はByte形式になっている。
    • Perlの中で文字列として扱うには、decodeしてflagged utf8形式にしてあげる必要がある。
    • flagged utf8形式にすることで、マルチバイトの文字列の1文字を正しく1文字として処理することが出来る。(文字列関数を利用する場合には必須。)
    • flagged utf8形式のまま外部に出力しようとすると、「wide character 〜」とエラー出力されるので、出力する際は、encode関数にて、Byte形式に戻してあげる。(文字コードを指定することで、指定の文字コードのByte形式で出力することが可能)
  • 「Byte形式」や「flagged utf8形式」など、言葉だけを聞いてみるとわからなくなってしまう部分もあると思いますが、上記の基本(decodeしてごにょごにょしてencode)を常に意識しておくことが重要なのかなと思いました。
  • perl 5.8.1より下のバージョンでは、おかしな挙動をすることがあるので、それ以上、出来ればPerl5.8.8以上のバージョンを使用sることが推奨だそうです。

それいけアパッチログレスポンス時間解析 polockyさん

  • スライドの出力が出来なかったようで続きは懇親会でということになりました。。
  • 是非聞きたかったです!

Use::Strict::Fast piarraさん

  • use strict遅いよねという流れで、まさかのstrict.tvの紹介でした。こういう展開になるとは思っていなかったので、とても面白かったです。
    • http://ustrict.tv/
    • というか皆さん早すぎです。そしてこうやって打ってみると「use strict」は意外と打ちにくいなぁということに気づかされました。
  • その中で紹介されていたcommon::senseは知らなかったので、とても勉強になりました。
    • いつもはお決まりのように下記の3つを書いていましたので、それをやってくれるモジュールがあるとはさすがCPANは何でもあるなぁと思いました。
use utf8;
use strict;  # no 'refs'
use warnings;

夏コミ新刊Perl同人誌の宣伝 by まかまかさん

  • Acme大全2010」というAcmeモジュールの紹介と用語集がついた同人誌の紹介でした。目次の紹介を見ていてそのボリュームにビックリさせられました。読んでみたい!と思いました。
  • 目次だけでもワクワクします。

http://www.donzoko.net/cgi-bin/tdiary/20100724.html
http://www.donzoko.net/gakuya/

懇親会やまとめなど

  • 懇親会は前回は参加することが出来なったので、今回参加出来て本当に楽しかったです!皆さんのPerlに対する愛を強く感じました。
  • 今の自分には理解が難しいような内容の話から自分の知識を整理出来るような基礎的なセッションまで内容も幅広く、Perlの楽しさを再確認させてくれるそんなイベントでした。
  • また、下記のエントリにもあるように、CasualなPerlerとして自分もCasual PerlPerlに貢献していきたいなと感じさせてくれました。

発表者、関係者の皆様、本当にありがとうございました!