5/15~6/3のメモ

Active Storage: allow serving files by proxying · rails/rails@dfb5a82

  • cdnでactive storage使えるようになって素敵

バケットポリシー

バケットポリシーで有効であれば、ユーザのポリシーがなくてもアクセス可能

S3のアクセスコントロールリスト

画像アップロードして閲覧する、みたいなサービスのとき、バケットのアクセスコントロールリストの「オブジェクトの一覧」をチェックしていたのだけど不要だった

image.png (66.5 kB)

S3のバケットポリシーでハマったので、S3へのアクセスを許可するPrincipalの設定を整理する | Developers.IO

UPS

電気ケトルなどを使っているとルーターも属しているサブブレーカーがよく落ちてインターネット接続が死ぬので、VDSL装置とルーターUPSにつなげたいのだけどどれがいいのか全然わからない…。瞬断があると困るのだけど、瞬断がないやつはざっと見た限り10万くらいから。さすがに高い。

「UPS」を正しく選ぶコツ――容量の計算方法は? 給電方式とは? (1/3) - ITmedia PC USER

他の記事見た感じ、別に高いやつじゃなくても大丈夫そう?

savanna.io公式twitterアカウントをruby-jpのsavannaチャンネルに流すようにした

TwitRSS.me - rss of twitter user feeds by screenscraping with perl を使った

Add signed ids to Active Record (#39313) · rails/rails@1a3dc42

パスワードリセット機能なんかを作るときに便利そう

Rails Bytes

rails templates共有サイト。gemの導入に複数ステップ必要な場合にこれを活用すると一ステップに縮まるのでいいんじゃないかと思った

StimulusReflex

stimulusの拡張で、サーバが送ったHTMLを既存のHTMLといい感じにマージさせて更新させることで、jsを頑張らなくてもSPAできるぞ!というやつらしい。ちゃんと時間をとってドキュメント読んだり試してみたい

Each form gets its own CSRF token in Rails 5 | BigBinary Blog

  • formごとにCSRFトークンできたのってこういう理由だったんだっけ(忘れていた)
  • Rails 6.0.3.1でform用のCSRFトークンの生成方法がかわったのかな
    • グローバル用のCSRFトークンはランダム文字列だった記憶

YAMLやMarshalをロードするとRCEになる、みたいなの具体的にどういう感じなんだっけ

MarshalでRCEになるのはそれ使ってsendしてるコードがアプリケーション内にある、とかなのかなあ

The dash of sugar used to support the key architectural pattern in BC3 + HEY by dhh · Pull Request #39341 · rails/rails

Railsでクラステーブル継承機能ができそう。よいのでは

画像ファイルによるクロスサイト・スクリプティング(XSS)傾向と対策 | 徳丸浩の日記

  • nosniffつけない状態で脆弱性となる具体的なケース、よく忘れる
  • ↑はjsを画像と偽る例

https://qiita.com/noob1234/items/0d9e0f94eb26e4087d8e

aws cliでのログイン、profileごとに設定を分けられるのかな

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html

なるほど単に~/.aws/credentialsに規定の書き方で書いておけばいいかな(オプション覚えるのがだるい)。

AWS Chatbot(beta版)を用いたSlack通知 | SEEDS Creators' Blog | 株式会社シーズ

  • Chatbotなんとなく理解した
  • Chatbotで特定のSNSトピックにサブスクリプションを作るので、SNS側ではトピックだけ作っておけばよい

https://github.com/puma/puma-dev/blob/e264766d07b2c78e0e6f60b8219b9bb487b51f81/dev/resolver.go#L12

  • puma-devがmacDNS設定をどうやって変更しているのか気になっていたのだけどこういうことなのかな
    • "/etc/resolver"配下にDNSを変更したいドメイン名のファイルを作ってどのDNSを参照するかの設定を書けば良い?

macOS Catalina 10.15.4の不具合:Macがスリープから復帰後に強制再起動する問題が発生中 | ゴリミー

https://github.com/rails/rails/commit/6c4f3be929f1f427d6767050848f2fbee8c1f05f

コントローラ単位でraise_on_missing_translationsできるようになった

automatorで作業自動化したい

普段、自宅では縦2枚にしたディスプレイを使っているのだけれど、zoomなどで画面共有をするときには横にして使っている。毎回システム設定を起動してディスプレイを選択して、横(縦)にする方のディスプレイ設定を変更するというのが面倒なので、自動化設定したいな、と思いautomatorを試してみた。

automatorは操作を記録して自動化できるので一見できそうだったが、初期状態(例: システム設定が起動している、していない)やマウスクリックの座標が状況によって異なるのが影響しているようでうまく自動化できなかった。うまいやり方があるような気もするが、気力がないのでとりあえず今日はここまで。automatorの知見があるひとに話を聞いてみたい(ググっても簡単な使い方しか引っかからない)

deep-cover/deep-cover: The best coverage tool for Ruby code

ruby標準のcoverageを置き換えるgem。ぱっとみ良さそうではある

Dependabot

  • dependabot、web上からだけではなくてconfig.ymlで設定できる
  • 編集できる内容はwebで編集するのと変わらなそう

【新機能】Amazon CloudFrontに「Maximum TTL / Default TTL」が設定できるようになりました! | Developers.IO

それぞれどういうときに使われるかよくわかっていなかったので勉強になった

https://github.com/rails/rails/pull/39445

  • arelをwhereのブロック中で指定できる
  • べんりだけど、どんなクエリになるのかわかりづらくなりそうだなー

依存性の注入 - Wikipedia

rubyだとDI使うこと無いから、具体的にどんなんだったっけ?となってググった

Dockerのマルチステージビルドを使う - Qiita

イメージの大きさを小さく保つためのテクニック。本番環境でDocker使うなら積極的に使いたいところ

Understanding if your Deployment is CPU or Memory Bound

  • 参考になった
  • Railsは高トラフィックでもメモリ使用量はかわらない。時間経過でメモリが増えるのはある
  • CPUは逆に高トラフィック下でCPU使用量が増える。時間経過では変わらない
  • メモリは計測しやすいけどCPUは高トラフィックなときじゃないと計測できない
  • Railsのプロセスを1つ増やすか(もしくはunicornからpumaに移行するか)どうかは、1つ増やして高トラフィックなときにCPUとメモリを使い切っているかを考える
  • CPU使い切っていたらどうしようもない。pumaはメモリ効率よくなるけどCPUに関しては変わらない
  • メモリ使い切る(そしてCPUに空きがある)場合はunicorn→pumaにして、スレッド数を2以上にしてもうまくいくかも