JPAさんの講師派遣で@myfinderさんを迎えてのFukuoka Perl Workshop #23 でした。

Japan Perl Association (JPA)


最初は、@dragon3 さんの Plack::App::GitSmartHttp のその後の話。遅れての参加になってしまったので途中からしか聞けませんでしたが、ヌーラボさんのサービスで、Git over SSH をサポートするのに検討したTwistedというフレームワークの話など興味深かったです。しかし、勉強不足で理解が足りなかったかも。。。


次に@d_tsuruさんの開発環境とMojoliciousの話、どのような環境で開発をされているのかをお話されていました。Mojoliciousは触った事がなかったので、傍らでこそっとインストールしてちょこちょこ弄ってみましたが、ドキュメントが充実している印象をうけるのとヘルパースクリプトがあり、敷居が低く感じました。


最後は@myfinderさんの 50ms or die. を Perl で支える技術のはなしでした。
前提となるRTBの仕組みの紹介から始まり、丁寧に疑問点を解消しながらの進行で濃厚な時間を過ごせたと思います。
うろ覚えだけど以下の話が面白かったです。

  • フリークアウトさんのサーバー構成とボトルネックの話。
  • Riakを扱うPerlモジュールとその特徴、そして開発中のRiak::Liteの話
  • 自作サーバーと海外でのAWSの利用の話。


恥ずかしながらRiakのことを殆どしらなかったけど興味が湧いてきました。
普段あまり大きなデータを扱う事がないけど、時間を見つけて触れたらなと思います。


あと、何の準備もできずに参加してしまったので次回こそは何かトークしたいと思います!
@myfinderさん、JPAさん、会場をご提供いただいたヌーラボさんありがとうございました!

Perl入学式in福岡(仮)の準備で飲んで来ました。

だいたい合コンの話だったと思いますが、うっすら覚えてる事を書き留めておこうと思います。

おおまかな方針

  • 勉強会の対象者はプログラミング初心者とか未経験者で興味がある人。
  • 1年通してやるの大変そうなので3回構成とかでやって繰り返す。
  • WEBアプリとか、とりあえず動く楽しみを実感してもらう。ゆるふわ
  • 細かい事はとりあえずFBで意見交換して決める。

イデアとか

  • 初心者の人が、技術書や参考サイト、開発環境で悩まなくて良いようにする。
  • 作ったものを公開したい時などに手助けしてあげる。
  • ペアプロとかもやったら面白いんじゃないか。
  • シーズンごとにpmを開催して、興味がある人は参加できるようにする。
  • その他いろいろ

やること

  • 勉強会の名前「Perl入学式in福岡」は@__papix__さんに了解とって決定する。
  • Perl入学式の運営グループの何かがあるらしく、それに誰かが参加させてもらう。
  • Perl入学式in福岡(仮)のFBグループを僕が作成する。

その他

  • @なんとか_77さんが合コンのセッティングをしてくれる。
  • あのドラ娘が参加するかもしれない。

他にもいろいろ話したけど眠いのでこの辺で。

Fukuoka.pm #22 に参加してきました

YAPC ASIA レポートをしてくださった皆さんありがとうございました。今回、初めてpmに参加された方など、興味を持たれて質問していたので良かったですね。僕も次にYAPCに行ったときには写真をたくさん撮って現地の熱気とかを伝えられるといいなと思いました。

@__papix__さん。Perl入学式は以前から興味があったので、お話いただけて良かったです。福岡でも入学式やりたいという声が上がってきているので、僕もお手伝いして地元のPerlMongerが増えるといいなと思います。Acme大全ステッカーありがとうございました。どこに貼ろうかな。

@charsbarさんのPerl/CPAN界隈のデータ分析のお話。Mooseの使用率が海外と国外でまったく違う話とかアクセサ系モジュールの利用がどんどん減ってきてるけど、どうなってるの的な話が興味深かったです。あとCPAN Authorのランキングで福岡の@dragon3さんが入っていて嬉しかったです。

@kiwanamiさんのhttpサーバとか分散ストレージの話。大きな動画の配信でブロックしないように非同期で行うようにするにはどうしたらよいかの考察など。このへんのインフラ周りの専門的なネタが話されてることを評価されてる方もいたので、上級者の方や他言語の方にも有意義な時間になっていたんじゃないかと思います。

懇親会ではPerl6の話に関する質問が上がって、それに関して興味深い話が聞けて良かったです。Perl入学式も具体的に日付を決めてやりましょう的な勢いで話が進んでいて今からわくわくしています。今回も参加してよかったなー。

最後に遠路はるばる起こしいただいた@__papix__さん、@charsbarさん本当にありがとうございました。
毎回会場をご提供いただいてるヌーラボさんもありがとうございました。@d_tsuruさん開催ありがとう!

carton install が途中で進まなくなって勉強になった件

止まってしまう原因は、File::Rsync のインストールのときだった。
File::Rsync は、インストール時に rsync コマンドのパスをこれで良いかと確認してくるが、ExtUtils::MakerMaker の prompt メソッドを使用していないため、PERL_MM_USE_DEFAULT の設定値が無視され、必ず標準入力からの入力待ちになる。

本来なら、cpanm の デフォルトは interactive => undef となっているので、PERL_MM_USE_DEFAULT が真となりプロンプトは表示されない。その他勉強になったのは、 cpanm のオプションは PERL_CPANM_OPT という環境変数でカスタマイズできそうだが、carton の中では local $ENV{PERL_CPANM_OPT}; としてあるので、役にたたないようだ。今回は carton の実行ファイルをコピーして直接編集して、cpanm を verbose にしたりしたけど、他に方法はあるんだろうか。

よく見たら File::Rsync は、バグとラッカーにアクティブなバグがたくさんあって選定からして間違いだったみたい。
File::RsyncP というのが評価も高いし使ってみようかと思う。

WWW::Mechanize のフォームにinput追加したいとき

javascriptでinput追加されるようなフォームがあって、WWW::Mechanizeではフィールド追加できないみたいで一瞬困った。内部的にはHTML::Formが使われてて、こっちもフィールド追加できないみたいだったけど、ソース読むとHTML::Form::Inputってのがpackage宣言されていて、フォームのフィールドはこいつのインスタンスだった。このHTML::Form::Inputってのにはadd_to_formってメソッドがあるので、下記のようにすればできる。

use WWW::Mechanize;
use HTML::Form;
my $mech = WWW::Mechanize->new;
$mech->get("http://example.com/");
$mech->form_name("form1");

# ここ
HTML::Form::Input->new(name => 'foo', value => 'hoge')->add_to_form($mech->current_form);

$mech->set_fields(bar => 'fuga', baz => 'piyo');
$mech->submit;

Fukuoka Perl Workshop #21 に参加してきました

今回はJPAさんのご協力で講師として@nekokakさんと@lestrratさんをお招きしての開催となりました。

Japan Perl Association (JPA)さんのサイトはこちら
http://japan.perlassociation.org/


YAPC Asia 2012 のサイト発見
http://yapcasia.org/2012/


@nekokakさんとは前日にも屋台でお話しすることができ、ゆっくりお話しする事が出来てよかったです。
今度は僕と@itoken417が行きつけの屋台にも行きましょう。


ここからはWorkshopの感想

@dragon3さんの「Plack::App::GitSmartHTTP」のお話

HTTPでアクセスできる git server だそうです。
他の言語だと下記のようなものがあるそうです。

  • Grack
  • Gnode
  • git_http_backend.py

Perlになさそうだったので作ったのこと。
こんなときに使えるのでは?と仰ってました。

  • ちょっとしたハッカソン
  • ちょっとこのコード見て!
  • githubみたいなのはじめたい

簡単に使えるし認証とかしたかったら自分で書けば良いようです。
「痒いところは自分で買いくださいw」が印象的でしたw

Plack::App::GitSmartHTTP
名前のアイデア募集中とのことだったのでこんなんどうでしょうか。
Gttp, Ghttp, Gittp, GiTTP, Guitar, PAG, PAG::HTTP


Cacooの紹介
Cacoo for Google+ Hangouts ってサービスをリリースされたそうです。
Cacooは僕も使っているので機会があれば触ってみたいです。


@kiwanamiさんの発表
Emacs DBI のはなし
事前にどのようなものか知っていましたが、実際にデモを見てすごいなーと思いました。感動。
僕はvimmerのたまごなので、そっちのほうを試そうかと思いますが、Emacsに手を出すときはお世話になりたいと思います。
はじめての Perl/CPAN のお話も面白かったし、Perlメインでない方でもCPAN Authorになってるんだから頑張らなきゃなと思いました。


@lestrratさんのはなし
休憩から戻るの遅れてちょっとだけ聞き逃しましたが、最初はYAPCのお話だったのかな?
YAPC Asia の運営に興味がある方はIRCでロムってると良いよとのこと。
IRC: #yapcasia-staff

そして分散オブジェクトストアのSTFの紹介
STFとはなんぞやというところから、担当になって改良した経緯などお話いただきました。
その中で自分がよく知らない話がたくさん出てきて、とても勉強になりました。
急がば回れテストファースト)」が印象的でした。
たくさんメモを取りましたが誤字脱字や勘違いなどあるといけないので省略
図などもすごくわかりやすかったです。
質問もめっちゃ多かった。
下記は自分用のメモ書き。

用語定義
  ディスパッチャー
    リクエストを処理する人。
    httpで通信
    リクエストをオブジェクトに結びつける
  ストレージ
    実際のデータを保存する
    http通信
    よく壊れるので予測しておく
  オブジェクト
    論理データ
  エンティテイ
    物理データ
    1ストレージ1エンティテイ
  バケット
    論オジェクトのコンテナ
  キュー
    データの複製、修復、削除のキック
    実運用ではQ4M
    理論上はシュワルツ(パフォーマンスはどうか?
  ワーカー
    非同期で行える事はすべてワーカー


@nekokakさん

Clutchのお話
開発動機の部分が長かったですが、いろいろなジョブキューシステムの特徴がよくわかり勉強になりました。
Tengがけっこう気に入っているので、Qudo も Clutch も使ってみたいと思いました。
カジュアルだったりインターフェースがキレイだったりってのがやっぱすきだなぁ。
英語読むの苦手だったり細かい動作知りたかったりで、だいたいソース読む事になるんですよね。

Qudo (TheSchwarzの再発明

Clutch (Gearmanの再発明

  • IFキレイ
  • gearmanみたいにデーモン介さない(デーモンも作るかも
  • 変な(デ)シリアライズしない(JSON一択
  • シグナルハンドリングしてるのでdaemontoolsと相性が良い
request_background
ワーカーが受け付けたらリクエスト終了できる
request_multi
複数の処理をまとめてワーカーに流す

background + multi もできるよ
どんなリクエストでもwokerをかえる必要が無い
serverの数だけ勝手にラウンドロビン
data::weightedroundrobinも使えるよ

todo

  • フックポイント(必要?
  • リトライ
  • プライオリティ
  • キュー(今はキューイングしてない
  • ServerStarterに対応する
  • clutchd (gearmoandみたいなの 大規模ならあってもいいかな
  • workerの死活判定


牧さん
ソケットプログラミング
ライブコーィング
やっぱライブコーディングって理解が進みますね
牧さんみたいな先輩がいたらいいなと思いつつ
後輩とペアプロとかもっとしようと思いました。

ZMQ - Perl-ish Interface libzmq
デモがすごかった
あんまメモかけなかったけどわかりやすかったです。


@spring_MTさん
10xlabって会社が福岡に出来たよーという話
九大学研都市のそばだそうです。僕の実家の近くですね!
会社ではいろんな新しいネタをたくさんやっていくとのこと。
エンジニアを中心としていろいろやるそうです。
とりあえずRuby使うけど、そのうちPerlも使いたいと
福岡は県がRuby押しなので人集め的に仕方ないかも
設備充実まかないも出るとのこと。
今はひとりでいろいろやってるそうです。
是非遊びにきてくださいとのことです。


連絡とか
YAPC ASIA スポンサー募集中です!


最後に
懇親会ではっちゃけすぎてすいません。
どうもPMにいくと楽しくてやりすぎてしまいますね・・・orz

そんなこんなで Fukuoka.pm は、いろいろやり過ぎてしまうくらい
楽しい勉強会となっております。皆様のお越しを心よりお待ちしておりますノ

Python勉強会行ってきた

行った目的
Perl以外の言語をあまり知らないので、覚えたいと思っていた。
Perlを知るためにも別の言語を知りたいと思ってた。実際、比較が楽しかった。
初心者向けの勉強会と言うことでfukuoka.pmで吸収できることがあるんじゃないかと思った。
あと、少ししか書いたことないけどインデントを慈しむ気持ちを持ってると思ってる。きれいですよね。


感想
みんなのPythonWEBアプリ版を輪読しながらの進行だった。
2時間だったけど話が脱線しまくって28ページしか進まなかった。だけど、楽しかった!
基本的な文法や挙動の質問は減らせるようにしないとなと思った。反省。


fukuoka.pmでも同様の初心者向け勉強会をさせてもらえればと思う。
でも書籍購入と毎週開催は結構ハードル高いかなぁ。
当然、僕も初心者に毛が生えたくらいのスタンスでやりたい。
あとビアバッシュしたい。