- Ruby / Rails関連
週刊Railsウォッチ(20191217後編)Ruby 2.7の変更点とパターンマッチング、依存性自動アップデートツール、Stack Overflowアンケート2019ほか
こんにちは、hachi8833です。平成Ruby会議01の余韻がまだ残っています🔔。
- 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
- 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください
今回も前編に続き、TechRacho記事でもお馴染みのWingdoor様による福岡エンジニアカフェでのイベントに東京からリモート接続する形のつっつき会を元にお送りいたします。
⚓お知らせ: 週刊Railsウォッチ「第18回公開つっつき会」(無料)
第18回目公開つっつき会は、来年1月09日(木)19:30〜にBPS会議スペースにて開催されます。今回から会場のPubスペースが隣の部屋に移ります。
訂正: 上の文の日付が誤って「1月12日」となっていました。「1月09日」が正しい日付です。🙇
週刊Railsウォッチの記事やここだけの話にいち早く触れられるチャンス!発言・質問も自由です。皆さまのお気軽なご参加をお待ちしております🙇。
⚓Ruby
⚓2.7の変更点たち、特にパターンマッチング
Ruby 2.7のパターンマッチの記事、前編・後編とも公開時からいろんな加筆修正を加えてます。一度読まれた方も再チェックすると新しい発見があるかもです!
前編https://t.co/332MEq7DA6
後編https://t.co/LnFi1ieSZM— Junichi Ito (伊藤淳一) (@jnchito) December 11, 2019
つっつきボイス:「jnchitoさんが前編後編に分けてRuby 2.7のパターンマッチング記事をすごくがっつり書いていました🎉」「🎉」「大急ぎで読んでみたんですが結構大がかりな印象でした😅」「パターンマッチングでうまくハマるとどやぁという気持ちになれそう😋」「2.7でもまだexperimentalですけど😆」「😆」「パターンマッチングのために新たにキーワードを足さないようすんごく頑張ったのがわかりました😋」
「パターンマッチングはそんなに突飛な機能ではないからキライではないですね〜☺️」「関数型言語だとたいていあるみたいですね」「あとは業務でどこまで使うかですけど😆」「今後細かく変わりそうですし😆」
その他のRuby 2.7関連の記事として、Ruby 2.7 Advent Calendar 2019 - Qiitaから気になったものをそこそこ拾ってみました。
- 元記事: Ruby 2.7 の変更点 - Unicode 12.1 / $SAFE と汚染オブジェクト - @tmtms のメモ
- 元記事: Ruby 2.7 の変更点 - ブロックを伴わない proc / lambda - @tmtms のメモ
- 元記事: Ruby 2.7 の変更点 - $; と $, の設定が非推奨 - @tmtms のメモ
- 元記事: Ruby 2.7 の変更点 - self でのプライベートメソッド呼び出し - @tmtms のメモ
- 元記事: Ruby 2.7 の変更点 - 「...」で全引数渡し - @tmtms のメモ
⚓sigcdump: RubyをCレベルでバックトレース
つっつきボイス:「sigcdump?」「k0kubunさんが最近作ったバックトレース用gemのようです」「シグナルを追うのかな?と思ったら、シグナルをぶちこむとその瞬間のバックトレースがtmpやstdoutにごぼっと出力されるのね↓」「瞬間瞬間の状態を追えると😳」「RubyのJITをやってるk0kubunさんらしいgemですね😋」
# 同リポジトリより
irb(main)[01:0]> require 'sigcdump'
=> true
irb(main)[02:0]> Sigcdump.dump('-')
Sigcdump at 2019-12-10 00:48:56 -0800 process 61249 (irb)
/Users/k0kubun/.rbenv/versions/ruby/lib/ruby/gems/2.7.0/gems/sigcdump-0.1.0/lib/sigcdump/sigcdump.bundle(rb_sigcdump_dump_internal+0xe7) [0x10b129aa7]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(vm_call_cfunc+0x182) [0x10768c3f2]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(vm_exec_core+0x3e2e) [0x10767287e]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(rb_vm_exec+0xa79) [0x107687819]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(rb_f_eval+0x304) [0x107681384]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(vm_call_cfunc+0x182) [0x10768c3f2]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(vm_exec_core+0x3e2e) [0x10767287e]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(rb_vm_exec+0xa79) [0x107687819]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(loop_i+0x29) [0x107697159]
/Users/k0kubun/.rbenv/versions/ruby/bin/ruby(rb_vrescue2+0x114) [0x1074d4f24]
...
⚓SysRqキーとは
「こういうのはカーネル開発なんかでよくやるヤツ🧐: SysRqというキーがキーボードにあって、皆さんおそらく一度も使ったことがないと思うんですけど、実ははSysRqキーを使ってカーネルのメモリダンプを吐かせるみたいなキモいことができたりします」「へぇ〜!😳」「今のLinuxだとデフォルトでは無効になっているかもしれませんが、SysRqのコンフィグを有効にした状態でLinuxを起動すると、SysRqと何かのキーのコンビネーションでメモリダンプとかできたりします☺️」「ナマコを突っついてはらわたを吐き出すところをつい想像しちゃいました😆」
「PCを起動したら必ずUEFI画面になってしまう」
こんな相談が。原因はマザーとかでなく
「そういえば以前飼い猫がファンクションキー辺りに嘔吐してた」
これでF2キーが押しっぱなし状態になってました。猫ちゃん飼っている方はキートップを外して掃除できるキーボードがおすすめです… pic.twitter.com/TAQM30X0vI— ツクモ池袋店 (@TIkebukuro) June 13, 2017
参考: マジックSysRqキー - Wikipedia
参考: 実は使いどころがわからないWindowsのキー、1位は「SysRq」 -INTERNET Watch Watch
「というわけでSysRqキーは一応意味のあるキーだったりします: 古式ゆかしいPC-98だともっとわけのわからないキーありますけど😆」「覚えてないキーだらけ😆」「HelpキーとかXFERとかNFERとか😆」「あったあった😆」「何に使うのかわからずじまい😆」
参考: PC-98 キーボード
⚓Torch-rb: RubyでPyTorch
つっつきボイス:「この間Chainerの後を継いだPyTorchを早速torch-rbでやってみた記事です☺️」
# 同記事より
class Net < Torch::NN::Module
def initialize
super
@conv1 = Torch::NN::Conv2d.new(1, 32, 3, stride: 1)
@conv2 = Torch::NN::Conv2d.new(32, 64, 3, stride: 1)
@dropout1 = Torch::NN::Dropout2d.new(p: 0.25)
@dropout2 = Torch::NN::Dropout2d.new(p: 0.5)
@fc1 = Torch::NN::Linear.new(9216, 128)
@fc2 = Torch::NN::Linear.new(128, 10)
end
def forward(x)
x = @conv1.call(x)
x = Torch::NN::F.relu(x)
x = @conv2.call(x)
x = Torch::NN::F.max_pool2d(x, 2)
x = @dropout1.call(x)
x = Torch.flatten(x, start_dim: 1)
x = @fc1.call(x)
x = Torch::NN::F.relu(x)
x = @dropout2.call(x)
x = @fc2.call(x)
output = Torch::NN::F.log_softmax(x)
output
end
end
torch-rbは@ankaneさん作なんですね😳。最近は機械学習向けのRubyライブラリを怒涛のように作っているそうです。
⚓その他Ruby
つっつきボイス:「planetrubyが公開した、来年開催されるRuby関連カンファレンスのカレンダーです📅」「そうそう皆さん、4月はRubyKaigiですよお忘れなく😋」「早めに押さえないと宿が取れないかもしれない説」「長野県松本市ですね😋」「松本市だから気合入れれば都内から日帰りできなくもないですけど😆」
- サイト: RubyKaigi 2020
商業誌デビューです! / “Software Design 2020年1月号のGitLab特集に寄稿させて頂きました #gihyosd - くりにっき” https://t.co/BpYG3FcpgO
— sue445 (@sue445) December 6, 2019
つっつきボイス:「おGitLab特集だ😋」「TechRachoをよくブクマしてくださっていたsue445さんがついに商業誌デビュー🎉」
⚓DB
⚓rqlite: 分散SQLite(DB Weeklyより)
つっつきボイス:「分散SQLiteという触れ込みですがもしかするとキワモノ?」「どの辺が分散なんだろ?😆」「デフォルトでSQLiteのインメモリデータベースを使うということらしいけど🤔」
- SQLite: In-Memory Databases
「SQLite自体は特に書き込みの場合同時に1プロセスしかファイルを開けなかった覚えがありますね🧐」「distributed databaseでググると普通の分散データベースが出てきますけど↓」「ですよね: これはそういうのとは違うっぽい」「でもクラスタとか書いてあるし」「謎🙃」「誰か分かる人?」「わかりません😇」「😆」
⚓その他DB
- 元記事: PostgreSQL 12 Improvement: Benign Log Entries "Incomplete Startup Packet" - Percona Database Performance Blog(Postgres Weeklyより)
つっつきボイス:「そういえばPostgreSQLも12が出てだいぶ経ちますね」「この記事では余分なログを減らせることをbenignログと呼んでますね」「benignは良性/悪性腫瘍の良性という意味みたいですけど見かけない単語😆」「大量のログでいつの間にかストレージがあふれるとかあるあるですね☺️」「割とマイクロコスメティックな変更っぽい😆」「よく見るとPerconaのブログだ😳」
2019-11-28 13:24:26.501 UTC [15168] LOG: incomplete startup packet
2019-11-28 13:24:26.517 UTC [15170] LOG: incomplete startup packet
2019-11-28 13:24:26.532 UTC [15172] LOG: incomplete startup packet
2019-11-28 13:24:26.548 UTC [15174] LOG: incomplete startup packet
2019-11-28 13:24:26.564 UTC [15176] LOG: incomplete startup packet
2019-11-28 13:24:26.580 UTC [15178] LOG: incomplete startup packet
2019-11-28 13:24:26.595 UTC [15180] LOG: incomplete startup packet
2019-11-28 13:24:26.611 UTC [15182] LOG: incomplete startup packet
2019-11-28 13:24:26.627 UTC [15184] LOG: incomplete startup packet
2019-11-28 13:24:26.645 UTC [15186] LOG: incomplete startup packet
2019-11-28 13:24:26.666 UTC [15188] LOG: incomplete startup packet
2019-11-28 13:24:26.687 UTC [15190] LOG: incomplete startup packet
2019-11-28 13:24:26.710 UTC [15192] LOG: incomplete startup packet
2019-11-28 13:24:26.729 UTC [15194] LOG: incomplete startup packet
2019-11-28 13:24:26.748 UTC [15196] LOG: incomplete startup packet
PostgreSQL 12ではパケットのサイズがゼロであることを検出すると無視するので、上はログファイルに出力されなくなる。
同記事より大意
⚓クラウド/コンテナ/インフラ/Linux/Serverless
⚓GitHub製GitHub Actionsがdeprecatedに
つっつきボイス:「AWSとGCPがそれぞれ公式のGitHub Actionsを出したので、今までGitHubが出してたActionsが用済みになったそうです」「今までのは公式ではなかった😆」「社内ではGitHub Actions使ってるプロジェクトあるけど自分がまだ触われてないな〜」
- サイト: Actions | GitHub
GitHubのアイコンデザインのセンスが個人的に好きです❤️。
「お集まりの中でGitHub Actions使ってる方はいます?」「はい、別のプロジェクトで使われていたのを他の人も使うようになる形で移行した感じです😋: ファイル移行はそれなりにコストかかりますが」「何から移行しました?」「TravisCIです」「なるほどTravisか〜、それなりにお金かかりますよね😆」「(GitHub Actionsに移行して)お金も助かるし実行時間も短くなった感じで💵」「マイクロソフトのありあまるコンピューティングリソースを有効活用している感ありますよね😆」「ですね😆」「無料でこれだけ使えるなら強いなって思いますし💪」
⚓その他クラウド
AWS WAF、「Managed Rules出たよ!」ってアナウンスだけど見に行ったらWAF v2 と表示されていて既存のWAF(v1)と並列な存在になっている上に見た目既存のルールに近いけどここのルール見てくと細かいところ違うみたいだしなかなかにハマる(ハマった)
— masa寿司 (@masa_iwasaki) December 10, 2019
つっつきボイス:「WAFって何だっけと思ったらWeb Application Firewallでした↓」「AWSにはありますね一応😆」「AWSのWAFの設定は割と大変😅」「WAFはどういうものでしょうか?」「HTTPリクエストをいい感じにチェックして、明らかにSQLインジェクションだったりしたら止めてくれたり🧐」「なるほど!」「WAFはCloudFrontの手前あたりに挟むことが多いですね」
参考: AWS WAF(ウェブアプリケーションファイアウォール)| AWS
「WAFはいろいろカスタマイズできるようなんですが、せいぜい例外を設定するぐらいで、頑張ってカスタマイズする系の記事があんまり見当たらないし、ぶっちゃけWAFはあんまり自力で設定したくない😆」「😆」
「WAFを後から入れたせいでハマるということもよくあるので、入れるなら最初から入れたい😤」「おぉ」「WordPressのサイトに後からWAFを入れると今まで動いてたのが動かなくなった、なんてことも起きますし😇: TechRachoに仮にWAF入れるとたぶん投稿できなくなる可能性あります」「ひぇっ😨」「しかもWAFが原因であることを突き止めるのが大変ですし😅: リクエストがサーバーまで届かなくなるのでサーバーのログではわからなくてWAFのログを見ないといけないとか」「うむむ😥」
リナックスカーネルのコンパイル時間のベンチが、コンパイルにかかった時間じゃなくて、1時間に何回コンパイルできるかとかになってて草(´・_・`)
— Hideyuki Tanaka (@tanakh) December 10, 2019
つっつきボイス:「ワラタ😆」「まあ考えてみれば時間あたり何回できるかみたいな方がベンチマークらしいですよね☺️」「昔に比べてコンパイル時間が短くなったといえばX(X Window System)かな〜😆」「昔は平気で一晩かかってましたね」「コマンドもmake world
でしたし」「え、それ知らない😅」「X.Orgになる前だったかな😆」「XFree86とかありましたね」「ほとんど記憶にない...😅」(以下コンパイル話が続く)
参考: X Window System - Wikipedia
- サイト: X.Org
⚓JavaScript
⚓WebAssemblyがW3CのRECに(Publickeyより)
つっつきボイス:「WebAssembly(wasm)がついに」「でもW3Cがやってるの?😆」「それもそうですね😳」「なぜWHATWGではないのかと😆」「まだ仲直りしきってない?😆」
参考: HTML標準仕様の策定についてW3CとWHATWGが合意 今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - ITmedia NEWS
「まあWebAssemblyはだいぶ動くようになってきてますし」「WebAssemblyでmrubyを動かしたりは結構行われているみたいですね↑」「当初LinuxカーネルをWebAssemblyで動かす記事↓で有名になりましたね☺️」「ここまでやれればもう全部ブラウザでやればいいんじゃね?って思いますし😆」
参考: LKL.js: Linux kernelを直接JavaScript上で動かす - Blog posts by @retrage01
⚓その他JS
JS で使っていい == は == null だけです。それ以外は全部 === を使え
— SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED (@mizchi) December 11, 2019
つっつきボイス:「mizchiさんの教え」「ま普通は===
使いますし😆」
⚓CSS/HTML/フロントエンド/テスト
⚓CSS Writing Mode Level 3がRECに
つっつきボイス:「これもW3C😆」「15年の歳月を経てとうとう縦書きが入ってくる🎉」「15年って😆」「BPSの超縦書↓も縦書きの仕様に絡んでたはず」「超縦書のチームでも話題になってたと思います」「村井純教授(慶応義塾大)もコメントを寄せてますね☺️」
参考: 村井純 - Wikipedia
弊社が参加しているWeb仕様に関する標準化団体 W3C にて、このような状況にどう対応するべきかの知見を標準仕様側にもフィードバックする活動を行っています。
特に、W3CにおいてCSS仕様を検討している CSS Working Group には積極的な参加を続けております。2017年4月には慶應義塾大学様のご協力もいただき、年3回程度開催される対面会議 CSS Working Group Face to Face Meeting (通称 F2F) の日本への招致も行いました。
bpsinc.jp/cho-tate-winより抜粋
「Writing Modeは横書きと縦書きがあるんですけど、使ったことある方います?」「趣味でやってみたことあるんですが、そのときはうまくいきませんでした😇」「おぉ、やってる人いる!」「lr
とかrl
とかlr-tb
とかtb-rl
とか、とにかくいろいろ指定がありますよね😆」
参考: CSS Writing Modes Level 3
参考: CSS Writing Modes Module Level 3 日本語翻訳
⚓言語・ツール
⚓Renovate: マルチ言語の依存性アップデートサービス
- サイト: Whitesource Renovate - Automated Dependency Updates
- オープンソース向け: renovate - npm
- GitHub用Bot: Renovate · GitHub Marketplace
- GitLab用Bot: Renovate Bot · GitLab
- オンプレ用Bot: On Premises - whitesource Renovate
以下の翻訳記事でJS強者がこのRenovateをおすすめしていたので。
つっつきボイス:「Renovate?」「複数言語を対象に依存関係のアップデートの面倒をまとめて見てくれるようです😆」「サイトを見た感じでは、プロジェクトが依存しているライブラリをがんがん引っ張ってアップデートしてくれる感じ🤔」
「たしかPHPにも最近それ系の管理ツールってありますよね?」「Composerでしたっけ」「なるほど、依存関係をよしなにチェックして自動アップデートするようなのはPHPにもあります?」「Dependabotだったと思います」「おぉ、DependabotはRubyやJSなどにも対応してますね😋」
- サイト: Composer
- サイト: Dependabot
「ライブラリアップデートは自動的にやって欲しい、ホントに😭」「ホントに😭」「でも依存関係同士に含まれているFaraday(gem)が微妙にバージョン違ってコンフリクトしたことありますけどっ😆」「😆」
⚓Stack Overflowのアンケート2019
プログラミング言語の人気あるないを個人の知見だけで言ってしまうと逆に「観測範囲の狭い人」というラベリングをされてしまうので割と危険。
— mattn (@mattn_jp) December 9, 2019
つっつきボイス:「今年も出た」「年末感ありますね」「かなり長いですが読んでて楽しいです😋」「言語の好き嫌いはどうやっても宗教戦争になりますし🤣」「シェアとか人気みたいな情報って相当多めに割り引いて読みたいですね☺️」
「キライな言語ランキングとかってだいたい悲しい結果にしかなりませんし😆」「憎まれっ子世にはばかるみたいな😆」(以下しばらくランキングチェックで盛り上がる)
「そういえばStack Overflowって昔ほど見かけなくなった気がする🤔」「そうかも😳」「以前は何を検索してもStack Overflowが検索結果の上位に出てきた気がするんですけど」「非英語圏からの初歩的な質問が山のように増えたからなのかなと思ったりしますけど、よくわからない😅」「日本語版Stack Overflowは結局定着したんだろうか?🤔」
⚓その他
⚓GopherプロトコルでSSRF攻撃
つっつきボイス:「徳丸先生の記事です」「SSRFはねぇ〜、どこまで対策するかというのもあるし、知らないと踏みそうでコワいんですよ😅」「記事にも『完全な防御は無理』ってありますね🤔」「というより、SSRFはアプリケーションエンジニアが相当気をつけておかないと、ふとしたはずみで踏む可能性があるんですよ😇」「おぉ😳」
「上なんかがまさにそうですけど、EC2リソースに対してURLアクセスでインスタンスメタデータを取ってこれてしまうので結構危ない🚫」「そういえば以前も話題に出ましたね(ウォッチ20190107)」「だからはてブみたいにユーザーが任意のURLを入力できるサービスを作るときは気をつけないと割と簡単に取られちゃったりしますね😇」
参考: SSRF(Server Side Request Forgery)徹底入門 | 徳丸浩の日記
「対策として"HttpEndpoint": "disabled"
って指定できるのか😳」「でもAWSのインスタンスメタデータって欲しいときがあるのが悩ましい😅: capistranoでインスタンスメタデータから自分のEC2インスタンスIDを引っ張ってくるとかよく行われますし」「あぁ〜😳」
「そもそもGopherプロトコルが今どき使えるって知らなかったし😆」「ruby-jp Slackでもこれ知ってる人何人いるのかって話題になってました😆」「Gopherは知ってるけど使ったことないわ〜😆」
昨今はGopherといえばこちらでしょうね↓。
Gopherくん(プログラミング言語「Go」のマスコットキャラクター)を描いてたら、原作者のアーティストさんからはメッセージを貰い、Googleの開発者さんからはぬいぐるみを貰えることになりました。嬉しいので私からはお礼にConferenceのイラストを描かせてもらうことにしました。インターネット凄い! https://t.co/mMOjGfgHvX
— tottie | Designer (@tottie_designer) January 22, 2019
⚓番外
⚓リモート飲み会出席用ロボ
本日、渋谷の通常営業のカフェで、OriHimeで店員をしました。
素敵なお客様との出会いがあり、感謝です。#分身ロボットカフェ https://t.co/xf3P2FVjCr
— Emi@分身ロボットOriHime パイロット (@EmiOriHime) December 10, 2019
参考: 分身ロボット「OriHime」
つっつきボイス:「いよいよオーラスです」「OriHimeというロボットは、もともと身体に障害のある方や、子育て/単身赴任/入院時なんかをサポートする目的で開発されたらしいんですが、その場にいなくても臨場感を体験できるものだそうです」「もう飲み会の出席これでいいや😆」「これこそ未来!🤣」「いっぺんVR飲み会ってやってみたい🍶」「OriHimeをずらり居酒屋に並べる感じで😆」「このOriHimeの姿、どこかで見たような気がする🤔」「ウルトラマンっぽいですけど😆」
「これ系で言うと、ビデオ会議で出席者をアニメキャラのアバターに差し替えてくれるヤツがいいなって思いますね😆」「😆」「声もアニキャラに差し替えて」「動きにも追従して」「そしたらそれだけでほっこりした気持ちになれる😆」
参考: テレビ会議にアバターを使うとコミュニケーションが活性化できる|いごはち@学びの実践家|note
「ご参加の皆さまお疲れさまでした」「Zoomでのリモートつっつき、思った以上にうまくいってよかった🎉」「お疲れさまでした〜」
後半は以上です。
おたより発掘
ワイワイ! “つっつきボイス:「おGitLab特集だ」「TechRachoをよくブクマしてくださっていたsue445さんがついに商業誌デビュー」” / “週刊Railsウォッチ(20191217後編)2.7の変更点とパターンマッチング、依存性自動アップデートツール、Stack Overflowアンケート2019ほか” https://t.co/spNHfORztD
— sue445 (@sue445) December 17, 2019
バックナンバー(2019年度第4四半期)
週刊Railsウォッチ(20191216前編)Rails 6.0.2がリリース、平成Ruby会議01開催、古いRailsのfindメソッド置き換えほか
- 20191210後編 Ruby 2.7の変更点記事、mrubyで動くmitamae、画像系コラボレーションツールほか
- 20191209前編 Pumaのphased-restartとUnicornのgraceful restart、RailsのTZハックが不要になった話ほか
- 20191204後編 Rubyコードをトランスパイルするruby-next、Cloud Run正式リリース、2019年Web年鑑レポート、V言語ほか
- 20191202前編 Rails 6のimplicit_order_columnはカスタマイズ可能、rubocop-rails 2.4.0リリース、Capistrano記事ほか
- 20191119後編 メソッド参照演算子が廃止、GitHub新機能続々、平成Ruby会議、GitHub OAuthバイパスほか
- 20191118前編 ActiveJob引数のログ抑制、RailsガイドProプランお試し、ファイルアップロードのレジュームgemほか
- 20191112後編 invisible gemで可視性を変えずにパッチ当て、スライド:「型なし言語のための型」、自然言語の言語名を推測ほか
- 20191111前編 Active Recordモデルをprivateで封じ込める、心折れないRailsスキーマ管理、Railsセッションをクロスドメイン共有ほか
- 20191106後編 holiday_japan gemで日本の祝日判定、小さい関数が有害になるとき、Gitブランチのファジー検索ほか
- 20191105前編 Rails 6のデフォルト設定解説、DHHも消したいaccepts_nested_attributes_for、スライド『実践Railsアプリケーション設計』ほか
- 20191029後編 Ruby 2.7.0-preview2、tapping_device gemとhumanize gem、平成Ruby会議ほか
- 20191028前編 RailsにSTI用メソッドsti_class_forとpolymorphic_class_forが追加、RuboCopを変更箇所だけにかけるgem、strftime書式生成サイトほか
- 20191021 Rails 6でhas_many関連の修正やSprockets 4.0対応、Shrine 3.0がリリース、Minitestスタイルガイドほか
- 20191015 スライド「Rails Performance issues and Solutions」を見る、dirtyに*_previously_was が追加、Sidekiq 6.0.1ほか
- 20191008後編 Ruby 2.7のInteger#[]でバイナリチェック、rubyzip gemは強力、13KBのJavaScriptゲームほか
- 20191001後編 RedisとRubyをつなぐredis-object gem、Fullstaq Rubyの新バージョン、COUNT(*)とCOUNT(1)の速度ほか
今週の主なニュースソース
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp Slackなど)です。