2012年12月17日月曜日

Perl Beginners #6 開催します

ご無沙汰しておりました。主催のytnobodyです。
さて、下記の要領にて来年一発目のPerl Beginnersを開催します!

ATNDhttp://atnd.org/events/35182
場所:
  ※都合により開催場所が変更となっております。
  渋谷区地域交流センター新橋 区民交流室A(仮) 最寄り駅は恵比寿
  渋谷区神宮前穏田区民会館 集会場 (最寄り駅・明治神宮前/原宿)
日時: 2013/01/25 19:00 - 21:00

今回のテーマは「配列」です。まあ、いつも通りテーマにガチガチに沿う必要はありませんので、参考までに。

なお、まだ懇親会についてはノープランなので、おすすめとかありましたら、ぜひ@ytnobodyまで。

2012年10月28日日曜日

Perl Beginners #5 開催しました!

開会直前の様子。

5回目の開催!

10/26(金) 19:00、原宿(渋谷区神宮前穏田区民館)にてPerl Beginners #5を開催いたしました。
オシャレな街にひっそりと佇むレトロな雰囲気の会場は比較的広々しており、過去最大級の参加者数が難なく座席を確保できるほどでした。

ビギナーズセッション

@sasakure_keiさんによる発表

今回はビギナーズセッション登壇予定が1名のみだったので、時間的に大分余裕がありました。
@sasakure_keiさんは「RESTAPIを提供するために」という表題での発表で、現在作っているRESTAPIではCGI::Application::Dispatcherを使って開発をしているものの、リクエストURLの解析が必要なので、この手間を軽減するための良い方法はないか、というものでした。

URL->ロジックのマッピングをどうにかしたいとの事。

聴衆からは、「Amon2で実装するのはどうか」、「Router::Simpleで解決できる」などの解決案が挙げられ、発表者の@sasakure_keiさんも納得していた様子でした。

時間が余った!飛び入り発表タイム!

ビギナーズセッションは19:05~19:55までの50分間を見込んでいたのですが、予想外にあっさりと終わってしまった(19:20頃)ので、急遽飛び入り発表を募ったところ、関西からお越しいただいた@__papix__さんが挙手。早速発表していただきました。

飛び入り1号! @__papix__さん

「たすけてください!」というスライドで発表を始めた@__papix__さんですが、修論に追われる生活に労苦しているらしく、修論のテーマである「PerlでGPGPUな演算」についての質問をしていました。

「Perlでいい感じにGPGPUな演算をする」

Perlでかかれたプログラムの中から特定のサブルーチンのみを取り出して、CUDAのコードに置き換えたい、という要求だったのですが、これについて、@__papix__さんと同様にPerlでGPGPU演算を試みた経験のある@moznionさんを指名した上で、「何かいい方法無いですか?」と質問。

@moznionさん曰く「裸足で逃げ出した人間なので・・・」

しかし、彼もまた同様の労苦を経験している模様ではあるものの、「裸足で逃げ出した」とのことでした。そこで質問を噛み砕いて、「Perlのコードから特定のサブルーチンを抜き出して解析/変換したい」というものに置き換えてみると、数名のPerlハッカーから、「B::Deparseを使えばいいのでは」という意見が挙げられました。

「Acme大全」の宣伝をする@maka2_donzokoさん

続いて、@maka2_donzokoさんが「Acme大全 2012」の宣伝を行いました。この本は「どんぞこ楽屋」(まかまかさんの同人活動サークル)が作っており、とりわけ数少ないPerl関連の同人誌となっています。名前に違わずAcmeモジュールの百貨店と呼べるほど、Acmeモジュールがたくさん紹介されています。
ちなみに、主宰自身もこの本を夏コミで購入したのですが、特に第1章「Acmeの一歩」は、Perl関連の用語集となっており、むしろPerl初学者にこそオススメしたいものとなっています。

宣伝が終わった時点でまだ時間が余っていたので、さらに飛び入りを募ったところ、@moznionさんが「質問したい」というので、登壇していただきました。


さらに飛び入り!@moznionさん

自作のCLIツールで状況進捗がわかりやすいように、foreachループの中でピリオドを1個ずつ表示していくようにしたものの、処理中にそれらが表示されることが無く、処理が終了してから一気に沢山のピリオドが表示されてしまうそうで、どうすればいいのか教えてほしい、という質問をされていました。
聴衆からは「"$| = 1;"をprint構文の後ろにつける」「むしろprintの前だ」「プログラムの最初のほうでつけるべきだ」などの意見がでてきたのですが、引数なしで実行するとエラーを返す作りらしく、発表者自身がしばらくはそのことに気がつかずはまっていました。最終的に別の問題がプログラム中に存在するっぽい事が発覚し、聴衆からの意見を確認することはできませんでした。
また、主宰自身も記憶からすっかり抜けていたのですが、より近代的な方法として、
use IO::Handle;
STDOUT->autoflush;
とするやり方があり、こちらの方が可読性等の面で、よりベターです。(@charsbarさんにフォローアップしていただきました。ありがとうございます。)

ライトニングトーク

文字コードについてのLT @toku_bassさん

ライトニングトークのトップバッターは@toku_bassさんで、「文字コードについて」という表題で発表していただきました。
初学者がよく躓く文字化けに関する問題を、わかりやすく原因を解説し、どうすれば文字化けを回避できるかを説明していました。
Perl Beginnersとしては、ぜひ取り扱いたいと考えていた題材であり、特に初学者の方には非常に参考になったものと思います。

@moznionさん発表の「なれるCA」

続いては@moznionさんの発表で、「なれるCA」というLTでした。
最近CPAN Author(CA)になった彼は、CPAN Authorになるまでの労苦と、CPAN Authorになることで得られるメリットをアツく語ってくれました。ちなみに彼の処女作は「Acme::AjiFry」というAcmeなモジュールですが、現在はよりマジメなモジュールを開発中とのことです。

「いいえTimeZoneです」 @i47_rozaryさん

次は「いいえTimeZoneです」というタイトルで、@i47_rozaryさんに発表していただきました。
Time::Pieceで、「2011/12/31 26:00:00」 のような24時越えの時刻表記をサポートした「Time::Piece::Over24」というモジュールをCPANにアップロードした後、しばらくして沢山のバグレポート(テストに失敗する)が来た、という時のお話だったのですが、いわゆる「サマータイム」に起因する時間ずれの問題であったらしく、サマータイムに対してどのように対処すべきか、という質問をしていました(LTなのに!)。

Time::Piece::Over24の使い方

対処案としてあげられたのは、「テストをなおして『仕様です!』と言い切る」「テストでタイムゾーンを指定する」「サマータイム関連のテストを追加する」など、仕様の追加や変更ではなく、概ねテストコードを充実させることによる対処が多くあげられていました。
若干ハイレベルな内容だっただけに、初学者の方には理解しづらいところがあったかもしれませんが、主宰としてはまず、「自分の書いたコードで問題が起こった場合に、親切に教えてくれる存在が、Perlコミュニティにはあるんだよ」という事をなんとなく把握してもらえれば、それでいいのではないかと思います。

主宰(@ytnobody)によるLT「入れ子構造を分解する」

最後に主宰発表のLT「入れ子構造を分解する」(スライドこちら)です。
リーダブルコードの受け売りなところがあり、例となったコードもだいぶひどいし(メールアドレスのマッチング部分とかものすごくテキトウ)、ツッコミどころもわりと多め(条件判断のためのサブルーチンにdieを含めるのはどうかとか)だったかと思いますが、言いたかったことは、
  • 長大なサブルーチンには、それを分解できる余地があり、そうすべき
  • 深い入れ子(ネスト)構造を別のサブルーチンとして切り出そう
  • 分散してしまった条件文の統合を行って、コードの見通し良さを挙げよう
  • サブルーチンの名前がシンプルにならない場合は、まだ分解できる余地があるはず

くらいのことでした。Perlというよりも、プログラミング初学者向けに、できるだけCPANやPerl特有の問題から切り離して解説したかったので、そういう話題にはあえて触れませんでした。

懇親会(not ガチホなんとか)

T.G.I.フライデーズというアメリカンなレストランで懇親会を行いました(写真はきっとそのうち誰かが提供してくれるはず!!!!)。

コーラ飲み放題ということもあって、図らずも途中でコーラ.pm(勉強会の後の懇親会でアルコールのかわりにコーラばかりを頼むという珍現象。Takao.mtというイベントにて言われ始めた)の様相を呈し、食べ物もアメリカンなので、さながらアメリカにいるかのような状況になっておりました。
また、先日開催されたChiba.pmの話や、YAPC::Asiaの話など、各々が思い思いの話題で盛り上がっていました。

さて次回は・・・

本来だと隔月開催なので、12/28(金)あたりの開催を狙うところなんですけど、さすがに年の瀬、皆さんゆっくりしたいと思いますので、年明けの1/25(金)開催を目標とします!


2012年9月6日木曜日

Perl Beginners #5 開催します。


主宰のytnobodyです。みなさんコニチワ。

10/26(金) 19:00より、Perl Beginners #5 を開催いたします。
場所は渋谷区神宮前穏田区民舘(原宿)です。

参加ご希望の方は、ATNDから参加登録をお願いします。
ビギナーズセッション及びLTでの発表を希望の方は、その旨をコメントに書いてください。

あと関係ないのですが、今回はYAPC::Asiaの後ということもあるので、テーマを特に定めません。全然関係ありませんね。とりあえず、存分に自由な内容で発表してくださいね。
テーマが無いついでに、初歩的な質問とかもっともっと出てくるといいんじゃないの、と思っています。

タイムテーブル

19:00-19:05 主宰挨拶 + ビギナー向けmini-tips
19:05-19:55 ビギナーズセッション
 @sasakure_kei: RestAPIを提供するために
19:55-20:05 休憩
20:05-20:45 ライトニングトーク
 @toku_bass: 文字コードについて
 @moznion: なれるCA(CPAN Author)
 @i47_rozary: タイムゾーンから逃げられない
 @ytnobody: 入れ子構造を分解する
20:45- 片付け, 懇親会

懇親会

原宿あたりのお店でいま選んでいるところです。
こちらのATNDで参加登録できます。

2012年8月25日土曜日

Perl Beginners #4 開催しました

名前空間についてLT by toku_bass

主宰、まさかの遅刻

8/24(金)、主宰の遅刻(道に迷いました、すみませんでした!)などの影響で開始が19:15と、予定より15分ほど遅れての開始となりました。

__papix__さんからのお土産

ちょうど全国のPerl関連勉強会を行脚中の__papix__さん(Perl入学式代表取り締まられ役)より、北海道土産のとうきびチョコと仙台土産の牛たんパイをいただきました。ちなみに彼は今日(8/25)、Niigata.pm tech talk #2に参加すべく、新潟に向かっているはずです。

USTREAM配信

また、今回はPerl Beginners始まって以来の試みとして、USTREAM配信を行いました。
回線やマイク周りの機材などの影響もあって、少々視聴しづらくなってしまったのは申し訳なかったです。
それでも、LTあたりからはumeyukiさんの見事な調整によって、比較的クリアな品質で配信できた模様です。
今回配信を担当していただいたumeyukiさんには本当にお礼してもし足りないほどのご協力を賜りました。ありがとうございました。

ビギナーズセッション



まずトップバッターは全国行脚中の__papix__さんから。
プログラミング言語の学習には「読む・写す・書く」の3つが重要との考えから、オブジェクトやパッケージの概念を学ぶ上で、教材としてオススメのモジュールは何か、という質問です。
寄せられた回答としては、Perlオブジェクト指向プログラミング(モジュールではないですが)やはじめてのPerl(オブジェクト周りの解説が冗長では?との意見も)などが列挙されました。

2番手はhsksyuskさんの質問。
Web::Scraperを使ってwebページを取得し、HTML中にあるリンクURLだけを抽出しようとした際に、Data::Dumperを使って中身を出力してみたところ、「blessやdoなどの構文が書かれた良くわからない物」がでてきたので、

  1. これは何なのか
  2. 構文の意味を知りたい
  3. なぜ$res->{link}とすれば、リンクURLを取得できるのか
という疑問が沸いたとのことでした。
ちなみに上記の「よくわからないもの」はURI::httpオブジェクトだったのですが、2の構文解説と3の属性情報取得については、maka2_donzoko先生にヘルプしていただきました。(本当にたすかりました!)
とくに3については、URI.pmの中でuse overload をしており、そのため通常のhashrefに基づく考え方のみではうまく説明できなかったところでして、主宰としても非常に勉強となりました。

LT

継承の解説に現れたお猫様

ライトニングトークは、まず主宰から「ライブコーディング(?)で学ぶPerlオブジェクト指向」というタイトルで発表をさせていただきました。(コードはgithubにあげてあります。)
当初の予想通り、結構時間がかかってしまいまして、とても「ライトニング」と呼べるようなものではありませんでしたが、参考としていただけると幸甚です。

次にtoku_bassさんから、「名前空間とかの話」を発表していただきました。
そもそも名前空間とは何か、連想配列で表現できること、"use Hoge::Foo"とHoge::Fooパッケージには関係がないということなどを解説。それらの背景事情より、パッケージ名をtypoした際、コンパイル時のエラーが出ず、実際に実行してから始めてエラーが出たりしてハマる点などについて細かく説明していただきました。参加者の中からも非常に参考になるとの感想があがっていました。

懇親会

やけに冷房の効いたハワイにて。

今回の懇親会は「ロコズテーブル・マハナ」で行いました。ハワイアンダイニングということもあってか女性客が多かったのですが、半個室の対面形テーブルを囲んでの乾杯となりました。※ガチホモ合コンではありません!!!!

techno_nekoさんからHokkaido.pm Casualについてのお話(もう5回目!)や、kaztrさんからChiba.pm立ち上げについてのお話など、ほかにも比較的濃い目の話題を伺うことができました。

次回は・・・

会場を銀座から移して、10/26(金) 19:00開催予定です。発表テーマは特に指定無し!

参加してくれた方のレポート

@hsksyuskさんのレポート
@kastrさんのレポート
@takuan_v2さんのレポート
@techno_nekoさんのレポート


2012年8月14日火曜日

Perl Beginners #4 を開催します

ATND立てるだけ立ててすっかり油断している、主宰のytnobodyです。みなさんいかがお過ごしでしょうか。

すっかりこちらでの告知が遅くなりましたが、8/24(金) 19:00より、Perl Beginners #4 を開催いたします。

参加ご希望の方は、ATNDから参加登録をお願いします。
ビギナーズセッション及びLTでの発表を希望の方は、その旨をコメントに書いてください。
今回のテーマは「オブジェクトとパッケージ」ですが、テーマに縛られ過ぎず、自由な内容で発表いただいて構いません。

タイムテーブル

19:00-19:05 主宰挨拶 + ビギナー向けmini-tips
19:05-19:20 ビギナーズセッション1 @__papix__
19:20-19:35 ビギナーズセッション2 @hsksyusk
19:35-19:50 ビギナーズセッション3 ※誰か居れば
19:50-20:00 休憩
20:00-20:30 ライトニングトーク @ytnobody, @toku_bass, ほか誰か居れば。
20:30- 片付け, 懇親会

渾身会

渾身の思いでお店を探しております。
確定次第、こちらもATND立てますので、よろしくお願いします。

8/14 18:23 更新
こちらのATNDで参加登録できます。今回はハワイ料理の予定です!

2012年7月1日日曜日

Perl Beginners #3 開催しました



6/29(金)19:00~20:30(実際は10分ほどオーバー)にかけて、Perl Beginners #3を開催しました。

ビギナーズセッション


今回は、ビギナーズセッションでの発表者は@studio3104_comさん1名でした。若干さみしいなーとは思ったものの、テーマが「データベース」ということもあって、質問すること自体が割りと難易度高めだったのかな、と反省しております。
さて、@studio3104_comさんの発表ですが、まさかのfluentd!!!なんというガチ!!!(githubはこちら。)

※彼は事前に主宰にリンクまで送って、「こういうのでOKですか?」って訊いてくれてたにもかかわらず、僕のほうできちんと確認しきれないまま(要するにもちょっとソフトに!とかいうツッコミを入れないまま)OKだしちゃったので、その辺はまあなんと言うか、ごめんなさいです。。。

やりたいこと&質問事項を、掻い摘んで書き出すと、

 やりたいこと
  • MySQLのslow-logを監視して、slowなクエリを抜き出す
  • use db_nameのようなDB変更クエリを元にDBを選択し、 抜き出されたslowクエリに関するEXPLAINを実行する
  • 実行結果を別ログに吐き出す
質問事項
  • DBがシャーディング(このブログが詳しい)されているので、異なるDBでもテーブル構造がまったく一緒だったりする。
  • どのDBに関するslowクエリなのかを判断する方法が、知ってる限りuse db_name を見つけるくらいしかない。
  • 特にプログラム起動直後は、use db_name が見当たらないケースが発生するので、DBの特定方法でもっと良い方法は無いだろうか。
というもので、ものすごくガチではないものの、beginner向けとしてはなかなかパワーのある内容でした。



ある程度質問内容を噛み砕いて説明した甲斐もあって、聴衆からはさまざまな意見が出てきました。最初のほうは、

 「クエリのコメントにDB名を書いておけばログにコメントが出てくるんじゃないのか?(実際はログに載らなかったのでダメ)」
 「当たり障りのないwhere文にDB名を書くのはどうか?(一同爆笑。クエリに手を加えられないのでNG)」
 「プログラム側で各DBのスキーマを持っておいて、クエリ内のテーブル名を元にスキーマを漁り、DB名を持ってくるのはどうか?(シャーディングのものがあるので、あまり意味が無い)」

というバッドノウハウかつ、あまり効果の期待できないものが色々挙げられたのですが、クエリを発行するシステムがwebアプリということもあって、最終的には

 「EXPLAINを行う直前に、どのDBを使っているのかを問い合わせる別のwebアプリを用意し、間に挟みこむ」

という方法がベターであろうという話になりました。

あと細かいところで、

my ($foo) = $str =~ /^foo:(\w+)/ if $x;

のような書き方は$fooがそもそも定義されないケースがある(modperl)ので、オススメできない、という意見もありました。

ちなみに@studio3104_comさんは、perlは3ヶ月くらいしか触っていないとのことでしたが、ほかの言語の経験がかなり豊富な様子でした。
※本人曰く「「他の言語は経験豊富」は誤報です!!! 他の言語はHello Worldしか出来ませんー 」だそうです。そんなまさかーw

休憩


ライトニングトークまでの10分間、休憩をはさみました。その間も、一部では先ほどのDB名特定について議論していたり、主宰による雑多な質疑応答を交えたりしました。

ライトニングトーク



ライトニングトークの一発目は、主宰による「Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話」と題して、過去の恥さらしとORマッパー利用遍歴の紹介を行いました。(スライドはこちら)
言いたかったこととしては、DBI+MySQLにまず慣れよう。ORマッパーはその後でいい、ということですね。 


続いて@maka2_donzokoさんのLT。手始めに自己紹介として「薄い本作っています」と言いながら「Acme大全」や「Parumon」の宣伝を行った後、「MySQL使ってる方ー(多数挙手)」「PostgreSQL使ってる方いますか?(2~3名挙手)」「僕もPostgreSQL使ってますけど。少ないですねー」という感じで、いろんなデータベースがありますね的な話をしてたところ、突然スライドの題字「データベース」がもぞもぞ動き出し、いつの間にか「ダースベーダ」になってしまい、下の写真のように。。。


さらに、これだけだとPerlとの関連性が薄いのでという理由で、Perlにはsort()などで登場する「スターシップ演算子 <=>」があるよ(ベイダー卿が<=>に搭乗している!?)という話と、CPANモジュールの1つ、Lingua::Alphabet::Phonetic::StarWarsを使って、ベイダー卿(Vader)が"LOVE"の中に居るんだよ、という話で締めくくりました。まかまかしい!


3人目は@toku_bassさんによるMySQL::Diffの紹介です。開発->検証->本番という3つの環境について、DBのテーブル構造をあわせたい、という、おそらくある程度経験を積んだ開発者なら誰もが思い悩む部分を、「diffをつかってpatchを作るかの如く」解決してしまおう、というものとのこと。


Beginnerにとってだけではなく、Regularな方にとっても細かく役に立つモジュールの紹介でした。
本番DBと開発DBが異なる、という割とカオスな状況は往々にして遭遇する状況ですので、このようなツールの存在はとてもありがたいですね。


最後のLTを務める@hirobanexさんは、Beginner向けにTengを紹介してくれました。
DBIをある程度使えるようになった後は、開発効率を劇的に向上してくれるORマッパーを使いたくなるだろうということで、「作者が日本人」で「割と広く使われており」「そのため日本語で質問しやすい」という感じの利点を前面にTengをオススメしていました。




あと、素のDBIではどうしてもセレクト系メソッドがたくさんあって、Beginner的には混乱しそう、ということもあって、このあたりの事を考えなくてもよいTengのお手軽さをアピール。
「Tengのdoわかりやすいね。」という感想が出るほど、良さが伝わった様です。


ブルガリア料理のお店で懇親会の様子

※何度も言いますが、ガチホモ合コンではありません!!!11(こことか



写真持ってる人、居たらシェアしてくださいね!
ブルガリアンカクテルは、飲んでるときはそんなに強いと思わなかったけど、後でものすごい酔いが回って、かえる頃には見事なヨッパライになっておりました。。。

次回は8/24(金) 19:00開始の予定です。場所は銀座周辺で考えています。


参加した方のまとめやレポート

@xtetsujiさんによるtogetter 
@penguinJr1さんによるレポート
@toku_bassさんによるレポート
@take4_kさんによるレポート
@hirobanexさんによるレポート



2012年5月12日土曜日

Perl Beginners #3 開催いたします



さて、前回の開催からまだそんなに時間がたっていませんが、Perl Beginners #3の会場を押さえましたので、お知らせいたします。

日時

2012/06/29(金) 19:00~20:30

場所

東京都中央区京橋区民館会議室 3号室


大きな地図で見る

テーマ


今回のテーマは「データベース」です。とはいえ、いつもの通りテーマにとらわれすぎず、自由に発表していただいて結構です。

タイムテーブル

19:00-19:05 主宰挨拶
19:05-19:20 ビギナーズセッション1
19:20-19:35 ビギナーズセッション2
19:35-19:50 ビギナーズセッション3
19:50-20:00 休憩
20:00-20:30 ライトニングトーク
20:30- 片付け, 懇親会

ATND

懇親会について


今回の懇親会は、非常にめずらしいブルガリア料理のお店を予約しました!

参加希望の方は、こちらのATNDに登録してください!

2012年4月28日土曜日

Perl Beginners #2 開催しました!

4/27(金) 19:00~ 文京シビックホール 会議室1 にて、Perl Beginners #2 を開催しました。
会場設営直後の様子。


悪天候にもかかわらず、19人の方が参加してくださいました。ありがとうございます。
今回はJPAよりスペシャルゲストとして、@zigorouさんが参加してくださいました。

また、今回は女性の方の参加もあり、Perl Beginnersのひろがりが感じられました。

※この記事については後日、内容を補足いたします。不足などありましたら、@ytnobodyまでご一報を。
※発表に用いられた資料については、発表者の方から共有があり次第、リンクを設けさせていただく予定です。
※各参加者の敬称は省略させていただいております。ご了承ください。

ビギナーズセッション

質問 by @c_tyo

CGI+jQueryでfacebookのような動的に変遷するページを作りたいが、いくつか悩ましい点がある、と言う質問。
- リクエストごとにif文による条件分岐が多くなってしまうが、うまい取りまわし方はないか?
- ajaxを実現する上で、他にもっとよい方法はないか?

回答

@irmr_log
WAF(=Webアプリケーションフレームワーク)を使うと、リクエスト毎の条件分岐を書く必要がなくなる。

@ytnobody
JSONを出力するのにはJSON.pmを使うと非常に楽。場合によってはWAF側でJSONの出力をサポートしている場合もある。

質問 by @i4djunichi

「デプロイの方法について」というようなタイトルの質問だったけど、内容はモジュールの依存性解決についての質問だった。
- cpanm + local::libで対応する方法があるようだが、他にどんなやり方があるのか。

回答

@zigorou
DarkPANを使ったやり方があると言うことを紹介。local::libを使う方法と同じくらいにカジュアルに使える、など。

@ytnobody
DarkPANのマネージャ実装として、OrePANを紹介。

LT

@ytnobody
PSGIへの誘い、と題して、CGIとの比較、ライブコーディング(実はすっかり忘れていた)を交えて、「これからCGIを学習するのなら、先にPSGI/Plackを触ってみよう」というメッセージをこめた発表。

@poohtarou
Kossyのサンプルか何か?(←ごめんうろ覚えで申し訳ないです。資料希望。)で404 Not Found がでていたのを、片手間レベルで修正/実装したという発表。Kossyが非常に簡単であることを強調していました。

@irmr_log
LWP::UserAgentの文字エンコーディング自動判別ロジック(主にdecoded_content() あたり)が、裏でどれだけがんばっているのかについて解説。webコンテンツの文字エンコーディングに関わる闇(?)の部分に着目した、割と玄人向けの発表でした。

JPAセッション

JPA(=Japan Perl Association)の@zigorouさんから、今年度のJPAの活動に関する発表をしていただきました。

まず最初にJPAという組織に関する概説にはじまり、活動内容として、perl関連イベントへの講師派遣や金銭的支援、perl導入企業のリクルーティングに関する広報、YAPC::Asiaの企画/運営を行っていると説明。

そしてYAPC::Asia 2012 Tokyoについての紹介を行い、発表が締めくくられました。

懇親会

思い思いに語らう参加者

懇親会への参加者は12名(全員男性)でしたが、予想以上に他の言語に触れている方が多く、perlは趣味で使っていたり、第2言語としての用途であったりして、メインでperlを利用されていると言う方はだいぶ少なかったように思えました。

今後はぜひメインでもperlが利用されるよう、そのメリットを知らせるとともに、はじめの一歩としての勉強会であり続けたいと思いました。

資料


次回

6/29(金) 19:00開催での計画を立てております。
詳細が固まり次第、当ブログ/twitterで告知をさせていただきます。


2012年3月5日月曜日

Perl Beginners #2 開催します。

※写真はイメージです


JPAさんにご協力していただきます!

Perl Beginners #2 ですが、 JPAさんにご協力のお願いをしたところ、OKの返事とともに、スペシャルな方がゲストとして登壇して下さることになりました!

日時・場所

日時:4/27(金) 19:00~
場所:文京シビックホール 第1会議室

タイムテーブル

19:00-19:05 主宰挨拶
19:05-19:20 ビギナーズセッション1
19:20-19:35 ビギナーズセッション2
19:35-19:50 ビギナーズセッション3
19:50-20:00 休憩
 20:00-20:15 ライトニングトーク
20:15-20:30 JPAセッション
20:30- 片付け, 懇親会


ATND

Perl Beginners #2 本会
ビギナーズセッション枠
ライトニングトーク枠
懇親会

アンケート結果

まず会場ですが、文京シビックホールがダントツの1位で、その後を渋谷区勤労福祉会館と渋谷区初台青年館が同票数の3位、きゅりあんは最下位でした。

そして会場代ですが、皆さん大体500~1000円の間なら手伝っていただけるとの事でした(中には全額出してもいいぜ!というツワモノも居ましたがw)
しかし!せっかくアンケートにご回答頂いておきながらアレなのですが、なんとJPAさんのご協力により、今回も会場代無料で開催できる見込みです!JPA++

次にテーマですが、順位としては、Web>DB=ツール>テスト=正規表現 という結果となりました。
ということで、今回のテーマは「Web関連」でお願いします。

そして今回はLT・ビギナーズセッションともに発表希望者が2名ずついる模様です。今回はLT/ビギナーズセッション ともに別個でATNDを立てますので、発表したい方のATNDに登録をお願いします。

最後に、開催時刻は皆さんおおむね19:00で問題なしとのことでしたので、今回も19:00開始とさせていただきます。

カメラスタッフをしてくれる人募集

当ブログに掲載するレポートに、より雰囲気を伝えやすくするための写真が欲しいと思いました。
そこで、Perl Beginners #2の様子をカメラで撮影し、Picasaウェブアルバムにアップしてくれる有志を募集します。
やってもいいよ!という方はぜひ、ytnobody at gmail dot com までメールいただくか、@ytnobodyまでご一報ください。

2012年2月26日日曜日

Perl Beginners #1 開催しました

去る2/24(金)、ついにPerl Beginners #1を開催しました。
慣れない主催の心配をよそに、当日は大いに盛り上がることが出来ました!
参加していただいた皆様、駅から会場が遠いとか、電源&wifiがないという状況にもかかわらず、暖かく見守っていただき、ありがとうございます。
そして、参加していただいて有難うございました。

想定以上のレベルの高さ

正直、僕が想定していた以上に質問のレベルが高かったですね。
ざくっと羅列すると、
・テストの書き方について
・Amon2が最初に生成するテストコードの内訳
・WWW::Mechanizeの扱い方
・日本語(=マルチバイト文字)の取り回し方
・Ruby on Rails並に手早く開発のできる推しWAFは何か
等など。およそ初心者とは思えないレベルですね!

ちなみに、事前にアンケートをとっていたんですが、回答してくれた方の平均的なPerl使用暦は大体1年~2年程度でした。もう中級者を名乗ってもよいレベルかとおもいます。
なお、後で聞いた限りでは、Perl使用暦1年未満の方も結構いらっしゃったようでした。そういった方々に今回の質疑応答を(ぼんやりとでも)把握してもらえたのか、若干気がかりではあります。

※一応フォローをさせてもらうと、ここまで高レベルな質問じゃなくても全然OKですし、そういうのをむしろ歓迎していますので、↑のような状況だからといって、質問控える必要は全くないですよ!

新規のPerl初心者は、実は少ないのではないかと言う話

二次会に向かう途中、参加してくれたメンバーの一人と話していたのですが、実は新規にPerlを学習しようと考えている人は少ないんじゃないのか?という話題になりました。
かつてサーバサイドプログラムに向いた言語がPerl一択だったのが、今ではPython,Ruby,PHP等の選択肢が増えたことが背景にあるのだろうという結論に達し、Perl Beginnersでも「初心者未満」の方にどんどんリーチしていかないといけないな、と感じました。

二次会は大盛況でした!

対面式の長座敷という席で、参加者が全員男性だったので、「ガチホモ合コン」と揶揄される様子となってしまいましたが、Perlや技術的な話題だけに限らず、大いに盛り上がりました。@hattara_tw ++

Perl Beginners #2 やります!

実は質問者が登壇して質問するというスタイルは、僕が1度だけ参加した「Scala勉強会」のやり方を参考にしてみたのですが、今回は思った以上に評判が良かったので、4月の終わりごろに Perl Beginners #2をやろうかと考えています。
また予定が決まり次第ブログ・ATND・ツイッターなどで告知をしていきますので、ぜひよろしくお願いします。

そのほかのレポート

@hsksyuskさんのレポート
@kkotaro0111さんのレポート
@oke_pyさんのレポート
@c_tyoさんのレポート
@irmr_logさんのレポート
@ttak100さんのレポート
@yohei-aさんのレポート

追伸:「ケーキ作る」ってネタで言ったのにwwww

2012年1月17日火曜日

perl-beginners #1 開催します!

会場および二次会のお店をおさえましたので、改めて Perl Beginners #1 開催のご案内をします。

日時と会場


ATND: http://atnd.org/events/24780
日時: 2012/02/24(金) 18:30 受付開始
会場: 品川区立五反田文化センター 第4会議室

※あまり早めに来ても、部屋が開いていないと入れませんので、ご注意ください。
※会場での食事はNGです。

スピーカー枠について

スピーカー枠をおさえたい方は @ytnobody までご連絡ください。

事前アンケート

Google docs上にアンケートを用意しました。
参加者の人となりをやんわりと知っておきたいのと、当日の話題づくりに役立てたいという狙いのものなので、答えてもいいよという方、ご協力をお願いします!

タイムテーブル


19:00- 主催挨拶 @ytnobody (5min)
19:05- ビギナーズセッション 1 [空き] (15min)
19:20- ビギナーズセッション 2 [空き] (15min)
19:35- ビギナーズセッション 3 [空き] (15min)
19:50- 休憩(10min)
20:00- LT
LT 1 @hattara_tw (5min)
LT 2 [空き] (5min)
LT 3 @ytnobody - 大ざっぱにオブジェクト志向 (5min)
20:20- 片付け (5min)
20:30- 二次会 (とりさく 五反田店)

ビギナーズセッションについて

質問者(=大抵初心者)が5分程度で話(というより質問)をして、それについて10分程度で質疑応答をする形式のセッションとなります。
合計15分が割り当てられますので、その範囲内でご自由に質問・発表をしてください。
例えば、「どうやってPerlを習得したのか」とか「おすすめの書籍は?」、「Perlモジュールって何?」のような、直接コードが出てこなそうな内容で全然構いません。

LTについて

いわゆるライトニングトークと呼ばれるものです。
5分間で自分のお好きなテーマに沿って、手早く発表してください。

二次会について


@hattara_twさんに幹事をお願いしましたところ、二つ返事で快諾してくださいました。
@hattara_tw++

2/7(火) 幹事さんがお店をおさえてくれました!

・会場:とりさく 五反田店

2012年1月16日月曜日

3月の頭くらいにperl-beginners #1 やろうかと思います

計画中ではありますが、3月上旬の金曜夜に新宿か品川かその付近(仮)でperl-beginners #1を開催しようと企んでおります。

大まかな枠としては、

・主催あいさつ(5min)
・ビギナーズセッション 1(15min)
・ビギナーズセッション 2(15min)
・ビギナーズセッション 3(15min)
・LT 1(5min)
・LT 2(5min)
・LT 3(5min)
・片付け(5min)
・2次会(2H?)

くらいに考えています。

前回の記事でも書いたのですが、

> 基本的に「質問者側が5分程度で話(というより質問)をして、それについて15分程度で質疑応答」というのを3セッションくらい、できればアンカンファレンス(参考)形式でやりたいと考えています。
> それプラス、5分のLT枠を3つくらい(多すぎるとだれるのでこのくらいがいいかなという主観で)用意して、最後に懇親会(2h)、という流れでできればハッピーですね。

この方式でやれればなーと考えています。(アンカンファレンス云々はさておき。事前に話したいという方がいれば、ぜひ@ytnobodyにご一報ください。)

ある程度企画が固まったらATND立てます。

まだ初回ですので、こだわったことはせず、気楽な集まりに出来ればなあと思いますので、ぜひご協力のほどお願いします。