- Ruby / Rails関連
週刊Railsウォッチ(20200519後編)Rails 5と6のセキュリティ修正、Ruby 3.0のGuildがRactorに名前変更、Node作者によるDeno登場ほか
こんにちは、hachi8833です。
- 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
- 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
⚓臨時ニュース
⚓Railsのセキュリティ修正5.2.4.3と6.0.3.1がリリース(Rails公式ニュースより)
セキュリティ修正5.2.4.3と6.0.3.1がリリースされました。どちらも5件の脆弱性が修正されています。
念のため、昨日のウォッチに貼った4.2.11.3セキュリティ修正をもう一度貼っておきます。こちらで修正された脆弱性は1件です。
⚓Ruby
⚓Ruby 3.0に入るGuildが「Ractor」に名前変更
# 同リポジトリより
RN = 10000
CR = Ractor.current
last_r = r = Ractor.new do
p Ractor.recv
CR << :fin
end
RN.times{
r = Ractor.new r do |next_r|
next_r << Ractor.recv
end
}
p :setup_ok
r << 1
p Ractor.recv
つっつきボイス:「こちらも準スクープという感じですが、Rubyに入る予定のGuildが名前変わったそうです」「お〜今度はRactorか😳」「RubyのアクターだからRactorらしいです😆」「ラクター😆」「記事書いてて何度もスペルミスしそうになりました😅」
「一般名詞っぽい名称をやめたのかな?」「UnityにもGUILDという用語があるから紛らわしいみたいな話がありましたね↓」「たしかに既存の概念と同じ名前だと誤解を招くこともあるので、ユニークな名前の方がいいでしょうね👍」
参考: Unityゲーム開発者ギルド - Unityゲーム開発者ギルド(外部向け)
「Ractorごとにロックを完全に分離して通信ベースでやりとりするような形になるみたいですね」「元々Guildでもそれをやりたかったわけですし😆」「中身がGuildから大きく変わったわけではなさそう👀」「実装はこれからかな?」「並列化はまだだそうです」「Ractorのコードサンプル、数年前から見覚えある感じする」「アーキテクチャは随分洗練されてきた感ありますね😋」
# 同記事より
Ractor r
+-------------------------------------------+
| incoming outgoing |
| port port |
r.send(obj) ->*->[incoming queue] Ractor.yield(obj) ->*-> r.take
| | |
| v |
| Ractor.recv |
+-------------------------------------------+
接続することができる(r2.send obj on r1、Ractor.recv on r2)
+----+ +----+
* r1 |-----* r2 *
+----+ +----+
接続することができる(Ractor.yield(obj) on r1, r1.take on r2)
+----+ +----+
* r1 *------ r2 *
+----+ +----+
同時に待つことができる(Ractor.select(r1, r2))
+----+
* r1 *------+
+----+ |
+----- Ractor.select(r1, r2)
+----+ |
* r2 *------|
+----+
「なるほど、Ractorに対してsend/receiveできるのか〜」「このモデルって最近どのぐらい使われてるんだろう?🤔」「lambdaとかとあんまり相性がよくないかも?🤔」「今Railsサーバーでやっているような部分はRactorなら確実に安全に回せるようになるでしょうね❤️」「期待しちゃいます😋」
「GVLをうまく制御できなかったのが今まで問題だったので、今後そこがやれるようになるのはよさそう👍」「希望が見えてきそう✨」「ちなみに今翻訳を進めている以下の記事(近日公開予定)↓はGVLの説明としてよく書けてると思うんですけど、後半でReactorについて説明されていて今回の名称変更を知りました」
参考: The Practical Effects of the GVL on Scaling in Ruby
⚓sha256-animation: 暗号生成の様子をアニメーション表示(HackerNewsより)
つっつきボイス:「久々にHackerNewsから拾いました: 暗号生成の様子をシェルで逐一表示してくれるそうです」「おほ、なるほど😆」「見ていてついニヤニヤしちゃいますね😆」「ちょっと楽しい😋」
「Rubyで書いて3日前にアップしたみたい」「これgemじゃないのか😳」「ガチRubyで書いてる😆」「おぉ😳」「ncursesっぽいところはライブラリでやってるのかなと思って見たらgemspecファイルがなかったので😆」
「どうやってるのかなと思ったら力技で上書きしてるっぽい↓😆」「マジですか😆」
# sha256-animation/add.rbより
# -----
# Input
# -----
# defaults
numbers =
[0b01000000000000001111111111111111,
0b01000000000000000000000000000000,
0b01000000000000000000000000000000,
0b01000000000000000000000000000000,
0b01000000000000000000000000000000,
]
# arguments passed
if ARGV.size >= 2
numbers = ARGV.map {|x| x.to_i(2)} # convert binary strings to integers
end
# ---------
# Animation
# ---------
total = numbers.inject(:+)
width = total.to_s(2).size
(numbers.size + 1).times do |i|
system "clear"
numbers.each.with_index do |x, j|
print ("%032b" % x).rjust(width, " ")
if j > 0
if j <= i
print " +"
end
end
print "\n"
end
puts "--------------------------------".rjust(width, " ")
if i == 0
puts "" # numbers[0].to_s(2).rjust(32, "0").rjust(width, " ")
elsif i < numbers.size # for each addition
puts numbers[0..i].inject(:+).to_s(2).rjust(32, "0").rjust(width, " ")
sleep 0.4 if i == numbers.size-1 # slight delay before the modulus function
else
puts (numbers[0..i].inject(:+) % 2**32).to_s(2).rjust(32, "0").rjust(width, " ") + " mod 2**32"
end
sleep 0.4
end
sleep 1.0
「ところでRubyのコードなのにtabとスペース混じりなのって久々に見た🤣」「違う世界線から来た感🤣」「仕事でやったら怒られが発生する😆」「こういうプルリク投げたらみっちり注意されそう😆」「まあ一発ネタだしいいんじゃないでしょうか😆」「もちろん😆」「エディタにスタイルお任せすればいいのに😆」「普段Ruby書いてない人なのかも☺️」
⚓lockbox: Rails用のモダンな暗号化(Ruby Weeklyより)
# 同リポジトリより
class User < ApplicationRecord
encrypts :born_on, type: :date
encrypts :signed_at, type: :datetime
encrypts :opens_at, type: :time
encrypts :active, type: :boolean
encrypts :salary, type: :integer
encrypts :latitude, type: :float
encrypts :video, type: :binary
encrypts :properties, type: :json
encrypts :settings, type: :hash
encrypts :messages, type: :array
end
つっつきボイス:「これはencryptor gem↓とかattr_encrypted gemとかのオルタナっぽい」「あ、こういうのが既にあるんですね😅」「世の中的にはattr_encrypted gemがRailsでよく使われてます🧐」
- リポジトリ: attr-encrypted/encryptor: A simple wrapper for the standard ruby OpenSSL library
- リポジトリ: attr-encrypted/attr_encrypted: Generates attr_accessors that encrypt and decrypt attributes
「attr_encryptedは以下のような感じでよく使うんですけど、lockboxもそっくりですね: なのでlockboxをこれと比較してみればどんな機能があるかわかりやすいと思います☺️」「なるほど〜」
# attr-encrypted/attr_encryptedより
class User
attr_encrypted :ssn, key: 'This is a key that is 256 bits!!'
end
「お、lockboxはkms_encryptedというgemを使ってKMSを指定できる↓ところがなかなかよさそう😋」「どっちもankaneさんが作ってるんですね😳」「きっとankaneさんのことだから、どちらもproductionで使ってそう❤️」「ankaneさんならやりそうですね😋」
# ankane/lockboxより
class User < ApplicationRecord
encrypts :email, key: :kms_key
end
⚓その他Ruby
- リポジトリ: sport.db/sportdb-readers at master · sportdb/sport.db(RubyFlowより)
- サイト: Alt::BrightonRuby | A slightly odd, quasi-conference for strange times by Andy Croll -- BrightonRubyオンライン開催のお知らせ(Ruby Weeklyより)
つっつきボイス:「sportdbはサッカーの試合の結果をフェッチするgemだそうです⚽️」「プログラミングの練習でこういうのを作ったりしますよね☺️」「ところで今サッカーの試合できるんだろうか😆」「ドイツはやってるそうですよ😆」「つおい😆」
⚓DB
⚓PostgreSQLのDISTINCT ON
でN+1問題を回避する(Ruby Weeklyより)
つっつきボイス:「これはDISTINCT
にON
まで含めるヤツですね」「あ、ON
が必要なのか😅」
-- 同記事より
SELECT DISTINCT on (graphics.template_id) graphics.*
FROM graphics
WHERE team_id = :team_id AND template_id IN (:template_ids)
ORDER BY template_id, created_at DESC
- ドキュメント: 7.3.3.
DISTINCT
「DISTINCT ON
って使ったことないけどぽすぐれ独自みたい↓」
参考: » distinct onで重複なしのレコードを取得技術ブログ
「DISTINCT
自体はSQLにありますけど、ON
を付けると式を評価した結果から特定のカラムだけを引っ張ってこられるということみたい」「へぇ〜!😳」「普通のDISTINCT
は全部のカラムに対してかかりますけど、ON
を付けると指定したカラムについてだけ1件目を取れるようだ」「そういうことでしたか😳」「でないとN+1にならない説明がつかなさそうですし☺️」
「そしてソリューションはRubyの中で生SQLを書くと」「そりゃそうだ😆」
# 同記事より
statement = <<-SQL
SELECT DISTINCT on (graphics.template_id) graphics.*
FROM graphics
WHERE team_id = :team_id AND template_id IN (:template_ids)
ORDER BY template_id, created_at DESC
SQL
「データベースのチューニング的な知識ですけど、知っておくと便利そう😋」「知らないとびっくりしそう😅」「こうやってRubyに生SQLを書く方法もあるでしょうし、生SQLを嫌がる人がいるならデータベースビュー↓でラップしておけばActive Recordレベルで普通に扱えるでしょうし🧐」
⚓生SQLはお好き?
「ちなみに自分は生SQL苦手で〜す😅」「😆」「ほら、生SQLなら圧倒的に速いじゃないですか😆」「速いんですけど😅」「宣言的に書けるからシンタックスエラーも一発でわかりますし実行時エラーにならないからめちゃくちゃ信頼できますヨ😆」「そうなんですけど😅」
「自分もこの間80行ぐらいの生SQL書いてINSERT INTO SELECT
でもりっとアップデートかけましたし😋」「それはアプリケーションの中で書いたんですか?」「そのときはバッチ処理ですね: 全ユーザーの特定期間内の特定データを日次で集計するみたいな」「なるほど😋」「INSERT INTO SELECT
なら一発で、しかもトランザクショナルに書けますから: 同じことをRailsでループ回してやろうとするとクエリの数がめちゃ増えますし、途中で止まったときの再開方法も考えないといけませんし」「ですよね😆」「せっかくデータベース使ってるんだからACID特性を活用しないと😆」
参考: ACID (コンピュータ科学) - Wikipedia
「てな具合に自分はSQLで明らかにうまくやれるならそっちを使っています: Railsだと無駄にループが増えることもありますし、データがおかしくてNULLで落ちるみたいなことがSQLなら起こらないので😋」「😆」「もちろんRailsの世界でnow
みたいに型変換が必要なものを注入するのと同等のことをSQLでしようとすると面倒ですけど😆」「せっかくRails使ってるのに何だかもったいなさそうで😅」「まあそういうものが多いときはSQLだと面倒だなって思います😆」
⚓クラウド/コンテナ/インフラ/Linux/Serverless
⚓GitHub Code Scanning(Publickeyより)
つっつきボイス:「ここで使ってるCodeQLって脆弱性解析エンジンなのか↓」「オープンソースなんでしょうか?」「買収したとあるぐらいなのでたぶん違うでしょうね☺️」
参考: CodeQL - GitHub Security Lab
「CodeClimateとかがこれまでやっていたことをGitHubが公式で始めたということなんでしょうね」「OSSプロジェクトが無料ということは、そうでないプロジェクトは使いたければお金払ってねと💰」「やってることはCodeClimateと同じなので特に新しくはないですけど☺️」
「GitHubもそろそろ独禁法周りに注意が必要になってきたりして😆」「それちょっと思いました😆」「GitHubの勢い的にもかつてのマイクロソフトを思わせるところがありますし」「サービスがGitHubに統合される方がたしかに便利ですけど😅」
「あと、GitHubのシェアがあまりに大きいからかもしれませんけど、サードパーティのこの種のサービスってGitHubには対応していてもGitLabのような他のリポジトリには対応してないところもときどきあるんですよ😢」「ありますね😆」「以前某静的解析サービスにGitLab対応できるかどうかを問い合わせたらできなくて、サポートにも聞いたら『貴重なご意見ありがとうございます』で終わっちゃいました😇」「ありゃ🤣」
⚓GitLabの「Tech Stack Application」(Serverless Statusより)
つっつきボイス:「これは何でしょう?」「記事の図↑をぱっと見したところGitLabの内部構造の話かと思ったら、GitLabの法人が使っているサービスについての解説みたい」「GmailとかLinkedInも入ってるしそれっぽいですね」「やっぱりSalesforceでつなぎ込んでるのか〜」「使ってるサービス全部書いてあるんですね😳」「記事の真ん中あたりにあるGoogleスプレッドシート↓でリストが公開されてます」
「こんなにたくさんサービスが😳」「さすが公開を重んじるGitLab😳」「それぞれのサービスにいくらかかってるのか気になります😆」「ユーザー名とか出てますけど大丈夫なのかしら?🤔」「たぶんそういうオープンな文化ということでやってるでしょうし、それなりの契約も結んでるでしょうし🧐」「そういえばシートの上の方にちゃんとapproveされてるって書いてますね」「へぇ〜😳」
「ここまでオープンにしてあると、これから組織を立ち上げる人に参考になりそうですね😋」「GitLab的にはかなり自信を持ったアプローチでしょうけど、それにしても大胆ですね」「たしかに」「もちろんGitLabはすべて承知のうえでやってるでしょうし、認証デバイス使ったりしてプライバシー周りは十分注意しているでしょうし🧐」「個人的には公開して大丈夫?って思いますけど😆」
⚓その他クラウド(Serverless Statusより)
#serverless tip of the day: experiment with various memory settings, with and without load.
I have an extremely simple Lambda that does one write to DynamoDB. At 128MB, it takes 400-800ms. At 256, it takes about 50ms.
1/3
— Jeremy Thomerson (@jthomerson) May 2, 2020
つっつきボイス:「ツイートとは関係ありませんけど、最近サーバーレスアーキテクチャって言葉をあんまり見かけなくなったのは、もう普通になってきたのかなって😆」「流行りを通り越して定着したのかもですね」「マイクロサービスというバズワードは完全に過渡期を過ぎた感😆」「もちろんマイクロサービスは取り組んでるところは取り組んでますけど☺️」
「まあビジネス上のアーキテクチャを考えればたいていどこかでRDBが絡んでくるので、すべてがサーバーレスになることはほとんどないと思いますし🧐」「ですよね」「あとサーバーレスという言葉が『マネージドの機能を使っている』という意味なのか、文字どおり『ステートフルなものがない』という意味なのかという点で誤解を招きやすいところがあるかなという気はします😆」「たしかに誤解が入りやすい😆」「マネージドのRDBを使っているのはサーバーレスと呼んでいいの?みたいな話😆」「ほんにそれ😆」
「もちろんサーバーレスそのものは普通にいいと思います: 自分も提案に入れますし🧐」「ふむふむ」「何をサーバーレスと呼ぶかですけど、自分の場合はだいたい『メンテナンスしたくないもの』😆」「まあたしかに😆」
⚓JavaScript
⚓Deno 1.0.0がリリース
- リポジトリ: denoland/deno: A secure JavaScript and TypeScript runtime
- 元記事: DenoとNode.jsの大きな違い - keroxpのScrapbox
- 元記事: Denoの登場でNode.jsの時代は終わるのか? - Qiita
つっつきボイス:「今話題のDeno」「社内Slackでも盛り上がってましたね」「えっこれ知らない😅」「デノではなくディーノだそうです」「つい男爵ディーノを思い出しちゃうんですけど😆」「それなし〜!🤣」「若い人知らないですよきっと😆」
参考: 男爵ディーノとは (ダンシャクディーノとは) [単語記事] - ニコニコ大百科
「Node.jsの作者が、Nodeでもう引き返せなくなったつらい部分を全部作り直したいってやり直したんだそうです↓😆」「上の記事見るとNodeの作者がめちゃめちゃ反省してますね😆」
「Denoは今のNodeと機能上の互換性がないみたいです😆」「ありゃ😆」「JavaScriptのレイヤは基本的に互換みたいなんですけど、まだライブラリやパッケージマネージャとかが整備されてないとかいろいろあるらしくて、とりあえずnodenvではインストールできなかった😇」「う〜む😅」「まあNodeじゃありませんし😆」
「なのでこれを使って何をするかはもう少し先の話っぽいんですけど、TypeScriptがビルトインされているあたりなんかは、それこそマイクロサービスでマイクロなものだけを作ったりするのによさそうですね👍」「ふむふむ」「まあ今のJavaScriptはnpm周りがいろいろ地獄味を帯びてますから😆、こうやってクリーンにやり直すのはいいかもしれませんね☺️」「新しもの好きの人はどうぞという感じで😆」
「それにしてもJavaScriptという言語の出自を考えたら、よくぞここまで成長したと思います😂」「たしかに😆」「PHPもいろいろ乗り越えてきてますけどそんな比じゃないですよね😆」「『セキュリティのためにJavaScriptはオフにしましょう』なんて言われてた太古の時代を知ってる者としては特に😆」「ECMAScriptの標準化もスゴいし💪」「JavaScriptがこんなに発展したのは、ひょっとしたら世の中を支配してたかもしれないMacromediaが消えたのも大きいかも😇」「言語は面白いな〜😆」
後で公式サイトを見つけました↓。アイコンは恐竜のようです。
- サイト: Deno
⚓CSS/HTML/フロントエンド/テスト/デザイン
⚓servo: Rust製のパラレルブラウザエンジン
つっつきボイス:「servoってブラウザエンジン?」「レンダリングエンジンじゃなくて?」「レイアウトエンジンですって」「しかもサムスンがやってる😳」「埋め込み系を想定してたりして」「どの辺がパラレルなんだろか😆」「犬のアイコンが謎🐶」
「コマンドがmach
というあたりがちょっとそそる↓😋」「マークって何でしょう?😅」「今のmacOSの元になっているのがMach(マーク)カーネルというヤツです🧐」
# 同サイトより
./mach build --release
./mach run --release tests/html/about-mozilla.html
参考: Mach - Wikipedia
そういえばMachはドイツ語読みだと「マッハ」でしたね。
Servo(サーボ)とは、Mozillaの研究によって開発されているウェブブラウザ用レイアウトエンジンである。サムスンによってAndroidおよびARMプロセッサへ移植されている[3]。多くのコンポーネントは、きめの細かい、孤立したタスクによって処理される。Servoは高度な並列処理を行い、多くのコンポーネント(レンダリング、レイアウト、HTML解析、画像復号など)が独立したタスクによって処理される。プログラミング言語Rustによって開発されている。
Wikipediaより
「パラレルって要するにコンポーネントの処理がそうなってるということね😳」「Chromeもやれるところはパラレル化してるみたいですけど、Wikipediaの日本語を信じるなら、そのあたりをRustでもっと徹底的にやろうという企画なのかも、たぶん😆」「サムスンがやってるいうことは、最近のマルチコア化したスマホでパラレルに動くブラウザを目指しているのかもとちょっと思いました☺️」「『FirefoxのGeckoのコンポーネントをこのservoに置き換え始めてる』んですね😳」「Mozilla Reseachがやってるからそういうことなんでしょう☺️」
以下はつっつき後に見つけたツイートです。
servo、怪しい雑コラロゴから変更されてた。Wikipediaの情報が古いhttps://t.co/O7MLyzh7Kg
— 白山風露 (@kazatsuyu) May 15, 2020
⚓iOSのブラウザ
「そういえば最近はどうなのか知りませんが、iPhone用のブラウザってガワはFirefoxやChromeとかでも中身のレンダリングエンジンはSafariのエンジン(WebKit)だったりしますね」「え、そうなんですか😅」「Appleのライセンス規約ではSafari以外のレンダリングエンジンを丸ごと入れてはいけないことになってたと思います🧐」「よく聞く話ですね〜😆」
参考: iPhoneではあらゆるWEBブラウザのエンジンがSafariと同じ? - いまさら聞けないiPhoneのなぜ | マイナビニュース
参考: WebKit - Wikipedia
「たしかAppleの規約だと、外部から受け取ったコードやバイナリによって動作を完全に変えてしまえるもの、つまりプログラム実行環境はアプリに搭載することを禁止してますよね」「そうそう😆」「ブラウザってまさにそれですし😆」「昔ScratchだかSqueakだかもiOS版を出そうとしたらそこをツッコまれて頓挫したという話も聞きました😇」「要はプログラムを書いて実行できるアプリはダメという😆」「プログラム書いちゃダメなんだ、へ〜、って当時思いました😆」「まあ気持ちはワカル😆」
「あ、だからiPadを開発環境にするみたいな話があんまり出てこないのか😳」「今ならオンラインIDEにすればやれますけど☺️」「2010年頃にはそんないいものありませんでしたよ😆」「当時はニーズもなかったでしょうし、利用者の環境も追いついていなかったから商売にはならなかったでしょう😆」
⚓その他
⚓置くだけ?
つっつきボイス:「Brewletって日本人ならもう青いアレしか連想しない😆」「小林製薬😆」「置くだけ😆」「作者日本人じゃないからその意図はなさそう😆」「Macに入れようか迷ってます😅」「appletのletみたくBrewletという接尾語をつけたんでしょうけど😆」「きっとそう😆」「はいそれだけでした〜」
つけ替用 液体ブルーレットおくだけ せっけんの香りをお迎え。見た目と、「せっけんの香りとか絶対いいやつじゃん」っていう衝動に駆られお迎えした。
思ったよりせっけんの匂いしなかった(恐らく前使ってたローズの威力が強過ぎた)。現場からは以上です。 pic.twitter.com/ichUavMCQ5— けせ田 (@Oh_TORO_SAN) May 19, 2020
⚓MacとWindowsでのパッケージ管理
「でもHomebrewのパッケージってそんなに頻繁にアップデートします?」「私は所在ないときに割とアップデートしちゃいます😅」「まあアップグレードされたらまずいものはpinすれば別にいいのか☺️」「PostgreSQLとかはpinしてます」
参考: Homebrewのupgradeで無視したい - 銀の弾丸、はじめました
「ちなみにWindows環境だとHomebrewの代わりに何使ってます?」「WindowsにはHomebrewなんかありませんけど😆、最近はArch Linuxの勢いのよさに媚を売ってManjaro Linux使ってるのでpacmanコマンドとかyayコマンドとか使ってます😆」「媚って😆」「未だにpacmanコマンドのオプション覚えられない😆」
参考: pacman - ArchWiki
参考: Arch Linux に yay をインストール - Qiita
⚓メモリ64GBはもう当たり前?
「Windowsでここまで環境構築したんで、もうMacに戻そうと思わないかな〜😆」「😆」「Macで同じスペック実現するならチーズおろし器買わないと😆」「先週もチーズおろし器の話出てましたけどそれ何でしたっけ?」「最近のタワー型Mac↓😆」「あれチーズおろし器って言うんですか😆」「本物はAmazonで1,500円ぐらいで買えますし😆」
新型「Mac Pro」あだ名“ゴミ箱”から“cheese grater”に? 米国で話題https://t.co/yx1bzmwTCH
「まるでcheese grater(チーズおろし器)だ」──米Appleが発表した新型のプロ向けデスクトップPC「Mac Pro」のデザインが、“チーズおろし器”のようだと米国のネット上で話題に。 pic.twitter.com/emC654hFlV
— ニコニコニュース (@nico_nico_news) June 5, 2019
「そして本当にチーズおろしてる人↓🤣」
参考: iFixit、新Mac Proで「チーズおろし」を敢行。みごと細切れに - Engadget 日本版
「中にMac mini入れて動かしたい😆」「タワーMacは細長いからMac miniみたいに正方形だと入るかな〜?😅」「Amazonで買ったゴミ箱でガチでPC組み立てた人いましたね😆」「あれは頑張れば入りそう😆」
「まあ今のWindows環境は快調ですよ、とりあえずメモリ64GBに16コアあれば困ることがないってわかりましたし😆」「Chrome起動したら結構メモリ食いそうですけど😆」「いえいえ、Chrome立ち上げてもまだ20GBぐらい空いてますし、Hyper-Vに割り当てるメモリをケチらなくてもいいし、もう心の余裕が全然違う🥰」「それは幸せですね〜😆」「富豪は富豪でもビリオネア💰」「今はもうメモリ32GBだと全然足りないですよ😆」
⚓番外
⚓これは欲しい
つっつきボイス:「あ〜穴開けられそう🤣」「そう思いますよね🤣」「開けてみたい😆」「持ち運びできるのは大きな価値だとは思うんですけどね〜」「これは電車に乗るときに嬉しいヤツでしょう😋」
「イメージ的には京都に持ってって使う感じですかね〜、京都って移動大変だから」「あ〜なるほど」「こういう電動カートって今公道を走れるようになってたと思います☺️」「やっぱり免許ないとダメでしょうね😅」「電動車椅子と同じくくりなら免許なくてもイケそうですけど😆」「スピードが遅いから大丈夫そう」「時速10kmなら早歩きレベルでしょう😆」
参考: 公道を走れる”電動三輪車”が登場!?|クラウドファンディングで販売開始|【業界先取り】自動車ニュース2020国産車から輸入車まで【MOTA】
後半は以上です。
バックナンバー(2020年度第2四半期)
週刊Railsウォッチ(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など)です。