- Ruby / Rails関連
週刊Railsウォッチ: RBS 3.3.0とSteep 1.6.0リリース、Ruby Conf Taiwan 2023ほか(20231116後編)
こんにちは、hachi8833です。
僕自身も「あ、しまった、マージしちゃいけないブランチにがっつりマージしてしまった💧」みたいなミスをしたときは、3回深呼吸して「よし、誰かと一緒にリカバリしよう」って考えるようにしています。(そういうハプニングが年に数回ある😅)
— Junichi Ito (伊藤淳一) (@jnchito) November 3, 2023
つっつきボイス:「下手に自力で解決すると泥沼、あるある」「最近はあまりやらないけど、Gitでちょっと複雑な操作をするときに壊れるかもしれないと思ったら、プロジェクトのディレクトリを丸ごと複製してから作業してた: Gitのチェックアウト状態や競合状態などの情報がすべてファイルとして保存されるのがGitのありがたい点なので」「自分もやってました」「特に、たまにしかやらないstashの前とか、大規模なrebaseをやる前なんかにやってた」「rebaseを途中でabortしようとしてうまくいかないときもたまにありますよね」「ディレクトリをコピーしておけば何とかなるというGitの安心感は大きい」「Macだったら最終手段でTimeMachineから取り出す手もありますし」
🔗Ruby
🔗 RBS 3.3.0とSteep 1.6.0がリリース
つっつきボイス:「ruby-jp Slackで知りました」「細かな改修がだいぶ進んでいるようですね」「ruby-jp Slackの#type
チャンネルではRBSやSteepの機能改修についてものすごく盛んに議論されていますね」
🔗 Rubyの"Uselessシンタックスシュガーシリーズ": パターンマッチング(Ruby Weeklyより)
つっつきボイス:「zverokさんが最近始めたRubyの"Uselessシンタックスシュガーシリーズ"記事のパート1です」「パターンマッチングのユースケースは個人的にまだまだ開拓の余地がある気がしますね: 個人的にはLambdaと組み合わせたりしたDSL的な応用が今後も発見されていくんじゃないかな」
参考: “Useless Ruby sugar”: Pattern matching (Pt. 2)
参考: “Useless Ruby sugar”: Pattern matching (Pt. 3/3)
「ところで、zverokさんのUselessシンタックスシュガーシリーズ記事は翻訳を始めているところなんですが、以下のシリーズ開始宣言記事の冒頭で、zverokさんが最近ウクライナ軍のコンピューター関連の部門に移籍して記事を書く余裕が少し出てきたとのことです」
参考: That useless Ruby syntax sugar that emerged in new versions
🔗 Ruby gemのトレンド
同記事より
つっつきボイス:「記事でも言及されてはいますけど、この種のサーベイでカウントされるダウンロード数の大半はCI(GitHub ActionsやCircleCI等の自動ビルド環境)でダウンロードされたカウントになると思うので、トータルのダウンロード数はたしかに増えまくっていますけど、実際に多用されているgemの傾向がどこまでわかるんだろうかというのはいつも気になりますね」「そのあたり気にしてなかったかも😅」「ダウンロード数はおそらくrubygems.orgのAPIなどから取れると思いますけど、人間がダウンロードしたかどうかを判別するのが難しい」
🔗 YJITのGCがデフォルトでオフに
つっつきボイス:「k0kubunさんがYJITのGC(ガベージコレクション)をデフォルトでオフにしたそうです」「--yjit-code-gc
オプションを渡して起動するとGCをオンにできるのね」「まだ詳しく見ていないけど、現時点ではYJITのGCをオンにすると効果がある場合もあるけど設定によっては必ずしもメリットがあるわけではないと判断されたようですね」
「ところでRailsでRuby 3.3以降を使うとデフォルトでYJITがオンになるんですって↓」
参考: Enable YJIT by default if running Ruby 3.3+ by byroot · Pull Request #49947 · rails/rails -- マージ済み
以下はRubyの#8705で言及されていたDHHのツイートです↓。
We put @heyhey on YJIT too. Exactly the same +24% speed increase on the median, but also an even bigger +18% bump on the P90. Biggest real-world speed increase I've seen from a single change ever. Thanks again to @tobi for sponsoring this work, and @Love2Code for leading it! https://t.co/GPcXb4JbXo pic.twitter.com/F95nsHxeLm
— DHH (@dhh) October 9, 2023
「なお、YJITがらみで別のツイートも見つけました↓」「AWS Lambdaはコールドスタートする場合はYJITの恩恵があまり得られないけど、ホットスタートならYJITがよく効くはずですね」
I just enabled YJIT on our AWS Lambda function task using Ruby 3.2 (arm) by RUBY_YJIT_ENABLE=1.
It makes the task 23% faster. (107425.82ms → 83527.08ms)
Yay!— tagomoris (@tagomoris) November 6, 2023
参考: Operating Lambda: パフォーマンスの最適化 – Part 1 | Amazon Web Services ブログ
🔗 その他Ruby
#kaigieffect という概念はいつ頃発見されたのだろう、とふと思い立ち調べてみたら2011年、1stシーズン最後のRubyKaigiからなのですね👀まとめがあって便利…!!#kaigieffect ー RubyKaigi効果 https://t.co/cFDiZqdmEU #Togetter @togetter_jpより
— Misaki Shioi (しおい) (@coe401_) November 5, 2023
つっつきボイス:「KaigiEffectという言葉は以前からちょくちょく見かけましたね」「Kaigi on Rails 2023がきっかけでまたバズったようです」
「Kaigi on Rails 2023で"Ruby Conf Taiwan 2023行こうよ"という機運が高まっているのを何度か見かけました」「Matzや大倉さんの他にも日本人の登壇者が何人もいますね」
https://t.co/AnEAYTXwzw
I'm going to give a talk in RubyConfTw! I'm looking forward to seeing Rubyists in Taipei😆
(Spoiler: I'll talk about a different thing than RSpec code reading in Euruko, so stay tuned!)— 大倉雅史(OKURA Masafumi) (@okuramasafumi) October 31, 2023
RubyConf Taiwan 2023プログラムと発表者ご確認いただけます。
みなさまの参加お申し込みをお待ちしております!
詳しくは下記のリンクをご覧ください。
➡️https://t.co/zYOW4ZuwSu— rubyconftw (@rubyconftw) November 1, 2023
「ところで台湾といえば5xRubyという会社がありますよね」「5xRuby、イベントでスポンサーもやってましたね」「広島のRubyKaigiのRubyカラオケでこちらの社長と廊下で話し込んだ覚えがあります(とても流暢な日本語でした)」「5xRubyは、台湾語だと"五倍紅寶石軟體開發"なんですね」「紅寶石(紅宝石)はRubygem、軟體(軟体)はソフトウェア、開發は開発か」
参考: 5xRuby Co., Ltd.
🔗クラウド/コンテナ/インフラ/Serverless
🔗 AWS SDK For RubyでRubyランタイム2.3と2.4のサポート終了のお知らせ(Ruby Weeklyより)
つっつきボイス:「これはRubyはRubyでもAWS SDKの方ですね」
「ところでAWS LambdaでサポートされるRubyランタイムがなかなかバージョンアップされないと思っていたけど、今ググると今年6月にRuby 3.2をサポートするようになってた↓」「これはありがたい🙏」「それと合わせてRuby 2.7ランタイムが12/7から非推奨化が開始されるとも書かれていますね」
参考: Ruby による Lambda 関数の構築 - AWS Lambda
参考: AWS LambdaでRuby3.2ランタイムが利用可能になりました | DevelopersIO
🔗CSS/HTML/フロントエンド/テスト/デザイン
🔗 blog.jxck.ioのブラウザキャッシュ解説記事
元記事: ブラウザでリロードしながらキャッシュの挙動を確認してる全ての開発者へ | blog.jxck.io
つっつきボイス:「Jxckさんの非常に詳しい解説記事ありがたい」「現在のようになった経緯も書かれていて助かります」「キャッシュヘッダー周りはいろいろ難しいんですけど、キャッシュの挙動にブラウザ側の処理も関係しているとか、学びがある👍」
🔗言語/ツール/OS/CPU
🔗 GitHub Copilot Chatが12月にGAに
お待たせいたしました、GitHub Copilot Chatが2023年12月にGAとなります!また、Visual Studio、Visual Studioに加えて、JetBrains IDEやGitHub Mobile上でもCopilot Chatがご利用いただけるようになります。 #GitHubUniverse https://t.co/5OUvV52UKV
— GitHub Japan (@GitHubJapan) November 8, 2023
それだけではありません、Copilot Chatがhttps://t.co/vPRUJsdHWH上でも使えるようになります。https://t.co/vPRUJsdHWH上でソースコードについての説明や、Pull Requestの説明を生成するなど、GitHub上のさまざまな場所でCoiplotのサポートを得ることができるようになります。 #GitHubUniverse pic.twitter.com/gIwGSN9UbJ
— GitHub Japan (@GitHubJapan) November 8, 2023
つっつきボイス:「そうそう、GitHub Copilot ChatがJetBrains IDEでも使えるようになる🎉: これでVSCodeを立ち上げずに済む」「GitHub CopilotはこれまでもJetBrains IDEで動いているけど、Copilot Chatの方ははVS Codeしかサポートされていなかったんですよ」
「2つ目のツイートではGitHub.comでもCopilot Chatが使えるとある: これも助かる👍」
「とにかくCopilotはほんとありがたい」「めっちゃありがたいです」
GitHubアカウント切り替え機能。事故りがちなやつ試してみたけど問題なかったさすがGitHub(職業病)
ユーザーAにログインした状態でタブAでIssueを表示しタブBでアカウントBへスイッチ、タブAに戻りユーザーAの画面からコメント → 422 Unprocessable Entityhttps://t.co/iIsKDpsqgN
— 武田 憲太郎 (@KentarouTakeda) November 5, 2023
「他には、少し前からGitHubで複数アカウントを切り替えられるようになってて、知り合いが喜んでいました」「今のところ業務では複数アカウントを切り替える機会はないけど、これもよさそう👍」
後編は以上です。
バックナンバー(2023年度第4四半期)
- 20231107 Kaigi on Rails発表「Simplicity on Rails」を見るほか
- 20231025後編 ShopifyのWebAssemblyツールチェインRuvyほか
- 20231024前編 7.1アップグレードガイドにActive Record暗号化設定の注意事項が追加ほか
- 20231018後編 Kaigi on Rails 2023関連イベント情報公開、複合主キーのlocality解説記事ほか
- 20231017前編 Active Storageのしくみを詳しく解説するDiscussion投稿ほか
- 20231011 Rails 7.1.0リリース、YARPがprismにリネームほか
- 20131004 Rails 7.1.0.rc1と7.1.0.rc2がリリース、SQLite3コンフィグの最適化ほか
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。
週刊Railsウォッチについて
TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)