https://help.github.com/articles/custom-404-pages/
404.html
を追加するか、Jekyllで出力すればOK。
できないと思って調べてもいなかった…。
https://help.github.com/articles/custom-404-pages/
404.html
を追加するか、Jekyllで出力すればOK。
できないと思って調べてもいなかった…。
まじめに解析するなら
https://github.com/wvanbergen/request-log-analyzer
とか使う。超便利。
が、なんか遅いのある気がするって時に、さっと一番重いリクエストの処理時間を出したい。そんな時に。
I, [2015-07-02T03:47:07.832647 #1439] INFO -- : Completed 200 OK in 374ms (Views: 35.2ms | ActiveRecord: 326.1ms)
I, [2015-07-02T03:47:07.863499 #1445] INFO -- : Completed 200 OK in 532ms (Views: 5.9ms | ActiveRecord: 213.3ms)
:
:
ログにはこういうのが並んでるので、
$ grep "Completed 200 OK in" production.log | awk '{ print $11 }' | sort -n
すれば、
:
:
374ms
532ms
みたいに出せる。
普段、コミットメッセージは英語で書いてるんだけど、絶対正しくない気がしている。
まぁ短文だから何してるかぐらいはわかるんだけど、これじゃあいつまでもWritingのスキルが上がらないんじゃないか?
慣れない変数名を付ける時はちゃんと辞書を引くんだから、コミットログもそうすべきだよね。
ということで作り始めた。
http://commits.parseapp.com/
https://github.com/tnantoka/commits
後から気づいたけど、もう類似のサービス結構ある。
ひとまずhttps://github.com/rails/rails を対象にした。50000コミットぐらい。
ソースコード見ればどんな変更がどういうコミットログになるかわかる気がするし。
Merge pull requestみたいなのは除外している。
こういうやっつけのスクリプトでJSON化。
https://github.com/tnantoka/commits/blob/master/Rakefile#L22
全データだとサイズが思ったより大きかったのでひとまず1000件に絞ってる。どうしようかなぁ。
基本的な方針としてクライアント再度で完結させて、Github pagesなりに載せるつもりだった。もう個人のサービスで監視とかやりたくないねん…。
最終的にstar付けたいなということになり、じゃあ何かしらDBを、ということでParseに落ちついた。のでhostingもparseにした。(結局スター部分は実装してないけど)
日本語ガイドがある。
https://parse.com/docs/jp/js/guide#hosting
ParseにSign Upしてアプリを作っておく。
あとは
$ curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
$ parse new commits
$ cd commits
$ parse deploy
とすれば、
で公開される。お手軽。
HP製のフレームワーク。当然のようにReactを要求してくる硬派な感じ。
http://grommet.io/docs/
$ gromment init example
$ cd example
# localhost:9000でテストサーバー起動
$ gulp dev
# プロダクション用にbuild
$ gulp dist
gulpタスクとか用意してくれてるので、Reactの入門に良いのかもしれない。
こんな感じ。また気が向いたらいじる。
デフォルトは0。
Degital Ocean使ってる時は自分で設定してたけど、EC2もそうなのね。知らなかった。(インスタンスタイプによるのかも。t2は設定されてなかった)
このままでは、メモリが足りなくなるとOOM Killerにやられてしまう。
http://qiita.com/konpyu/items/20d1989d1251d805cf3b
というわけでAnsibleのPlaybookを書いて設定した。
Swapfileの追加手順はこの辺を参考に。
Ansibleでやる方法はこの辺り。
ちなみに、--check
はdry-runのこと。
https://docs.ansible.com/playbooks_checkmode.html
最終的にこんなPlaybookになった。
---
- hosts: all
user: ec2-user
sudo: yes
tasks:
- name: create the file to be used for swap
command: fallocate -l 1G /swapfile
- name: format the file for swap
command: mkswap /swapfile
- name: change swap file permissions
file: path=/swapfile owner=root group=root mode=0600
- name: add the file to the system as a swap file
command: swapon /swapfile
- name: write swap entry in /etc/fstab
mount: name=swap src=/swapfile fstype=swap opts=defaults passno=0 dump=0 state=present
存在チェックとかしてないので、2回目実行するとエラーで止まる。
ので、単体で実行。
$ ansible-playbook add_swap.yml -i hosts
無事、設定されました。
$ swapon -s
Filename Type Size Used Priority
/swapfile file 1048572 0 -1
$ free -m
total used free shared buffers cached
Mem: 2004 1700 304 0 131 224
-/+ buffers/cache: 1344 659
Swap: 1023 0 1023
CentOS 7にもそのまま使えるかと思ったら、
stderr: swapon: /swapfile: swapon failed: Invalid argument
となった。
dd使わんとダメっぽい。
- command: fallocate -l 1G /swapfile
+ command: dd if=/dev/zero of=/swapfile bs=1M count=1024
で行けた。
http://docs.ruby-lang.org/ja/2.2.0/class/Kernel.html#V_--2D-I
$LOAD_PATH
と同じ。
こういうのググるの辛い。
誰かのためにドルコロン、ダラーコロン、ドルマークコロンとか書いとこう。