Ruby Weekly #394: 日本語サマリー
職場の Slack の #ruby 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
http://rubyweekly.com/issues/394rubyweekly.com
Highlights
Rails 5.2 リリース!Basecamp、Shopify で絶賛稼働中。
- Active Storage
- Redis Cache Store
- HTTP/2 Early Hints
- Bootsnap
- CSP 用 DSL
- Credentials
- Webpack 3.0 対応
行カバーレッジのみ分析していた Coverage
クラスは、Ruby 2.5 でメソッド、ブランチのカバレッジまで分析してくれるようになった。
A Dive into Ruby CVE-2017-17405: Identifying a Vulnerability in Ruby's FTP Implementation
Net::FTP
が裏で呼んでいた libcurl 脆弱性の解説。
Heroku から安いクラウドに移行する手順。Heroku の便利な devops ツールは Dokku に。
Google 製の gperftools スイートの tcmalloc で Ruby の malloc プロファイリング。SVG の図で可視化までしてくれる。
Hanami 1.2.0 リリース!
- HTTP/2 Early Hints
- UJS
- REPL 付きの開発環境エラーページ
- CLI フック
- 外部 gem から操作可能なプロエクトレベルの Rack ミドルウェア
Hanami::Repository
でカスタムの書き込みコマンドが定義可能に
Articles & Opinion
Launchy gem + binding.pry
で Capybara のテストをデバッグする便利ヘルパー。
Twilio で Rails アプリ発 SMS 通知機能実装。
面白いと思ったのはそもそもの課題。ニューヨークは道路掃除のため、駐車が許可されている路上スペースが定期的に変わる。変わったタイミングの通知が欲しかったらしい。車を移動させて罰金から逃れるように。
migration のバージョン番号を補完してくれる .bash_profile 用スクリプト。
意外と Rails だった 5 サイト。
複雑な WebSocket しかないと思われがちリアルタイム通信だが、サーバからの一方的なプッシュだけなら、比較的シンプルServer-Sent Events で十分。
ポーリングとも比較している。
豆知識:Facebook Messenger (ブラウザー版)は意外とポーリングで実装されている。
Code, Tools & Demos
stackprof または memory_profiler で Sidekiq をプロファイリングしてくれるミドルウェア gem。ダンプは S3 にエクスポート可能。
実験的なパターンマッチング gem。
The Ultimate Guide to Ruby Timeouts: Timeouts for Popular Ruby Gems
人気 gem のタイムアウト設定方法まとめ。