朝から焼きおにぎりとおはぎを作った。
スタジオギークスというコワーキングスペースで作業してみた。 ハイパフォーマンスwebサイトという本を読んだ。以下個人的メモ要約(ホントに簡単なものだけど)
- リクエストを減らす。イメージマップ、CSSスプライト、インライン画像、js,cssのファイル結合
- Expiresはちょっと無駄があるのでできたらcache controlを使いたい。(リソースキャッシュ寿命管理)
- gzip圧縮、varyヘッダでプロキシの場合のややこしさをどうたらできるらしい
- CSSは先頭に、jsは末尾に
- js,cssは適当なレベルでファイルに分けてキャッシュさせる
- keep-aliveでDNSルックアップを防ぐ(そもそもハンドシェイクもオーバーヘッドだ)
- js縮小化
- リダイレクトを減らす。mod-rewriteやAliasとかいうのでどうにかなるらしいけど調べないと
- Etagは微妙なので使わない方がいいッぽい
あとspringについていろいろいじったりしてた。serverとクライアントがUNIXドメインソケットでなにやらいろいろやってるというのはうっすらわかったけどちょっとむずかしくてあと一日くらいかかりそう。
大体lib/spring/client/run.rb
とlib/spring/servser.rb, application_manager.rb
を読めばよい。
Linuxプログラミングインターフェースの勉強ができなかった(重くてもっていかなかったから)んだけどさっそくソケット通信が出てきてオウ……となった ソケットってファイルディスクリプタとして扱うことができるんだっけ。こんなのがあった。
def run verify_server_version application, client = UNIXSocket.pair queue_signals connect_to_application(client) run_command(client, application) end def connect_to_application(client) server.send_io client send_json server, "args" => args, "default_rails_env" => default_rails_env if IO.select([server], [], [], TIMEOUT) server.gets or raise CommandNotFound else raise "Error connecting to Spring server" end end
Rails4wayも読めなかった。英語を読むことを習慣にしたいという意図もあるから脱線の方が終わらなくても2,3ページくらいは読み進めた方がいいのかも。
スタジオギークスは作業環境としては結構良かった。ただ本が思ったよりなかったので今度からは自分でもっていかないといけない。