こんにちは、hachi8833です。DHHがレース出場のために来日していたんですね。
We had the pace for a podium in the 6 Hours of Fuji, but missed out on strategy. Regardless of the result, loved signing all those REWORK books for fans, meeting some Japanese Rails programmers, and what an absolutely gorgeous place to race on a clear day 😍 pic.twitter.com/zKpjDQBOYm
— DHH (@dhh) September 11, 2023
DHHにサインもらった!!!! pic.twitter.com/8sep4SRZHz
— ガソリン車 (@polamjag) September 9, 2023
お知らせ: 来週の週刊Railsウォッチはお休みなので、通常記事を公開します。
🔗Rails
🔗 Turbo 8のTypeScriptがJavaScriptに置き換わる
"So farewell, TypeScript. May you bring much rigor and satisfaction to your tribe while letting the rest of us enjoy JavaScript in the glorious spirit it was originally designed: Free of strong typing." https://t.co/mCDhyrmEnu
— DHH (@dhh) September 6, 2023
つっつきボイス:「そうそう、DHHが突然にTurbo 8のTypeScriptを最終的にJavaScriptに置き換えると宣言してましたね」「めちゃ議論になってますね」「DHHがそこまでpure JSの方がいいと考えているとは」「ファイル拡張子を.tsから.jsに置き換えるのとTypeScriptの型指定を撤去するプルリクがマージされてますね↓」
参考: Remove TypeScript by afcapel · Pull Request #971 · hotwired/turbo
「早くもまとめ記事が出ていました↓」
「個人的には、TypeScriptはIDEでのサポートが強力になるので、フロントエンド開発とバックエンド開発を分けて進めるプロジェクトなら割りといいものだという気持ちはありますね」「今ならGitHub Copilotの補完も使えるので、TypeScriptで型のことを以前ほど考えなくても済みますよね」「Railsとフロントエンドを一体化させるならJavaScriptの方がもしかするとやりやすい面はあるのかもしれないけど」「TypeScriptを使うなら全体をTypeScriptで統一しないとメリットが減りそうではある」「Rails以外のところでTurboを使う人にとってはTypeScriptを使えてもいい気はしますよね」
その後DHHがこの件について別記事を出していました↓。
参考: Open source hooliganism and the TypeScript meltdown
🔗 devise-passkeys: Deviseのパスキー拡張
つっつきボイス:「社内でこのdevise-passkeysが気になるという書き込みを見かけたので拾ってみました」
# 同リポジトリより
class User < ApplicationRecord
devise :passkey_authenticatable, ...
has_many :passkeys
def self.passkeys_class
Passkey
end
def self.find_for_passkey(passkey)
self.find_by(id: passkey.user.id)
end
def after_passkey_authentication(passkey:)
end
end
「ところでパスキーといえば、少し前にdocomoがdアカウントのパスキー対応を開始してましたね」「自分もiPhoneでdocomoのパスキー設定しました: 以前の認証だとD払いとかアプリをいくつもインストールしないといけなかったりしてとても使いにくかった😢」
参考: dアカウント 「パスキー認証」の提供開始について | お知らせ | NTTドコモ
🔗 Rails 7.1のsecrets関連(Awesome Rubyより)
つっつきボイス:「秘密情報セットアップ用のbin/rails secrets:setup
コマンドはRails 7.1で削除されるんですね」「secretsをcredentialsに名前を変えようという話はだいぶ前からあるので、その一環でしょうね」
参考: § 2.5 秘密情報の暗号化 -- Ruby on Rails 5.1 リリースノート - Railsガイド
「Rails 7.1secrets
が非推奨化されてcredentials
に置き換わる話あたりは以前も取り上げた気がする(ウォッチ20230704)」
参考: Deprecate calling Rails.application.secrets
by p8 · Pull Request #48472 · rails/rails
🔗 Rubyで最も使われていないパターン(Hacklinesより)
つっつきボイス:「最も使われていないパターンって何だろうと思ったら、自分たちのデータベースコネクションアダプタでValue Objectを使ったという話のようですね: そのおかげでMySQL用のTrilogyへの対応も1箇所の変更で済むようになった↓」「なるほど」
# 同記事より
module RubyEventStore
module ActiveRecord
class DatabaseAdapter
def self.from_string(adapter_name, data_type = NOT_SET)
raise NoMethodError unless eql?(DatabaseAdapter)
case adapter_name.to_s.downcase
when "postgresql", "postgis"
PostgreSQL.new(data_type)
- when "mysql2"
+ when "mysql2", "trilogy"
MySQL.new(data_type)
when "sqlite"
SQLite.new(data_type)
else
raise UnsupportedAdapter, "Unsupported adapter: #{adapter_name.inspect}"
end
end
end
end
end
+ expect(DatabaseAdapter.from_string("Trilogy")).to eql(DatabaseAdapter::MySQL.new)
🔗Ruby
🔗 笹田耕一さんの「Rubyの並列並行処理のこれまでとこれから」記事
Rubyの未来を作る仕事、自分らでやります!!やる理由があるし、やりたいので!!
STORES、笹田耕一氏、遠藤侑介氏がフルタイムRubyコミッターとして入社 https://t.co/xD7UnaYpZh
— 藤村 (@ffu_) September 1, 2023
つっつきボイス:「これが笹田耕一さんのクックパッドでの最後の記事だそうです」「遠藤さんと共にフルタイムRubyコミッターとしてSTORESへの入社が決まったんですね🎉」「そういえばRactorって最初はGuildという名前でしたね」「Rubyの並列/並行処理に注いできた笹田さんの情熱と成果すごい」
参考: Class: Ractor
(Ruby 3.0.0)
STORESでのインタビュー記事です↓。
インタビューもあるので読んで!!
Rubyのこれからを STORES で作る。Rubyコミッター笹田さん、遠藤さんにCTOがきく「Fun」|STORES People @storesinc_info #STORES #STORESPeople #ストP https://t.co/zECMN8nA4m
— 藤村 (@ffu_) September 1, 2023
🔗 データのシリアライズ/エンコードフォーマットの選び方(Hacklinesより)
つっつきボイス:「Rubyに限定していない記事です」「なかなかよくまとまっていそうな記事👍」
「Rubyの項でMarshal
を取り上げているけど、さすがに現代ならMessagePack(ウォッチ20230502)とかにする方がいいんじゃないかな」「MessagePackも"バイナリエンコーディング形式"のセクションで取り上げられていますね」「Apache Parquetのようなフォーマットもちゃんと取り上げられている」
参考: module Marshal
(Ruby 3.2 リファレンスマニュアル)
参考: MessagePack: It's like JSON. but fast and small.
参考: Apache Parquet
「シリアライズやエンコーディングフォーマットを選ぶときは、テキストエンコードかバイナリエンコードという観点も重要」「こんな表も掲載されていますね↓」
同記事より
🔗JavaScript
🔗 RomeプロジェクトからBiomeがフォーク(Publickeyより)
つっつきボイス:「JavaScriptツールチェイン統一プロジェクトであるRomeが経営上の理由で滞って、新たにBiomeというフォークプロジェクトを立ち上げたそうです」「Romeの旧サイト(https://rome.tools/)はもうアクセスできなくなってる」「オープンソース企業あるある話」「何が起こるかわからない世界ですね」
参考: Biome -- One toolchain for your web project(biomejs.dev)
🔗CSS/HTML/フロントエンド/テスト/デザイン
🔗 2023年のCSSに関するアンケート
- 元記事: State of CSS 2023
つっつきボイス:「stateofcss.comというサイトがCSSに関するアンケートを行った結果を発表していました」「サイトでTシャツ売ってるのね」「demographyを見ると回答者がどんな人たちなのかが割りと見えてきますね」「年齢で最多なのは25〜34歳、結構若い層が回答してる」「回答なしも多いですね」
「CSSフレームワークの項でTailwind CSSにポジティブな回答が多いですね」
「このPureCSSって初めて見ました↓」「Bootstrapのサイズを小さくしたような感じのCSSフレームワークかな」「ボタンやgridのような基本的なものは使えるみたいですね」
後でまとめ記事を見つけました↓。
参考: CSSの最新トレンドにおける現状のまとめ、よく使用する新機能やプロパティや疑似クラス、人気のフレームワークや検証ブラウザなど | コリス
🔗言語/ツール/OS/CPU
🔗 OpenBSDのssh-keygenのデフォルトがEd25519になった
Ed25519がデフォルト化 "Generate Ed25519 keys when invoked without arguments · openbsd/src@9de458a" https://t.co/T4tvNb1Jsy
— azu (@azu_re) September 5, 2023
つっつきボイス:「そうそう、OpenBSDのデフォルト署名アルゴリズムがついにEd25519になった」「今までのデフォルトはRSAだったんですね」「今の時代にEd25519を使っていないsshサーバーはほぼ滅びたんじゃないかな」
参考: 【 ssh-keygen 】コマンド――SSHの公開鍵と秘密鍵を作成する:Linux基本コマンドTips(327) - @IT
参考: エドワーズ曲線デジタル署名アルゴリズム - Wikipedia -- Ed25519
参考: OpenBSD - Wikipedia
後編は以上です。
バックナンバー(2023年度第3四半期)
週刊Railsウォッチ: Active Recordのenumにエラーをraiseしないvalidateオプションが追加ほか(20230913前編)
- 20230908後編 IRB 1.8.0でデバッグ機能強化、Ruby Prize 2023開催決定ほか
- 20230906前編 システムテストでPlaywrightをサポート、to_paramのデリミタを変更可能にほか
- 20230829前編 Active Storageのミラーアップロードが非同期に、Rackアプリを手作りほか
- 20230824後編 週刊Railsウォッチ: ArelでCAST関数サポート、webdrivers依存を解消、YJIT高速化ほか
- 20230823前編 Rails 7.0.7に含まれているRails 7.0.6のバグ修正ほか
- 20230809 Rails 7.0.5のcreate_association挙動変更取り消し、YJITの性能を最大限引き出す方法ほか
- 20230803後編 Railsフラグメントキャッシュ経由の情報漏洩に注意ほか
- 20230802前編 Active Storageバリアントの事前変換、Linkヘッダープリロードのオプトアウトほか
- 20230727後編 Rubyにdefp導入の提案、IRB 1.7.3リリースほか
- 20230725前編 config.autoload_libとconfig.autoload_lib_onceが追加ほか
- 20230721後編 Kaigi on Rails 2023プロポーザル募集、rubocop-magic_numbersほか
- 20230719前編 複合主キー関連の実装進む、Action TextでHTML5サニタイザほか
- 20230705後編 AWS LambdaでRailsをRackで動かすLambyほか
- 20230704前編 productionのforce_ssl=trueがデフォルトで有効に、rakeタスクをthorで書くほか
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。
週刊Railsウォッチについて
TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)