High Performance Web Sites
Cookieがパフォーマンスに与える影響で書いた件について、この前、くまさんと、六本木で燃えさかる焼肉を食いながら軽く話した。その中で、「Cookieのサイズ気にしても、そもそもYahoo!って、HTTPヘッダ自体が大きいよね」とかいう話も出たり、確かにそうかもねぇ、ということで、きちんと仮定をたてて実験をしようと思っているところなんですが、、
Safariの新刊見てたら、オライリーのHigh Performance Web Sitesという本がRough Cutsで提供開始されてました。(Rough Cuts: 出版前の本を書いてる途中からオンラインで提供していくというサービス) 目次を見て、今欲しいのはこれだと思った。大見出しだけを転載。小見出しも含んだものはこちらで。 (Rough Cutなので、最終確定のものではないです。)
- The Importance of Front-End Engineering (フロントエンド開発の重要性)
- HTTP Overview (HTTP概要)
- Rule 1: Make Fewer HTTP Requests (HTTPリクエストの数を少なくする)
- Rule 2: Use a Content Delivery Network (CDNを利用する)
- Rule 3: Add an Expires Header (Expiresヘッダを付加する)
- Rule 4: Gzip Components (Gzipする)
- Rule 5: Put CSS at the Top (CSSを上部に持ってくる)
- Rule 6: Move Scripts to the Bottom (スクリプトを下部に移動する)
- Rule 7: Avoid CSS Expressions (CSS Expressionを避ける)
以下、これから書かれる予定のもの (Prefaceより)
- Rule 8: Inline in Home Pages (JavaScript/CSSを外部ファイルにするのとインラインで埋め込む場合とのトレードオフ)
- Rule 9: Minimize Domains (ドメイン数の最小化。結構見過ごされるDNS lookupのインパクトについて)
- Rule 10: Minify JavaScript (JavaScriptの圧縮。JavaScriptから空白を削除する効果の定量化)
- Rule 11: Avoid Redirects (リダイレクトを避ける)
- Rule 12: Remove Duplicate Scripts (重複するスクリプトの削除)
- Rule 13: Turn off ETags (ETagをオフにする。Etagの動作の詳細と、なぜ2台以上のサーバで利用するときに問題となるか)
- Rule 14: Cache Ajax (Ajaxをキャッシュする)
- Performance Tools (パフォーマンスを評価するためのツールについて)
- Case Study: Google
- Case Study: Yahoo!
- Case Study: ???
チャプタのタイトルだけ読むだけでも、ポイントが示されてて、それだけでいいやって感じもしないでもない。
出版日が2007年9月予定とか書いてあるので、そんな先は嫌なので、Rough Cutsで購入しようかと思います。
で、このSteve Souderさんって誰なんだろうとぐぐってみたら、works at Yahoo! as the Chief Performance Yahoo!ということでした。結局落ち着くところはYahoo!か。
[追記] 表紙に書いてるタイトルは、High Speed Web Sites。タイトルもきまってない?
Suica/PASMO相互運用記念カード
はてなロディア欲しい!
フランスにまつわる楽天商品を紹介し、“はてなロディア欲しい!”と書くということなので。。
おフランスといえば、おそ松くんのイヤミです。
(PHP)プログラマのためのVIM (5) - undo
- 元記事: Andrei Zmievski: "VIM for (PHP) Programmers" slides and resources
- この記事シリーズまとめはこちら: (PHP)プログラマのためのVIM (まとめ) - おぎろぐはてな
undo
- オリジナルのviは1回しかundoできない
- vimは無限 (メモリによる制限のみ)
undolevels
を好みの値に設定してください (デフォルトは1000)
- 簡単なケース: u - undo, CTRL-R - redo
- vim7では、branched undoが登場
- 何かをundoして、そこから変更を加えると、ブランチが作成される
- g-, g+ - 古い/新しい text stateへ移動する (through branches)
- 時間で移動できる
- :earlier Ns,m,h - N秒(s)、分(m)、時間(h)前に戻る
- :later Ns,m,h - 同じように先へ進む
- :earlier 10m - 10分前、レッドブルを飲んでやってしまったバカな変更の前に戻そう。ふう。
[補足] undo branchについて
いまいち、動きがわからなかったので、:help undo-branchesの例を見てみました。
ここからはじめる:
one two three ~
xを3回押して、oneを削除:
ne two three ~ e two three ~ two three ~
で、uを3回押して、undoする (ここでブランチができる):
e two three ~ ne two three ~ one two three ~
2番目の単語(two)をxを3回押して削除:
one wo three ~ one o three ~ one three ~
で、今度はg-を3回押して、undoする:
one o three ~ one wo three ~ two three ~
3回目のg-で最初のundo branch (oneを削除した後)に戻る。
さらに、g-を続けて、最初の状態まで持ってくる。
e two three ~ ne two three ~ one two three ~
テキストだけ眺めていても、やっぱりなんだか分からない!ので、図を書いてみました。(動きには関係ないので、見やすさを考慮して、文字の位置は揃えてます)
oneを削除して、undoして、さらにtwoを削除しようとしたところ(オレンジ色の線)のところで、ブランチが作成されます。uとCTRL-Rでの操作だと、twoを削除しはじめた時点で、oneを削除した方(青文字側)には戻れなくなってしまうのですが、g-/g+で移動すれば、そっちにも帰れるよということですね。
まだ、35ページ/全77ページ
意味が分かんなかったので理解するのに手こずった。次は、visual modeあたり