今週読んだ記事 2020/10/26~2020/11/1

Ruby / Rails

github.com jbuilderが遅すぎるので最近使い始めたjb、v0.8.0がリリースされた。
MRI2.7.2や、Rails6.1でのAPI変更への追従が主。

既存利用者がアップデート時に必要な変更として、jsonリアライザとしてojを使っている場合、Oj.optimize_railsが必要になった。
これまではojが読み込まれている場合、multi_jsonによって自動で使ってくれていたが、jbuilderがmulti_jsonをやめたのに追従してjbもmulti_jsonを依存から外したため。
最新版のjbuilderと同様、Active Supportのto_jsonを使うようになったので、Oj.optimize_railsすれば引き続きojを使うようにできる。

モジュラモノリス

ma2k8.hateblo.jp Shopify以外のモジュラモノリスの事例をやっと見つけられた。
ドメイン間の循環参照を防ぐためにShopifyではbundlerを使っていたが、この事例はscalaなのでsbtを使っている。

プライマリアダプタとセカンダリアダプタとの間の違いがまだ想像できていない。

Shared Libraryから各ContextのUse CaseまでのDB書き込み等の部分は依存関係逆転の法則を使ってインターフェイスに依存させておいたDBや外部APIリクエストの実装詳細を注入するのがセカンダリアダプタ、
外部に対してHTTP APIを提供したり、Producer-ConsumerモデルのConsumer側のふるまいを実装したりしてUse Caseを呼び出すのがプライマリアダプタ…

という理解でいいのだろうか。


github.com ruby-jpのslackで見かけた、これもモジュラモノリス的な構造を採っているアプリケーション。
スペインのオープンソース行政システム(?)らしい。

中身ちゃんと見きれていないので後で改めて読みたい。

CI

github.blog

長時間かかるE2Eのようなテストと比較的短時間で終わるユニットテストのようなテストがあるときに、短いほうが通ったら一旦マージを許し、マージ後に長いほうが落ちたらそのPRのauthorに修正をリクエストして、修正されるまで本番デプロイを禁止する、という内容だと理解した。

図を見るとマージ時にデプロイもしてしまっていると読めるが、長いテストが落ちているということはどこかで壊れが発生しているはずで、それは変更頻度を優先するために一旦飲んでいるのだろうか…と思ったが文中に書いてあった。

The two long running test suites were added to the CI workflow to ensure a pull request did not break the GitHub experience for our Enterprise Server customers.
この二つの長いテストスイートはPRがGitHub Enterpriseの顧客の体験を壊さないことを保証するために追加されました。

It was also clear that these 45-minute test suites did not provide additional value blocking GitHub.com deployments that happen continuously throughout the day.
同時に、この45分かかるテストは日に何度も行われるGitHub.comのデプロイを止めるほどの付加価値は発揮していないことも明白でした。

このこの45分かかるテストは日に何度も行われるGitHub.comのデプロイを止めるほどの付加価値は発揮していないというのがどのように判断されたのかが少々疑問ではある。

15分かかる短いほうのテストをpassしてマージしたあと、長いほうのテストがpassするのを待ってから自動でデプロイしてしまえばエンジニアがそれを覚えている必要はなくなるのだから十分なのではと思うけれども、それよりもデプロイまでの時間が短いことを選んだのは、カナリアリリースしようとしてエラー率上昇などで切り戻されたとき、エンジニアの頭を45分も前のPRについての状態に戻すのが大変だからなのだろうか。

PC自作関連

pc.watch.impress.co.jp

www.nichepcgamer.com 既に存在そのものは明言されてたけどついに出荷開始されたと。

Acerがこれを載せたノートPCを出荷するとか。
Destiny2くらいは動くということなので、これが1.37kgくらいのノートPCに積めるのであればピーク性能はともかく電力性能比的には良いのかも。


pc.watch.impress.co.jp

デスクトップ向けCoreシリーズの11000番台の情報が出てきた。
GPU部分はXe Graphicsの演算ユニット削減版ということは、マイクラくらいならこれだけで動くんじゃなかろうか。

現状のi9 9900Kで全く困ってないので買いはしないのだけれどこういうの見てるとやっぱり欲しくはなってくる。

その他

gigazine.net モバイル回線を複数束ねて安定性を上げる製品は既に出てたけれど、オープンソースでもできるらしい。
実際に使う機会が来るかは別として。


k-tai.watch.impress.co.jp RANというコンポーネントがどこからどこまでをカバーしているのかわかっていないのだけれど、各基地局の各アンテナから送出する信号を演算する部分なのだとすれば、その辺の分野は行列演算の塊らしいのでGPUと相性が良いというのは想像できる。

僕自身の専攻は無線通信ではなかったので想像が正しいのかわからないけれども。


www.publickey1.jp PC自作関連に含めるか迷ったけれどサーバ向けCPUの話なので。
数年前にIntelがALTERAを買収したのに続いてAMDXilinxを買収するという話。

前前職でFPGAを載せたXeonの話は何回か聞いたが、触ることはなかった。
使われる分野が限られ過ぎていて使われているのかもよくわからない。