本日、札幌にてHokkaido.pm #3が開催予定です。なんか飛行機も快速エアポートも混んでて移動が大変ですが、着き次第いつものようにメモ取ります。
ご挨拶 - @havanaclub_ さん
- 3回目の開催
- テーマは初心者向け
- 懇親会もあるよ
Perl・CGI入門 / @keroyonn_ さん
- YAPCのおかげでMacBookを買ってもらった
- Apple風にPerlを紹介
- 今日はプログラミング初心者向けの内容(変数は何かとか)
- Perlとは? → LLの始祖
- LLとは?? → Lightweight Language
- 学習曲線が穏やか
- テキストとネットワークが得意
- 数値、画像処理が苦手
- Perlと他のLLの違い
- CGIとは?
- ブラウザ、WEBサーバ、言語
- リクエスト/レスポンス
- Perlの実行環境
- ActivePerl : 古い。改行コードの扱い
- Strawberry Perl : 後発。Larry Wall推奨
- Cygwin
- VMWare×Ubuntu
- WEBサーバ
- 実際の開発
- 本番環境とそろえる。WAFを使う。
- AN HTTPDとStrawbery Perlの導入方法を紹介
- WAF は Mojolicious::Lite とかどう? 興味ある方は charsbarさんに聞くこと
- CGIを、コマンドプロンプトで実行して、デバグできる(コンパイルエラー)
- 初めてのPerl
- CGIを作る
- シェバン(#!/usr/local/bin/perl どのコマンドで実行するか)
- HTTPヘッダは、CRLF × 2 まで
- 文字列中のエスケープ → \" などとバッククォートを使う
- ""ではなく、qq{}でもよい
- ヒアドキュメント → <<"END" から END までを文字列
- __DATA__ or __END__ 以降はデータとなる
- スカラ変数 → $value。ただし $aと$bは使わないこと
- 演算子は普通に使える
- 配列 → @array ただし @array[0] はシンタックスエラーなので注意
- 連想配列 → %hash
- == と eq の違いに注意
- チーン → 時間がないので飛ばし
- CGIの作り方
- まとめ
- 今後も Hokkaido.pm に出て、勉強しましょう
- Q&A
PerlでApacheのログを解析してみる! / @havanaclub_ さん
- 「ログとりたいんだけど」「Google Analytics使えば?」「忘れてた」ってとき
- Apacheのログフォーマットを解析するスクリプト → IP、日付、リクエスト行
- API
- コマンドライン引数 → @ARGV に入る
- エラー処理 → die
- 関数の利用 → sub 関数名 {}
- 引数は、 @_ に入る → my ($x, $y) = @_;
- return は省略可能
- ファイルを読む → IO::File の利用。->getline、->close
- while(->getline) と ++ で行を数える
- IPアドレスの集計 → ハッシュにする
- IPアドレスの切り出し → ^\d+\.\d+\.\d+\.\d+$
- ファイル読む→IP切出→ハッシュに集計
- for (keys %hash) でハッシュ内のデータを表示
- 表示の整形 → printf %15s, %10d
- 値の大きさでsort → sort {$hash{$b} <=> $hash{$a}} keys %hash
- 日付ごとの集計 → \[(.+?)\] で日付を抽出
- 日付文言(March, Aprilとか、年月日の順とか)の調整 → Time::Piece
- ->strptimeでパース、 ->strftime で整形
- 日付のsort → 単に文字列としてsort
- 補足
- ファイル入出力は、PerlのCOREを使うのであれば open を使う
- マッチ結果は $1 と $2 で
- 質疑応答
YAPCレポートの舞台裏 - @hiratara
自分のセッションですので、後でスライドを公開しますw
YAPC::Asia と Hokkaido.pm - @aloelightさん
- ベストトーク
- PMグループディスカッション → 今回は40人も集まってて、やり方次第
- Perl5 is Alive → 開発体制など
- Perl and C Binding → XSはカオスなので
- BounceHammerの紹介 → 自分で導入したかった
- 映画に出てくるハッカーになりたい → エンターテイメント賞。動画を見て欲しい。
- The Tale of Plack → 日本のハッカーの成功談
- 草とPerl → 草だらけ
- 《ここでPCがフリーズ。スライドなしで》
- 2007年と2010年の違い
- 2007年は半分くらい英語だった。2010年は日本語セッションが多い
- ローカル色があるのはいいこと?わるいこと? → まだ続けられるのはわかった
- 規模は? → 減ったけど増えた。大きい規模で安定している。
- 帯広は人が居なすぎた。今回は多くてすばらしい。
- 人脈が広がったり刺激を受けたりするので、いろいろ出てほしい
Windowsでも使えるんですってば - @charsbarさん
- Windows使ってる人? → ほとんど
- Windows上でPerlを使う
- WindowsのPerlで動いてるものをデモ
- Windows上で動かないもの(鬼門)
- Perl本体はたいていWindowsに対応済
- 地雷原はテスト : 動かなくなっているように見えるだけ
- モジュールやアプリ
- 動かなかった場合の対応
- TMTOWTDI → 他の言語でも十分なら、それでいい
- Perlのいいとこ / 十得ナイフ
- 例えばCPANにある (例えばParse::AccessLogEntry)
- 難しいことも → XS/C
- 困ったら?
- 本当に困ったら・・・? → Hokkaido.pm で!!
- おまけ : Perl Author達の使うPerlのキーワードの個数の統計 → だいたい半分
初めての MovableType Plugin - @onagatani
- MovableType (MT)とは
- Pluginでできること
- テンプレートタグの追加
- コールバックの追加
- 独自オブジェクトの追加
- 管理画面の拡張
- テンプレートタグの追加
- MTタグ → MT専用タグ。テンプレートエンジン
- コールバックによる独自処理
- 特定の処理に処理を挟める
- ->add_callback(名前、優先順位、MT::Plugin, コード)
- 独自オブジェクトの追加
- MT::Objectを継承した独自クラス(ORマッパー)
- 管理画面の拡張
- メニュー追加、ウィジェット追加など
- 例: ウィジェットを追加し、Hokkaido.pmのデータを表示
- 宣伝: MTDDC 12/18(土)、ハッカソン 12/19(日)
- JPA牧さんがいらっしゃる
- 懇親会無料!
ライトニングトーク
ライトニングトークした体験談 - @techno_nekoさん
- 前のHokkaido.pm で牧さんや id:ZIGOROu さんの前でやった
- 初めてのLT → 緊張(声は地声)
- LTをしないとわからないこと
宣伝 / @hotwatermorning さん
- 札幌でBoost.忘年会2010
- 12/10 19時
科学Perl - @havanaclub_ さん
*1:Thanks to @techno_neko