こんにちは、hachi8833です。つい先ほどこのニュース↓を見て一人でどよめいてます。
- 各記事冒頭にはでパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です
Ruby
mrubyとC言語とRust
つっつきボイス:「『C言語はなんか好き』いいですね〜」「『Rustはヤバい』も」「Cって長いこと書いてないな〜」「Cを最後に真面目に読んだのはLinuxカーネル周りでしたし」「書いたのもLinuxのドライバぐらいでしたし」
参考: C言語 - Wikipedia
参考: The Linux Kernel: Linux カーネルソース
「Rustならちょっとやってみたいかも」「私も!」「今からCを一生懸命やるよりRustの方が楽しそうですし」「BPS社内のRust勢に教わりたい」「OSみたいなものを書くにはRustがいいでしょうね〜」「記事の『マルチスレッドやメモリ管理の問題が、Rustの世界では言語仕様の段階で解決されている』ってまさに夢の世界」「俺たちの欲しかったもの」「Go言語もそこまでやってませんし」
参考: Rust (プログラミング言語) - Wikipedia
Rubyで素数アルゴリズムを書く(Hacklinesより)
- 元記事: Day 2 of 30 - Ruby Coding Challenge - Ugly Prime Algorithm - DZone Web Dev
- 元記事: Day 3 of 30 - Ruby Coding Challenge - Better Prime Algorithm :) - DZone Web Dev
# 同記事より: 改良版素数アルゴリズム
def is_prime_number(item)
return false if item == 1
(2..(item - 1)).each do |number|
if item % number == 0
return false
end
end
return true
end
つっつきボイス:「美しくない素数アルゴリズムと改良した素数アルゴリズムの二本立てです」「こういう基本的なアルゴリズムをステップバイステップで丁寧に説明してくれるのはいいですね」
「ところで、こういう初心者向けの丁寧な教材って、不思議に日本語圏にあまりありませんよね」「たしかに!」「英語圏だと結構よく見かけるんですけど」「コードを書くときの意図をみっちり解説してくれる教材って何気に貴重」
「強い人が初心者目線で書く時間ってなかなか取れなさそうですけど」「こういう丁寧な教材を書くのは、必ずしも強い人でなくてもいいんですよ」「あ、そうか!」「コードを書くのが得意な人と、教えるのが上手い人というのは別なこともよくありますので」「もちろん強いものを作るには強い人がいないと解説すらできませんが、世の中には初心者にレクチャーするのが得意な人も確実にいますし」「そういう教材は常に求められてるんですね…」
「ところでこのDZone.comっていうサイト、前も見た気がする」「トップページ開くといろんな言語がどっさり表示されてますね」「英語アレルギーがなければ、初心者の人はこういうサイトでみっちり学ぶのもよいと思います」
調べてみるとDZoneは過去のウォッチにもときどき登場してますね。
deep_dup
とdup
の違い(Hacklinesより)
つっつきボイス:「非常に短い記事です」「clone
の話が載ってませんけど」「タイトルにUpdatedとあるので別記事の続きかな?」「どうやらこっち↓が本編ですね」「そのようでした」
「そうそう、Rubyのclone
はshallow copy(浅いコピー)、dup
もshallow copyだけどfrozenとかは無視する」「そしてRailsのdeep_dup
はArrayとHashについてはdeep copy(深いコピー)するけど、それ以外はdup
を呼ぶと」「frozenされているとself
を返すと」
- Ruby API:
Object#clone
(Ruby 2.7.0 リファレンスマニュアル)(dup
も) - Rails API:
Object#deep_dup
「『deep_dup
は銀の弾丸ではない』とありますね」「deep copyは中に何が入っているかわからないので難しいでしょう」「データ構造に応じて処理を変えないといけないので、一般的なdeep copyは作りようがないと思います」「よしなにやってくれるdeep_dup
が仮にあったとしても、処理の末端でdeep_dup
を呼ぶはずがありませんよね」「初めて使う人は、この記事を読んで『一般的なdeep copyは無理なんだな』と理解してから使いましょうということで」
oxidized: Ruby製ネットワークデバイス設定バックアップツール(GitHub Trendingより)
- リポジトリ: ytti/oxidized: Oxidized is a network device configuration backup tool. It’s a RANCID replacement!
つっつきボイス:「ネットワーク機器の、コンフィグバックアップツール?」「RANCIDのオルタナってあるけど、RANCIDって何だろうか?」「初めて見ました」「rancidでググると関係ないものがいっぱい出てくる」「これか↓、CISCOのルーターみたいなネットワーク機器のコンフィグ管理らしい」
「でoxidizedは何をするツールなのかな?」「★はいっぱい付いてますね」「RANCIDの説明を見た感じでは、ルーターとかにログインしてコマンド実行してコンフィグを取ってきて差分を表示したりするようだ」「こんなのあるんですね」「oxidizedはRESTful APIも提供しているところが新しそう」
# 同リポジトリより
source:
default: csv
csv:
file: ~/.config/oxidized/router.db
delimiter: !ruby/regexp /:/
map:
name: 0
model: 1
「もしかするとCISCO以外のLinuxサーバーのコンフィグも扱えるのかな?」「サポートOSのリストを見た感じだとLinux系はないみたいなので、このツールはLinuxとかでデーモン的にも動かせるけど対象はあくまでネットワーク機器ということかなと」「なるほど、oxidizedをRESTful APIで制御できるあたりとか、どうもそんな感じみたいですね」「欲しい人は欲しそうなツールということで」
もしかするとrancidの意味をもじってoxidized(酸化した)と付けたのかもしれませんね。
rancid: {形} : (腐ったような)悪臭のする、嫌な匂いのする、鼻を突く
その他Ruby
» Springin'(スプリンギン)| プログラミング×絵×音で誰でもクリエイター https://t.co/VQ4lFftAIl
— Yukihiro Matsumoto (@yukihiro_matz) June 17, 2020
つっつきボイス:「こちらのSpringin’はサイトのページをスクロールするとMatzが推薦文を書いてます」「iOSアプリなのね」「名前にアポストロフィがあるあたりが日本っぽくなさそう」「ビジュアルプログラミングだけど、コードを書くというより、絵を描いて動かしたり音を出したりするのが中心みたい」「こういうのは楽しいですね」「楽しい」
「ところでSpringin’見てて思い出したものがあるんだけど、あれ何て名前だったかな…昔すぎて思い出せない」「ビジュアルプログラミングですか?」「タブレットなんですけどビジュアルプログラミングもできるというヤツ」「うーん何でしょう?」「…EnchantMOONだ!」「あぁ!」
「EnchantMOON、すごく興味あったんですけど知ったときには販売終了してたのを思い出しました 」「当時としてはスペックが足りなかったんでしょうね」「iPadはスペックが統一されているところありがたいですね、高いけど」「廉価版でも高いです」「Chromebookの方が安いくらいですし」「Chromebookぐらいの値段でiPadが出てくれるといいんですけど」(以下延々)
enchantMOONのshi3zさんが今も更新しているブログがありました↓。
DB
データベース設計の際に気をつけていること
データベース設計の際に気をつけている気持ちが伝わってきていい記事だった / “データベース設計の際に気をつけていること – 食べチョク開発者ブログ” https://t.co/oVdxkid1DU
— Ryuta Kamizono (@kamipo) June 15, 2020
つっつきボイス:「はてブで上がっていた記事です」「自分もざっと読みましたけど、現場の目線で書かれた感じで、取りあえずおかしな部分は見当たりませんでしたね」「身体で学んだんでしょうね」
「『activeというカラムではなく別途payment_historyなどのテーブルに移す』あたりはベストプラクティスのひとつ」
「『三角関係のリレーションを持つテーブルは(できるだけ)作らない』もそうで、テーブルとテーブルの間に中間テーブルがある状態では、中間テーブルを飛ばしてテーブル同士をリレーションするのは、できるだけやりたくないですね」
「『一時的なレコードと永続化が必要なレコードを同じテーブルに入れない』も同意: 記事にも書いてますけどSpreeはカートに入れた注文と実際の受注データが同じテーブルに入るんですよ」「ありゃ」
「適切な」が難しい
「単にベストプラクティスをかき集めたというより、自分で罠を踏んで自力で乗り越えてきたノウハウ集に近いと思います」「おぉ」「その分、データベースの初心者が初めて読んでもすぐにはピンとこないかもしれませんけど」「それはありますね」
「たとえば『適切なデータ型を使う』とか『インデックスを適切に貼る』と言ったとき、その『適切』の部分こそ難しいし経験が必要で、だからこそその部分が本当のノウハウだよなという気持ちはありますね」「経験者の価値はそういうところにあるんだろうなと思います」
「『正規化が必要なところを見極める』も、その『見極める』が難しいわけですし」「ほんとにそう」
MySQLのJOIN
「あと記事ではMySQLのJOINの遅さについて書かれているけど、最近はそこまで遅いことはだいぶなくなったと思います」「ふむふむ」「MySQLの場合テンポラリテーブルができると重くなりがちで、JOINしているデータがバッファプールからあふれるとファイルに書き出す機能がMySQLに標準であるんですけど、それが始まると遅くなりますね」「なるほど」
参考: MySQL - 一時テーブルの作成 | mysql Tutorial
「MySQLでそれが起きていなければ、最近はよほど変なクエリを投げない限りそこまで遅くはならないと思うんですけど」「@kamipoさんのツイートも同じ意見ですね↓」「そうそう、たしかに集合関数を変に混ぜると遅くなることがあります」
"MySQLのjoinはとても遅いです" のところはこういうJOINはMySQLだと遅いですって実例を出してくれたらよかったと思う。どんな要件かにもよるけどMySQL 5.7を使っているなら集合関数系や絞り込みが足りんクエリか結合キーがオワットルクエリじゃない限り遅くなる要件ってほとんどないと思うので。
— Ryuta Kamizono (@kamipo) June 15, 2020
「今の時代にMySQLのJOINが遅くなるとしたらテンポラリテーブルのファイル書き出しぐらいなんじゃないかな〜」「ふむふむ」「クエリがまともに設計されていればそうそう遅くならないはずですし、仮に遅くなってもインデックス周りを調整すれば基本的にはイケると思うんですけど」「まずはDB設計をちゃんとやりましょうということですね」
「RailsだとActive Recordの使い方がよくなくて遅くなる方が多いと思いますし、そういうときの方が極端に遅くなりやすい気はします」「ですね」
「@kamipoさんの一連のツイートで一番イイのはやっぱりこの『Rails新しいのが出たら絶対バージョンアップしてくれよな』でしょう↓」「まさに」
結局は目的を達成できそうな選択肢に対して経験や知識から割に合うと見積もった選択肢に選択圧がかかるから(論理削除とかね)、より良い選択をした開発者には最高の体験をしてもらう、そのためにOSSメンテナをやっているところもあるので、Rails新しいの出たら絶対バージョンアップしてくれよな。
— Ryuta Kamizono (@kamipo) June 15, 2020
クラウド/コンテナ/インフラ/Serverless
AWS Lambda FunctionsでEFSが使えるようになった
- リリース: 新機能 – Lambda関数の共有ファイルシステム – Amazon Elastic File System for AWS Lambda | Amazon Web Services ブログ
- 関連記事: Monolithic Ideas For AWS Lambda File Systems - CustomInk Technology Blog
つっつきボイス:「BPSの社内Slackに貼っていただいた情報です」「Lambda FunctionsがEFSをマウントできるようになったのはアツい」「関連記事みたいに早くも喜びの声があちこちで上がってるみたいですね」
「EFSをマウントできるようになったことで、何かするのにS3からいちいち持ってこなくてよくなるのが嬉しいですね: S3だと遅いし、ファイル全部が必要じゃない場合でもS3だと端から取ってくるしかないので」「そうでしたか!」「S3はパーシャルで一部だけを持ってくることも一応できますけど、それでもファイルシステムAPIで取れるEFSの方が圧倒的に使いやすいですし」「なるほど〜」
AWS EFS
「Lambda Functionsの場合、たとえばログを単純にEFSに出せるようになるのが便利ですね: まあEFSにそういうログの出し方をするのは本当はあんまりよくないんですけど、CloudWatchに出すと取り出すのが面倒なものなんかはこうやってサクッとEFSに出せるのはありがたい」「おぉ」
「ただEFSはIOPS(Input Output Per Second)があふれると死ぬことがあるので、そこは気をつけないといけませんけど」「なるほど」
参考: Amazon EFS のパフォーマンス - Amazon Elastic File System
「あとEFSにはバーストクレジットというものがあって、IOの量が制限値を超えると途端に遅くなるんですよ」「ありゃ」「これが起きるとホントつらいので、バーストクレジットはちゃんと監視しておかないとヤバい」
「Lambda FunctionsからEFSを使う場合、バーストさせたいとかスケールさせたいことが割とあると思うんですけど、でかいファイルとか細かいファイルが大量にあるところにアクセスする要件ではたぶん使わない方がいいんじゃないかなと思います」「ふ〜む」「それよりは、さっきのように単純にログに吐き出すみたいな使い方の方がおそらくキレイにやれるだろうと思いますね」「なるほど!」
その他インフラ
つっつきボイス:「これこれ、Chrome OSでWindowsアプリが動くようになるらしい」「みんなが欲しかったのってこれなのでは?という気持ちになりました」「教育現場でCeleron並の半端なPCを使わせるぐらいなら、もうChrome OSでいいのでは?って思いますし」
「ちなみにうちの中2男子も今学校でChromebookで一日置きにリモート授業やってます」「ほほぅ」「最高なんですけど、リモート授業やってるところを子どもが見せてくれなくて」「まあそのお年頃ではしょうがないでしょう」
「まあChromebookで動くWindowsアプリは相当遅いかもしれませんけど」「Windowsアプリが動くのが便利なのはわかるんですけど、何に使うんでしょうね?ブラウザでできちゃう時代なのに」「職業訓練的にExcelを体験させたいときとか?」(以下延々)
JavaScript
Bootstrap 5 alphaがリリース: jQuery依存がなくなる
CSS変数(カスタムプロパティ)も使い始めているそうです。
つっつきボイス:「ついにBootstrap 5のalphaが出た」「ちなみに今授業ではBootstrap 4を教えてますけど、昔に比べるとBootstrapを積極的に使う理由は減った感じはありますね」「この前もお話ししてましたね」「今だとデザイナーなしで管理画面を作るときとか、そのぐらいかな〜」「今はFlexboxが使えるようになってきましたし、Bootstrapみたいにユーティリティまで包含するようなフレームワークだと余計なものが入ってきますし」
参考: A Complete Guide to Flexbox | CSS-Tricks
「Bootstrapを使うなら、完全にBootstrapに身を任せる方がいいでしょうね: 今のBootstrapにはたとえばほんのちょっとだけmarginやpaddingするみたいな機能↓があったりするんですけど、そういうのも含めてBootstrapを使うかどうか決心しないと」
// getbootstrap.comより
.mt-0 {
margin-top: 0 !important;
}
.ml-1 {
margin-left: ($spacer * .25) !important;
}
.px-2 {
padding-left: ($spacer * .5) !important;
padding-right: ($spacer * .5) !important;
}
.p-3 {
padding: $spacer !important;
}
「こんな細かい機能があったとは」「mt-0
(margin top 0)とかml-1
(margin left 1)みたいなのがいろいろあるんですよ」「!important
まで付いてる」「Bootstrapは元々CSSを一行も書かずに画面を作りたい人のためのものですし、それに合う要件なら使う方がいいと思います」
追いかけボイス「IEサポートなしだと使える場面が限られるけどjquery依存消えるのはありがたいし、custom propertiesでコンパイル無しで切り替え増やせるのも良い感じ」「脱jQueryは素直にありがたいですよね」
CSS/HTML/フロントエンド/テスト/デザイン
CSSの:is()
と:where()
:is()
は元々:matches()
という名前だったんですね。
- MDN:
:is()
(:matches()
,:any()
) - CSS: カスケーディングスタイルシート | MDN - MDN:
:where()
- CSS: Cascading Style Sheets | MDN
つっつきボイス:「なるほど、:is()
を使うとこういうSCSSっぽい書き方↓ができるのね」
// 同記事より
/* BEFORE */
.embed .save-button:hover,
.attachment .save-button:hover {
opacity: 1;
}
/* AFTER */
:is(.embed, .attachment) .save-button:hover {
opacity: 1;
}
「:where()
もこういうことができると↓」
// 同記事より
/* sanitize.css */
svg:where(:not([fill])) {
fill: currentColor;
}
/* author stylesheet */
.share-icon {
fill: blue; /* 詳細度がより高いため、上書きされる */
}
「CSSってこういう方向に進んでるのか〜、ブラウザ自体がSASSとかSCSSをサポートする方向には行かないのかな?」「必要以上に高機能にしたくないのかもしれませんね」「まあSASSやSCSSの外部ファイルインクルード機能まであるとバンドルしにくいのかもしれませんし」「ブラウザも重くなりそうですけど、SASSやSCSSをブラウザがサポートする未来があってもいいかなとちょっとだけ思いました」
言語/ツール/OS/CPU
wrk: マルチコアCPUで高負荷を出せるHTTPベンチマークツール
つっつきボイス:「Rubyで書かれてるかと思ったらC言語でした」「Apache Benchに近そうな雰囲気」「こういうツール昔からありそうですね」「いっぱいありますよ〜」
参考: ab - Apache HTTP server benchmarking tool - Apache HTTP Server Version 2.4
「wrkはマルチスレッドになってて、epollやkqueueみたいなLinuxの新しめのシステムコールで並列性とか遅延実行とかを効果的に回せるというのが特徴のようですね」「おぉ」「要するに高速でぶん回せる」
「ベンチマークソフトは測定対象の負荷をあふれさせることが重要なので、ベンチマークソフトの能力が足りなくて十分な負荷をかけられないのが一番よくないんですよ」「なるほど」
「ちなみに以下のLinuxコマンドツールトップテン記事↓の中で知らなかったのがこのwrkでした」
参考: Top Command Line Tools for Development and Fun – Pavel Timofeev – On software development, startups, and other things(Hacklinesより)
書籍『プロフェッショナルIPv6』ダウンロード可能
きこえますか…過去に「プロフェッショナルIPv6」をダウンロードするだけで満足してしまい全く読んでいない、あなたの…心に…直接… 呼びかけています…第I部「本書を読むにあたっての前提知識」の「インターネット概要」だけでも良いので読むのです…新しい発見があるかも知れません…
— 小川晃通(あきみち) (@geekpage) June 18, 2020
つっつきボイス:「IPv6か〜、今の時期だとIPv4の方が圧倒的にお金になるというのもありますし、IPv6の知識がアプリケーションエンジニアにとってどのぐらいメリットがあるかは悩ましいところなんですけど、IPv6の設計周りはとても参考になりますね」「お〜」「私v6はさっぱりです」
「IPv6使ってても、閉じたネットワークの中ではIPv4が使われることも多いですよね」「本来IPv6はありとあらゆるデバイスに割り当てたいという夢から出発しているのに、プロバイダをIPv6で契約してもIPv6のグローバルアドレスがアサインされないことが多いのもちょっと悲しい」「そうですよね…」
「エイリアスIPアドレスなんかはIPv6で当たり前に使えるので、それによってIPv4でも使えるようになってきたところもあるのかなと思います」「おぉ?」「IPv6は、何もしなくてもアドレスを3つ持ったりするんですよ: リンクローカルアドレスと、ユニークローカルアドレスと、グローバルアドレス」「へ〜」
参考: IPv6アドレス - ユニキャストアドレス(グローバル、リンクローカル、サイトローカル)
「昔のIPv4は1つのネットワークインターフェイスに1つのアドレスしか持たなかったんですけど、IPv6でリンクローカルやグローバルやらのアドレスが付くようになって、その影響でIPv4でも普通にエイリアスIPアドレスが使えるようになってきたような印象がありますね、実際はどちらが先なのかはわかりませんけど」
「家の中をIPv6にしてみようかな〜」「私の家はルーターはIPv6の有効フラグは立ててますけど、そこ止まりです」「今だと、IPv6に対応したプロバイダーと契約してIP over Ethernet(IPoE)でつなぐのが現時点で最速のインターネット接続ですよね」「お〜そうでしたか!」「そういえば最近その話をよく目にしますね」「理論上はですけど」「逆にIPv6をオンにし忘れて遅くなった話も聞きますね」
参考: 【初心者でも分かる】PPPoE方式とIPoE方式の違いとメリット|ICT Digital Column|【公式】NTTPC
その他
全盛期のJeff Deanの都市伝説
この伝説ですね、わかります。
「Jeff Deanのコードを書く速度は2000年にUSB2.0が出たときに40倍になった」— Deep Sea Life (@DeepSeaLife7) June 16, 2020
つっつきボイス:「何のことかなと思ったら、USB 2.0云々はJeff Deanの都市伝説↓のコピペですね」「あ、そうでしたか」「1個だけ取り出すとよくわからないけど、まとめて読むと楽しいですヨ」
「まあどこの業界にもあるジョーク集です」「チャックノリス伝説みたいなものだったとは…失礼しました」(しばしJeff Dean伝説で盛り上がる)
番外
HASHWallet
つっつきボイス:「スマホとこのカードを2つ並べて使うなら、全部スマホに入ってる方が楽なのでは?」「全部スマホだと紛失したときに立ち直れなさそう」「両方ないとお金を使えないようにするというのならワカル」「スマホに入れるのってアプリの立ち上げが意外に面倒な気がしません?それならカードだけでやる方がいいかなと」「それもありますよね」
「そういえば最近VISAの非接触式カードが使えるところが増えてきてかなり楽になりました」「タッチするだけでクレカ決済できるヤツですね」「ほほ〜そんなものまで」「カード会社はこれまで頑なに磁気カードでしたけど、新しいKyashなんかも非接触になってますし、もう楽々」
参考: Visaのタッチ決済(非接触決済) | Visa
参考: Kyash Card|Kyash(キャッシュ)
後編は以上です。
バックナンバー(2020年度第2四半期)
週刊Railsウォッチ(20200622前編)AR attributes周りの高速化進む、Active RecordでUNIONクエリを書く、Cable Ready gemほか
- 20200616後編 本番環境をFullstaq Rubyに換えた理由、CSRF発生フローチャート、DBのトランザクション分離レベル比較ほか
- 20200615前編
rails new
にminimal
がマージ、ARの共通集合を取るand
、RubyMine+Dockerチュートリアル動画ほか - 20200609後編 Rubyにカスタマイズ可能な軽量fiberスケジューラを実験導入、RailsとGraphQL、DBについて知って欲しいことほか
- 20200608前編 RubyKaigi 2020が開催中止に、ネステッドSTIを避けるべき理由、rails newがインタラクティブになるかもほか
- 20200602後編 JSONストリームパーサーyajl-ruby、ruby-buildとopenssl、GoogleのCloud SQL、Rubyと機械学習ほか
- 20200601前編 Active Recordに新機能「delegated typing」追加、RuboCopのデフォルト設定アンケートほか
- 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など)です。