こんにちは。
会社の先輩に誘っていただき、 YAPC 2015 に行ってきました。
Perlの祭典です。Perl全く書かないけど。人生初のカンファレンスです。
Perl色がもっと強いものかと思ってましたが、「申し訳程度のPerl要素…」
と何度も思うくらいにはPerl要素が薄く、初心者にも入りやすかったです。
「ブログに書くまでがYAPCです」 と何度も念を押されたので、というわけではなく、
単に自分への備忘録とイベントレポートとして残します。
メモ
#yapcasia 言語を構築するのは世界を構築するのと同じ
— しょーちゃん (@show_m001)
2015, 8月 21
2015/12/25「Perl6を出すといったな、あれは嘘だ」 #yapcasia
— れこ (@L_e_k_o)
2015, 8月 21
OSSのお話とか、Perl 5とPerl 6の話をホビットの冒険と指輪物語に例えつつな感じでした。
どちらもタイトルしか分からないのでうまく喩え話が頭に入らず。。。
そして 「同時翻訳すごい! すごい!」 と感動して肝心の話を殆ど聞いてませんでした。
圧倒的な満席で入れず。スライドだけでも。
メモ
GPIO(Lチカ)⇒PWM(Lフワ)⇒Timer割込でいろいろ⇒I2C通信という流れで進んだ模様。
#yapcasiaD
— takasago (@sago35tk)
2015, 8月 21
メモ
いかん、Webが遅くなっている → レイテンシに負けないプロトコル → HTTP/2
脆弱性を防ぐ
すべての通信データは フレーム に格納される
色々な種類がある
ex.
CSS, jsを再優先でとっておいて、HTMLは低優先度で取ってくる
HTMLが取得された時点でCSS, jsの読み取りは完了しているので、その時点でレンダリングを開始できる
サーバ側が正しく実装しないと、クライアント側がチューニングできない。
この二つ以外はまともに実装されていない
HTTP2クライアントとしてlibcurlが優れている
サーバ証明書買わなきゃいけないの…?
LeysEncrypt がリリースされれば無料で取れる
「HTTP/2でオワコンになる最適化」の話で
今のフロントエンドのビルドツール周り(アセットの結合)が圧縮技術+オーバヘッド削減によって、むしろボトルネックになる可能性があるという話が印象的でした。
メモ
内容は広くいろいろな話題があって気付かされることが多かったです。
エリック・エヴァンスのドメイン駆動設計の本2冊ともポチりました。
中の人がわざわざいらしてお話してくれた。
でもビギナー向けな内容で、話す内容も質疑応答も知ってたという感じでした。ざっくりと。
制御可能なものを見極め、それを制御することに集中
βリリース前に知人の会社が使ってくれて、フィードバックいっぱいくれた。これは仕事にできそうだなぁと思った。会社を作ったのは、真面目に続けてく意思表示みたいなもの #yapcasia #yapcasiaA
— たま● (@tmd45)
2015, 8月 21
他のセッションに比べて濃いわけではなかったけど、一番心に残ったセッションでした。
(( ⁰⊖⁰)/)
ISUCONで得られた知見を公開されることで、業界の技術力に寄与
ベンチマーク:動作の変更がないことをチェック、テストに落ちたら失格
2年連続優勝
事前に出題に挑戦し、ベンチマークの問題を洗い出す
Kossy: ISUCONから生まれたWAF Gazelle, Redis::Jet, Plack::Middleware::Session::Simple など
管理コスト・障害対応のコストも減らせる
大規模なインフラでは嬉しい
%D
つける(レスポンス時間)SET GLOBAL
で変数として設定しとけば再起動するだけで設定が元に戻せる。戻し忘れ防止Client → ReverseProxy → APP → RDBMS, KVS
ただしPerlあまり好きじゃnあっ…
Perlは2行だけ。Perl知らんでも書ける
各フェーズごとにluaのスクリプトをフックできる
ngx.say(message)
レスポンスボディに出力するngx.exit(status)
ステータスコードを指定して返す(ngx.HTTP_OK
など)ngx.log(level, message)
エラーログに吐く(ngx.ALERT
, ngx.CRIT
などがある)ngx.var.VARIABLE
nginxの変数を上書きする、ただし新規作成はできない。上書きのみngx.shared.DICT
nginxの共有メモリにアクセスするngx.header.HEADER
nginxのレスポンスヘッダにアクセス、上書きするngx.req.set_header()
nginxのレスポンスヘッダにアクセス、上書きするngx.time()
タイムスタンプを返す(ngx.localtime()
などもある)が、機能がそこまでない。必要に応じてngx.re
を使用する
目からうろこというか、新しいことの連続でした。
Goはまだ入門したばかりでツール周りなど全く触れていなかったので、足がかりとしてものすごくありがたいスピーチでした。
コーディング早すぎる。ぼけーっとしながら眺めるばかりという感じでした。
うおおおお、本がすげーと思ったら、ただのタペストリーだった。かんっぜんに騙されてもうた。 #yapcasia pic.twitter.com/1pi8KZ5WLX
— tabunmuri (@tabunmuri255)
2015, 8月 21