20191212 週刊Railsウォッチ公開つっつき会メモ

初めての公開勉強会に行ったのでメモしたことを

URL

https://connpass.com/event/157005/

Rails: 先週の改修

⚓class_namesヘルパーを追加

Before:
<div class="<%= item.for_sale? ? 'active' : '' %>">

After:
<div class="<%= class_names(active: item.for_sale?) %>">

activeなやつ探したりがシュッとできる

⚓Active Jobにdefault_retry_jitter設定を追加

wikipediaより

ジッター (Jitter) とは、電気通信などの分野において、時間軸方向での信号波形の揺らぎの事であり、その揺らぎによって生じる映像等の乱れのことも指す。「いらいらする」という意味の英語"Jitter"に由来する。

https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%83%E3%82%BF%E3%83%BC

初めて聞いた
ジョブがリトライした時にいい感じにリトライ時間がばらける
サーバ負荷が原因な時とかに活きてきそう

使うかどうかはともかく設定できることはうれしい

⚓入力値が正しくならない問題のリグレッションを修正

hidden_field_tag('token', value: [1, 2, 3])
↓
<input type="hidden" value="">

スペース区切りになってほしいけどならなかったけど直した

⚓データベースURLで=をサポート

=はPostgreSQLコネクションでデータベースURLフォーマットを用いてoptionsを渡すのに必要。

使ったことがないからありがたみがよくわかってない

RailsのActiveModel::ValidationsでネストしたAPIパラメータのバリデーション(Awesome Rubyより)

  • grape(railsのgem)
  • swagger
  • graphQL

    • 複雑なデータ構造つらくない?
      >INSERTはつらい、楽なSELECTなら
    • エラー時は?
      >配列でわちゃわちゃかえってくるよ

⚓secret_key_baseをお漏らししないために

https://ooooooo.hatenablog.com/entry/2019/12/11/080000

Ruby版var_dumpのMarshal?を使った時にあぶない
JSONに切り替えよう

tapping_device gemに新機能

objectが触られた時の動きを追っかけたい時につかえる

クライアントとサーバーどちらに実装するか

サーバサイドじゃないと検証できないようなやつとかはサーバサイドにやらせたい

でかめのシステムだとマイクロサービスにできるといいよね(リスク分散

⚓非推奨になったfind系メソッドを殺して回る(Hacklinesより)

Post.find(:all, conditions: { published_on: 2.weeks.ago }, limit: 5 ...)
find_all_by_...
find_last_by_...
scoped_by_...
find_or_initialize_by_...
find_or_create_by_...

Post.where(published_on: 2.weeks.ago).limit(5)
Post.find_all_by(author: 'Shakespeare', ...)

Ruby enterprise Edition 1.8とかの頃

2.2とかはつらいよね

その他Rails

bundle exec (Rails 4.1 以前)
⬇️
bin/rake (Rails 5.0 以前)
⬇️
bin/rails (Rails 5.0 以降)

最近bin以下をcommitする風潮になった

⚓2.7の変更点たち、特にパターンマッチング

https://qiita.com/jnchito/items/9bb4aa1dcefa00257815

⚓sigcdump: RubyをCレベルでバックトレース

SysRqキー

そんなのあるんだ
Linuxだとその瞬間のdump吐けたりしてきもい動きができるらしい

PC-98にもいろんなきもいキーあるよね・・・

⚓早速PyTorchをRuby

https://qiita.com/kojix2/items/c19c36dc1bf73ea93409

Chainerの移行先候補のやつ

rqlite

https://github.com/rqlite/rqlite

sqliteRDBみたいな使い方ができる

PostgreSQL 12 Improvement: Benign Log Entries “Incomplete Startup Packet” - Percona Database Performance Blog

https://www.percona.com/blog/2019/12/03/postgresql-12-improvement-benign-log-entries-incomplete-startup-packet/

変なport叩いたら変なログはくのを直したよという話

Github Actionsまわり

AWSGoogle Cloud Platformは、GitHub Universeで公式にサポートされているアクションをリリースしました。アクション/ AWSとアクション/のgcloudアクションは非推奨となり、アーカイブされます。ワークフローを確実に実行するには、公式アクションに移行する必要があります。

Travisから移行した 実行時間減って安くもなった

AWS WAF

cloud frontの前とかにおきがち
SQLインジェクションとかよしなにとめてくれそう

WordPressとかでWAF有効にすると うまくいかなくなったりする

WAFはあとから入れるときびしいよね〜

Linuxカーネル

コンパイルするとまなびがある・・・・かも・・・・?

makeコマンドでインストールするのハマりがちで抵抗が・・・w

⚓WebAssemblyがW3CのRECに

WebAssembly

WebAssemblyは、ウェブブラウザのクライアントサイドスクリプトとして動作するプログラミング言語(低水準言語)である。wasmとも称されており、ブラウザ上でバイナリフォーマットの形で実行可能であることを特徴とする。2017年現在開発が進められており、 ... wikipedia https://ja.wikipedia.org/wiki/WebAssembly

Webの縦書き

https://www.publickey1.jp/blog/19/webcss_writing_modes_level_3w3c.html

電子書籍とかで確かに需要ありそう〜

:writing-mode

CSSで縦書きできんだ!

依存性アップデートサービス

Ruby:Renovate
PHP:dependabot

Gopherプロトコルで攻撃

https://blog.tokumaru.org/2019/12/defense-ssrf-amazon-ec2-imdsv2.html

SSRF対策としてAmazonから発表されたIMDSv2の効果と限界

$ curl gopher://localhost:8888/_Hello%0d%0aHiroshi%20Tokumaru%0d%0a

ruby biz

https://rubybiz.jp/

しらなかった

グランプリとったとこ

https://www.jiji.com/jc/article?k=000000106.000027849&g=prt

クックパッドマート

自社サービスやるなら登録しとくいいな

エントリーすればタダで(重要)WebDBPressにのせてくれる

感想メモ

  • 初勉強会
    • 全部ついていくのむりめ!ところどころわかるor興味あるとこだけついていければと思った
  • ほかのひとにURL展開するときにQRコードにシュッとできると便利そう

    エンジニア口が悪いからアバターかわいくすればゆるせる?

  • エンジニア全員エンジニアお嬢様口調で話すといいとおもった(KONAMI感) https://shindanmaker.com/949909