株式会社はてなに入社しました
今年はJVMでやっていく予定です。
入社祝いにもらったけど放置してた本。移動中とかによんでいる。パーセプトロン使ってAND回路とか作っていくくだりはよく出来てて感動した。読むだけでも良いのだけれど実際に動かしてみると分かることもあると思うので、気になるところは動かしてみる。
Python3はHomebrewで入れる。
brew install python3
環境はvenv
で整える。
python3 -m venv deep-learning . deep-learning/bin/activate
matplotlib
と numpy
を入れる。
pip3 install matplotlib numpy
IntelliJのPython Pluginを入れて、さっき作ったdeep-learningの環境のディレクトリにIDEAのプロジェクトも作る。 開発というか、手元で動かすのはipynbでやってみる。Jupyter、IntelliJが立ち上げてくれて素敵。
ここまで特に困ること無くできた。
グラフの軸が見えなかったりするのは微妙だけど。Jupyter Notebookで共通のプログラムを書いておくとか出来るんだろうか。
仕事でWeb APIを作ることが多くなったので読んだ。体系的にまとまっていてよかった。ヘッダ周りなど曖昧だった部分が明確に説明されていて助かった。
ちょっとAPIの例が古かったような気もするけれど、今でも特に変わっていないように思う。キャッシュ周りはISUCONとかで役に立ちそうだなと思いながら読んでいた。
max_id
を定めていて、そこから手前というページングができる
api.example.net
とかにしたほうが良いのではないか
application/vnd.companyname.user.detail.v1+json
とかメディアタイプが有るとおしゃれ
application/json
でないと動かないので、application/json
にしておきましょうと書いてあったけど、それでいいのか、という気持ちもした+00:00
がおすすめ
Retry-After
ヘッダを付けてあげると親切Expires
と Cache-Control
を同時に使うと、 Cache-Control
が優先されるCache-Control
の max-age
の計算にはDate
ヘッダを使っているLast-Modified
)か、ETag(ETag
)If-Modified-Since
かIf-None-Match
Cache-Control
の no-cache
はキャッシュをしないのではなく、検証モデルを使って必ず検証してくれということ
no-store
(機密情報があるとか)Vary
でどのHTTPヘッダがCacheに影響するかを示すことができる
Accept-Language
で返す言語を変えているとかstale-while-revalidate
と state-if-error
というディレクティブがある
stale-while-revalidate
: max-age
で指定された秒数後もcacheを返して良い秒数
stale-if-error
: オリジンサーバーが死んだ場合に、どれくらいcacheを返していても良いかtext/xml
と application/xml
どちらを使うべきか
text/javascript
は廃止されているtext/plain
で配信されているので <script src=
で読み込んでも使えないapplication/vnd.companyname.awesomeformat
と言った感じ。application/vnd.ms-excel
application/json
で返して、適当なヘッダに入れたい情報を詰め込むContent-Type
はきちんと設定しないとセキュリティリスクになるContent-Type
をきちんと指定する。
X-Content-Type-Options: nosniff
をつけるContent-Type
を指定するX-Request-With
を付けて、<script>
からは読み込めないようにするX-Frame-Options: deny
Content-Security-Policy
<img>
や<script>
、<link>
の読み込み先として何処を許可するのかStrict-Transport-Security
Set-Cookie