ハイパフォーマンス ブラウザネットワーキング読了

頂き物なのに2年ぐらい寝かせてしまっていました。

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ネットワークスペシャリストの勉強になるような内容。(より実戦的だが、ページ数は少ない。)
非常に面白く、一気に読みしました(ちょっと時間掛かったけど)。
 
TCP/UDPTCPのチューニング、HTTP1の問題点(HoLブロッキングなど)とHTTP2、XHR、SSE、WebSocket、WebRTC についてまとまって記載されています。
 
HTTP/1時代のチューニングであるドメインシャーディングひどいなぁとか、
証明書チェーンのサイズ(証明書にルート証明書を含める必要はない)も気にしないといけないとか、
ポーリングは、モバイルネットワークとしては非常に高コストで電源消費量も多いとか、
色々ためになります。

目次

1章 レイテンシ・帯域幅入門
2章 TCPの構成要素
3章 UDPの構成要素
4章 TLS
5章 ワイヤレスネットワーク入門
6章 WiFi
7章 モバイルネットワーク
8章 モバイルネットワークの最適化
9章 HTTPの歴史
10章 Webパフォーマンス入門
11章 HTTP 1.x
12章 HTTP 2.0
13章 アプリケーション配信最適化
14章 ブラウザネットワーク入門
15章 XMLHttpRequest
16章 Server-Sent Events
17章 WebSocket

もう少し細かいのは、以下で確認できます。 O'Reilly Japan - ハイパフォーマンス ブラウザネットワーキング

余談(dns-prefetch subresource prefetch prerender)

これ初めて知ったので少し調べて見ました。

<link rel="dns-prefetch" href="//hostnme_to_resolve.com">
<link rel="subresource"  href="//javascript/myapp.js">
<link rel="prefetch"     href="//images/big.jpeg">
<link rel="prerender"    href="//example.org/next_page.html">

詳しい説明は触れられていませんが、雑に説明すると、dns-prefetch DNSの事前接続。
subresource は同一ページ内の遅延読み込み、prefetch は次のページのコンテンツの先読み、prerender はレンダリングまで行う。
という感じで、あれ結構いいのでは?と思いましたが、、、

ブラウザ対応状況

ブラウザの対応状況は記載されていましたが、古いので http://caniuse.com を見てみると

まとめ

あれ?特定状況下でしか使えないやつらでした。。

デール・カーネギー 人を動かす2 読了

人を動かす2:デジタル時代の人間関係の原則

人を動かす2:デジタル時代の人間関係の原則

図書館で SOFT SKILLS を読んでいたところ、「人を動かす」が激Pushされていたので、 たまたま書架にあった「人を動かす2」を読んで見ました。

「人を動かす」を現代に照らし合わせた事例でリライトした本のようです。
 
完全試合をレフェリーの誤審でふいにした話 (アーマンド・ガララーガの幻の完全試合 - Wikipedia)、子供から受けた愛情に気づいた話、などなど納得しっぱなしの良エピソードてんこ盛りでとても良い内容でした。
自分の経験でも、心当たりのある話があり、ここに記載されているような人でありたいし、そのような人と出会いたいと強く思います。
「人を動かす」も読んで見たい。

目次

◆Part1 人づき合いの基本原則
1 ブーメランを埋めよ
2 美点を肯定する
3 強い欲求を起こす
◆Part2 好感をもたれる六つの方法
1 相手の関心事に関心をもつ
2 笑顔を忘れない
3 名前をよぶ
4 話を聴く
5 相手にとって重要なことを話題にする
6 他人をちょっと幸せにする
◆Part3 信頼を築き、維持する
1 議論しない
2 「あなたは間違っている」と決して言わない
3 間違いを潔く認める
4 愛想よく話しかける
5 共感を得る
6 手柄をゆずる
7 人の身になる
8 気高い精神に訴える
9 旅を共有する
10 対抗意識を刺激する
◆Part4 怒りも抵抗も招かずに人を変える
1 まずほめる
2 自分の過ちを話す
3 過ちは穏やかにたしなめる
4 命令せず、質問する
5 恥をかかせない
6 ほめて伸ばす
7 名声にこたえさせる
8 共通の立場でつながる

See Also

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

WEB+DB PRESS Vol.98 読了

ようやく最新号を読み終えました。

WEB+DB PRESS Vol.98

WEB+DB PRESS Vol.98


 
Dockerの特集記事が個人的には良かったです。
これ1冊で十分ではないですが、入門書としては良いかもしれません。
個人で運用していても、MacLinuxの差異を時々感じることがあるので、もう少し勉強して開発環境で使ってみたいと思います。

これからはじめるDockerメモ

各種ツール

Vagrant: 仮想環境をコマンドラインで操作できるようにしたもの
Chef: 構成管理ツール。cookbook/recipe と呼ばれる設定ファイルを通し、環境(dev,test,prod)を問わずに同じ環境を再現する仕組み

Vagrantで仮想マシンのOS環境を整える
Chef(Puppet, Ansible)でミドルウェアを整える
Capistanoでアプリケーションのデプロイをする

というように利用。

問題

  • 増える環境(local, test, ci, staging, production)
  • 環境差異(ミドルウェアの有無、バージョンや依存関係の有無)

そこでDocker

アプリケーションを素早く開発、移動、実行するためのプラットフォーム。
Linuxカーネルのコンテナ技術(プロセスなどの名前空間の分離、control groupによりリソース設定)
仮想サーバとは異なる。あくまでもプロセスやファイルシステム、ネットワークが独立して見えるだけ。

  • コンテナの起動が早い
  • ディスク容量が少ない