- Ruby / Rails関連
週刊Railsウォッチ(20200602後編)JSONストリームパーサーyajl-ruby、ruby-buildとopenssl、GoogleのCloud SQL、Rubyと機械学習ほか
こんにちは、hachi8833です。例のRuby 3.0キーワード引数変更のつらみをmameさんがまとめてくださいました🙇。
I've posted a (current) summary of pain points about Ruby 3.0 keyword argument change. We'd still like to hear your opinions.https://t.co/6AijkjqtSW
— Yusuke Endoh (@mametter) June 2, 2020
- 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
⚓Ruby
⚓mrubyでシェルを作った話
Link: シェルを作っている - ぶていのログでぶログ: https://t.co/kPiLQq5DB8
— Yukihiro Matsumoto (@yukihiro_matz) May 28, 2020
つっつきボイス:「ruby-jp Slackでも反響を呼んでました」「お〜mrubyでシェル作ってる😋」
「シェルづくりって、昔から気合の入ったCS学部なんかでLinuxを理解する第一歩でやったりしますね💪」「そういうのやってたんだ😆」「エディタを自力で作るのもそんなノリで😋」「オレのための最強ツール😆」「コンパイラを作るためにコンパイラのコンパイラを作るとか😆」「それやってる人いました😆」
⚓ruby-buildはopensslを毎回取得してRubyをコンパイルするようになっていた
ついでながら、今年4月に報じられたOpenSSLのセキュリティアップデート 1.1.1gは既に公開されています。
つっつきボイス:「これは別の記事を書いているときに気づいたんですけど、ruby-buildがopensslを毎回取得してRubyをコンパイルするようになってたのを今になって知りました」「え、そうなんだ😳」
「ruby-buildで新しいopensslを取得するのは最近のRubyだけですよね?」「たぶんそうだと思います😅」「惜しい、昔のバージョンのRubyでもこうして欲しいんですけど」「おぉ?」「たまに古いRubyをビルドしないといけなくなることがあって、この間もRuby 2.1をビルドしないといけなかったんですよ😆」「2.1何に使うんですか?😆」「今でも2.1で動いているところがありましてですね😅」
「でopensslのバージョンが古くてビルドできなくてマジ困りました😭」「あ〜!」「それはつらそう😢」
「すっごく頑張って1個だけインスタンスつくりましたよもう😤」「お疲れさまです😅」「gemも古いのしか動かなかったりするから絶妙なバランスの上に成り立っている⚖️: Gemfile.lockを頼りにバイナリサーチして、どこまでバージョンを下げれば動くかとか1つずつ調べましたし😭」「人間git bisect
みたい😅」「マジつらかった〜」
参考: Git - git-bisect Documentation
「まあでもopensslの取得をビルドに含めるのは正しいと思います👍: もうシステムのopensslに依存するのはよくない💀」「たしかに」「昔のRubyでもやってくれればな〜😢」「古いRuby使うなと言われればそれまでですけど😆」
後でrbenvで2.4.9と2.7.0のビルドの出だしだけチェックしたところ、Ruby 2.4.9では取得こそしているものの最新のopensslではありませんでした。古いRubyで最新のopensslを使うには手動で指定が必要ということですね。
rbenv install 2.4.9
Downloading openssl-1.1.1d.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2
Installing openssl-1.1.1d...
rbenv install 2.7.0
Downloading openssl-1.1.1g.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
Installing openssl-1.1.1g...
⚓yajl-ruby: JSONストリームパーサーYAJLへのバインディング
- リポジトリ: brianmario/yajl-ruby: A streaming JSON parsing and encoding library for Ruby (C bindings to yajl)
- サイト: yajl
つっつきボイス:「やじる?」「Yet Another JSON Libraryですって😳」「SAXっぽくアクセスできるJSONパーサーライブラリらしい」「yajlのパーサーはイベントドリブンなのね」「これはへ〜という感じ」
参考: Simple API for XML(SAX) - Wikipedia
# 同リポジトリより
require 'yajl'
# ファイルIOの場合
json = File.new('test.json', 'r')
parser = Yajl::Parser.new
hash = parser.parse(json)
# またはたぶんStringIOの場合
json = StringIO.new("...some JSON...")
parser = Yajl::Parser.new
hash = parser.parse(json)
# またはたぶんSTDINの場合
cat someJsonFile.json | ruby -ryajl -e "puts Yajl::Parser.parse(STDIN).inspect"
「自分はXMLの時代しか知りませんけど、こういうパーサーがイベントドリブンかどうかで速度は結構変わりますね🧐」「おぉ」「READMEにも圧縮済みストリームをパースできるとある↓」
- IOストリーム(ファイルやソケットなど)やStringを入出力としてJSONのパースやエンコーディングを直接行う。Bzip2やGzipやDeflateについて圧縮済みストリームのパースやエンコーディングをサポートする。
- 複数のJSONオブジェクトから文字列への(およびその逆の)パースやエンコーディングを連続実行でする。
- JSON gemのAPIと互換: JSON gemをyajl-rubyで置き換えられる
- 基本的なHTTPクライアント(現時点ではGETのみサポート)で、受け取ったものを直接JSONにパースしてレスポンスのbodyにする
JSON.generate
の3.5倍高速JSON.parse
の1.9倍高速YAML.load
の4.5倍高速YAML.dump
の377.5倍高速Marshal.load
の1.5倍高速Marshal.dump
の2倍高速
同READMEより
「おそらくですけど、ローカルに保存できないぐらいバカでかいJSONでもパースできると言いたいのかも💪」「ユースケースによってはこういうイベントドリブンなパーサーでないとメモリが足りなくなることもあるでしょうし☺️」「なるほど、すごくでかいJSONで使う感じですか」「あるいは以下のHTTPストリーム処理↓のように、個別の処理時間は短いけどデータの転送に時間がかかるものをパースしたいときとか」「なるほど!」
# 同リポジトリより
require 'uri'
require 'yajl/http_stream'
url = URI.parse("http://search.twitter.com/search.json?q=engineyard")
results = Yajl::HttpStream.get(url)
「どこまでやれるかですけど、イベントドリブンならJSONを最終行まで取れない可能性があっても原理的には一応やれるでしょうね🧐」「JSONがちぎれる可能性のある場合、と」「yajl-rubyが速度のほかにメモリ使用量の少なさを謳ってるのもイベントドリブンならではでしょう☺️」
「JSONをフィルタ的にパースしたいなら、yajl-rubyのようなのが速いでしょうね👍: 条件を変えながら同じJSONを何度もトラバースするようなユースケースでは違ってくるでしょうけど」
「ちなみに、以前ウォッチでも取り上げたVCR gemの6.0リリースノートでこのyajl-rubyに切り替えたという記述を見てこのgemを知りました(ウォッチ20200225)」「なるほど、たしかにVCR gemのようにJSONを上から高速になめたいユースケースならSAX的なパーサーの方が速いでしょうね😋」
⚓最近のRuby機械学習
ruby-dnnと強化学習で人工知能にゲームプレイさせた
ちゃんと棒が倒れないように学習してるみたい pic.twitter.com/HQPW0Ej4rK— うなぎおおとろ (@unagiootoro8388) May 27, 2020
いや、ゲーム環境だけはpycallでopen AI gymを呼んでやってます。
httpでやる方法もあるんですね。
そっちの方がpythonに依存しなくていいかもしれないですね。— うなぎおおとろ (@unagiootoro8388) May 27, 2020
pycallでやっているそうです。ツイートにあるGymというのもよさそうですね。
- サイト: Gym
- リポジトリ: openai/gym: A toolkit for developing and comparing reinforcement learning algorithms.
つっつきボイス:「倒れそうで倒れない棒」「何回ぐらい学習したのかな?📘」「pycallでやってるということは最終的にPythonですし😆」「そこはRubyじゃないと😆」
追記(2020/06/04)
ruby-jp Slackで「pycallはgymの環境を整えるために使っている」「機械学習は全てRubyでやっている」とのご指摘をいただきました🙇。
⚓その他Ruby
つっつきボイス:「Rustコードをコンパイルして使うgemはたしかにやれますね🦀」「これはやる人出るだろうなと思いました😋」
参考: Rust (プログラミング言語) - Wikipedia
⚓DB
⚓PostgreSQLのEXPLAIN ANALIZEはたまに正しくないかも(Postgres Weeklyより)
つっつきボイス:「へぇ〜、EXPLAIN ANALYZEの方がやたらスコアがでかくなるときがあると↓」「8倍遅いなんてことあるんだ😳」
「単なるEXPLAINはクエリプランナーを走らせてクエリプランを取るだけで、EXPLAIN ANALYZEは実際にSELECT文を実行するはず🤔」「ぽすぐれはそうなんですね(MySQL派なので😆)」
- PostgreSQLドキュメント: EXPLAIN
- PostgreSQLドキュメント: 14.1. EXPLAINの利用
「この辺の記事↓を見てもそうなってる: EXPLAIN ANALIZEは実際にクエリを実行して実行時間も取ると」「なるほど理解しました」「だからEXPLAIN ANALYZEの方がむしろ本番に近いはずですけど🤔」
参考: PostgreSQLの実行計画について調べてみた | キャスレーコンサルティング株式会社
「記事の真ん中辺で引用されてるドキュメントによると、EXPLAIN ANALYZEにはネットワーク転送とI/O変換のコストが含まれてないとありますね😳」「あ〜そういうことね!」「そこが含まれてなかったら違い出そう」「たしかに」「これ知らなかったら気づかないな〜」
「それにしてもそんなことがあるのかしら😳」「AWS EC2インスタンスのr4.largeでも起きるらしいと記事にある」「I/Oバウンドな操作を行うとこういうことが起こるのかも🤔」
参考: インスタンスタイプ - Amazon EC2 | AWS
「手当たりしだいにEXPLAIN ANALYZEしてみて『こんなはずじゃないのに』みたいな結果が出たらこういうことが起こっている可能性があると」「これを知っておくのは有用ですね👍」「8倍遅くなるなんて、なかなか予測付きませんけど😅」
見出しより:
- 観測者効果とは
- 嘘を吐く可能性のある場所
- グッドニュース: この振る舞いはドキュメントに載っている
EXPLAIN ANALYZEにより測定される実行時間が同じ問い合わせを普通に実行する場合と大きくそれる可能性がある、2つの重大な点があります。 1つ目は、出力行がクライアントに配信されませんので、ネットワーク転送コストとI/O変換に関するコストが含まれないことです。 2つ目は、EXPLAIN ANALYZEによって加わる測定オーバーヘッドが大きくなることが、特に
gettimeofday()
オペレーティングシステムコールが低速なマシンであり得ることです。pg_test_timing
を用いて、使用中のシステムの時間測定にかかるオーバーヘッドを測ることができます。
postgresql.jp 14.1. EXPLAINの利用より
- クエリ実行の「Volcanoモデル」
- あまりうれしくないニュース: クエリと実行ノード次第ではクエリ最適化でEXPLAIN ANALYZEを信用できなくなる
- もう少し信頼できるようになるには
- 追加の考察
⚓GoogleのCloud SQLを使ってみて
つっつきボイス:「最近つっつきに参加いただいている、すろっくさんことsrockstyleさんの記事をかたじけなくも貼らせていただきました🙇」「ここに貼られる日が来るとは😆」
参考: Cloud SQL: リレーショナル データベース サービス | Google Cloud
「お〜Cloud SQL使ってるんですね」「最近めっちゃ使ってるんですけど、そのときに詰まった知見を書いてみました😋」「やっぱりAWS RDSみたいには使えない感じですか?😆」「まさにおっしゃるとおり😆、RDSのつもりで使うとめちゃくちゃハマります」「なるほど〜😆」
参考: Amazon RDS(マネージドリレーショナルデータベース)| AWS
「見方を変えれば、RDSがいかに泥臭い部分をまとめて引き受けてくれてるかってことでしょうね😆」「Cloud SQLはRDSより妙に速いところがあって、たとえば再起動なんか10秒で終わるんですけどね」
「RDSは結局中で普通のEC2インスタンスが動いてるから、普通にLinuxでMySQLを立ち上げるのとほぼ変わらないのがいいところでしょうね」「それあると思います」「むしろそれがRDSの利点かなと思いますし👍」
「Cloud SQLの方はGoogleのサービスにいろいろラップされててよくわかりませんし😆」「たしかによくわかんない😅: Cloud SQLが個別のネットワークに立てられるとか、そんなの知りませんよって😆」「そうそう😆」「どうしてVPCからピアリングしないとあかんの?、自分のVPC作れないの?って😆」「Googleにはそういう感じの謎あるある😆」
参考: VPC ピアリング接続 - Amazon Virtual Private Cloud
参考: VPC ネットワーク ピアリングの使用 | Google Cloud
「結論は『Cloud SQLはRDSじゃない』🤣」「それです🤣」「たぶんRDSを触ったことない人がCloud SQL使えば違和感ないんでしょうけど」「それ思いました😅」「逆にAWS使い慣れてる人は、リージョンがあってAZがあってみたいなものを意識するのが当たり前になってるから、そういう人がCloud SQL使うとわけわからんということになりそう😆」「なりました😆」
「GCPは、AWSで積み上げた知見のままだと通用しないところがありますよね😅」「通用してよかったなと思ったのはパラメータグループぐらいかも😂」「オンプレで立ち上げるときにも使うパラメータですから、さすがに通用するでしょうし☺️」
⚓その他DB
つっつきボイス:「次は13か」「毎年メジャーアップデートするポリシー目まぐるしい😅」「ぽすぐれ全然追ってません😆」「まあぽすぐれは最新stable版使っとけばぐらいでいいんじゃないでしょうか: MySQLに比べれば新しいものを使ったときに問題になりにくい気はしますし☺️」
「MySQLは新しいのを使うとおおっとぉ〜みたいなこと起きたりしますし😆」「MySQLはコンフィグパラメータがたまに廃止されたりしますし😆」「この機能使おうと思ったらそのバージョンではdeprecatedになってたり😇」「my.confを移植するとはじかれたり😆」「新しいMySQLを最初から使う分にはいいんですけど、既存の古いMySQLから移行するときはパラメータの機能や意味を調べ直してコンフィグ作り直すのがしんどい😭」
「ところでPostgreSQLにメジャーアップデートかけることってあんまりしない印象あるんですけどどうでしょう?」「ぽすぐれアップグレードやったことない😅」「PostgreSQLのEOL(end-of-life)って結構長かった気がする」「へぇ、5年なんだ↓」(以下延々)
参考: PostgreSQL: Versioning Policy
⚓クラウド/コンテナ/インフラ/Serverless
⚓AWSで組んだ典型的な100%サーバーレスアーキテクチャ(Serverless Statusより)
つっつきボイス:「Nodeベースですけど、これが典型だそうです」「100%サーバーレスとは果たして何ぞやと😆」「サーバーレス、サーバーレス...ん〜😅」「100%フルマネージドなアーキテクチャならわかるかな〜」
⚓「サーバーレス」という言葉
「だってサーバーレスって言ってますけど、サーバーあるじゃないですか🤣」「そこツッコみますか🤣」「LambdaやNodeはどこで動いてると思ってるんですかって🤣」「サーバーあるのにサーバーレスとはこれいかに🤣」「それを言うならフルマネージドじゃないの?って思いますし😆」
参考: マネージドサービスとは - IT用語辞典 e-Words
「自分もサーバーレスって言葉あんまり好きじゃないかも」「サーバーレスは人によってイメージするものが違ってそうなのがどうもね...😅」
「そうだ、今度からマネージレスって呼びましょう😆」「マネージメントだったら意味するものの境界線が比較的はっきりしてそうですよね😆」「まあそう思うのは自分たちがインフラ寄りの知識で考えるからかもしれませんけど☺️」「それもそうかも☺️」
「サーバーレスって、実はサーバーエンジニアレスの略だったりして🤣」「🤣」「インフラエンジニアが不要なんじゃなくて、サーバーサイドアプリケーションのエンジニアが不要っていう意味でサーバーレスと呼んでる人もいるのかなってちょっと思ったりしました😉」「フロントエンドの人とかそう思ってたりするかも🤔」「人によって意味が違ってきそうな用語ってやりづらい😅」
⚓その他クラウド
つっつきボイス:「マストドンついに終わりましたね」「5年ぐらいで終わりそうな予感してました😆」「ついに使うチャンスないまま😅」「使っている人がどのぐらいいるのかわかりませんけど、Twitterを使いたくない人が使ってたのかも🤔」
LambdaでCORSのヘッダー返さないとリクエスト失敗する問題に数時間ハマった。調べたらハマってる記事多くて笑った😂
— masa寿司 (@masa_iwasaki) May 24, 2020
⚓JavaScript
⚓門外漢がJSを触って詰んだ話(StatusCode Weeklyより)
つっつきボイス:「どんなアウトサイダーなんだろう?」「コンピューターサイエンスやってるけどJSは初めてという人のようです」「warningに怒られて心が折れたみたいな😆」「大学でCやC++やってる人が仕事でCやC++をやると同じようなことがあったりしますね☺️」
⚓CSS/HTML/フロントエンド/テスト/デザイン
⚓Googleフォントをもっと速くする(StatusCode Weeklyより)
つっつきボイス:「Googleフォントは速いけどもっと速くしてやったという記事のようです」「CSS Wizardryというタイトルがつおい🧙♀️」「CSS魔術🧹」
「font-display: swap;
って初めて見た😳」「Async CSSってあったかも」
参考: font-display - CSS: カスケーディングスタイルシート | MDN
参考: CSSを非同期ロードする最も簡単な方法 - Qiita
「preconnect
って何それ?😆」「ボーナスにfont-display: optional;
なんてのも😆」
参考: リソースの優先度付け - ブラウザの有用性を高める | Web Fundamentals | Google Developers -- <link rel="preconnect">
「知らないものいっぱいある」「仕様上はこういうのがありますよという感じ☺️」「これ知ってるかってドヤ顔できそう😋」
⚓言語/ツール/OS/CPU
⚓プログラマーなら知っておくべき各種レイテンシの年代推移
つっつきボイス:「前にも似たようなのを紹介したかなと思いつつ😅」「画面上のハンドルを横にスライドすると年代を切り替えられるのね」「いろんなレイテンシが年々小さくなってる😂」
「こういうレイテンシ可視化は楽しいですね🥰」「特に面白いのは、SSDが最近のものほど劇的に速くなっているのがわかるところ🏎」「おぉ😍」「メモリは最近だとそれほど速さが増していませんけど、SSDは10倍とかのオーダーで速くなってますし😋」「これはマジ速い😂」「最近のSSDインターフェースはシリアルATA(SATA)からM2に変わってきているのも大きいですね」「もう昔には戻れない😆」
参考: ソリッドステートドライブ - Wikipedia
参考: M.2 SSDとは何かを分かりやすく徹底解説!|ドスパラ通販【公式】
「SSDと一口に言っても昔のSSDと今のSSDでは速度がこれだけ違うということなので、こういうサイトではそうした時代の差も読み取るのがいいと思います👍」「そうですね❤️」「もちろんSSDはハードディスクに比べれば全然速いんですけど、SSDも時代によってこういう違いがあるという感覚は養っておきたいですね☺️」「M2を知らなかった...😅」
⚓CPUよもやま話
「そういえばLinus Torvaldsも最近Ryzenマシンに乗り換えてドヤ顔してますね↓😆」「自分も4月にLinusと同じRyzenにしてよかった😋」「いいな〜」「Intel CPUじゃないと何か不具合あるかなと思ったら何の不具合もありませんし、今のデスクトップPCはRyzenでキマリかなと💪」「自分も何だかWindowsに行きたくなってきた😆」
「MacにもRyzen来て欲しいです😭」「ノートPCでRyzenはちょい厳しいかも😅」「そういえばARMの入ったMacが出る予定という話があったような」「あ、そうらしいですね」「昔のiPhoneとかiPadで使われてたARMですか?」「たぶんですけどiPhoneとかも含めてARMになるのかも🤔」
参考: Apple、Arm Mac「Kalamata」を2021年に発売? - ITmedia NEWS
参考: ARMアーキテクチャ - Wikipedia
「以前はそうでもなかったんですけど、最近のiOSはだんだんmacOSに近いアーキテクチャになってきてるんですよ」「へぇ〜」「iOSやmacOSのUIも最近だんだん似てきてますし😆」
「Ryzenと全然関係ありませんけど、Appleは未だにmacBookにタッチパネル入れないのはどういうこだわりなのかなって」「きっと画面を指紋だらけにされたくないんだと思います😆」「それかなりあると思う😆」「光沢ディスプレイの指紋ってバリ目立ちますし😆」「指紋ばっちい😆」
⚓その他
⚓Yahoo! Mapの混雑レーダー
コロナ関係なく便利に使えそう / 1件のコメント https://t.co/6S7ZP61Ftx “「Yahoo! MAP」、最短20分前の街の混雑状況をヒートマップで表示可能に(要約) - ITmedia NEWS” (1 user) https://t.co/NEDOt74exu
— masa寿司 (@masa_iwasaki) May 27, 2020
- サイト: 混雑レーダー - Yahoo!地図
つっつきボイス:「たまに欲しくなるときもあるかなと思って」「人間の混雑具合ってそんなにしょっちゅう見るかな〜?😆」「たぶん建物の階の重なりまでは判別できないでしょうし😆」「ああっ😆」
⚓番外
⚓これは欲しい
人間も水冷の時代かー。
【画像】また俺たちの富士通がやりやがった!!!首に装着するウェアラブルエアコン「コモドギア」富士通ゼネラルが開発へ 重要はなんと・・・ | ライフハックちゃんねる弐式https://t.co/0kcKzl45a6
— Tekito Taro (@tekitotaro) May 28, 2020
つっつきボイス:「首がスースーする機械🎐」「首を冷却するのはいろいろ理にかなってますね😋」「効率よさそう😍」「夏コミで熱中症になりそうになったときに首冷やしてます😆」「これ付けたままうたた寝したら危ないのかな...😅」
「ところでコモドギアの本体重量が840gって結構重くありません?」「あ、1kg近いのか😅」「首に1kgですか?😆」「いえ、首は170gで、それとは別に本体があるから、それをワイヤでつなぐんでしょうね」「つまり腰あたりに本体をぶら下げると」「おそらくそこでファンを回すのかなと」「結局ファン必要なんですか?」「ペルチェ素子は熱を移動するだけだから、どこかで冷やさないと成立しませんし😆」「あ、そうですね😅」
「本体ってどんな形か見たいゾ😆」「この動画↓、絶妙に本体を映していないんですけど😆」「見せたくない事情でもあるんだろうか🤣」「お値段結構しそうですけど、それなら首から扇風機ぶら下げる方が早そうですし😆」「6月に予約開始だからもうすぐですね😋」
後編は以上です。
バックナンバー(2020年度第2四半期)
週刊Railsウォッチ(20200526後編)Rubyでよくやるスレッドバグ、Kubernetesでよくあるミス10、CSS/SVG/Canvasの使い分けほか
- 20200525前編 2020年のRailsマストgem 19個、スライド『Fat Modelの倒し方』、AR mergeのrewhereオプションを変更ほか
- 20200519後編 Rails 5と6のセキュリティ修正、Ruby 3.0のGuildがRactorに名前変更、Node作者によるDeno登場ほか
- 20200518前編 スライド『令和時代のRails運用』、Ruby 3.0のキーワード引数変更リスケ、Action CableのCLIほか
- 20200512後編 RubyのPStoreライブラリ、Lambda StoreのサーバーレスRedisは有能、Amazon Linux 2のライブパッチほか
- 20200511前編 Rails 6.0.3リリース、rails newに–masterオプションが追加、system specとfeature specの違いほか
- 20200428後編 Rubyのバックトレース順序が戻る、KubernetesでRailsをスケール、セキュリティソフト入れますか?ほか
- 20200427前編 Railsで避けたい8つのミス、ridgepole導入の注意点、RDS ProxyのPostgreSQL対応ほか
- 20200421後編 Ruby 2.4サポート終了、Ruby 3の右代入演算子、GitHubコア機能無料化ほか
- 20200420前編 anyway_config gemでRails環境設定、ShopifyのLiquidテンプレートエンジン、書籍『Beyond the Twelve-Factor App』ほか
- 20200414後編: Ruby 3で”endレス”メソッド定義構文が追加、ECMAScript 2020の新機能、紛失防止デバイスほか
- 20200413前編: 最近macOSでRailsが遅い、トランザクションでのreturnやbreakなどが非推奨化、Rails監視ツールリスト2020年度版ほか
- 20200407後編: RubyのTracePointでデバッグ、Rubyとモナド、Gitノウハウ集、リモートワークほか
- 20200406前編: Ruby 2.7.1セキュリティ修正、RailsビューHTMLにテンプレート名を出力、Action Mailboxテスト用フォーム改良ほか
今週の主なニュースソース
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。