なんもしてな……くもないな。
まあなんかしてたかって言うといやべつに……っていう程度ではあるんだけど。
ワイヤレスヘッドセットは結局買った。Steel SeriesのArctis 1 Wireless。1万4千円弱となかなかなお値段だが、マイク感度重視するとこれより安いのはなかったのと、店頭で着けてみた感じよかったので。
しかしマイク感度はやはりオーディオインターフェースでの底上げができないのでこれでも低かった。OBSはソフト側で音量を上げられるのでなんとかなったわ。 通話の時は自動調整してくれるらしくて意外と大丈夫だった。 一方でUSB接続だとUSB切り替え機で仕事用PCにも使えるので便利だわな。
自分の声をモニターする機能も実は付いていたんだが、音量最大でも小さすぎて事実上使いものにならなかった。 ヘッドセットのマイクってどいつもこいつも叫び声基準で作られてるんだろうか?てくらい音量小さいんだけどなんなんだろな。
ワイヤレスなわりに軽くて着け心地が良いのは助かる。前使ってた有線のヘッドセットよりむしろ軽いのでびっくり。それでいて電池も20時間とかもつようなので安心だ。20時間も使うことはないので実際どれだけもつかはわからないが、8時間程度では全然問題なかったので自分の用途では大丈夫だろう。
ワイヤレス自体もやはりかなり便利。いつも結構ケーブルに気を使ってたんだなあって無くなって実感した。慣れるまでケーブルをどかそうとした手が空を切ってたもんね。 マイクミュートのスイッチはちょっとわかりづらいのでインラインリモコンの方が便利だったな。まあソフト的にミュートでもいいんだけど。
値段はするけどなかなかワイヤレスヘッドセットはいいもんだな。断線のおそれもない……が、電池へたれはするだろうし耐久性がどうかはまあまた先の話だね。
.NET Coreでもまあ動いてるんだけどいくらか気になったのを直したい。
Linuxで設定ファイルを保存するディレクトリ作ろうとして落ちるんだよね~というのを調べる。
Dockerでデバッグしようとしたんだが、Visual StudioのDockerサポートはASP.NET Coreのみで、.NET Coreのコンソールアプリとかだと対応してないプロジェクトタイプみたいなことを言われて追加できない。
リモートデバッグは出来るんだけどアタッチだけで、起動時に出るエラーはひっかけられないようだ。調べると初っ端にConsole.ReadLine()
とか呼んで止めといたら?みたいなクソアドホック解決法しか出てこねえ。
どうもVisual Studio Codeだと出来るようなのでやってみたが、上手くデバッグが開始できない。一瞬始まるように見えるんだが、最初のコードにも到達しないうちに終わってしまう。はて……? いろいろ試した結果としてはWPFのアセンブリを参照してるんでこいつ起動できませんよで終わってるだけだったので、GUIを外してビルドしたところちゃんとデバッグできるようになった。
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
が空を返してくるのはわかった。どうも~/.config
を参照したいが存在しないので空になってるようだ。オプションで無ければ作るが指定できたので、作ってもらうようにして解決した。
それはそれとしてGUIを間接的にでも参照してると起動できねえのなんとかしたいな。GUIは本体とは別アセンブリにして動的に読み込んでるんだけど、プロジェクト参照としてGUIを追加してるだけでGUIアプリケーションとされるみたい。
じゃあということでアセンブリの参照からは外しつつファイルはコピーされるようになんとかやってみたが、今度はWindowsでGUIが表示されない。デバッグをしてみるとGUIを参照するアセンブリを読み込んだところでPresentationFramework(つまりWPF)が見つからねーという例外が出されてしまった。いやあるよ。
どうもコンソールアプリ等のMicrosoft.NetCore.App
とGUIアプリケーションのMicrosoft.WindowsDesktop.App
は(あとASP.NET Coreも?)フレームワークからして別という扱いになっているようで、途中で切り替えはできないようだ。
つまりMicrosoft.WindowsDesktop.App
フレームワークで起動しないとあとからGUIのアセンブリを読み込むことは不可能と。うーん不便!
どのフレームワークで起動するかはhoge.runtimeconfig.jsonてなファイルに書かれているので、こいつを書き換えればいいだけなんだが、逆に言うと書き換えるなりしないとGUI使えないならGUI無しで起動~てのはできないてことよな。一つのパッケージでGUI有無両対応は難しくなってしまった……。
ところで、.NET CoreではLinuxですぐ実行できるバイナリも吐けるのでCIを設定してみてたんだが、いざ使ってみたらあまり使い物にならないことがわかった。 ランタイム込みのパッケージを作っても、ランタイムがさらに依存するいくつかのネイティブライブラリ(ICUだのOpenSSLだの)はシステムにインストールしておいてねということになっている。 それら必要なものを簡単にインストールする方法って、パッケージマネージャで.NET Coreのランタイムインストールすることで、じゃあランタイム添付する意味なくね?という結論に至った。
結局Windows以外はランタイム無しで配布してdotnetコマンド経由で起動してねってことにしといた方がよさそうか。現状はmonoだけど同じ方法だしね。 Windows版もランタイム非同梱にできればいいけど、そこまで普及率期待できないから仕方ないかなあ。インストーラ版はなんとかできたとしても非インストーラ版使ってる人も多そうだしね。