- Ruby / Rails関連
週刊Railsウォッチ(20200331後編)Ruby製プロセスマネージャOvermind、pgsyncで手軽にワンショットDB同期、DeepLの機械翻訳を試すほか
こんにちは、hachi8833です。リモートワークもさまざまですね。
リモートワークの快適差を追求した結果、机を自作してしまった。
— P山 (@pyama86) March 26, 2020
つっつきボイス:「リモート環境は人それぞれ☺️」「家族と住んでいると制約が発生しがち」「あ〜たしかに」「自分は独り者なのでリビングをオフィス環境にしてます😋」「こうなってくると、家賃が高くて狭い都内より、家賃も安くて広々した地方に引っ越す方がよかったりして😆」「伊豆あたりとかよさそう♨️」「家にいる時間が長いと都心に住む意味あんまりないですし😆」
「以下のツイート写真はちょっと前に話題になったDHHのリモート環境で、この記事でBasecampの他のメンバーとともにリモート環境を晒してます」
I love to see fellow desk setups. @basecamp has a super cool blog article about their setups. (Link below) For anyone who needs some inspiration to work remote.
Oh and how awesome is @dhh's office?! Check out that view!
👉 Link to the article: https://t.co/GZ8cTcaGe2 pic.twitter.com/0wh6w3e94K
— Joël Kai Lenz (@joelkailenz) March 24, 2020
「記事に載ってる皆さんお部屋が随分広そうですけどご自宅なんでしょうか?」「はい、皆さんご自宅でらっしゃるようです🏠」「勇気あるな〜😆」「晒したい人はいますし☺️」「日本人でも晒してる人いますヨ😆」「こういうジャンルありますし」「(ここでつっつきに参加)Jason FriedとDHHがいるからBasecampの記事ですか☺️」「名前知ってるとはスゴい」「その2人だけですけど😆」
「このお部屋とかめちゃ狭くてトイレかと思っちゃいました😆」「左右のイボイボは防音材か何か?」「マイクが据え付けてあるし、画面もDTMっぽいからそういうのをやってるのかも🎵」「DHHのところに取り消し線でshow offってあるのは『見せびらかす』という意味です😆」「うらやましい😆」「融通利きやすくなってきてますし、地方ならやれますよ😋」「温泉のあるところにしたいです」
「DHHの机が凄い」じゃないんだよ、着目すべきなのは「みかん箱に正座してプログラミングしてる人なんかいない」って所のほう。ベースラインの高さを見よう。
— 7594591200220899443 (@shyouhei) March 26, 2020
- 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
- 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください
⚓Ruby
⚓RubyGems.orgが統計情報を公開(Ruby Weeklyより)
つっつきボイス:「RubyGems.orgの統計情報って前から出してたような?」「あ、そんな気もしてきました😅」「ダウンロード数とかはあったと思うので情報が増えたのかも🤔」
「Ruby 2.3が一番多いんですね😳」「bundlerで取ってきた数とgemコマンドで取った数とか」「CI vs non-CIはnon-CIが圧倒的に多いけど、これは単に検出できてないのではという気もしますね☺️」「野良gemも含めるとnon-CIが多いのかも🤔」
⚓Overmind: Evil Martians製プロセスマネージャ(Ruby Weeklyより)
- 元記事: Test Double | Our Blog | Improving Dev Experience with Overmind
- リポジトリ: DarthSim/overmind: Process manager for Procfile-based applications and tmux
- 元記事: Introducing Overmind and Hivemind — Martian Chronicles, Evil Martians’ team blog
tmuxを用いたプロセスマネージャです。冒頭の記事ではForemanからOvermindに乗り換えたそうです。
参考: tmux - Wikipedia
つっつきボイス:「デバッグに便利という触れ込みみたいです」「tmuxに依存してる?また不思議なものを😆」「ああ、tmuxにアタッチすればいつでも見えるから楽だよという話か」「なるほど〜」「docker logs
みたいなことをtmuxでやろうとしてるのかな、なんて😆」「たしかにdocker logs
でやると全ストリームが表示されてうんざりしそうですし😆」「ローカル環境前提であれば、これはこれで思い切ったやり方としていいかも😋」
「もしかしたら意外と使いやすいかも?」「ほんとに使いやすいかも😍」「ワンチャンあるかも😆」「でも自分の環境は残念ながら未だにGNU screenでやってるからtmux入れてない😇」「😆」
参考: 作業がグッと楽になる screen を使おう! - bacchi.me
「この間dev環境staging環境本番環境でまったく同じコマンドを入れようとしてそれぞれの環境変数まで設定し終わってから、こういうときに何かうまいやり方あったよなと思ったら、それはscreenじゃなくてtmuxの機能だったということに気づいてシュンとなっちゃいましたし😭」「それできないとつらいっすね😅」
「記事ではForemanからOvermindに乗り換えたとありました」「Overmindはたぶんtmuxがないと実行できなさそう」「インタラクティブなシェルが使えなかったりするとtmux動かないかもしれない😅」「Heroku環境なんかはそうかも🤔」「おそらくですけど、tmuxセッションを使うにはターミナルの環境変数とかを拾えて、cursesでカーソル移動とかを制御できる端末が必要なんじゃないかな〜」「なるほど」「実行環境がそういうのを返せない端末だとtmuxの起動が失敗しそうな予感: まあ普通のローカル環境ならまず大丈夫ですけど☺️」
なおOvermindといえば、アーサー・C・クラークの最高傑作との呼び名も高い『幼年期の終り』に登場する、一種の神のような存在の名前です⛩。古典SF好きのEvil Martiansらしいですね😋。
⚓春のコード掃除(Ruby Weeklyより)
つっつきボイス:「Spring cleaning、ちょっとカッコいい❤️」「たまにはbundle clean
しようぜと」「yarn autoclean
は最近見かけますね☺️」「gitのprune
も」「たまにはお掃除してさっぱりしよう☺️」
「そういえば、gitのマージ済みブランチを削除しないでずっと残しているプロジェクトでgit branch -a
したときの絶望感はヤバい😆」「😆」「あ、ブランチ表示が大量になるんですね😅」「ブランチ残されたまんまはツラい😢」「残すならタグにしましょうと」「最近うちのチームではGitLabでマージリクエストするときにdelete branchesチェックボックスをオンにしてますけど☺️」
見出しより:
- 依存関係をお掃除
- gitブランチをprune
- 使われてないルーティングやビューを削除
- 使われてないテーブルやカラムをチェック
- バリデーションや制約に抜けがないかをチェック
- migration/フォルダをお掃除
- ツールでさらにお掃除
なお以下はつっつき後に見かけたツイートです。
仕事、まずRailsのバージョン上げましょうって仕事を請けて、実際にはRailsアップグレードと起動までの高速化、警告への対処、ルーティングの整理、RuboCopのtodo潰し、TypeScriptへの移行、CIの移行と高速化、Docker環境の改善、足りてないテストの追加、Webpackへの移行と高速化をやることが多い
— r7kamura (@r7kamura) March 30, 2020
⚓str_metrics: Rustも用いた文字列メトリクスgem(Ruby Weeklyより)
つっつきボイス:「何のメトリクスだろう?」「Sørensen–Dice...だと?」「いかにもスウェーデンの人名ですね」「(ググって)ソーレンセン-ダイス係数か!」「統計の手法でしたか😳」「文字列同士の評価方法として、こうした距離とか類似度とかを出せるということみたいですね😋」「レーベンシュタイン距離ってあったわそういえば」「なるほど、そういうメトリクス」
# 同リポジトリより
StrMetrics::SorensenDice.coefficient('abc', 'bcd', ignore_case: false)
=> 0.5
StrMetrics::Levenshtein.distance('abc', 'acb', ignore_case: false)
=> 2
「機械学習とかで使う感じでしょうか?」「統計や自然言語処理なんかでも使うヤツでしょうね」「最初数値の意味がぜんぜんわからなかったけど、そういうことでしたか😳」「文字列と文字列がどのぐらい似てるかを調べられるライブラリということで☺️」
⚓その他Ruby
- 元記事: Lies, Damned Lies, and Averages: Perc50, Perc95 explained for Programmers -- プログラマーのためのパーセンタイル入門(Ruby Weeklyより)
そこには気が付かなかった。
チャンスか。 https://t.co/LNkcyVsU7y— Yukihiro Matsumoto (@yukihiro_matz) March 24, 2020
一応、英語出来るので。TOKYO2020に、小さくsを付けたら、10年間有効になります。
— デーブ・スペクター (@dave_spector) March 24, 2020
つっつきボイス:「これはツボる🤣」「最大10年延ばせる🤣」「そういえばいらすとやさんが早速TOKYO 2021のイラスト出してましたし😆↓」「仕事速!」「商標申請とかされる前に仕上げちゃってるという😆」
参考: TOKYO 2021の検索結果 | かわいいフリー素材集 いらすとや
「いらすとやがスゴいのは、TOKYO 2020のイラストがないところ」「ああっ😆」「そうかっ😆」「2020だとたぶんオリンピック委員会の許可が必要でしょうし☺️」「実際のオリンピックはTOKYO 2020の名前のままやるらしいですけど」「まあこの先どう変わるかわかりませんし☺️」
つっつき後に見つけた、今週土曜開催の「Online Ruby Wine」カンファレンスです↓。参加費5ドルで、「ワイン片手に参加しよう🍷」だそうです。レジュメのあちこちにロシア語があったりしますが、「Work language: English」だそうです。
Online Ruby Wine, 04 April https://t.co/ROexHswG5b
— dou_calendar (@dou_calendar) March 27, 2020
⚓DB
⚓pgsync: PostgreSQLデータベースを同期(StatusCode Weeklyより)
WebOps Weeklyマガジンが、いつの間にかStatusCode Weeklyと名前を変えていました。ツールを紹介するオンラインマガジンという触れ込みです。
よく見たらRubyで書かれていました。ankaneさん作です。
つっつきボイス:「普通のツールかなと思ったんですが、★が1,500個とかなり多かったので」「syncとあるからレプリケーションするのかと思ったけど、どちらかというとrsync的なバックアップとかに使うワンショット同期ツールっぽいですね」「名前のとおりぽすぐれ専用」
「synchronizationという言葉をデータベースの文脈で使う場合、普通は常に同期しっぱなしにすることを指すと思うんですけど、このツールはワンショット的にデータを取るのがメインのようです☺️」「ふむふむ」
# 同リポジトリより
groups:
product:
products: "where id = {1}"
reviews: "where product_id = {1}"
coupons: "where product_id = {1} order by created_at desc limit 10"
stores: "where id in (select store_id from products where id = {1})"
「こういう設定↑ができるようなので、たとえば最新の本番データを元にステージング環境のデータを整えるときに使うといいかも😋: 特定のデータをスクランブル化するみたいな作業もyamlで書けるみたいですし↓」「おぉ〜😍」「なかなかよさそう👍: こういうツールは書式がきちんと決まっていて誰でも安心してデータを作れるのが大事ですね☺️」
# 同リポジトリより
data_rules:
email: unique_email
last_name: random_letter
birthday: random_date
users.auth_token:
value: secret
visits_count:
statement: "(RANDOM() * 10)::int"
encrypted_*: null
⚓クラウド/コンテナ/インフラ/Linux/Serverless
⚓書籍『Docker/Kubernetes開発・運用のためのセキュリティ実践 ガイド』
https://twitter.com/akihirosuda/status/1242662941331050497
つっつきボイス:「NTTの人が書いたDocker/Kubernetesセキュリティ本で、かなり詳しい目次が記事に載ってました」「たしかにDockerやKubernetesについては基本的なところは固まってきていますし、そろそろ書籍を買って読んでもいい頃かも😋」「セキュリティの話のためにDockerやKubernetesを解説するところから始めてるみたいですね」「必要と思う人なら買ってもいいと思います👍」
⚓Lamby: RailsとLambdaを統合(Ruby Weeklyより)
- サイト: Lamby: Simple Rails & AWS Lambda Integration
- リポジトリ: customink/lamby: Simple Rails & AWS Lambda Integration 🚂🐑
つっつきボイス:「LambdaだからLambyでそのまんま羊の絵というか」「AWSにある公式のインテグレーションツールを使わない理由ってあるんだろうか?🤔」「それもそうですね😳」「デプロイ方法を見た感じではAWSのSAM(Serverless Application Model)でやってるし、独自ツールでやらなくてもよさそうな気がしますけどね☺️」
# 同サイトより
#!/bin/bash
set -e
export RAILS_ENV=${RAILS_ENV:="production"}
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.$(whoami)"}
./bin/build
sam package \
--region ${AWS_DEFAULT_REGION} \
--template-file ./.aws-sam/build/template.yaml \
--output-template-file ./.aws-sam/build/packaged.yaml \
--s3-bucket $CLOUDFORMATION_BUCKET \
--s3-prefix "APPNAMEHERE-${RAILS_ENV}"
sam deploy \
--template-file ./.aws-sam/build/packaged.yaml \
--stack-name "APPNAMEHERE-${RAILS_ENV}-${AWS_DEFAULT_REGION}" \
--capabilities "CAPABILITY_IAM" \
--parameter-overrides \
RailsEnv=${RAILS_ENV}
参考: AWS サーバーレスアプリケーションモデル - アマゾン ウェブ サービス
「もしLambdaでRailsをやるとすると、リクエストのたびにコンテナが起動することになりそう😆: Rails.application
あたりに流し込むLambdaコードを書くとかすればやれるでしょうけど」「リポジトリを見るとRails & AWS Lambda Integrationって書いてあるから、本当にやってるのかも」「ホントだ」「Quick Start↓を見た感じだと、普通にRailsのルーティングとコントローラを書いて...と、Rails.application
に流し込むみたいなことをこのLambyがやってくれるということかな?」「じゃコードはRailsのでいいんだ😳」「めちゃ重そうだけど😆」「こういうのを最短でやれる方法がどこかにあるのかもしれませんね」「Railsのフットプリントを相当小さくしないといけないでしょうけど」
# 同サイトより
Rails.application.routes.draw do
root to: 'application#index'
end
class ApplicationController < ActionController::Base
def index
render html: '<h1>Hello Rails</h1>'.html_safe
end
end
「だからskipをいっぱい付けて少しでも軽くしてるのかも↓」
$ rbenv shell 2.5.5
$ gem install rails
$ rails new my_awesome_lambda \
--skip-action-mailer --skip-action-mailbox --skip-action-text \
--skip-active-record --skip-active-storage --skip-puma \
--skip-action-cable --skip-spring --skip-listen --skip-turbolinks \
--skip-system-test --skip-bootsnap --skip-webpack-install
$ cd my_awesome_lambda
「ちなみに、LambdaはAWS上で起動するたびにコンテナのデータを取りに行くところから始めてるわけではなくて、ウォームアップさえしてあれば2回目以降は同じコンテナを使うような実装になってます」「なるほど」「この場合ウォームアップって何でしょう?」「ああ、ウォームアップはHerokuとかでやってるようなのと同じで、最初に起動するときは遅いけど、2回目以降は前回のコンテナを破棄していなければ再利用するというモデルですね」「そうでしたか!」「なので最終的に読み込むファイルサイズが大きくても、OSのファイルキャッシュがふんだんに効く実装になっていれば2回目以降は初回起動よりは速いはず🧐」
「ただ、Rubyで読み込む処理は速くならないはずなので、DSLみたいに読み込んで処理してから動かすコードをなるべくなくして、ファイルに入っているコードをそのまま読み込めば動くような形にしておいて、OSのファイルキャッシュが効きやすくする方が、おそらく速くなるでしょうね☺️」「なるほど!」「そういう工夫をしないと速くならなさそう🤔」「どっちにしろ遅いんじゃないかという気もしますけど☺️」
「そもそもActive Recordなんかも、キャッシュがない状態でアクセスが始まるとスキーマチェックとかが走り出すから、何をするにも遅くなりがちですし」「ですね」「そういう部分をなるべくスキップするなどの細かいチューニングをしないとなかなか速くならないでしょうね」
「お、Lambyのデータベースコネクションのところを読むとDynamoDBを強くおすすめしてるし😆」「そういう面倒を避けたいんでしょう、きっと😆」「RailsはもともとLambdaで動くように作られていませんけど、データベースアクセスが不要またはデプロイしたSQLite3データにしかアクセスしないような、うんと小さいRailsコードならLambyは案外うまくはまるかも知れませんね☺️」
⚓その他インフラ
Googleのアカウント周りやべーという話をしてて教えてもらったけどやべー / “秒間100万リクエストをさばく - Googleの共通認可基盤 Zanzibar - 発明のための再発明” https://t.co/k5H6EUpJfg
— わかめ@毎日猫がいる (@vvakame) March 24, 2020
つっつきボイス:「ザンジバルってこういうスペルなんだ」「アマチュア無線でしか見かけたことない地域名🗺」「ガンダムで見たかも」
参考: ザンジバル - Wikipedia
参考: ザンジバル (ガンダムシリーズ) - Wikipedia
「このZanzibarは許認可系を扱うみたい」「Googleの共通認可基盤って、それだけで普通じゃない響き👽」「きっとヤバい😆」「この間のGCPの話に通じてそうですね(20200309)」「秒間100万リクエストをさばくって...😅」「こういうものが既にあるならそれに乗っかりたい😆」「記事は論文を解説してるんですね☺️」「大量のリクエストをさばかないといけない認証基盤みたいなものは他にもあって実装もいろいろあるので、論文を見ればどういう部分が難しいのかみたいなことがまとまってそう😋」
⚓JavaScript
⚓MicrosoftのReact Native for Windows
- 元記事: マイクロソフト、パフォーマンス重視のWindows用React Nativeを発表
- 元記事: React Native for Windows を試してみよう。そして型も手に入れよう。 - Microsoft Tech Community - 1100495
つっつきボイス:「BPS社内Slackで盛り上がってましたね」「WindowsのReact Nativeって誰が使うんだろうというのはさておき😆」「マイクロソフトがVSCodeでTypeScriptを推してる流れなのかなと」
「そういえばXamarinってどうなったんでしょうね」「たしかにXamarinどうなったんだ!」「技術的に筋悪じゃなさそうだったけど」「人気の違いなのかな?🤔」
参考: Xamarin ドキュメント - Xamarin | Microsoft Docs
「React Native for Windowsも先のことはわかりませんけど☺️」「Electronだとちょっと機能が足りないみたいなときにReact Native for Windowsを使うという感じなんだろうか?🤔」「最終的にUWPアプリという位置づけになるのかなという気がしてます」「JavaScriptの共通フレームワークと、プラットフォーム独立のインターフェイスがある、でもあくまでネイティブで動かす、というのがReact Native for Windowsなのかな〜」「Electronだと結局ブラウザエンジンを使ってるだけだから、ネイティブのReact Native for Windowsとは違うんでしょうね🤔」
参考: Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS.
参考: ユニバーサル Windows プラットフォーム (UWP) アプリとは - UWP applications | Microsoft Docs
⚓言語・ツール
⚓DeepL: Google翻訳のライバル登場か
- サイト: DeepL翻訳
英文を入力すると自動で日本語文が出力され、日本語文を入力すると自動で英文が出力されるなど、細かな点もよくできてますね😋。
つっつきボイス:「最近話題のDeepL」「機械翻訳がこうやって進化すると、英語が苦手という人の障壁が下りそうでいいですね😍」
「DeepLを試そうと思って、この間出した記事原文の中から、これは難しいだろうと思えるパラグラフを機械翻訳させてみたら、案の定ひっかかりました↓」
「vulnerabilityは普通ほぼほぼ『脆弱性』と訳されますけど、人間を形容するときは『ガードを下げる』とか『隙や弱みを見せる』とか『いじめられやすい』みたいなニュアンスになります」「ははぁ、しかも原文にProgrammersという言葉も入っているからよけい判定難しそう😆」「invulnerabilityもこの場合は『不屈の精神』というより『弱みを隠そうとする』という流れかなと😆」「こうやってコンテキストから意味を読み取るのはどうやっても難しいでしょうね😆」「まあ変だと思ったら原文見ればいいし😆」「私もDeepLといういいセカンドオピニオンができてうれしいです😋」
DeepLに限りませんが、ときどき原文の一部が訳文ですっぽ抜けることがありますね。
「ほほぅ、DeepLに『数え役満』食わせてみたらbeing worthy of the countになった😆」「😆」「以前Google翻訳で『数え役満』を食わせたらcounting officer Mitsuruって出たんですよ🤣」「(爆)」「スゴい🤣」「さすがに今は変わったみたいですけど🤣」「サイコーでした😆」「そういう意地悪問題を思い付ける人もスゴい😆」
「ディープラーニングの機械翻訳は辞書に載ってない用法も扱えるから、ローカリティの高い文章はむしろ強そうですけどね」「それはありますね: 過学習(overfitting)になることもありますけど」「こういうツールは、自分が6割ぐらいわかっているものを翻訳させる分にはよくて、逆にまったく知らない分野の文章を翻訳させるとドハマリしそう😆」「やっぱり訳文を自分が吟味できないとつらいですね😅」「機械翻訳が一番向いてるのはやっぱりマニュアルかな〜」「業務で使う分にはいいと思います😋」
参考: 過剰適合 - Wikipedia
⚓アルゴリズムビジュアル大事典
- サイト: アルゴリズムビジュアル大事典
つっつきボイス:「アルゴリズムビジュアル大事典はどこで見かけたんだっけ...😅」「お、『アニメーション』をクリックするとアニメーションページが表示された」「お〜面白い😋」「よくぞここまで作ったと思います😍」
「こうやっていろんな人があの手この手でアルゴリズムを頑張って説明してくれているんですけど、こくたまにどんなに頑張って説明してもわからない人はどうしてもわからないことがあって、一種思考の断絶みたいなものを感じることはありますね😅」「どちらかというと意欲の方が影響しそうな気がしますけど」「まあそういう人の方が多いですし、そういう人にこういうアニメーションを見せれば多少なりともわかってもらえますし☺️」
「このアルゴリズムアニメーションは、わかっている人がわかってない人に説明するにはよさそう👍」「後は本人の意欲と😆」「そして本買えと😆」
⚓その他言語
- 京大のプログラミング講義資料: IoPLMaterials | Materials for the class “Implementation of Programming Languages” in Kyoto University. -- issueやプルリク歓迎だそうです
つっつきボイス:「プログラミング言語系のSNSで見かけました」「OCaml使ってるのが京大らしいというか」「opam
っていうのがOCamlのパッケージマネージャみたい」
参考: OCaml - Wikipedia
参考: opam - opam
⚓その他
⚓ワンツイートでコードを書く(StatusCode Weeklyより)
— BBC Micro 🦉 bot (@bbcmicrobot) February 21, 2020
つっつきボイス:「ワンライナーのTwitter版みたいな感じですね」「140文字縛りでコードを書くのね☺️」「140文字でライフゲームってスゲエ😆」
「その@bbcmicrobotっていうボットにコードを投げつけると動かしてくれるとかそういう感じなのかな?」「あ、そういうサービスか!」「かなと思って: タイムライン見るとピンク・フロイドのアルバムみたいなドット絵出してたりするし↓」「コードを投げるとGIFアニにして返信してくれるってことかな😋」「いい感じの遊び場🪁」
0MO.2:V.29,640;512;5:F.I=-4TO3:A=I/4:MOVE50-5*I,8*I:F.J=1TO50:A=A+3*RND(1)-1.5:C=C MOD14+1:GC.0,C:PL.1,16*COSA+8,8*SINA-1:N.,
1GC.0,15:V.19,15,7;0;5:MOVE0,86:DR.-99,-86:DR.99,-86:DR.0,86:MOVE-50,0:PL.5,-640,-99:$@%="054231"
2F.C=1TO14:F.Q=0TO5:V.19,(C+Q)MOD14+1,@%?Q-48;0;:N.,:G.2— Steve McCrea (@Kweepa) March 29, 2020
⚓番外
⚓睡眠の科学
つっつきボイス:「いやぁ〜リモートワークの何がいいって、睡眠時間をたっぷり取れること❤️」「ホントにホント😍」「今日なんか9時半まで寝てたし😆」「人生における幸福感がしみじみ😂」
「自分は意外にも起床時間変わってませんね😋」「何と人間的な😆」「普段でも電車の中でポッドキャストとか聞いてましたし、いつものようにやってるといつの間にか始業時間になってるんですよ😆」「自分は明日何時に起きないといけないときこそ攻めてますけど😆」
「記事のアドバイスは『いつもより30分余分に寝てみましょう』でした💤」「あとは運動とかもそうですけど、サウナに行って代謝を促進させるのが効く〜💪」「たしかに😋」「不調だった頃にサウナ行ったら感動的なぐらい体調すっごくよくなりましたし🥰」「デトックスが大事ということですね😋」「何というか体内の水が入れ替わってなかった感じだったし」「サウナ行くと500mlぐらい汗かきますし」
後編は以上です。
バックナンバー(2020年度第1四半期)
週刊Railsウォッチ(20200317後編)Strangler Figパターンでリファクタリング、ペアプロ実践記事、イミュータブルデータモデルほか
- 20200316前編 Webpackerの対抗馬Simpackerはいかが、Hanami::APIは高速性をフィーチャー、N+1と戦うgemほか
- 20200310後編 Flutter+Firebaseでモバイルアプリ開発、命名7つの鉄則、Rubyバージョンを切り替えるchruby gemほか
- 20200309前編 Webpackerに乗り換えるべき理由25、Railsのindex_byとindex_withは有能、GCPはやっぱりスゴいほか
- 20200303後編 Ruby 2.7で引数のruby2_keywordsフラグを確認する、fake_apiでAPIプロトタイプ、groupdateで日付をグルーピングほか
- 20200302前編 RubyKaigi 2020は9月に延期、Railsのセキュリティパッチバージョニングが変更、dry-monadsほか
- 20200226後編 dry-rbを使うべき理由、最近のRubyオンライン教材、AWSから乗り換えた話ほか
- 20200212後編 Rubyistが解説するUnicodeとUTF-8、Sorbetが速い理由、CSSの歴史、2019年の脆弱性まとめほか
- 20200210前編 Railsのベンチマークジェネレータ、長いバックグラウンドジョブと戦う、Timestamp切り詰めの謎、Open APIツールほか
- 20200204後編 Ruby3.0の他のbreaking change、Rubyのシリアライザ、GitHubのcode ownersほか
- 20200203前編 Railsの各種高速化コミット、OpenAPIの使い所、パンくずリストgem loaf、Railsビュー最適化ほか
- 20200128後編 もう一つのgemマネージャgel、”Did you mean”の仕組みを追う、DXOpalでブラウザゲームほか
- 20200127前編 Railsでキーワード引数warning退治始まる、ライブラリとフレームワークの違い、ShopifyのRails高速化記事ほか
- 20200121後編 RubyKaigi 2020受付開始、RubyGemsとBundlerの今後、ファイル同期ツールMutagenほか
- 20200120前編 福岡でも公開つっつき会、Railsのconnection_specification_nameでprimaryという名前が非推奨に、structure.sqlとschema.rbほか
- 20200115後編 Ruby 2.7関連情報、Bootstrap 5は今年前半リリースか、PostgreSQLでやってはいけないリストほか
- 20200114前編 config_forのbreaking change、Active Storage variantをDBでトラッキング、SprocketsとWebpackの違いほか
今週の主なニュースソース
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp Slackなど)です。