Upgrade to Pro — share decks privately, control downloads, hide ads and more …

文字化け、あるいはワークアラウンドとの戦い / You must send a pr for yourself

文字化け、あるいはワークアラウンドとの戦い / You must send a pr for yourself

Meguro.rb#19 2018/09/27(Thu.) at Quipper

https://megurorb.connpass.com/event/100401/

Fumiaki MATSUSHIMA

September 27, 2018
Tweet

More Decks by Fumiaki MATSUSHIMA

Other Decks in Programming

Transcript

  1. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    文字化け、あるいは
    ワークアラウンドとの戦い
    @mtsmfm
    Fumiaki Matsushima
    Meguro.rb#19 #megurorb

    View full-size slide

  2. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    ➔ Web Dev at Quipper
    ➔ Ruby と麻雀と DbD が好き
    ➔ 西日暮里.rb 主催
    ➔ GraphQL Tokyo 主催
    @mtsmfm.inspect

    View full-size slide

  3. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://studysapuri.jp/

    View full-size slide

  4. #megurorb 文字化け、あるいはワークアラウンドとの戦い

    View full-size slide

  5. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://nishinipporirb.doorkeeper.jp/events/79762

    View full-size slide

  6. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://twitter.com/284km/status/1044443818160906241

    View full-size slide

  7. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://www.meetup.com/ja-JP/GraphQL-Tokyo/

    View full-size slide

  8. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    文字化け、あるいは
    ワークアラウンドとの戦い
    @mtsmfm
    Fumiaki Matsushima
    Meguro.rb#19 #megurorb

    View full-size slide

  9. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    大事なことは最初に

    View full-size slide

  10. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    本体を直せ
    パッチを投げろ

    View full-size slide

  11. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    お前が困っていることは
    他の人も困る

    View full-size slide

  12. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    ワークアラウンドに逃げるな

    View full-size slide

  13. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    次の現場で踏むぞ

    View full-size slide

  14. #megurorb 文字化け、あるいはワークアラウンドとの戦い

    View full-size slide

  15. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    send_file
    send_data

    View full-size slide

  16. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    特定のブラウザで
    文字化けする

    View full-size slide

  17. #megurorb 文字化け、あるいはワークアラウンドとの戦い

    View full-size slide

  18. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    お手元にそういうの
    ありますよね

    View full-size slide

  19. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    不完全だった

    View full-size slide

  20. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    さらにワークアラウンドを
    重ねる

    View full-size slide

  21. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    今度は Safari が死んだ

    View full-size slide

  22. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    そういえば前職でも踏んだが
    対処方法を忘れた

    View full-size slide

  23. #megurorb 文字化け、あるいはワークアラウンドとの戦い

    View full-size slide

  24. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    信頼できる情報ソース

    View full-size slide

  25. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    信頼できる情報ソース
    == Rails コミッタ

    View full-size slide

  26. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://github.com/rails/rails/pull/21461#discussion_r41824447

    View full-size slide

  27. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    send_data 'data', filename: "\u{3042}.txt"

    NG "filename=\"\u{3042}.txt\""
    OK "filename=\"%3F.txt\"; filename*=UTF-8''%E3%81%82.txt"

    View full-size slide

  28. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    send_data 'data', filename: "\u{3042}.txt"

    NG "filename=\"\u{3042}.txt\""
    OK "filename=\"%3F.txt\"; filename*=UTF-8''%E3%81%82.txt"
    古いブラウザ向けのフォー
    ルバック
    RFC5987 に則ったフォー
    マット

    View full-size slide

  29. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    そもそも Rails でやってよ!

    View full-size slide

  30. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://github.com/rails/rails/pull/21461

    View full-size slide

  31. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    塩漬けされてる

    View full-size slide

  32. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://github.com/rails/rails/pull/21461#discussion_r215236774
    聞いてみる

    View full-size slide

  33. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://github.com/rails/rails/pull/21461#discussion_r215718170
    頼まれる

    View full-size slide

  34. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    https://github.com/rails/rails/pull/33829

    View full-size slide

  35. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    AStorage と AController の共通化がしたい

    View full-size slide

  36. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    置き場どうするか問題
    最初は
    ActionController::DataStreaming::Disposition
    FilenameParameters にしてみていた

    View full-size slide

  37. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    信頼できる情報ソース

    View full-size slide

  38. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    信頼できる情報ソース
    == Rails コミッタ

    View full-size slide

  39. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    Rails / OSS パッチ会
    http://blog.agile.esm.co.jp/entry/rails-oss-patch-meetup-20181026

    View full-size slide

  40. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    ActiveStorage と
    ActionController で使うものが
    ActionController 配下にあるの
    には違和感がある
    もともと ActionMailer と
    ActionController で跨いで使うものを
    ActionDispatch::Http の下に
    まとめている

    View full-size slide

  41. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    話すと早くて便利

    View full-size slide

  42. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    Merge された
    https://github.com/rails/rails/pull/33829

    View full-size slide

  43. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    Backport gem 作った
    https://github.com/mtsmfm/action_dispatch-http-content_disposition

    View full-size slide

  44. #megurorb 文字化け、あるいはワークアラウンドとの戦い
    まとめ
    ➔ 他の人も後の自分も困るのでパッチを書いて本
    体を直せ
    ◆ 直しつつ古い Rails 向けには Gem 作っとい
    たので同じ轍は踏まない
    ➔ Rails への PR で困ったらパッチ会に行け

    View full-size slide