YAPC::Asia Tokyo 2014に行ってきました。
いちおうJavaを生業にしてることになってるんですが、 日常的に書いてる(書き捨ててる)コードといえば今でもPerlだったりします。 CentOS系ならpythonもいいんですが、Perlはだいたい環境を選ばないのでその辺も便利です。
とはいえ、YAPCトークのお品書きを見てもあんまりPerlって感じじゃないですね。
1日目は午後から行ったんですが、人多過ぎでセッションやってる部屋に入れずノベルティ抱えて帰宅して出社。
2日目は前日の教訓から場所取りのために初回セッションの1時間くらい前に到着して待機。 「朝イチのセッションは集まり悪いですねー」とか言いながらセッション始まる頃には振り向くと人がギッシリ。
キャパが小さいなら規模の大きいカンファレンスでよくある、各セッション単位での事前登録制がよさそうです。
以下の3セッションに参加しました。
突然ITインフラを任された人のための…監視設計入門
YAPC http://yapcasia.org/2014/talk/show/d1eb4942-fdb5-11e3-b7e8-e4a96aeab6a4
とあるIaaSを使って10数インスタンスのサーバ群を管理しなければならない、 このセッションの想定シチュエーションと完全に一致な状況が4年前にあったので内容的にはシンパシー感じまくりでした。 個人的にはこの規模のシステムが一番多いんじゃないかなぁという気がしています。
監視連絡を受けてからの話があったのですが、こういうのってあんまり語られることがなさそうな気がしました。
あと、netstatは非推奨らしいのでssコマンドを使いましょう、っていうのは知りませんでした。ほかにもarpやifconfig、routeも非推奨なんですね。
この分野って完全に経験がモノをいうところなので、オッサン世代の主戦場かもしれないですね。 今は開発寄りなんですが、開発エンジニアとしての適正に限界を感じている今日この頃、正直こっちの世界に戻りたい感じです。
Google BigQuery で DWH 構築
YAPC http://yapcasia.org/2014/talk/show/2eb3bf9e-fe54-11e3-b7e8-e4a96aeab6a4
スライド https://speakerdeck.com/naoya/google-bigquery-falsehua-number-yapcasia
生Naoya氏を初めて見ました。
Large Batch(1回の処理が大きいバッチ処理)ではなく、Short Batch(オンライン処理ではないが、数秒で終わる程度の処理)に対応するサービス。
で、同様のサービスやプロダクトは存在し、使われている技術には大差はないのだけれど、巨大なGoogleインフラでやると爆速なんだよね、という話。Googleっていくらでディスク仕入れてるんでしょうね。
確かにアドホッククエリが主体なDWHが向いてそうです。
JSON SQLインジェクション脆弱性と、そこから学ぶセキュアプログラミングの原則
YAPC http://yapcasia.org/2014/talk/show/117bc3c2-00f7-11e4-b7e8-e4a96aeab6a4
スライド http://www.slideshare.net/kazuho/json-sql-injection-and-the-lessons-learned
2WaySQLを好んで使っていることもあってSQLビルダはほとんど使ったことがなく、こういう問題自体認識していませんでした。
確かにJSONをビルダにブッ込めるんだったらこういう問題は起きるよね、って感じです。
対策としては「想定通りの型か検証する」が必要。また、型に基づいた処理を行うクエリ関数を使うことで想定通りの動きをさせることができるようです。
根本的には構造化されたクエリパラメータであれば起き得るので、YAMLなどの構造化されたクエリパラメータをblessさせるのは危ないよ、という話でした。
案の定ランチセッションには参加できなかったのでそのまま帰って、 なぜかコードが書きたくなったので、先週の社内ハッカソンで作り切れなかった部分のコーディングに勤しんでみるなどしました。