2020/01/19のメモ
クラス変数
仕様が気になったので実際にコードを書いて調べた。だいたい想定通りだけど、親にクラス変数を設定した段階で共有化される(親のを探しに行くのが最初の挙動っぽい)のがへーとなった。
class A def cv @@cv end end class B < A @@cv = 'B' end class C < A @@cv = 'C' end class A @@cv = 'A' end puts A.new.cv #=> 'A' puts B.new.cv #=> 'A' puts C.new.cv #=> 'A'
- あとスコープが直感的ではない。selfではなくてレキシカルスコープっぽい
class A def cv @@cv end end class C < A @@cv = 'C' end class B < A @@cv = 'B' end puts A.new.cv #=> uninitialized class variable @@cv in A (NameError) puts B.new.cv puts C.new.cv
savanna.ioの証明書切れ
経緯
- herokuでnaked domain(wwwとかついていないやつ)を利用している
- herokuのデフォルトのSSLとnaked domainだとCDNとの併用ができないらしい
- Automated Certificate Management | Heroku Dev Center
- ACM is not compatible with CDNs such as Cloudflare or Fastly.
- not compatibleだから、使えないというわけではなかったのかも
- 最初fastlyを利用しようとしていて、設定をいくらゴニョゴニョしてもうまくいかなかった
- Expedited SSLというアドオンとcloudflareを利用することでCDNの利用ができた
- 一応うまく動いていたがExpedited SSLの設定がうまくいっておらず(把握していたがとりあえず動いているので後回しになっていた)、1年経って証明書切れ(本来はなにかしらの証明書更新のためのアクションを促されるはずだったが何もなかった)
- Expedited SSLを削除してherokuのに戻したところ普通に動いた(cloudflareも普通に動いていた…)
- Expedited SSLにお金払ったの損だったな、という気持ちに
sleek
sleek とは 意味・読み方・表現 | Weblio英和辞書
なめらかな、つやのある、小ぎれいな、めかした、スマートな、口先のうまい、人あたりのよい
shrine/instrumentation.md at master · shrinerb/shrine
- shrineをある程度カスタマイズして使うのであれば必須のプラグインでは、という気がする
- ARのカラムとして普通に使う場合は入れても入れなくても、という気がする
Restore Cached Data · Shrine
puma-dev/dns.go at master · puma/puma-dev
- 今ではあまり使われないpuma-devだけど、dns問い合わせをいい感じに解決してくれる機能というのは、サブドメインを扱うアプリケーションのときに便利だな、と思ってる
- その昔はローカルにbindいれてゴニョゴニョしていたり、/etc/hostsで頑張ったりしていた
- Railsで環境毎にサブドメインとパスを切り替える - WEB SALAD のようにアプリケーション側でうまいことやる、という方法もあるけどできればやりたくない
- puma-devのdnsのところだけ抜き出して使えると便利なのでは?と思いソースをみたらこれを見た限りでは難しくなさそうだなーとなった
- 時間ないのでできるかわからないが、カッとなったらやりたい
minioのエラー
minio_1 | 2020/01/19 07:48:55 http: TLS handshake error from 172.26.0.1:57822: EOF
おっ?と思ったけど、単にminioのオレオレ証明書をブラウザで許可していないだけだった。
apt-key output should not be parsed (stdout is not a terminal)
これ単にwarningが出るだけで動いてはいるみたいなのでとりあえず放っておく
docker-composeでpostgresqlのバージョンを変えると起動しなくなった
docker-compose down --volume
でvolume一回消したら解決した