Shibuya.pm TT #14に参加
Shibuya.pmのテクニカルトーク#14に行ってきました。いろいろな話題がありつつ、テンポよく進行して、あいかわらず楽しくためになるイベントでした。
以下、メモほぼそのまま。
本日のイベント開催趣旨について(takesako)
- 「ブログでJPAのセミナーとIPAのセミナーを混同されている方がいるようなので、両方を呼びました」w
Perl 6 Language Update(dankogai)
- 夏やったものの手直し
- llevalでFizzBuzz
- Perl 5ならあっというま
- Perl 6(Rakudo *)
- 三項演算子がちょっとかわった
- 2秒台
- 夏は3秒以上かかった
- subの中にsubを入れる
- 中の関数は外の関数の外からは見えない
- プレースホルダー
- $^n
- デフォルトの引数
- my $n = shiftしなくていい
- 例外
- catch節はtryの中にある
- try $exception という書き方も
- Lazy list
- 無限リスト
- my $int = 0..*
- 注意:無限リストをmapにくわせると無限に待つ
- 将来は直る予定
- Smart Match
- perl 5.10以降
- anyとマッチさせる
- マルチディスパッチ
- triple(Int $i) と triple(Str $s)
- 演算子定義
- sub infix:<!> ($f, $b) { ~ }
- Hyper Operator:ベクトル演算
- 動かない
- オブジェクト指向
- class Buzz is Fizz { ~ }
- メソッド呼び出しは "->" じゃなくて "."
- self
- $_.hoge を .hoge と省略できる
- Grammer
- 正規表現を言語定義できるところまで拡張
- Perl 6の仕様もPerl 6で書かれている
- Combinatory Logicを書いてみる
- S、K、I
ぼくのかんがえたさいきょうのYAPC::Asia(941)
- 会場がすごい
- 去年と同じ
- スピーカーがすごい
- Larry Wall、Jesse Vincent、Tatsuhiko Miyagawa
- スピーカーがすごい2
- 50人以上
- 協賛がすごい
- 20社ぐらい
- 景品がすごい
- トークの投票
- Mac Book Proほか
- トークの投票
- チケットがすごい
- 再販売開始
JPA活動報告(lestrrat)
- 活動
- YAPC
- 地方ユーザーグループでの講演
- WEB+DBプレス監修
- リレー連載
- セミナー、有料研修
- Catalyst研修
- やりたいこと
- 新人向けの教材の作成
- 2012年完成?
- 技術認定試験
- 進展してない
- 教材とからめて進めたい
- 地方へ講師派遣
- 牧さん以外
- お金の回り方を考えないといけない
- 勉強会を定期的に
- 予算枠拡大
- Tシャツ販売
- 新人向けの教材の作成
- 必要なこと
- 連携
- イベントやってる人や、勉強会やってる人と
- JPA内人事
- 941さんのアシスタントがほしい
- 連携
- 財務状況
- 協賛18社
- 年間予算=企業会費+YAPC収入
- 個人会員
- うまい還元方法がみつからない
- @jpa_perl
memcached injection(佐名木智貴)
- プロトコルは簡単なもの
- データはバイト数をチェックしている
- キー名のエスケープ方法がない
- クライアントまたはサーバーがやっているか?
- やっているライブラリとやってないライブラリがある
- PerlのCache::Memcached:やってない
- そもそもキー名に汚染されたデータが入るケースはない?
- 事前にいろいろ調べておいたほうがいい
- クライアントまたはサーバーがやっているか?
- 経験:SQLのカラム名のSQLインジェクション
- gihyo.jpのmemcachedのセキュリティ記事
memcachedの運用監視ノウハウ(kazeburo)
- mixiの事故
- memcachedが落ちる原因がわかった
- memcachedの重要性が再認識された
- 安定稼働:PDCAサイクル
- 「監視は継続的なテスト」by kazuho
- 自動化、可視化
- memcachedの監視項目
- プロセス確認
- pgrep
- cronlog:終了コードが0以外のときだけ出力を表示
- サーバ接続
- nc -z
- コマンドへのレスポンス
- perlで
- Nagios Pluginに
- 終了コードを変える
- コネクション数
- 最大接続数と現在の接続数を比べる
- プロセス確認
- memcachedが落ちていると気づくまでにどのぐらいかかったか
- daemontoolでは落ちたら再起動
- 監視でOKになってしまう
- uptime監視
- Nagios Pluginに
- daemontoolでは落ちたら再起動
パネルディスカッション:身につけておきたい、今そこにあるシステムの救命措置
- (園田)
- 届け出数の推移
- DNS特需(カミンスキー特需)
- 長期化案件:90日以上未修正のもの
- どうする?
- Webアプリ系の啓蒙コンテンツ:新しく作るとき用
- 今動いているシステムをどうするか
- 脆弱性の直らないサイトは公表していいか?
- 現場は「明日まで直せ」でデスマ
- 業務妨害扱い?
- どういうプロセスなら現実的?
- (kazuho)twitterのXSSのときも、広まっていく中で悪質化した
- (園田)1000日過ぎたものだけ公開とかするとどうなるか
- (kazuho)スクリーニングとあわせてくれるならうれしい。スキャンして問題があるサイトを調べて、こんなにある、とか。みんなでやればやってくれるのでは。数の説得力
- (園田)それでスキャンに問題が出る可能性がある
- (kazuho)IPAならできるとか
- (園田)いま動いているシステムの問題
- (kazuho)古いシステム。作った人もいなかったり。あれはどうしようもない
- (kazuho)一定のセキュリティ基準を満たしたら入れるサーバー保険とかどうか。お金がからんだほうが会社を動かしやすい
- (園田)エスケープのミスとか忘れとかの問題
- (kazuho)XslateはTTと比較的互換性があって自動エスケープ。ただ完全な互換性はないので既存のものを入れ替える用途には
- (kazuho)データにスクリプトを入れられないようブラウザを制限とかWAFとか
- (takesako)CPUでデータ領域とコード領域を分けるような
- (会場 bulkneets)IPAからの連絡が正直面倒という場合。現場におりてくるときに話が面倒になったり。報告するほうも大変。直接twitterとかで連絡してもらったほうが早い場合も
- (会場 IPAの人)IPAを通さなくてはならないわけではない
- (会場 bulkneets)報告した人を保護してくれているとは思う。報告した人が不利益という事例は
- (園田)2003年の事件。カンファレンスで公開してしまった
- (takesako)複数サイトの組み合わせだと説明が難しい
- (園田)そもそも用語とか説明とか相手に分かってもらうのが難しかったり
Perl 1,2,3,4 の歴史(mad_p)
- Tokyo.pm
- 初めて使ったPerlのバージョン
- 会場に聞く。5以降が多い?
- 元ネタ:perldoc perlhist
- ラクダ本(原書)1991年
- 3つの時代
- 黎明期 インターネット以前
- 普及期 CGI期
- 発展期 高度化した時代
- Perl 1
- 1987.12.8
- 基本的な書き方はできていた
- Perl 2
- 1988
- 再帰呼び出し
- local
- Perl 3
- 1989年
- foreach
- GPL
- Perl 4
- 1991年
- ラクダ本の出版された日のバージョンが4.0.0になった
- 伝説のGlossary
- Endian
- 黎明期の用途
- CSVをテキスト表組に
- ioctl
- 黎明期の情報源
- NetNews
- パソ通
- ユニマガ
- JPerl
- インターネットの普及
- CGI
- Perl 5
- 1994年
- 国内のPerl 5普及がほかの国と比べて遅かった(mad_pいわく[要出典])
- CGI中心だったためPerl 4で十分だった?
- CPAN
- 1995
- 当時はanonymous FTP
- cpanシェル以降に普及
- Perlコミュニティー
- Perl Conference、YAPCなど
- 主にアメリカ西海岸
- 国内
- 1997 Perl Conference Japan
- Larry Wall呼んだ
- 1997 Perl Conference Japan
- Perl Mongers
LT:Android + Perl(naoya_ito)
- Scripting Layer for Android (SL4A)
- Android上でいろいろなLLを実行できる
- AndroidのネイティブAPIを呼べる
- adbからインストール
- 付属のエディタはつらい
- Emacsで書いてadb push
- 同梱モジュールを調べた
- socket.pm
- echoサーバーを書いてみる
- あっさり動いた
- 外部アクセス可能なPublicサーバーにもできる
- PerlからWebViwを起動してJSをキックとか
LT:Data::MessagePack(tokuhirom)
- MessagePack
- バイナリのシリアライゼーションフォーマット
- いろいろな言語
- データが小さい
- ネットワークやDBで空間効率がいい
- blessしたデータとかは使えない
- 人間が読めない
- Data::MessagePack
- gfx
- 速い
- Pure Perlサポート(makamaka)
LT:re RainbowTwtr(kazuho)
- TwiterのXSS事件
- @の直後の"がエスケープされない
- HTML化アルゴリズム
- 多段変換。複雑すぎた
- 正しいコードを書くのはむずかしい
- 正しい設計
- パースとエンコードに分ける
- エンコード処理が正しければXSSは起きない
- バグがあってもセキュアじゃないプログラムよりマシ
- エンコード機能つきのミドルウェアを使う
LT:PerlParserHacks vol.2(gfx)
- vol.1ではperly.yをいじった
- 全部コンパイルしなおすのは大変
- perly.yをいじらない方法
- Pluggable Keyword
- 5.12から
- 任意のパーサーにフックをしかけられる
- 任意のキーワードを追加できる
- 欠点
- パースと構文木の生成を自分でやらなくちゃならない
- parse_fuullstfmt() API
- 5.13.5
- 1ステートメントをパースして構文木を返す
- Void.pmを作ってみた
- 使いどころが難しい
- 単位がステートメントなので荒い
- 付属サンプルが参考にならない
- method signatureの実装に使える?
コメント
コメントの投稿
トラックバック
https://emasaka.blog.fc2.com/tb.php/815-7400f505