2022年9月28日未分類

こんにちは、しきゆらです。

今回は、昨日投稿した「【macOS/Chrome】meetでLogicool Rallyカメラが使えないので問題を切り分けしてみた」の続報、ということで追加で確認したことや、調べて出てきた情報をメモしておきます。

追加で確認したこと

まずは、追加で確認したことについてメモしておきます。
追加で確認したところは以下の項目。

・Chromeのベータ版などの現行バージョンより先のバージョンで変化があるか

・macOSの別バージョンではどう動くか

それぞれ記載していきます。

2022年9月27日未分類

こんにちは、しきゆらです。

今回は、タイトルの通りmacOS上でmeetのカメラを起動すると、Logicool Rallyのカメラのみ映像が映らず黒画面になってしまう問題に当たったので問題切り分けのためにあれこれ試したので、その記録を置いておきます。

自分に近いところだけで起きている問題かもしれないですが、メモとして置いておきます。

macOS Monterey + Google Chrome(以下Chrome) + Logicool Rally(以下、Rally)の環境を使っていて、meetでカメラを使うと黒画面のままで映像を映してくれない問題が起こりました。

Rallyの問題か、Chromeの問題か、OS側の問題かわからないのと、まだ解消できていないので「こんな症状があったらしい」程度の情報として読んでいただければと思います。

環境

確かめた端末の情報を記載しておきます。

端末は以下のものです。

・OS: macOS Monterey 12.6 (執筆時点での最新)

・CPU: M1 Pro(8コアCPU)

・メモリ: 16GB

なお、Rallyのファームウェアについては確認を忘れたのですが、ちょっと前に更新したようなので、おそらく最新かと思います。

症状

macOS Monterey 12環境で動いているChromeにてmeetを利用しているときにカメラをRallyを指定しても黒画面のままで映像を映してくれない問題が起こりました。

面白いのは、Zoom等別アプリでカメラを使うとmeetのカメラも映像を映してくれるようになる、というところ。

なお、カメラはこんなやつ。

現時点での結論

以下で問題切り分け等を記載していきますが、結果だけ知りたい方もいるかと思うので先に書いておきます。

執筆時点での結論としてはRallyカメラの問題+Chromeの問題ではないかと思っています。

詳しい理由等は以下を参照いただければと思いますが、Rallyカメラと別のWebカメラで挙動が異なったことと、Chromeでのみ問題が起こっているため、これを結論としています。

これで、ChromeのバージョンアップやRallyのファームウェアアップデート、はたまたmacOSの更新等で解消すればよいのですが・・・。

2022年9月20日買ったもの

こんにちは、しきゆらです。
今回は、Anker 737 Charge GaNPrime120Wを購入したので簡単にレビューしてみます。

最近充電ケーブルや充電器を選ぶときは、とりあえずAnker選んでおけばええやろ、の精神で買ってしまうので良く無いなぁと思いつつ、丁度ほしいものがあったので購入してしまいました。

それが、737 Charge GaNPrime120Wです。

2022年9月11日Rust,プログラミング

こんにちは、しきゆらです。
最近またRustをちょっと勉強しているので、そのメモをちらほら放出しておこうかと思います。

読み進めているのは「手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた」になります。

手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた

クジラ飛行机
3,799円(09/30 16:18時点)
発売日: 2022/01/20
Amazonの情報を掲載しています

PythonとRustのコードを比較しながら、Rustの文法や特色についてを解説してくれる本になっています。
いきなり細かい文法をつらつら書かれてもわからないよ!という方やひとまず手を動かしてちょっとずつ書けるようになりたいよ、という方にオススメの本です。
ちなみに、自分は前者であり後者だったので割ととっつきやすく読めています。

ということで、読みながら手を動かした記録を残していきます。
今回はHashMapについて。

なお、この本を読んでメモする記事には「手を動かして考えればよく分かる Rustの書き方」のタグをつけておきます。
私と同じようにRustの勉強を始めた方、気になる方は参考にどうぞ。

JavaScript

こんにちは、しきゆらです。
今回は、Webpackでビルドしたものが出力されるフォルダにできる不要ファイルを削除する方法を知ったのでメモしておきます。

WebpackでJSのコードをビルドしていると、結構な頻度で不要なファイルができたりします。
例えば、デバッグ用に生成したソースマップファイルがそのまま残っていたり、過去に設定を変えてあるところから出力しなくなったファイルが残っていたり等、ビルド先のdistフォルダの中はごちゃごちゃしがちです。
これを何とかしたいなぁ、と思って調べたら簡単に解決できました。

Webpackでこういうことできないかなぁと調べると大抵プラグインが出てきて追加しないといけないことが多く、今回もそのパターンでよくわからないものを追加しないといけないのかなぁ・・・と思っていたのですが、どうも標準機能として用意されているようでした。
ということで結論。

結論: outputの中にclean: trueを追加すればよい

ドキュメントを読むことは大事ですね。
しっかり記載がありました。

こちらによると、ビルドしたものを置くdistフォルダの中身をビルドのたびにきれいにしたい場合はoutput.cleanオプションを使え、とあります。
ただし、この方法が使えるのはWebpack5以降のみなので注意してください。

// webpack.config.jsの一部分
~~~~~~
output: {
   filename: "output.js",
   path: path.resolve(__dirname, "dist"),
   clean: true // この1行を追加すればよい
}

はい、たったこれだけ。
1行追加するだけで、ビルドのたびにdistフォルダの中身をきれいにしてくれるので、過去にビルドした残骸が残ることはなくなりました。

2022年8月14日JavaScript,Ruby

こんにちは、しきゆらです。
今回は、flatMapの処理の中で不要な要素が出てきた場合にそれを排除する方法を知ったのでメモしておきます。

結論: 空配列([])を返すと削除できる

こちらのページにある通り、
処理の中で空配列([])を返すと、その要素の処理を削除することができるようです。

let array = [1,2,3,4,5,6,7,8];
array.flatMap( (item) => {
    if (item % 2 === 0) {
        return item * 2;
    } else {
        return [];
    }
})
// => [4, 8, 12, 16]

2022年8月13日JavaScript,Linux,環境構築

こんにちは、しきゆらです。
今回は、以前紹介したasdfを使ってNode.jsをインストールし、個人的によく使っているYarnも使えるように環境を作っていきます。

なお、Node.jsのインストールはすぐ終わったのですがYarnのインストールとか諸々に至るまでに紆余曲折ありました。
まずは、インストールして環境構築までの流れをまとめます。
その後に、紆余曲折部分をメモしておきます。
必要なコマンドだけよこせ!という方は、以下の「環境構築の流れ」を参考にしてみてください。

環境構築の手順

コマンド自体の使い方等はそれぞれのツールのサイト等で確認してください。
なお、インストール先はタイトルにある通りWSL2上に動いているUbuntu20.04です。

# node用のプラグインを追加
asdf plugin add nodejs

# nodeをインストール
asdf install nodejs latest

# システム全体で使うバージョンを指定
asdf global nodejs latest

# yarnを使う準備
corepack enable

# asdfの再構築
asdf reshim nodejs

これにて、環境構築は終了です。

yarnの手順が以前とだいぶ変わりましたが、npmで個別にインストールせずにパッケージマネージャを管理する仕組みが入ったようです。
そのおかげで手順がさっぱりしました。

では、前述の通り環境構築の紆余曲折や各ドキュメントを見ながらの細かい話は以下にまとめていきます。

2022年8月11日Ruby

こんにちは、しきゆらです。
今回は、Ruby2.7から3.1.2に更新したらいろいろ変わっていたのでメモしておきます。

変わったことに気づいたのは、タイトルにあるrubocopを回したら怒られたからでした。
ということで、怒られたrubocopの項目とRubyの更新点を今更ながら記載しておきます。

2022年8月10日Linux,Ruby,Rust,環境構築

こんにちは、しきゆらです。
今回は、だいぶ旬に乗り遅れた感がありますが、言語等のバージョン管理をasdfに乗り換えたので導入方法や使い方をメモしておきます。

導入の経緯

導入に経緯を一応書いておくと、私はPCの組み換えやOS不調等で、結構な頻度でクリーンインストールをします。
そのたびにRubyをインストールするためにrbenvを導入し、Nodeを使うためにnを導入し、ということを毎度行っていました。
この作業をあまり意識せずにやっていたのですが、先日ふと面倒だなと思うようになりました。
というのも、それぞれ年に数回程度の頻度でしかやらないので、毎度インストールするタイミングで調べて手順をなぞる、というのが知識にもならず無駄に時間がかかるだけなのでは、という風に思ってしまいました。
この辺を解決するツールはないのか、調べてみると、今回使った「asdf」というのがあるということを知ったので触ってみた、という感じです。

2022年6月12日JavaScript,Windows,環境構築

こんにちは、しきゆらです。
今回は、タイトルの通りWSL2からclaspを使おうとするとofflineと怒られる問題が起こったのでこれを回避する方法をメモしておきます。

気が付くとWSL2からclasp pushをしようとすると、以下のようなエラーが出てしまってプッシュできない状態になっていました。
よくわからないですが、たまにプッシュできたりするので何が悪いのかよくわかりません。
WSLをインストールしなおしたりしても解決しませんでした。
また、調べてもそれっぽい生地が出てこないので「おま環」ぽい気がしています。

さて、これではWSL内で書いたGASをプッシュできません。
これを回避する方法をメモしておきます。

回避方法は単純で、Docker上からclasp pushをするだけ。
調べてみると、結構DockerでGASを管理したい人がいるようで、情報がそこそこありました。
ということで、プロジェクト諸々をDocker上にマウントしてコマンド実行できるようにしていきます。
なお、ここではGASをTypeScriptで書いたのちWebpackでビルドしたものをclaspコマンドでプッシュする流れです。
参考: https://qiita.com/rei-ta/items/61b3fde6a069b77d335d