- Ruby / Rails関連
週刊Railsウォッチ(20190821-2/2後編)11のgemにバックドア、ruby-jp Slackがとてもアツい、Fullstaq Rubyでチューンアップ、HTTPサービス監視chaoほか
こんにちは、hachi8833です。Macbook Pro 2019のメモリ、やっぱり32GBにしとけばよかったと思い始めてます。
- 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
- 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください
⚓週刊Railsウォッチ「公開つっつき会」第14回のお知らせ(無料)
第14回目公開つっつき会は、9月5日(木)19:30〜にBPS会議スペースにて開催されます。皆さまのお気軽なご参加をお待ちしております🙇。
⚓臨時ニュース: 11のgemでバックドアが見つかる⚠
Rubyの人気ライブラリrest-client 1.6.13にウクライナへURLと環境変数、クッキーを送る改竄が発見された。RubyGemsのスタッフが調査を開始、マイニングコードの挿入の悪用を発見。また他の 10プロジェクトにも同様のコード改竄を発見。ハッカーによるRubyGemsのアカウントの乗っ取り成功が確認された https://t.co/vr1IPoPpTB
— 高梨陣平 (@jingbay) August 20, 2019
最初にバックドアが見つかったのはrest-clientだったようです↓。
You'll definitely want to make sure you're not using rest-client 1.6.13 – it picked up a nasty backdoor vulnerability after the developer's GitHub account was compromised: https://t.co/QeBBolM9ie (note: gem has been yanked and was only downloaded ~1000 times)
— Ruby Inside (@RubyInside) August 20, 2019
影響を受けた11のgemとバージョン、yankされたgemとロックされたRubyGems.orgアカウントは以下で確認できます。
- 関連issue: malware and miner in some gems · Issue #2097 · rubygems/rubygems.org
- yank済みgemとロックされたアカウント: Gems yanked and accounts locked · rubygems/rubygems.org Wiki
RubyGems.orgにアカウントをお持ちで多要素認証を未設定の方は、以下を参考に設定してください。
⚓Ruby
⚓ruby-jp Slackの賑わい
後追い感ありありですが、8月初旬あたりからruby-jpというSlackワークスペースが急速に盛り上がっています。最初に私が見かけた時点では400人超えでしたが、本記事執筆時点では1500人を超えています。Rubyのコミッターやベテラン勢、初心者中級者を問わない多様かつ巨大な世界が広がっています。
- ランディングページ: ruby-jp | ruby-jp.slack.com
ruby-jp Slackワークスペースへの参加リンクや行動規範などについてはすべて上のランディングページにまとまっています。
なお以下の記事↓によると、もともとrailsdm.slack.comがruby-jp.slack.comにリニューアルしたとのことです。今頃気づきました😅。vim-jpもとても盛り上がってるんですね。
参考: Ruby界隈の大統一Slackワークスペースがほしい - pockestrap
ひと頃よりは書き込み量も少し落ち着いたようですが、情報の濃厚さとあまりの面白さについつい見入ってしまう人が続出なようです。「週末しか見ない」みたいな強い意志が必要かもしれません。
ruby-jpいい話ばっかりあるのでdark_magickの高まりを感じる
— 🐝 (@hanachin_) August 15, 2019
つっつきボイス:「お、盛り上がり中のruby-jp」「あの人とかあの人とか、強い人いっぱい集まってそう💪」「情報量すごくて追い切れなくて😅」
⚓Runbook: 対話的コマンドDSL(Hacklinesより)
- 元記事: Runbook: A Ruby DSL for Gradual System Automation - DEV Community 👩💻👨💻
- リポジトリ: braintree/runbook: A framework for gradual system automation
# 同リポジトリより
Runbook.book "Restart Nginx" do
description <<-DESC
This is a simple runbook to restart nginx and verify
it starts successfully
DESC
section "Restart Nginx" do
server "app01.prod"
user "root"
step "Stop Nginx" do
note "Stopping Nginx..."
command "service nginx stop"
assert %q{service nginx status | grep "not running"}
end
step { wait 5 }
step "Start Nginx" do
note "Starting Nginx..."
command "service nginx start"
assert %q{service nginx status | grep "is running"}
confirm "Nginx is taking traffic"
notice "Make sure to report why you restarted nginx"
end
end
end
つっつきボイス:「Runbookは対話型コマンドをDSLで記述して一連の操作を自動化したりできるそうですけど、これはあるとうれしいものでしょうか?」「この種のツールって、ツールを作った人にとっては書きやすいみたいなことになったりしますけど😆」
# 同記事より
# restart_nginx.rb
Runbook.book "Restart Nginx" do
description <<-DESC
This is a simple runbook to restart nginx
DESC
section "Restart Nginx" do
step "Stop Nginx"
step "Wait for requests to drain"
step "Start Nginx"
end
end
「へ〜、ちょっとcucumberっぽい雰囲気のコード」「面白い〜😆」「もしかしてTcl/Tkもこういう感じなのかな〜って」「懐かしい響き!😂」「Tcl/Tkを触ったのって学生時代にほんの一瞬だったんでほぼ何にも覚えてないけどっ😆」
「とにかく上みたいなDSLを書くとCLI画面でメニューを選択したりできて、下に順次書き足していくみたいなことができると」「悪くなさそう😋」「ssh integration↓とかもあるみたいなのでデプロイツール作ったりもできそうだし」
# 同記事より
Runbook.book "Restart Nginx" do
section "Restart Services" do
servers (0..50).map { |n| "app#{n.to_s.rjust(2, "0")}.prod" }
parallelization(strategy: :groups, limit: 5, wait: 2)
step "Restart services" do
command "service nginx restart"
end
end
end
「まあこのツールに問題があるとすれば、動かすためにRubyが必要ってことかも😆」「😆」「Go言語とかで書かれてればバイナリ配布もラクラクですけど、Rubyで書かれてるからRubyをインストールするところから始めないと😆」「たしかに〜」「デプロイツールのコードをRubyで書くのはいいんだけど、動かす部分はシングルバイナリであって欲しい気持ち🥺」「capistranoなんかもそうですけど、capistranoを動かすための環境づくりが割としんどいんですよね😭」「だからCIにデプロイボタンを付けるのがやっぱりいいよねという話になりますし☺️」
⚓ciao: Dockerで動かせるRuby製お手軽HTTPチェッカー(Ruby Weeklyより)
- サイト: ciao | Brot & Games
- リポジトリ: brotandgames/ciao: HTTP checks & tests (private & public) monitoring - check the status of your URL
つっつきボイス:「シャオ?」「中国語っぽい響き🇨🇳」「イタリア語の「チャオ」でした↓🇮🇹」「どういうツールかな?」「見た感じではAPIヘルスチェッカー的な何かかな」
ciao (/tʃaʊ/) - check in and out - borrowed from Italian ciao for greeting someone.
同リポジトリより
「ローカルでもproductionでも使えるとありますね」「AWS Service Health Dashboard↓的なステータスダッシュボードをさっとやれるということか」「ciaoはRailsみたいだけど、こういう機能を提供するマウンタブルエンジンってあったような気がするな🤔」
docker run --name ciao -p 8090:3000 brotandgames/ciao
「お、docker run
で一発で動くのか↑😳」「起動して監視したいサービスをポチポチ登録する感じ」「とりあえず監視を立ち上げるとかによさそうですね😋」「今BPS社内でnagiosでやっているような監視のうちHTTP/HTTPSチェックはこれでもやれる感👍」「メール送信機能とかもひととおりあるっぽい✉」
後でdocker run
やったらスコッと動きました😋。
「今はnagiosで監視してますけど、考えてみれば今どきのWebサービスはHTTPとかHTTPSのチェックしかしませんし、ロードバランサーも立ててあったりするから、ものによっては各ホストの死活まで監視しなくても、このぐらいのサービスレベルのチェックでもよかったりするのかも、って今ちょっとだけ思いました☺️」「このciaoでやるかどうかはわかりませんけどっ😆」
⚓Evil Martiansが見たFullstaq Rubyの第一印象(Ruby Weeklyより)
- 元記事: Fullstaq Ruby: First impressions, and how to migrate your Docker/Kubernetes Ruby apps today - DEV Community 👩💻👨💻
- サイト: Fullstaq Ruby: Ruby, optimized for production
- リポジトリ: fullstaq-labs/fullstaq-ruby-umbrella: Overarching documents and issue tracker for Fullstaq Ruby
つっつきボイス:「Fullstaq Rubyは以前のウォッチで取り上げようと思ってそのときは結局載せなかったんですけど、production向けにチューンアップしたRubyという触れ込みで、乗っかるのにちょっと勇気がいるかなと思ってたらEvil MartiansがとりあえずFullstaq Rubyをproductionで使ってみたという記事です」「MRIのforkですか」
「More secureって言い切ってるけどマジで?😆」「機能を絞ってるとか?」「わぉなつかし〜!Ruby Enterprise Edition(REE)だって😂」「昔のRailsでよく使われてたヤツでしたっけ」「使ったことあります?」「自分はBPSに来るまでRuby使ってませんでしたけど😆」「じゃRuby 1.9より後?」「だと思います☺️」
参考: Ruby Enterpriseエディションが終わる。Phusionは、Passengerに注力。 -- 2012年の記事です
「Evil MartiansはRuby 2.6.3をFullstaq Ruby + jemallocをやってみたそうです」「jemallocってあったな〜」「mallocより強力なアロケーターでしたっけ」「Noah Gibbsさんの翻訳記事でjemallocのこと書いてあったかな?...と思ったらNate Berkopecさんの記事でした↓」
「Fullstaq RubyがRuby本体にパッチを投げずにforkした理由って何だろう?🤔」「jemallocに副作用でもあるのかしら?」「高速化ならRuby 3x3プロジェクトがあるくらいだからマージされそうなものですけど」
参考: jemalloc.net
参考: jemalloc について調べたのでまとめた - zonomasaの日記
「jemallocのサイト↑を見るともともとFreeBSDのアロケータだったらしい」「jemallocが新しすぎるとか?」「jemallocはglibcとは別みたい」「追加でjemallocをインストールすることはできるはずだけど」「mallocとの互換性が微妙に低いとか?」「上のNateさんの翻訳記事でもjemallocはJVMとjRubyとかでは問題起きるかもしれないってありますね」「たぶんそんな感じの理由で本家に取り入れられてないのかな?🤔」「詳しい人の情報求む🙏」
「とりあえずFullstaq Rubyにしてみたらメモリが1/4、Sidekiqのジョブワーカーが2/3に減ったということみたいです↑」
「記事の結論は、Fullstaq Rubyへの移行は割とストンとできた、でも速くなるかどうかは状況次第」「そりゃそうだ😆」「メモリの使い方とかで変わってきますし😆」
追記(2019/08/21)
昨日のGinza.rb #74でもFullstaq Rubyが取り上げられていたことに今頃気づきました(Twitter: #ginzarb)。
Fullstaq RubyのFullstaqは社名 #ginzarb
— tsuka (@tsuka) August 20, 2019
Fullstaq Rubyの "More secure" がバイナリ配布&yum/apt 経由でpatch versionを気にしないというところだけというのはたしかに雑だけど、いわゆるエンプラ向けには訴求するポイントでもあるんだよな #ginzarb
— masa寿司 (@masa_iwasaki) August 20, 2019
Ruby Enterprise Editionというおっさんホイホイ #ginzarb
— masa寿司 (@masa_iwasaki) August 20, 2019
⚓その他Ruby
Ruby 2.7の新機能(仮)として話題沸騰の numbered parameter を使って Ruby のコードを機械的に書き直してみたパッチhttps://t.co/XLAErDvnC5
と、いくつかの観察。 pic.twitter.com/MhbuMkntOi
— Yusuke Endoh (@mametter) August 8, 2019
つっつきボイス:「この間BPSの社内Slackに貼っていただいたツイートです」「そうそう😆Rubyのコードをやばくしてみたという」「アツいツイート」「@1
に[@2]
をツッコむあたりとか😆」「『インスタンス変数とまざるとファンシー』とか😆」「@blockarg = @1
とかたしかにファンシー😆」「こういうのをさらっと思い付けるのがスゴい」
「numbered parameterを入れたいってどういう意図のプロポーザルなんだろ😆」「ワンライナーをとても短く書けるとかじゃないかな〜」「そうかも」「Rubyでワンライナーを書いていると、たまにちょっと冗長かなって思えるときがあるといえばあるんですよね: Rubyで便利なのはやっぱりブロックですけど、numbered parameterがあるとそういうのをコンパクトに書けたりするのかな?って」「こともある、みたいな😆」
Link: 『リファクタリング:Rubyエディション(Jay Fields (著), Shane Harvie (著), Martin Fowler (著), Kent Beck (著), 長尾 高弘 (翻訳))』 投票ページ復刊ドットコム: https://t.co/E9JzuX6MbQ
— Yukihiro Matz (@yukihiro_matz) August 13, 2019
「ずっと絶版の『リファクタリングRuby』の復刊リクエストに私も投票してみました」「だいぶ前の本だし、Rubyも以前と変わった部分もありますからね〜☺️」「なお英語版は健在です」
↓つっつき後に見つけたツイートです。
「るびま」ことRubyist Magazine 0060号をリリースしました。今回は『なるほどUnixプロセス』を読む前に最適な記事やAWS LambdaでMastodon Bot、多くのレポート記事など盛り沢山です。よろしくお願いします。https://t.co/1FSZdcvtGa
— みよひで画伯 (@miyohide) August 18, 2019
⚓Ruby trunkより
⚓提案: RUBY_ON_BUG環境変数の追加
RUBY_ON_BUG='gdb -p' ruby xxx.rb
つっつきボイス:「RUBY_ON_BUG
環境変数でフックしてデバッグする機能か」「ko1さんのプルリクで、今見るともうマージされてますね」「rb_bug()
って内部関数なのね」「むしろ今までなかったとは」
参考: CRubyコードリーディング(3) : rb_bugの実行行出力 - Qiita
⚓DB
⚓PostgreSQLの日本人コミッターが語る歴史
つっつきボイス:「これスゴい記事でしたね」「これまでも何度か話したことあったと思いますけど、PostgreSQLは元々研究者たちがデータベースの研究のために使ってたんですよ☺️」「初期はユーザーが数十人になっただけで落ちたりしてたとは」「当時はプロダクションでの利用とかまったく想定にありませんから無理もない😆」
「昔過ぎて知らないけど😆、オープンソースやフリーソフトウェアでフル機能を装備したRDBMSというとPostgreSQLしかなかった時代ってあったんじゃないかな〜」「それありそう😳」「下手するとオープンソースという概念も生まれてたかどうか」「1986年に始まったらしいし」「めちゃ昔!」
「そんな頃だとネットもろくになさそうですし、それこそソースコードをDATで物理回覧したりしてたんでしょうね」「当時ならソースコードのサイズも今よりずっと小さそうですけど、DATで回覧する方が安くて早かったかも😆」
参考: DAT - Wikipedia
⚓その他DB
- 元記事: Life After Hadoop: Getting Data Science to Work for Your Business(DB Weeklyより)
- 元記事: PostgreSQL: PostgreSQL 11.5, 10.10, 9.6.15, 9.5.19, 9.4.24, and 12 Beta 3 Released! -- 主にセキュリティ修正(Postgres Weeklyより)
つっつきボイス:「Life after Hadoop?」「Hadoopが登場して人生が変わったみたいな感じかも」「とにかくGoogleのMapReduceがあまりにも偉大だったなと」「そのオープン版がHadoopでしたっけ」「MapReduceのアーキテクチャクローンがHadoopですね: 大量のデータをストリームで処理したい、しかもロジカルなコードで処理を書きたいとなるとMapReduceあたりを使わないと相当しんどいでしょうね」「なるほど!」「SQLでは書けない処理って結構ありますし☺️」
- サイト: Apache Hadoop
「そういえばデータサイエンスの教科書にもMapReduceとHadoopの記載がありました」「データサイエンスもそうでしょうけど、どちらかというとビッグデータ系に多い印象かな〜: 自分はHDFSをちょっと使ったことがあるぐらいですけど」「HDFS?」「Hadoop用の分散ファイルシステム」
参考: HDFS(Hadoop Distributed File System)とは - IT用語辞典 e-Words
⚓クラウド/コンテナ/インフラ/Linux/Serverless
⚓JetsでサーバーレスRubyアプリを2分で作る(Hacklinesより)
- 元記事: Build a Serverless Ruby App with Jets in 2 Minutes - DEV Community 👩💻👨💻
- サイト: Ruby on Jets | The Ruby Serverless Framework
つっつきボイス:「例のRuby on Jetsの記事です」「最近Jetsをぼちぼち使ってますけど、本当にさらっと作れますね😋」「お〜😳」「まあJetsはごりごりアップグレードされてるのでbreaking changesあったりしますけど😆: この間もverify authenticated tokenみたいなのが突然追加されて動かなくなったり😇」「そんな感じですか」「つかRailsと比べれば機能はまだ全然足りないですし、Jetsをデバッグしながら作らないとうまく動かなかったりしますし😆」「なるほど発展途上」「ごくちょろいものを作るには十分ですけど、本格的に使おうとするとRailsに比べて完成度はまだまだなので、Jetsがバグってる可能性を常に意識するぐらいのつもりでやらないとですね☺️」
「とはいえjets deploy
一発でデプロイできるだけでも、やっぱりものすごく便利👍」「お〜!」
「そういえばちょうど以下のstitchというのもRuby Weeklyでも見かけたんですけど、こちらはJetsとはちょっと違うかな?」「こっちは見た感じLambdaとかは関係なさそう」「あやっぱり😅」「Railsでマイクロサービスとかを作るときのAPI key authenticationとかAPIのバージョン付きリクエストとかを面倒見てくれるっぽいですね: マイクロサービスでなくてもWeb APIとしてRailsを使う場合にこういうのがあると便利なのかも?」
class Api::V1::WidgetsController < ApiController
def create
widget = Widget.create(widget_params)
if widget.valid?
head 201
else
render json: {
errors: Stitches::Errors.from_active_record_object(widget)
}, status: 422
end
end
private
def widget_params
params.require(:widget).permit(:name, :type, :sub_type)
end
end
⚓その他クラウド
つっつきボイス:「Lambda Functionのコストを下げる記事だそうです」「お、ピタゴラスイッチきたゾ↓😆」「サーバーレスもこんなんなっちゃうんですね」「さっきのJetsでも、アクションの数だけLambda Functionできるからすぐこのぐらいになりますよ😆」「やっぱし〜😆」
「記事はというと、実行数にduration、メモリアロケーションにデータ転送とかをCloudWatch Logsで測定してレポートして、Grafanaでビジュアライズして、CloudWatch Logs Insightsでメトリックス監視して、Slackにも通知して...というあたりまではやってる感」
「これはたぶんAWS Cost Explorerの画面っぽい↓」
参考: AWS Cost Explorer(コストと使用状況の経時的変化を可視化)| AWS
「とまあこんな感じでコストを可視化しましょうということで😆」「定番というか王道というか、やれることを普通にやってる記事でしょうか」「コスト削減の前に計測しましょうと😆」
⚓CSS/HTML/フロントエンド/テスト
⚓Blenderとは
- 元記事: 「やっと3Dツールが紙とペンのような存在になる」エヴァ制作のカラーがBlenderへの移行を進める理由とは?(西田宗千佳) - Engadget 日本版
- サイト: blender.org - Home of the Blender project - Free and Open 3D Creation Software
- 日本語サイト: Blender.jp
- リポジトリ: sobotka/blender: Mirror of the official Blender Git repository. Updated every hour.
つっつきボイス:「業務開発とは関連ないんですけど、オープンソースの3Dツールってどんなのだろうと思って」「Blender使ってるところはめちゃ多いですね、Mayaとかが高すぎるというのもあるでしょうし💵」
参考: Maya - Wikipedia
⚓言語・ツール
⚓Paperpile: Googleドライブベースの文献管理ソフト
「Paperpile」が最高の文献管理サービスだったので共有
① Google scholar、Pubmedから1クリックで論文情報&PDFを取得
② Google DriveでPDF同期、どこからでもアクセス可能
③ Mac, Windows, iPad, iPhone, Androidの全てからPDFにコメント&ハイライト可能
④ Google docでの論文執筆との相性◎— みのん (@min0nmin0n) July 25, 2019
つっつきボイス:「論文執筆関連ツールも知らない世界ですけど一応」「論文管理って結局必要なんですよね: 読んだはずの論文がどこ行ったかわからなくなっちゃうことはとてもよくあるので😆」「やはり〜」「ダウンロードしたPDFが見つからないとか、どこから取ってきたかわからなくなるなんてのもざらですし」「macOSのSpotlightでも手に負えなくなったりしそうですね😅」「自分で論文を書くときに参考文献集を作ろうとすると、紙ならラベル貼ったり物理的な位置を覚えやすいという側面もあるといえばありますね」「なるほど!」「何にしろ、こういうツールで管理しないとホントつらい😭」
⚓その他
パソコンを回路レベルで自作している。この土日で完成させたいけど、時間が厳しい。来週中に終われば御の字だな pic.twitter.com/aYDE1V7w1w
— 解答略 (@kaitou_ryaku) June 22, 2019
つっつきボイス:「この人なかなか頑張るな〜」「『この土日で完成させたい』ってなんかスゴい😳」「ツイートの続きで『x86のパイプラインのしくみがマジ頭おかしい』とかありました😆」「可変長命令だからハードウェアでパイプラインはどうしても難しくなっちゃいますけどね〜」
「まあCISC CPUはだいたいそのあたり謎いですけど🤣」「自作に向いたCPUってどういうのがいいんでしょう?」「MIPS」「やっぱし🤣」「CPUのお勉強といえばだいたいMIPSですし☺️、コンピュータアーキテクチャの授業でもMIPSやってたな〜」「MIPSってRISCなんでしょうか?」「はい: とても小さくて命令少ないし、当然固定長ですし、なおMIPSといってもいろいろ種類あります😎」
10年前に数理工学専攻受けたときはTOEIC何点でも本試験がぼちぼちできればそれでよかった気がする。
今受けたら絶対受からんな https://t.co/jBP2H1jpPu— のだみ (@n0m1n0z) August 14, 2019
つっつきボイス:「TOEICのスコアを要求される時代😇」「それ相当の英語力が必要ってことかなと」「ちなみにいつだったかSFCは修士課程と博士課程の卒業要件にそれぞれTOEICの点数が設定されてたのを覚えてます」「マジで🤣」「きびし〜😭」「翻訳やってるなら英語は専門なんじゃなくて?」「それがそうでもなくて、英語力はとっても尻上がりです😇」
「TOEICのリスニングの英語ってめちゃめちゃなまってたりするのがつらいっすよね😆」「その分割と現実的なお題が多かったりしますね: サポート電話で方言英語丸出しの質問に答えるシチュエーションとか」「会話が微妙に噛み合ってなかったりとか現実っぽい😆」
参考: 院試のTOEIC目安点数と有効期限:大学院入試に間に合わない? | 理系days
⚓番外
⚓銀河中心の超巨大ブラックホール
Here's a timelapse of images over 2.5 hr from May from @keckobservatory of the supermassive black hole Sgr A*. The black hole is always variable, but this was the brightest we've seen in the infrared so far. It was probably even brighter before we started observing that night! pic.twitter.com/MwXioZ7twV
— Tuan Do (@quantumpenguin) August 11, 2019
↓この本によると、ブラックホールがほぼ確実に存在するとわかったのはかなり最近のことらしいです。
参考: ブラックホールがわずか2時間で75倍も明るく輝き天文学者も「前代未聞」と驚嘆 - GIGAZINE
後半は以上です。
バックナンバー(2019年度第3四半期)
週刊Railsウォッチ(20190819-1/2前編)祝: Rails 6がついにリリース、RailsガイドもRails 6に対応、Arelはpublicだったかほか
- 20190806-2/2後編 RSpec CopのLeakyConstantDeclaration、serveoでゼロコンフィグ公開、RuboCopのPerformance/RegexpMatch改修ほか
- 20190805-1/2前編 Rails 6のActive Recordは速くなった、Windows WSL2+VSCodeでのRails開発、Martin Fowler記事ほか
- 20190730-2/2後編 Docker 19.03の新機能に注目、ngrokはスゴい、redis-namespaceほか
- 20190729-1/2前編 Rails 6のリリースは近そう?、Evil MartiansのRails+Docker記事、Railsパフォーマンス測定ほか
- 20190723-2/2後編 Rails 6 rc2がリリース、「MySQLパフォーマンスチューニングTips」が超便利、Aurora Serverlessほか
- 20190722-1/2前編 Rails 6エラー画面の改良点、Dateを四捨五入できるtime_calc、Rackミドルウェアのデザインパターンほか
- 20190717-2/2後編 NFSのよさとは、Linuxカーネル5.2リリース、Puppeteerでメモリリーク検出ほか
- 20190709-2/2後編 strong_password v0.0.7がハイジャックされていた、TerraformとCloudFormation、CSSの設計ミスリストほか
- 20190708-1/2前編 ActiveRecord::FixtureSetがめちゃ強くなってた、MacだとRubyが遅い理由、Puma 4登場ほか
- 20190701 RMagickのメモリ使用量が劇的に改善、インスタンス変数の定義順で速度が変わる?、GitLab CIランナーをローカルで回すほか
今週の主なニュースソース
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSなど)です。