ぴよがち

技術的な話をします。みんなで強くなりましょう。

Redux Toolkit Query、便利すぎだろ!

Redux Toolkit(以下、RTK)と RTK Query が、Reduxの面倒な部分を全部いい感じに解消してくれて感動したので共有します。

TL; DR:

RTKとRTK Query、特にRTK Query最高すぎ!!!
ぜひ一度RTK Queryを使ってみてください。誰でもいい感じにReactとReduxのパワーを使いこなせるようになり、超おすすめです。

使い方(公式): redux-toolkit.js.org

Redux Toolkit Query の紹介

以前はTypeScriptで真面目にReduxを使おうとすると、ActionやStateのboilerplate的な定義ばかりでコードが埋め尽くされて非常に難解な感じになりがちでした。

それがなんと!

最近GAされたRTK Queryを使うことで、私たちはただ、createApi()APIを定義し、定義から自動生成された便利なメソッドたち を使うだけでよくなるのです!

redux-toolkit.js.org

従来 axios や thunk、SWR などを組み合わせて頑張っていい感じなAPIアクセスを実現していましたが、RTK Queryを使えば、もはやAPIからのレスポンスを管理するのに頑張りは不要になります。

それどころか、Reduxを使っていることすら意識する機会がかなり減りそうです。
2020年ごろの React / Redux と比べると、無限の隔世の感がありますね。

まとめ

だまされたと思って、一回 Redux Toolkit・RTK Query を使ってみてください!
きっとご満足いただけるはずです。

redux-toolkit.js.org

Windowsで最新のGCC(開発版のSnapshot)を使いたいときのメモ

C++23の機能を使いたいけど、自分で定期的にビルドするスクリプト組むのは面倒だなーって思って都合よくGCCのバイナリが落ちてないか探したら、見つけたのでメモ。

WinLibs - GCC+MinGW-w64 compiler for Windows

↑の「Snapshot versions」に置いてありました。 大体月一くらいで更新してくれてるみたい。

海外ニキ非常に助かる。。

追記

こっちも有名っぽい。

http://www.equation.com/servlet/equation.cmd?fa=fortran

毎週更新らしいので、最初のやつより更新頻度高そう

【C++】参照とポインター完全に理解した

色々試したのでメモ。

用意したもの

以下の 4 種類の関数を用意した。

  1. 値渡し(何もつけずに書いたやつ)

    #include <iostream>
    
    int sum(int in1, int in2) {
        return in1 + in2;
    }
    
    int main() {
        int input1, input2;
        std::cin >> input1 >> input2;
        int result = sum(input1, input2);
        std::cout << result << std::endl;
        return 0;
    }
    
  2. 参照渡し

    #include <iostream>
    
    int sum(int& in1, int& in2) {
        return in1 + in2;
    }
    
    int main() {
        int input1, input2;
        std::cin >> input1 >> input2;
        int result = sum(input1, input2);
        std::cout << result << std::endl;
        return 0;
    }
    
  3. ポインタ渡し(move)

    #include <iostream>
    #include <memory>
    
    int sum(std::unique_ptr<int> in1, std::unique_ptr<int> in2) {
        return *in1 + *in2;
    }
    
    int main() {
        std::unique_ptr<int> input1(new int (0)), input2(new int (0));
        std::cin >> *input1 >> *input2;
        int result = sum(std::move(input1), std::move(input2));
        std::cout << result << std::endl;
        return 0;
    }
    
  4. ポインタ参照渡し

    #include <iostream>
    #include <memory>
    
    int sum(std::unique_ptr<int>& in1, std::unique_ptr<int>& in2) {
        return *in1 + *in2;
    }
    
    int main() {
        std::unique_ptr<int> input1(new int (0)), input2(new int (0));
        std::cin >> *input1 >> *input2;
        int result = sum(input1, input2);
        std::cout << result << std::endl;
        return 0;
    }
    

それぞれの挙動

  1. 値渡し
    • コピーが渡る。
      • でかいデータをコピーすると時間がかかるので、用法に注意。
      • コピーなので、参照先で変数を変更・再代入しても当然参照元には影響しない。
    • 参照先を変更しても、参照元の変数には影響なし。
  2. 参照渡し
    • 参照が渡る
      • 参照先で読み書きができる。
    • 参照先で変更すると、参照元が変更される。
  3. ポインタ渡し(move)
    • ポインタが渡る
      • 参照先で読み書きができる。
    • 参照元の変数は、利用できなくなる。 (unspecified state になる。参考:std::move - cppreference.com
  4. ポインタ参照渡し
    • ポインタの参照が渡る
      • 参照先で読み書きができる。
    • 参照先で変更すると、参照元が変更される。

所感

C++なんもわからんので、ぼちぼち学んでいきたいところです。 Rustの方が怪しい書き方した時に警告出してくれがちなので現状すき。

おまけ

アセンブリで挙動追いかけてみた。 ほんとに上記の通りになってて面白い(当たり前)

アセンブリを表示したスクショ

Prettierの空白や括弧を取り除く際の挙動について

だいぶどうでもいい内容なんですけど、気づいてしまったので備忘録。

演算子とかの順序を明示するために、必要ないけど括弧を付けることあるじゃないですか。
ESLintのno-mixed-operatorsみたいな感じに。

eslint.org

で、これをprettierに通したら括弧を消されるという事件が起きて、何とかする方法を調べたところ、

github.com

Prettier disregards whitespace and then regenerates it when needed. Sometimes the input and the output happen to be identical, so it looks like 'Prettier kept that whitespace', but it's not exactly what happened. Same with parens. They are not 'kept' or 'removed'.

とのことで、ちょっと衝撃を受けました。

彼らは空白や括弧を一度全部取り去ってから再生成してるんですね。面白い挙動です。

というわけで、この不要な括弧を取り除く挙動を無効にするような設定はないらしいので、Prettierはお役御免にさせていただきました。
おしまい。

仮説検証と技術選定のお話

自分の欲しいものを作った際に、色々試してたくさん学びを得られたというお話です。

概要

以下のような変遷で半年くらい断続的に旅をした結果、割と満足な結果を得られました。

遠回りで無駄の多い旅路ではありましたが、振り返ると全体的に有意義であったように思います。
この記事は、各段階で考えたこと・感じたことについての備忘録です。

概念実証時代

今年(2021年)の5月ごろ、あるジャンルの商品を毎日たくさん、各商品おひとり様一個限定で、原価割れの価格で販売しているWebサイトがあることに気が付きました。
毎日回収すればお得そうだったので、bot*1を作って自動で回収できるようにしたいと思いました。

そこでとりあえず、以前使ったことのあった Selenium を使ってbotを作りました。
かなり雑な作りで動作も遅く、実行完了までに1時間弱かかるような出来ではありましたが、数年前に使ったことのある技術のみで作ったので小さな学習コストで、週末のうちに作り終えることができました。

この時代を通して、仮説を検証するために何かを作るにあたっては、とりあえず知っている範囲の知識で、できる限り低コストで作成すると企画倒れしないことがわかりました。

概念実証のリフト&シフト

とりあえずbotが動作するようになり、タスクスケジューラを設定したことで毎日自宅の端末で自動実行されるようになりました。
1か月くらい運用した結果、安定して収益を得られることが分かったので、今度はクラウドに置いてより確実かつ低コストで実行できるようにしたいと思うようになりました。

永遠に無料でメモリをブラウザが動くくらい多めに(1GB以上)使えて、連続実行可能時間が長め(最低1時間)なサービスを探した結果、GCPCloud Run がいい感じだとわかったので、botをそこで利用できるように改修しました。

こんな感じDocker コンテナ内に Flask でWebサーバを立てて、そこにGCPCloud Scheduler からHTTPリクエストを定時で投げるようにすることで実現できました。

Dockerコンテナの定義を作るのは初めてだったので、色々学べて楽しかったです。
(コンテナの中身は思ったより普通にLinuxで、Dockerfile の文法にさえ慣れればいい感じに書けるようになったので、もっと早く覚えればよかったと思いました。)

この時代を通して、苦手意識を長年持っていたDockerと仲良くなれました。

クラウドネイティブ時代の幕開け

時が経ち、多くの気づきを得て当初の数倍の回数の操作を繰り返して実行したくなったので、botを改修する必要が出てきました。

Cloud Runのようなコンテナのマネージドサービスでは大抵連続して1時間しかコンテナを実行できず、現状のままでは時間内に終わらないため、クラウド上で使い続けるには

  1. EC2みたいなIaaSに引っ越す
  2. 現在のモノリシックな構成を見直し、細かい単位で分割して実行されるようにする

あたりの対策を取る必要がありました。

1 だとサーバの料金が嵩みそうだったのと、せっかくなのでメンテナンスしやすくスケーラブルと噂のクラウドネイティブなアーキテクチャを体験してみたかったので、FaaSで実行できる単位に分割して実装しなおすことにしました。

GCPCloud Functions は、2GBのメモリのインスタンスを毎月74時間ちょっと無料で使えるらしいので、それを使ってみることにしました。

処理の分割の仕組みとしては、2つ関数を用意して、1つ目の関数で購入対象を特定してキュー(Pub/Sub)に入れて、2つ目の関数にちょっとずつ渡して順番に処理するという方法を採用しました。
これにより、各関数の実行時間を長くても5分以内に抑えることができるようになりました。

また、最近は Puppeteerの方がSeleniumより高い評価を受けているという話を聞いたので、書き直しついでに中身もPuppeteerに変えることにしました。

ネットやGithubで調べても同じことをやってそうな人がいなかったので、とりあえずテンプレートを作って置いときました。(後で誰も使ってない理由を理解することになるのですが...*2

botの改修が完了し、以前は制限時間内に終わらなかったりしてたまに失敗していたbotがより確実に動作するようになり、また処理対象を増やすことができたので、以前の数倍の収益を得られるようになりました。
また、Puppeteerもすべてを明示的に非同期で待機させる思想が非常に好感触でした。*3

この時代を通して、分散処理の偉大さを学びました。

AWSでIaCな時代

改修の結果、毎月程々にまとまった利益が得られるようになったので、家族や親しい友人に展開して使ってもらうことで、もっとスケールさせたくなってきました。

しかし、これを実現するには一つ大きな障害がありました。
それは、デプロイの設定の大部分を手動で行う必要があることです。一般人にとって、たとえマニュアルがあったとしても慣れない操作をするのは非常に厳しいと思われます。

そこで、全体的にIaC(Infrastructure as Code)化を進めることで、誰でもコマンド一つだけでデプロイできるようにしようと考えました。*4

Cloud FunctionsでIaCを実現するための Cloud Deployment Manager をまず試してみましたが、Cloud Functions の定義を含む多くの主要な機能がbetaリリースだったりしてドキュメントやサンプルが少なく、利用のハードルがかなり高い状況だったため断念しました。
GCPが流行っていないのは、こういうところが原因なんだろうなと感じました。

そうこうしているうちに、AWSLambda にもかなり大きめな(毎月メモリ40万GB秒ぶんの)無料枠があることに気づいたため、長い間お世話になったGCPから、圧倒的なクラウドエコシステムを持つと音に聞くAWSに宗旨替えしてみました。

AWSのIaC基盤であるところのCloudFormationのテンプレートを初めて真面目に*5作ってみて、(GCPと比べて)ドキュメントやコミュニティが非常に充実していることに驚きました。
LambdaをSQSと組み合わせるテンプレートを公式が提供してくれているし、CloudFormationのテンプレートの各項目は細かいところまでドキュメント化されており、あらゆる情報がブログやStackOverflowに蓄積されています。

これ みたいに、私の欲しいサンプルやドキュメントも全部あったので、参考にしながら非常に容易に実装することができました。

最終的に、AWSコンソールでの操作を行うことなくCloudFormationですべてのリソースを自動作成してデプロイできるようになりました。

この時代を通して、AWSの信者になりました。

全体の感想など

プライベート・仕事を問わずあらゆる場面で役に立ちそうな開発スキルが色々身に付き、お小遣いも毎日もらえるようになる最高の体験でした。

皆さんもぜひ、あなたの見つけた素敵なアイデアを実装する旅に出かけてみてはいかがでしょうか。

*1:塵を集めてくれるので、ほしぐもちゃんって呼んでます

*2:後述の通り、AWSが便利すぎて少なくともエンタープライズではGCPを使う理由が全くないので誰も使っていないのだと思います。

*3:Seleniumは明示的に書けば明示的に待機させることもできますが、デフォルトが暗黙の待機でうっかり意図しない動作を作りこんでしまいがちです。Puppeteerは待機の開始タイミングから終了タイミングまで全部自分の思うがままなので、慣れればとても快適です。

*4:本当はまるっとSaaSにしちゃってブラウザ上で完結させるのが一番便利なのはわかってるんですが、諸般の規制的に自分でデプロイしてもらう必要がありそうなのが難しいところです。。

*5:チュートリアル以外で

マクドナルドのタンパク質コスパ

マクドナルドのタンパク質コスパ(メインメニュー限定)

☆2022-06-12更新
気になったので更新しました。

最近の値上げでチキンクリスプが昼以降でのトップをエグチに明け渡すなど、かなり変動しています。

ちなみにサイドメニューのナゲット15ピースはタンパク質47.3gなので、 定価の590円だと0.0802g/円で倍ビッグマックの下辺り、セールで390円のときは0.1213g/円で1位。

順位 商品名 たんぱく質 g 価格 1円で得られるたんぱく質の量 g
1 ソーセージマフィン 15 130 0.115384615
2 エグチ(エッグチーズバーガー) 22.3 200 0.1115
3 チキンクリスプ 14 130 0.107692308
4 チキンクリスプ 23 230 0.1
5 倍エグチ(倍エッグチーズバーガー) 30 300 0.1
6 チーズバーガー 15.8 160 0.09875
7 ハンバーガ 12.8 130 0.098461538
8 エッグマックマフィン® 19.2 200 0.096
9 チキンクリスプマフィン 15.2 160 0.095
10 ダブルチーズバーガー 42 450 0.093333333
11 倍チーズバーガー 23.5 260 0.090384615
12 ハンバーガ 20.6 230 0.089565217
13 倍チキチー(倍チキンチーズバーガー) 26.1 300 0.087
14 ソーセージエッグマフィン 21.5 250 0.086
15 チキチー(チキンチーズバーガー) 17.1 200 0.0855
16 メガマフィン 29.7 350 0.084857143
17 ビッグマック 41.4 490 0.084489796
18 炙り醤油風 ダブル肉厚ビーフ 39 490 0.079591837
19 ベーコンエッグマックサンド 15.9 200 0.0795
20 倍スパチキ(倍スパイシーチキンバーガー) 23.2 300 0.077333333
21 ダブルチーズバーガー 26.5 350 0.075714286
22 チキンフィレオ 34.8 460 0.075652174
23 倍てりやきチキンフィレオ 35.3 470 0.075106383
24 スパチキ(スパイシーチキンバーガー) 14.2 200 0.071
25 マックグリドル® ソーセージエッグ 20.3 300 0.067666667
26 ビッグマック® 26 390 0.066666667
27 ビッグブレックファスト(ハッシュポテト含む) 26.2 400 0.0655
28 マックグリドル® ソーセージ 10.4 170 0.061176471
29 てりやきマックバーガー 25.8 450 0.057333333
30 ビッグブレックファスト デラックス(ハッシュポテト含む) 34.1 600 0.056833333
31 チキンフィレオ® 20 360 0.055555556
32 倍ベーコンレタスバーガー 25.5 460 0.055434783
33 てりやきチキンフィレオ 20.2 370 0.054594595
34 炙り醤油風 ベーコントマト肉厚ビーフ 26.7 490 0.054489796
35 マックグリドル® ベーコンエッグ 15.7 300 0.052333333
36 フィレオフィッシュ 22.7 450 0.050444444
37 ベーコンレタスバーガー 17.7 360 0.049166667
38 てりやきマックバーガー 15.5 350 0.044285714
39 フィレオフィッシュ® 14.4 350 0.041142857
40 えびフィレオ 19.4 490 0.039591837
41 えびフィレオ® 12.5 390 0.032051282
42 ホットケーキ 8 300 0.026666667

元データ

https://www.mcdonalds.co.jp/quality/allergy_Nutrition/nutrient/

↑から2020-04-07に取得して、価格をマージしました。

商品名 製品重量 g/個 エネルギー kcal たんぱく質 g 脂質 g 炭水化物 g ナトリウム mg カリウム mg カルシウム mg リン mg 鉄 mg ビタミンA μg ビタミンB1 mg ビタミンB2 mg ナイアシン mg ビタミンC mg コレステロール mg 食物繊維 g 食塩相当量 g 価格
ソーセージマフィン 115 395 15 25.1 27.2 722 170 158 121 0.8 48 0.15 0.17 2.9 0 45 1.7 1.8 110
チキンクリスプ 128 345 14 15.5 37.7 850 246 31 222 0.7 13 0.12 0.09 5.3 0 35 1.9 2.2 110
ハンバーガ 104 256 12.8 9.4 30.3 542 214 30 109 1.2 14 0.1 0.09 2.5 1 26 1.5 1.4 110
チーズバーガー 118 307 15.8 13.4 30.8 747 232 121 184 1.2 61 0.1 0.16 2.5 1 38 1.5 1.9 140
エグチ(エッグチーズバーガー) 169 387 22.3 18.9 31 813 297 146 274 2.1 131 0.13 0.36 2.6 1 248 1.5 2.1 200
チキンクリスプ 186 498 23 24 47.6 1355 430 37 395 1 22 0.17 0.14 9.8 0 66 2.5 3.4 210
チキンクリスプマフィン 134 364 15.2 17.3 37 813 258 62 225 0.7 13 0.15 0.1 5.6 0 35 2.5 2.1 140
倍エグチ(倍エッグチーズバーガー) 203 486 30 26.5 31 965 405 149 332 2.8 141 0.16 0.42 4.1 1 274 1.6 2.4 300
ハンバーガ 138 356 20.6 16.9 30.3 693 322 33 167 1.9 23 0.12 0.15 4 1 52 1.6 1.8 210
倍チーズバーガー 152 406 23.5 21 30.8 898 340 124 242 1.9 71 0.13 0.22 4.1 1 64 1.6 2.3 240
エッグマックマフィン® 139 311 19.2 13.5 27.1 649 183 171 211 1.3 118 0.13 0.31 1.2 0 231 1.7 1.6 200
ダブルチーズバーガー 237 655 42 40.1 31.4 1435 574 223 435 3.5 137 0.18 0.39 7.2 1 127 1.8 3.6 440
倍チキチー(倍チキンチーズバーガー) 211 584 26.1 31.6 49.1 1565 460 130 475 1.1 72 0.16 0.21 9.5 1 82 2.9 4 300
ソーセージエッグマフィン 166 475 21.5 30.6 27.3 789 235 183 211 1.7 118 0.18 0.37 2.9 0 255 1.7 2 250
チキチー(チキンチーズバーガー) 153 431 17.1 23 39.2 1060 277 124 301 0.8 62 0.11 0.16 5 1 50 2.2 2.7 200
倍ヤッキー(倍しょうが焼きバーガー) 199 611 25.6 41.7 33.9 956 420 74 245 1.6 15 0.32 0.35 6.9 1 98 1.5 2.4 300
メガマフィン 229 695 29.7 49.7 31.2 1358 415 200 245 2.3 123 0.28 0.45 5.4 6 294 2 3.4 350
ビッグマック 285 724 41.4 43.4 41.8 1310 588 149 392 3.8 93 0.22 0.35 7.5 2 121 2.7 3.3 490
チーズチーズダブルチーズバーガー 197 558 32.4 33.1 32.7 1554 401 394 461 2 217 0.14 0.41 4.1 1 99 1.7 3.9 390
炙り醤油風 ダブル肉厚ビーフ 223 625 39 36.2 36.3 1428 523 232 422 3.2 124 0.19 0.37 6.4 0 113 1.8 3.6 490
ベーコンエッグマックサンド 125 292 15.9 13.3 26.4 636 148 137 235 1.3 118 0.14 0.31 1.3 6 228 1.1 1.6 200
ダブルチーズバーガー 169 457 26.5 25 31.4 1132 358 216 318 2 118 0.13 0.28 4.1 1 76 1.7 2.9 340
ヤッキー(しょうが焼きバーガー) 142 388 15.5 21.8 32.6 703 258 51 153 1 9 0.2 0.19 3.9 1 49 1.5 1.8 200
倍スパチキ(倍スパイシーチキンバーガー) 197 542 23.2 28.7 48 1501 445 39 400 1.1 35 0.16 0.14 9.5 1 69 2.9 3.8 300
チキンフィレオ 277 709 34.8 34.7 64.4 1778 596 48 583 1.3 16 0.26 0.2 15.7 1 92 3.9 4.5 460
倍てりやきチキンフィレオ 309 768 35.3 36.1 76 2082 610 48 588 1.4 14 0.26 0.2 15.8 2 93 4 5.3 470
スパチキ(スパイシーチキンバーガー) 139 389 14.2 20.2 38.1 996 262 33 227 0.8 25 0.11 0.09 5 1 37 2.2 2.5 200
マックグリドル® ソーセージ 133 420 10.4 23.8 41.9 971 167 79 372 2 9 0.3 0.2 4.2 0 30 1.6 2.5 150
マックグリドル® ソーセージエッグ 197 550 20.3 33.2 42.4 1193 256 188 535 3.1 125 0.32 0.46 4.2 0 254 1.7 3 300
ビッグマック® 217 525 26 28.3 41.8 1007 372 143 275 2.2 74 0.17 0.24 4.4 2 69 2.6 2.6 390
ビッグブレックファスト(ハッシュポテト含む) 254 659 26.2 42.7 40.2 962 477 123 273 2.9 141 0.25 0.51 3.9 1 458 3.2 2.4 400
てりやきマックバーガー 234 728 25.8 50 44.1 1308 433 76 246 1.8 17 0.32 0.35 6.6 2 105 1.8 3.3 440
ビッグブレックファスト デラックス(ハッシュポテト含む) 397 979 34.1 51.3 92.9 1673 730 257 273 6.2 141 0.25 0.51 3.9 1 478 6.1 4.2 600
チキンフィレオ® 183 465 20 21.9 47.3 1139 345 39 319 0.9 12 0.16 0.12 8.2 1 49 2.8 2.9 360
倍ベーコンレタスバーガー 170 473 25.5 28.4 29.1 989 338 125 273 2.1 71 0.16 0.23 4.1 7 73 1.8 2.5 460
チーズチーズてりやきマックバーガー 186 579 21.4 38.3 37.6 1245 294 231 296 1.1 108 0.2 0.32 3.6 1 79 1.7 3.2 390
てりやきチキンフィレオ 195 498 20.2 23.2 52.4 1216 343 38 320 0.9 10 0.16 0.12 8.1 1 50 2.8 3.1 370
炙り醤油風 ベーコントマト肉厚ビーフ 215 471 26.7 23.7 38.2 1340 467 139 312 2.2 82 0.25 0.24 4.9 17 68 2.3 3.4 490
マックグリドル® ベーコンエッグ 165 396 15.7 18.1 42.4 1030 172 174 499 2.5 115 0.23 0.41 2.6 5 227 1.8 2.6 300
フィレオフィッシュ 195 434 22.7 18.6 45 816 342 80 328 0.6 30 0.17 0.13 2.1 0 68 3 2.1 440
ベーコンレタスバーガー 136 374 17.7 20.8 29.1 837 230 122 215 1.3 61 0.14 0.18 2.6 7 47 1.7 2.1 360
てりやきマックバーガー 157 478 15.5 30.2 36.4 829 255 51 149 1.1 11 0.19 0.19 3.6 1 56 1.7 2.1 340
フィレオフィッシュ® 137 323 14.4 13.9 35.8 644 198 75 205 0.5 28 0.11 0.09 1.4 0 40 2.1 1.6 340
ごはんベーコンレタス 192 441 16.7 20 48.4 994 212 103 214 1.1 60 0.11 0.14 2.3 6 47 0.9 2.5 410
えびフィレオ 253 553 19.4 25.5 62.8 1309 138 97 143 1 9 0.1 0.08 1.3 1 126 3.9 3.3 490
ごはんフィッシュ 和風黒胡椒 194 430 15.4 15.7 57.3 944 206 102 248 0.4 52 0.08 0.1 1 0 45 1.5 2.4 390
ごはんてりやき 213 545 14.5 29.4 55.8 986 237 33 149 0.9 10 0.16 0.16 3.3 1 56 0.8 2.5 390
えびフィレオ® 174 395 12.5 17.4 47.7 919 119 64 102 0.8 8 0.09 0.06 1 1 66 2.9 2.3 390
ホットケーキ 143 319 8 8.6 52.7 711 254 134 0 3.3 0 0 0 0 0 21 2.8 1.8 300

2022年に値上げされるまでのコスパ表(記録用)

順位 商品名 たんぱく質 g 価格 1円で得られるたんぱく質の量 g
1 ソーセージマフィン 15 110 0.136363636
2 チキンクリスプ 14 110 0.127272727
3 ハンバーガ 12.8 110 0.116363636
4 チーズバーガー 15.8 140 0.112857143
5 エグチ(エッグチーズバーガー) 22.3 200 0.1115
6 チキンクリスプ 23 210 0.10952381
7 チキンクリスプマフィン 15.2 140 0.108571429
8 倍エグチ(倍エッグチーズバーガー) 30 300 0.1
9 ハンバーガ 20.6 210 0.098095238
10 倍チーズバーガー 23.5 240 0.097916667
11 エッグマックマフィン® 19.2 200 0.096
12 ダブルチーズバーガー 42 440 0.095454545
13 倍チキチー(倍チキンチーズバーガー) 26.1 300 0.087
14 ソーセージエッグマフィン 21.5 250 0.086
15 チキチー(チキンチーズバーガー) 17.1 200 0.0855
16 倍ヤッキー(倍しょうが焼きバーガー) 25.6 300 0.085333333
17 メガマフィン 29.7 350 0.084857143
18 ビッグマック 41.4 490 0.084489796
19 チーズチーズダブルチーズバーガー 32.4 390 0.083076923
20 炙り醤油風 ダブル肉厚ビーフ 39 490 0.079591837
21 ベーコンエッグマックサンド 15.9 200 0.0795
22 ダブルチーズバーガー 26.5 340 0.077941176
23 ヤッキー(しょうが焼きバーガー) 15.5 200 0.0775
24 倍スパチキ(倍スパイシーチキンバーガー) 23.2 300 0.077333333
25 チキンフィレオ 34.8 460 0.075652174
26 倍てりやきチキンフィレオ 35.3 470 0.075106383
27 スパチキ(スパイシーチキンバーガー) 14.2 200 0.071
28 マックグリドル® ソーセージ 10.4 150 0.069333333
29 マックグリドル® ソーセージエッグ 20.3 300 0.067666667
30 ビッグマック® 26 390 0.066666667
31 ビッグブレックファスト(ハッシュポテト含む) 26.2 400 0.0655
32 てりやきマックバーガー 25.8 440 0.058636364
33 ビッグブレックファスト デラックス(ハッシュポテト含む) 34.1 600 0.056833333
34 チキンフィレオ® 20 360 0.055555556
35 倍ベーコンレタスバーガー 25.5 460 0.055434783
36 チーズチーズてりやきマックバーガー 21.4 390 0.054871795
37 てりやきチキンフィレオ 20.2 370 0.054594595
38 炙り醤油風 ベーコントマト肉厚ビーフ 26.7 490 0.054489796
39 マックグリドル® ベーコンエッグ 15.7 300 0.052333333
40 フィレオフィッシュ 22.7 440 0.051590909
41 ベーコンレタスバーガー 17.7 360 0.049166667
42 てりやきマックバーガー 15.5 340 0.045588235
43 フィレオフィッシュ® 14.4 340 0.042352941
44 ごはんベーコンレタス 16.7 410 0.040731707
45 えびフィレオ 19.4 490 0.039591837
46 ごはんフィッシュ 和風黒胡椒 15.4 390 0.039487179
47 ごはんてりやき 14.5 390 0.037179487
48 えびフィレオ® 12.5 390 0.032051282
49 ホットケーキ 8 300 0.026666667

Zoomの相手画面に表示される自分の映像が全体的に緑色になることがある問題

問題に遭遇し、解決方法を見つけたので共有します。

問題の概要

昨年末以降、「Zoomの通話相手に送信される自分の映像が緑色になる」という問題が断続的に発生していました。

毎回発生するわけではないですが、一度発生するとそれ以降はずっと緑色に表示されてしまいます。

Twitterで調べると、同じような問題に遭遇している方が他にもいるようです。

twitter.com

問題の原因っぽいやつ

Geforce Driver を 460.89 に更新して以降問題が発生している気がするので、このドライバが問題の原因の可能性があります。

実際に、海外の掲示板においても同様の報告が上がっています。

解決方法

以下を試してみると、問題を解決できるかもしれません。

1. ハードウェアアクセラレーションを無効化する

  1. 「Zoomの設定」→「ビデオの設定」を開き、「詳細」をクリックします。 Zoom config screen

  2. 「ハードウェアの加速化」の項目のチェックを外します。 「ハードウェアの加速化」を無効にした設定画面

2. Geforceのドライバをダウングレードする

Geforce Driver を、 457.30 にダウングレードすることで、問題を解決できる可能性があります。

これやったら直った!みたいなのがあれば、ぜひコメントしていただけると幸いです。

ご拝読ありがとうございました。