- Ruby / Rails関連
週刊Railsウォッチ(20200915後編)RubyKaigi 2020 Takeoutの動画出揃う、イタリア語でRuby、AWS Summit Online開催中ほか
こんにちは、hachi8833です。
- 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
お知らせ: 来週の週刊Railsウォッチは連休につきお休みいたします🎌。
⚓ Ruby
⚓ RubyKaigi 2020 Takeoutの動画出揃う
- 動画リスト: (2) RubyKaigi - YouTube
つっつきボイス:「RubyKaigi 2020 Takeout参加お疲れさまでした」「先週体調つらくて視聴できなかったの😢」「お、もう動画出揃ったのかな?」「ウォッチ公開時にはたぶん全部揃っていると思いますので後でチェックします」
後でスケジュールと照合したところ、動画はすべてYouTubeチャンネルに揃ってました🎉。
「今回もっともどよめきを呼んだ発表はこちらでしょうね↓」「この動画だけサムネイルが違うという」「当日見てなかったんですけど、な、何があったんですか😅」
「リモートカンファレンスの新しい形を開拓した感ある」「録画配信ならこのぐらい頑張っていいんだって気付かされますね」「一発録りにとらわれずに録画編集しながらベストアングルを追求できますし」「Twitterで発表者の方が『発表しながらリアルタイムにチャットで質疑応答できるのがありがたい🙏』『自分の発表を見られるのが嬉しい😂』って何人もつぶやいてましたね」「そうそう」
「YouTubeのチャットって残ってるのかな?👀...さすがにチャットは残ってないか」「まあ編集も大変でしょうし残さなくていいかも」「たまにスパムっぽい書き込みもあったりしましたし」
「今年は初のリモート開催でしたけど、思ったよりずっとRubyKaigiらしくて自分は満足😋」「残りの半分は土日とかにちまちま見ていこうかなと思ってます」「海外で視聴してた人も多かったみたいですね」「普段だとなかなか来られないであろう海外勢もリモートだと参加しやすそうなのが海外勢にとってはよかったかも」「普段でもRubyKaigiは半分ぐらい海外勢いる感じですけど」
以下は登壇者のブログです。
⚓Rubyに右代入がエクスペリメンタルとして追加(Ruby Weeklyより)
# 同記事より
[170, 65] => height, weight
# 上は以下と同等
height, weight = [170, 65]
つっつきボイス:「昨年のRubyKaigiで右代入って面白いよねみたいに盛り上がってたのは覚えてたんですけど」「しばらく議論しているうちにいつの間にかしれっと入ったという話はどっかで聞いたかも🤔」
後で調べると、今年4月のウォッチで扱っていたのをやっと思い出しました😅。
⚓italian-ruby: イタリア語で書くRuby
# 同リポジトリより
# persona.ir
classe Persona
definisci inizializzatore(nome)
@nome = nome
fine
definisci come_ti_chiami?
stampa "Ciao, mi chiamo #{@nome}."
fine
fine
toni = Persona.nuova("Toni")
toni.come_ti_chiami?
なおリポジトリのREADMEをブラウザで英語に翻訳してみたらコードまで英語になってしまいました😆。
つっつきボイス:「イタリアンルビィ?」「ちょっと前にruby-jp Slackとかで話題になってたヤツで、Rubyのキーワードやメソッドをイタリア語に変えたものだそうです」「Utilizzoですって」「流れからするとusageか」「class
がclasse
とは」「definisci inizializzatore
とか読めない😆」「きっとディフィニーチ・イニツァリザットーレとかそんな感じで😆」「パスタの名前みたいで美味しそう🍝」「こういう邪悪な改造好き😆」「とても楽しい👍」
fine
が音楽用語のフィーネ(終了)と同じなのはわかりました🎵。
「もしかしてGitHub README上のコードがちゃんとハイライトされてる?と思ったらそうでもないか」「単純に語を置き換えるだけならやれそうですけど」「こういう改造って英語と語順が同じになる言語じゃないと意味ないんですよね」「たしかに日本語とかだとキツそう」「語順が違うとパーサーから頑張らないといけなくなりますし」「早速遊んでみた方の記事↓があるのでこちらの方が読みやすいと思います」
2020-08-31 - italian-ruby - diary https://t.co/UAn1vyyLD9
— Pocke(ぽっけ) (@p_ck_) September 1, 2020
⚓その他Ruby
言い換えると、Rubyをインストールしてエディタを開くと、あら不思議!補完が効く!的な世界が来るといいなあと思っています。
— 大倉雅史(OKURA Masafumi) (@okuramasafumi) September 6, 2020
つっつきボイス:「SolargraphはRubyのlanguage serverですね↓」「language serverを言語にバンドルするかどうか」「たしかに今なら入ってもいいかも🤔」「Rubyのバイナリが大きくなりそうですけど」
「世のIDEがこういうlanguage serverを使うようになればいいと思います」「自分はJetBrains IDEがlanguage serverになって欲しいですけど」
参考: Langserver.org
こんなふうに、RubyKaigiでは開催候補地をいつもいつも探しています。皆さまからのご提案、引き続きお待ちしてます!
ご提案、といっても、ぜんぜんマジメなやつじゃなくて良くて、雑談レベルで全然オッケーです。今回の、Ruby 3で3倍だから三重県で……ぐらいの雑なやつでも大歓迎です! #rubykaigi— Akira Matsuda (@a_matsuda) September 6, 2020
つっつきボイス:「運営の皆さまお疲れさまです🙏」「RubyKaigiのような大きなカンファレンスってたいていの県でやれるんだなというのがわかってきた」「そういえば名古屋・中京あたりが何となく未開催だった気がします」「名古屋周辺は交通の便もよくて人気も高そうだから会場早めに押さえないと取りづらいかも?」
後で過去のRubyKaigi開催地を雑にリストアップしてみました。
- 2006: 東京都
- 2007: 東京都
- 2008: 茨城県つくば市
- 2009: 東京都
- 2010: 茨城県つくば市
- 2011: 東京都
- 2012: (開催なし)
- 2013: 東京都
- 2014: 東京都
- 2015: 東京都
- 2016: 京都府京都市
- 2017: 広島県広島市
- 2018: 宮城県仙台市
- 2019: 福岡県福岡市
- 2020: (長野県松本市で開催予定がキャンセル->代替イベントとしてTakeoutをリモート開催)
⚓ 追記(2020/09/16)
以下のご指摘をいただき、上記リストを更新しました🙇。修正前の画像はこちらです。
"後で過去のRubyKaigi開催地を雑にリストアップ" 2012年にRubyKaigiは開催されておらず(札幌のは地域Ruby会議)、2020の開催はキャンセルされている。リモートの"代替イベント"としてtakeoutが開催された(よってurlが異なる)。あと松本がstrikeされてるの印象よくないですhttps://t.co/f6Wke4fX3v
— Kakutani Shintaro (@kakutani) September 16, 2020
⚓ 追記(2020/09/16)
続いて以下の情報もいただきました。ありがとうございます!
正式名称は2006は日本Rubyカンファレンスで、2007-2011が日本Ruby会議で、2013からRubyKaigiなのでした。しかし通称は一貫してRubyKaigiなのです
— Kakutani Shintaro (@kakutani) September 16, 2020
⚓クラウド/コンテナ/インフラ/Serverless
⚓AWS Summit Onlineが9/30まで開催中
- イベント: AWS Summit Online [9/8~9/30開催のクラウドカンファレンス] | AWS
- 全セッションリスト: オンデマンドセッション一覧 - AWS Summit Online [9/8~9/30開催] | AWS
- 動画リスト: AWS Japan Summit Online 2020
つっつきボイス:「AWS Summit Onlineって結構長期間やってるんですね」「案内を見てみると、今回はずっとオンデマンド配信なのか」「え、そうなんだ!」「録画配信でやってるみたい」
「AWS Summitは例年だと人数多すぎて入場できないセッションなんかもあったので、それを考えると今回の形態の方がいいのかも🤔」「以前だと録画禁止のセッションなんてのもありましたし」「マジですか?!」「タイトルは公開だけど内容や資料が非公開だったり」「事例系の発表だとありそうですね」
「さすがAWSというか、YouTubeを使わずに自分のところのインフラで動画を公開している」「『YouTubeより使いにくいです』ってみんなでフィードバックするといいと思います🤣」「本当のことを🤣」「まあAWSはインフラ提供がメインなので、YouTubeのように長く使われているUIと単純には比べられませんけど」
参考: AWS Summit Online Day2(2020/09/09)とその後 #AWSSummit まとめ - Togetter
⚓AWS東京リージョンでSingle Sign-Onが利用可能に
つっつきボイス:「AWSをSAMLのService Provider(SP)として使うことが以前からできたけど、これを使うとIdentity Provider(IdP)として使うこと」「ところでAWS Organizationsのユーザーインターフェイスってむちゃくちゃ使いづらい...」「この機能使ってみようかなと思ったけどどうやらAWS Organization向けか〜: うちらが今管理しているところは多くが別アカウントなのでOrganizationsで一括管理できないか🤔」
参考: Security Assertion Markup Language - Wikipedia
参考: SAMLとは |クラウド型シングルサインオン・アクセスコントロール(IDaaS) OneLogin - サイバネット
⚓翻訳『Dockerハンドブック』
- 元記事: Dockerハンドブック
つっつきボイス:「はてブで盛り上がってた記事です」「表示に時間がかかると思ったら記事がすごく縦に長い...」「仮想マシンとコンテナあたりをしっかり説明してくれているのがいいですね👍」
⚓その他インフラ
つっつきボイス:「ところでDNSって何やかやで難しいですよね」「最近もCNAMEでFQDNに末尾ドットを付け忘れてサブドメインのサブドメインになっちゃったり」「あ〜それあるあるすぎ😭」「私もやっちまったことあります😭」
参考: インターネット用語1分解説~FQDNとは~ - JPNIC
「DNSは概念がわかっても運用はまた違ってくるんですよね: 1文字間違えただけで全部動かなくなるようなことがあったり」「AWSのRoute 53だけ使う分にはいいんですけど、そうじゃないDNSも使わないといけなくなると面倒」
「あとDNSでDKIM↓の公開鍵を貼り付けるときに一定文字数を超えると分割しないといけないんですけど、その分割方法も面倒ですし」
参考: ドメインキー・アイデンティファイド・メール - Wikipedia
「SendGridならCNAMEを貼るだけでDKIMやSPFも自動で設定してくれますし、必要な運用パターンを一通り網羅してくれているのでとっても楽なんですけど、自前で設定しようとすると大変」「あれは大変っす」「SendGridの強力さはホントありがたい🙏」「まあ全部AWSのRoute 53でやれたらDNSはそんなに大変じゃないんですけど」
参考: SPF, DKIMの特徴と違い | SendGridブログ
⚓CSS/HTML/フロントエンド/テスト/デザイン
⚓遅延読み込みなど
- 元記事1: 表示速度を飛躍的に向上させるHTML/CSS最新仕様「content-visibility」「Lazy loading」「contain」をコード付き簡単解説 - Yahoo! JAPAN Tech Blog
- 元記事2: 画像の遅延読み込みにloading属性とJavaScriptを併用した最大限のパフォーマンスを発揮させる実装方法 | コリス
つっつきボイス:「最近のlazy loading系機能か」「こんなふうに↓loading="lazy"
を画像で指定してやれるのはいい👍」「こんな仕組みになるんだ〜すごい」「JavaScriptでlazy loadingするのってちょっと泥臭いですし」「たぶん高さも指定しておかないと表示ががたつきそうですけど」
<!-- 元記事1より -->
<!-- 画像に適用する場合 -->
<img src="pic.png" alt="画像の詳細" loading="lazy">
<!-- iframeに適用する場合 -->
<iframe src="external.html" loading="lazy"></iframe>
⚓imgproxy: リモート画像をリサイズ
- 元記事: imgproxy: Resize your images instantly and securely — Martian Chronicles, Evil Martians’ team blog
つっつきボイス:「imgproxyはEvil Martiansが作ったツールだそうです」「GitHubアカウント名もimgproxyというあたり気合入ってる」「大量のリモート画像をリサイズするのに使うみたい」「後で遊んでみようかな😋」
「そういえば昔のガラケー時代のキャリアも画像のプロキシでこういうことやってましたね」「へ〜?」「当時WILLCOMのAIR-EDGE(旧AirH")とか使ってたときにそういう高速化オプションがありましたし」「そんなサービスあったんですか!」「HTTPで送られてくる画像が勝手にコンバートされるという」
# 同記事より
/%resizing_type/%width/%height/%gravity/%enlarge/%encoded_url.%extension;
「なるほど、こんな感じ↑でURLフォーマットに画像サイズとかを含めて変換するというよくある方法か、こういうの自分も作ったし誰もが一度は作ったりしますよね」「へ〜」「サイズ違いの画像を用意するのが大変なときにこんな感じでやりましたヨ」「なるほど」「ただ外部のどこからでもこういうURLにアクセスできてしまうと簡単にDDoS攻撃できてしまうので注意が必要ですけど(Evil Martiansはきっと対策しているでしょうけど)」
⚓言語/ツール/OS/CPU
⚓codic.jp: コードのネーミング支援
ネーミングに困らない【codic】
変数名や関数名のネーミングに迷った時に使えます。
英語が苦手な僕も、これを使い出してからネーミングに困る事がなくなりました。#駆け出しエンジニア #駆け出しエンジニアと繋がりたい #駆け出しエンジニアつながりたいhttps://t.co/OJAB51FT4V pic.twitter.com/1SpaOYprGj
— shin (@shinpachix) August 31, 2020
つっつきボイス:「codic.jpって以下のツイート↓で初めて知ったんですけど、クラス名や変数名をチームで統一したりするツールだそうです」「VSCodeとかと連携するのね」「え、金取るの?😆」「フリープランもありますね」「ネーミング支援だけでサービスになるとは思いつかなかった...」「そんなにしょっちゅうネーミングするんだろうか?」
codicさん、ふだん使ってないんだけど、今日たまたま参考にしてみようと思ってアクセスしたら、アクセスできなかった・・・😢https://t.co/VB6Lgfhypk pic.twitter.com/DD3dLHn3Kx
— Junichi Ito (伊藤淳一) (@jnchito) September 9, 2020
もう直ってます↑。
⚓その他
⚓所変われば
ノリがカロリーメイトと同じ https://t.co/ddCizyQF3H
— Yukihiro Matsumoto (@yukihiro_matz) September 9, 2020
volatile
必要説を見かけました。
つっつきボイス:「ターゲッティング広告ならわかるけど、一般の注意喚起としてはどうかな〜?🤔」「この看板が大学や企業のでっかいキャンパス内だったりしたらワカル」「シリコンバレーってそういうキャンパスと町が一体化してるような場所多そうですし」
後編は以上です。
バックナンバー(2020年度第3四半期)
週刊Railsウォッチ(20200914前編)10月のKaigi on Rails情報発表、JS入れ過ぎRailsアプリ、テストで便利なpuffing-billy gemほか
- 20200908後編 Shopify版Rubyスタイルガイド、JavaScript Primerが2.0に、GitHub Container Registryほか
- 20200901後編 RubyKaigi 2020 Takeout登壇者発表、Ruby開発版が2.8から3.0へ、マイクロサービス分割ほか
- 20200831前編 GitHubがRuby 2.7にアップグレード、Durationに変換メソッドが追加、hair_triggerでデータベーストリガほか
- 20200825後編 Rubyクラスライブラリをgem化、Rubyテストフレームワークrr、ChromebookでWindowsが動くほか
- 20200824前編 「Active Jobスタイルガイド」は有用、SiderがGitLabに対応、eager loading時のselectを修正ほか
- 20200818後編 ruby_jardデバッガがスゴい、RubyオンラインマニュアルにEdit機能が追加、Ruby 2.7のBundlerを消す方法ほか
- 20200817前編 お盆も続くRails改修、Rails 6.1にManyモナドが入る?rails-auth gemでクライアント認証ほか
- 20200811山の日短縮版 RSpec Queueでパラレルテスト、カロリーメイトとRubyのコラボ、Rubyのcoercionほか
- 20200804後編 「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか
- 20200803前編 書籍『パーフェクトRuby on Rails』増補改訂版、マルチDBで抽象クラスをscaffold生成、GitLabがPumaに乗り換えほか
- 20200721後編 『パーフェクトRuby on Rails』増補改訂版発売間近、scan_left gemでレイジーなinjectほか
- 20200720前編 10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか
- 20200714後編 ruby-warning gemでワーニングを手軽に抑制、rubocop -aの振る舞いが変わる、書籍『MySQL徹底入門 第4版』ほか
- 20200713前編 rspec-openapiでスキーマ自動生成、Rails Architect Conf動画、
where()
ハッシュキーに比較演算子条件を書ける機能ほか - 20200707後編 Rubyで無名structリテラル提案、書籍『AWS認定ソリューションアーキテクト』、21世紀のC言語ほか
- 20200706前編 Railsでのマルチテナンシー実装戦略を比較、Railsでサブクエリを使う、URI.parserが非推奨化ほか)
今週の主なニュースソース
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。