- GCPの管理画面から静的IPアドレスを割り当てる。
- Cloud SQLの管理画面からrootユーザーにパスワードを設定する。
- Cloud SQLの管理画面から上記IPアドレスを許可する。
接続できることを確認する。
$ mysql -u root -p -h xxx.xxx.xxx.xxx
接続できることを確認する。
$ mysql -u root -p -h xxx.xxx.xxx.xxx
Google Container RegistryはプライベートなDocker Registryです。Docker HubのPrivateは有料なので受託開発でGCPつかうならアップ場所はここがよい。
GCPにログインして、デフォルトのPROJECT_IDは設定しておく。
$ gcloud auth login
$ gcloud config set project PROJECT_NAME_12345
イメージにタグを付ける。タグ名はリージョン/プロジェクトID/イメージ名
。
リージョンは日本ならasia.gcr.ioがよい。
$ docker tag xxxxxxx asia.gcr.io/PROJECT_NAME_12345/MY_IMAGE
pushする。
$ gcloud docker push asia.gcr.io/PROJECT_NAME_12345/MY_IMAGE
Google Container Registryに管理画面でアップされていることを確認する。
今日はjs, go, railsを使う案件でDocker + GCPということでKubernetesのチュートリアルをチマチマ。
Pod, Deployment, Service, Containerと新しい概念・用語が沢山出てきて混乱しますね。AppEngine使えば楽そうなんだけどなー。
ユーザーの行動を記録して外部のサイトに送りたい。 アクション毎にリクエスト送ると無駄だから離脱時に一括して送りたい。 そういう時はbeforeunloadイベントを使えばいい。Mobile Safariでは動かないので代わりにpagehideイベントを使う。
主要モバイルブラウザ遷移時のイベントの種類と挙動 - Qiita
ただ、非同期でデータを外部に送ると送信を待たずに終わってしまうので同期リクエストにする必要がある。
しかし、今作っているのは色んなサイトに埋め込んでもらうJSプログラム。
それ入れると離脱時に待たされるとか言語道断なのでこういう方法は自サイトじゃないと使え無さそう。
古いgojiのエントリーばっかりで新しいgojiのが見つからないので。
package main
import (
"goji.io"
"goji.io/pat"
"net/http"
"golang.org/x/net/context"
)
func main() {
mux := goji.NewMux()
mux.HandleFuncC(pat.Get("/"), func(ctx context.Context, w http.ResponseWriter, r *http.Request){
// ...
})
mux.Handle(pat.Get("/*"), http.FileServer(http.Dir("public")))
http.ListenAndServe("localhost:8000", mux)
}
public
以下に置いたファイルにアクセスできる。
herokuで普通にgit push heroku master
するとrails db:migrate
されません。
下記のbuildpackを使うとENVから指定したコマンドをデプロイ時に実行してくれるのでdb:migrate
できます。
gunpowderlabs/buildpack-ruby-rake-deploy-tasks: Run arbitrary rake tasks on deploy to Heroku
$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-ruby -a your-app-name
$ heroku buildpacks:add https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks -a your-app-name
$ heroku config:set DEPLOY_TASKS='db:migrate' -a your-app-name
Review AppsのAutomatic Deployをやってる時に便利。
ここ1年ぐらい家のPCでも会社のPCでもvimが落ちる。
splitして保存して終了したりすると落ちる。
不要な設定を全部はずして(syntastic以外)最小限で動かしても落ちる。
syntasticを使わなければ落ちないが、syntastic的なことができないなら他のエディタ使ったほうが良い。
おそらくpure vimの世界の問題じゃなくてpythonとかrubyとかの拡張系がおかしいんだとおもう。
色んなパターンで落ちてる人がいて各種対策を試してみたけど現状、俺の力では解決できなさそう。
他にもそんな人がいたらおすすめしたいのがMacVim(やMacVim-Kaoriya)をCLIで使う方法。
~/.zshrc:
alias vim='env LANG=ja_JP.UTF-8 /Applications/MacVim.app/Contents/MacOS/Vim "$@"'
色々といい塩梅でコンパイルされてるので動く。落ちない。良い。
開発用ではvimやAtom、Xcodeなどを使ってますが、ちょっとメモったり何かの下書きなどはCotEditorを使っています。
メモなどはspotlightですぐ立ち上げてプレーンテキストで、等幅フォントで書きたい。余計な機能も見た目も要らない。軽くてすぐ立ち上がるものが良い。
CotEditorで無駄なものを非表示にするとこんな感じの見た目にできます。
プログラムなどで状況が混乱した時もCotEditorにメモって整理します。
書いたものはCotEditorでファイルに保存することは殆どなく、コピペでWebのフォームに投稿したり、別のツールに貼ったりが多いです。
そういったいつでも使えるサブツールとしてとても気に入ってます。
終戦記念日ですね。今日は僕の祖父の手記を描き起こしたブログ、大東亜戦争従軍記のアクセスが一年で一番多くなる日です。
ついこの間読み返したんですが、知り合いの人々の呼び名?通称?みたいなのが面白く、気になりました。
村では、善六阪の充男一郎、中道の常作、伝兵衛籐の伝三、小沢新宅の総欽、冶右門の忠太、鍛冶の春一など、俺たちより幾らか若い組に大勢の戦死者があった。それに引き換えて、年上の層に当たるものは、応召者も少なく、戦死者は一人もなかったことは喜ばしいことだった。
小沢の大将、九兵門新宅などはれっきとした現役出でありながら、召集にならなかったというのは不思議なくらいだった。
伝兵衛籐の伝三?鍛冶の春一?ルナティックドーンの称号みたいなものかな?