20191212 週刊Railsウォッチ公開つっつき会メモ
初めての公開勉強会に行ったのでメモしたことを
URL
https://connpass.com/event/157005/
- URL
- ⚓Rails: 先週の改修
- ⚓class_namesヘルパーを追加
- ⚓Active Jobにdefault_retry_jitter設定を追加
- ⚓入力値が正しくならない問題のリグレッションを修正
- ⚓データベースURLで=をサポート
- ⚓RailsのActiveModel::ValidationsでネストしたAPIパラメータのバリデーション(Awesome Rubyより)
- ⚓secret_key_baseをお漏らししないために
- tapping_device gemに新機能
- クライアントとサーバーどちらに実装するか
- ⚓非推奨になったfind系メソッドを殺して回る(Hacklinesより)
- その他Rails
- ⚓2.7の変更点たち、特にパターンマッチング
- ⚓sigcdump: RubyをCレベルでバックトレース
- ⚓早速PyTorchをRubyで
- rqlite
- PostgreSQL 12 Improvement: Benign Log Entries “Incomplete Startup Packet” - Percona Database Performance Blog
- Github Actionsまわり
- AWS WAF
- Linuxカーネル
- ⚓WebAssemblyがW3CのRECに
- Webの縦書き
- 依存性アップデートサービス
- Gopherプロトコルで攻撃
- ruby biz
- 感想メモ
⚓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設定を追加
ジッター (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
PostgreSQL 12 Improvement: Benign Log Entries “Incomplete Startup Packet” - Percona Database Performance Blog
変なport叩いたら変なログはくのを直したよという話
Github Actionsまわり
AWSとGoogle 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で縦書きできんだ!
依存性アップデートサービス
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://www.jiji.com/jc/article?k=000000106.000027849&g=prt
クックパッドマート
自社サービスやるなら登録しとくいいな
エントリーすればタダで(重要)WebDBPressにのせてくれる
感想メモ
- 初勉強会
- 全部ついていくのむりめ!ところどころわかるor興味あるとこだけついていければと思った
- ほかのひとにURL展開するときにQRコードにシュッとできると便利そう
エンジニア口が悪いからアバターかわいくすればゆるせる?
- エンジニア全員エンジニアお嬢様口調で話すといいとおもった(KONAMI感) https://shindanmaker.com/949909