2023年11月19日日曜日

WindowsUpdateでINVALID_DATA_ACCESS_TRAPのBSoDになる場合と対処法

Windows11 22H2(23H2)にできない!

 Windows11 21H2のまま眠っていたPCを久々に起こしたので、まずはWindows Updateを適用しました。種々のアップデートのあと、22H2が降ってきたのでインストールして再起動して完了を待っていたらタイトルの通りの有様です。何度試しても70%あたりでブルースクリーンになって即死します。幸いロールバックが実行されるので元には戻りますが、先にも進めない状況になってしまいました。
 
 今回、クリーンインストールすることなく解決できたので記します。結論を先に書いておくと、sfcもchkdskも通ってOSに問題はありませんでした。結果的には競合が原因だったのですが、よく原因とされるAVerMediaのソフトとは全く関係ない、とても意外なソフトが邪魔をしていたのです。

2023年10月29日日曜日

AskHand N100 Mini PC (T8 Plus)レビュー

型番…?

 セール&クーポンで安くなっていたのでこれを買いました。AmazonではメーカーがAskHandと記載あるのみで型番などは分かりませんでしたが、届いた商品の裏蓋を見てみると"T8 PLUS"と記載がありました。T-Bao社の「T8 Plus」やChateery社の「T8 Pro」として出ている商品のOMEやら流れ品やらでしょう。
 N100+DDR5採用で非常にコンパクトなのが魅力のミニPCです。

2023年9月28日木曜日

NordVPNが「このアプリは保護のためにブロックされました」でインストールできない

管理者なのにブロックされる

 最近VPNサービスをNordVPNに引っ越ししました。https://ref.nordvpn.com/jjZSLJiUSDd
 https://ref.nordvpn.com/jjZSLJiUSDd早速インストールしようとするとタイトルのエラーで失敗します。とはいえ、うちの環境(Windows11 22H2)では管理者権限を持っているのにたまにブロックされます。こういう場合は管理者権限のコマンドプロンプトから実行すれば解決するのですが、今回はこれではダメだったので気合で解決しました。
 

2023年9月25日月曜日

C#のTimer精度と挙動

Timerの精度云々

 C#のTimerはSystem.Timersのもの、System.Threadingのもの、GUI用のもの(Forms, WPF)があって云々とかは特にここでは触れません。とりあえずUI用じゃなければTimersのものを使っときましょう。
 また、いずれのタイマーも精度はよろしくありません。実測では15ms程度の分解能しかありませんでした。本当に精度が欲しいならwhileループでStopwatchの監視するのが一番手っ取り早いと思います。
 以下では意外と見向きされないTimerの特徴を実測で調べたので、Q&A形式で紹介していきます。なおタイマーはフリーラン状態(AutoReset==true)とします。実測環境は.NET6.0です。

2023年8月8日火曜日

MPLAB X IDEでProjectがLoadingのまま動かない場合

Projectが読み込めない!

 今回も超ニッチなネタです。PICの開発環境であるMPLAB Xで特定のプロジェクトが読み込めない現象に出くわし、(消極的方法で)自力解決できたので記します。
 PC新調に伴い環境を入れ直したのですが、なぜかPIC32系のプロジェクトがLoading...で固まって読込みできなくなりました。PIC16系は読み込めるので謎です。環境はMPLAB X 6.10です。
 

2023年4月24日月曜日

Bromiteの開発停止か?代わりのブラウザは…Cromite!


Bromite死す?

  ほぼChromeの使い勝手を踏襲しつつ強力な広告ブロックができるブラウザことBromiteですが最近開発が止まっています。公式には開発停止・中止の案内は出ていませんが、Chromiumのメジャーバージョン換算で3以上も古いバージョンで止まってしまっています。古いブラウザはセキュリティホールとなるので芳しくありません。Githubにも動きはありませんし、これは事実上開発停止しているとみていいでしょう。
 

代替ブラウザ

 ここでBraveとかを紹介しても望まれていないことは明らかなので、純粋なBromite後継を考えます。
Githubのissueを見るとAbandonedとかいうワードが踊っていますが、 ここでよく紹介されているのがuazo氏のbromite-buildtoolsです。これはBromiteを自分の環境で簡単にビルドするためのツール群です。「ビルドとか面倒くさい」と思われる方のために、Android用のapkはビルド済みのものが配布されています。もちろんBromite公式ビルドではないので自己責任にはなりますが。
2023/08/10追記:
 同uazo氏の非公式ビルドがBromiteフォークの「Cromite」として名前新たに継続するようになりました。以下のリンクもCromiteのものに差し替えました。
 

インストール

 apkを落としてきて インストールするだけです。詳細は割愛します。
 

 さて、インストールするとBromiteではなくChromium Cromiteとして認識されます。アイコンにもアプリ情報にもBromiteの影はありません。 つまり良くも悪くも既存Bromiteに上書きインストールされないので、併用できる代わりに設定類は一切引き継がれません。これが一番面倒くさい点でしょうか。これさえクリアしたらいつも通りに使えます。
 

おすすめ設定

特にいじらずとも使えますが、 利便性のために多少触りました。

・ 「検索候補の関連性を高める」をオンに
サーバーへの事前送信なのでプライバシーレベルは当然下がりますがどうせ検索するワードなので。
 
・「Allow custom tab intents」をオンに
 Web View的なやつです。

・「ホームページ」をオンに
・「Use for new tabs」をオンに
・「このページを開く」を「chrome-native://bookmarks/folder/1」に
※ブックマークのパスは希望のフォルダを表示して"i"アイコンを押すと見られます。
SpeedDial的にブックマークを頻用する場合はマストな設定。
 

良い点

 何と言っても開発が続いていることです。それにBromiteから多少の機能追加があります。
 
広告ブロックフィルタが複数選べるようになっている
好きなフィルタのURLを手動で追加できる 
広告ブロックを無効化するサイトを指定できる
 
 
 フィルターリストがこれだけありながら日本向けはありません。ですがフィルタの手動追加ができるので無問題。

 悪い点

アイコンがChromiumになって寂しい Cromiteで緑のアイコンになりました。
 
Bitwarden(パスワード管理アプリ)の自動入力が機能しない

→ Bitwardenに要望を出しました。反映されるかは開発側次第ですが。以下は詳しい内容です。

 Bitwardenはオートフィルの際に「アプリケーション名」「アプリケーション内のコンテンツ名」のいずれかを参照します。普通のアプリケーションに対するオートフィルでは前者で事足りるのですが、ブラウザのオートフィルはコンテンツ毎に提示内容が異なるため後者の必要があります。この2つを区別するため、Bitwardenではブラウザのパッケージ名をハードコードしており、これに合致するもののみブラウザと認識するようです。Githubでコードを読む限り。(BitwardenもGithubでホストされています)
 さて、今回の新生Bromiteはパッケージ名がorg.bromite.bromite.devであり、本家のorg.bromite.bromiteと完全一致しません。そのためブラウザと認識されず、どのサイトを見ても同一のオートフィル提示しかされないようです。
 解決方法としては、パッケージ名をオリジナルに揃えるか、Bitwardenに新しいパッケージ名を登録するかが考えられます。自分でBromiteのビルドをするならパッケージ名の変更でいいですが、そうでないならuazo氏に掛け合う必要があります。同じことが以前issueで提案されており、氏は「変更の予定はない」とのことでした。でしたら次はBitwarden側への要望ですが、こちらもissueに一度提案があったようです。その際は「再現性なし」で敢え無くCloseされていましたが、返答を見るに正しい意図が開発側に伝わっていない節があります。そのため、詳しい経緯を添えて新たに提案を送りました。「(知名度の高くない)フォークに対しても認めるのか」「そもそもリストインだけで解決するのか」など未知の要素も多いですが、対応を期待して待つことにします。

Hanye NVMe 2TB SSD HE70 のおみくじの結果は

巷で話題のSSD

 YMTCのハイエンドNANDフラッシュが制裁で流れて来て出来上がった、無名メーカーのハイパフォーマンスSSDが話題ですね。Amazonセールでひとつポチってみたので速攻分解してご報告します。
 買ったのは、Hanye社のNVMe SSD 2TB (HE70)です。SUNEASTHIKSEMIMonsterStorage あたりでも中身同じというか同じおみくじのSSDがありますね。
 

2023年4月21日金曜日

XOSS NAV のレビュー

XOSS G からの乗り換え

 2年間ほどXOSS Gを使っていましたが、GPSの初回取得が遅かったり一度GPSロストすると記録中止しない限り二度と拾わなくなってしまう場合がある不具合があったりで、わりと不自由していました。時刻表示が出ないのもイマイチでした。
 今回、XOSS NAVがセールで安かったので思い切って乗り換えてみました。
 

2023年2月12日日曜日

Visual Studioのnugetにプロキシを設定する

Visual Studio と nuget

 Visual Studio にプロキシを設定する方法としてはdevenv.exe.configファイルに直接記述する方法がありますが、これだけではnugetに設定が適用されません。というかnugetは別システムのため独立した他の設定が必要です。
 未設定で使用すると「nugetパッケージの管理」画面で「エラーが発生しました」「メタデータを取得できませんでした」と怒られます。ServicePointManagerのエラーになることもありました。
 ググっても解決法が見つかりませんでしたがNuGetの設定を直接適用することで動いたので記します。

2023年2月9日木曜日

業務スーパー「はちみつ ジンジャー」レビュー


はちみつ ジンジャー

 業務スーパーで300円台で売っていたので買ってみました。はちみつジンジャーが飲みたいから…ではなく酒の割材として。これがなかなかのヒット商品でした。
 
 以前このシリーズのレモネードを買ってみてハズレだったので抵抗がありましたが、物は試しと買ってみた次第です。 

2023年2月5日日曜日

HyperX Alloy MKW100 RGB レビュー

赤軸キーボード

 HyperX Alloy MKW100 RGB がAmazonタイムセール祭りで安かったので買ってみました。青軸にも飽きたので今回は赤軸で(赤軸も過去に使ったことありますが)。
 HyperXなので無名中華キーボードと違って作りも期待できますし、なんと2年保証もあります。
 

2023年1月18日水曜日

インターレースとプログレッシブの混成ファイルの扱い方

60i + 24p

 何とは言いませんが、30fps[29.97fps]インターレース(=60i)24fps[23.976fps]プログレッシブ(=24p)混成構成であるmpeg2を扱うことになりました※1。
 AviutlやAvisynthで普通に読み込みはできるものの、デインターレースや逆テレシネ化を行うとフレームレートないしビデオ長が狂って正しい成果物を得ることができずかなり悩みました。今回それを自力解決できたので記します。
 ちなみに下記の内容は「インターレース解除せずにプログレッシブにしちゃった」系のエセインターレースに対処するものではありません。
 
※1 正しくは今回の24pは48iの内部構造でありインターレースの一種と捉えられるが、実際の挙動と説明上の簡便さを踏まえプログレッシブと表現する。

対象とする環境

入力:
 60iと24pの混成mpeg2
 
動画編集ソフト:
 Aviutl、Avisynth
 
デコーダプラグイン:
 L-SMASH Works
 

原因

 デコーダ段階では混成フレームレートを正しく認識して処理されるものの、後続のフィルターではプログレッシブなのかインターレースなのか正確に判定する術がないため、フレームレートかビデオ長が狂います。フレームレートが狂うと言っても、可変フレームレートになるのではなく、少ないフレームを実ビデオ長に伸長するので音ズレが顕著になります。
 

対処法

Aviutl

「ファイル」「環境設定」「入力プラグインの設定」「L-SMASH Works... の設定」
Apply repeat flag」にチェックを入れる。ついでに「Field dominance」をTop->Bottomに。
そして動画を読み込み直す。

Avisynth

LWLibavVideoSource関数のパラメータに「repeat=true,dominance=1」を付与。

(RFF出てくる際のフィールドオーダーはどうせTFFなのでTopBottomで固定していいと思う)

詳しい解説

 MPEG2のフレーム(正確には拡張ピクチャヘッダ)にはプログレッシブをインターレースの形式で扱うためのRFF(Repeat First Field)というフラグがあります。
 通常、30pを60iにする際は1フレームを2フィールドに分割しますが、24pを60iにする際はそのまま2分割しても48iで足りないため、3-2プルダウンと言って各フレームを3フィールドないし2フィールドに分割して、2フレームから5フィールドを作ることで60iにかさ増しする戦法を取ります(テレシネ化)。なお、24pからかさ増しされた60iを再生機サイドでインターレース解除しても生成されるのは30pであり、24pにするには無駄なフレームを間引きしなくてはいけません。これが逆テレシネ化です。
 テレシネ化は、60iにするためだけに貴重なビットレートを割いて冗長なフレームを作り出す明らかに無駄な作業です。そこで、24pを実データ48iとして送出して、再生機サイドでテレシネ化して60iにするなり24pに戻すなりする方法があります。こういうフレームのマーカーとして機能するのがRFFです。
 RFFがついているフレームは、Repeat First Fieldの名前の通り、最初のフィールドを3フィールド目に転用します。フレームの半数にRFFがあると、ちょうど2フレームから5フィールドを生成できるので再生機サイドで60フィールド/秒を再現できます。また、RFFを無視すると2フィールドから1フレームを合成して24pに戻すこともできます。
 L-SMASH Worksのデフォルト設定では「Apply repeat flag」がオフになっているためプログレッシブにしてくれます。しかし60iと24pが混在して件のような困った状況になります。ゆえにオンにすることで、RFFのある区間も60iに変換され、全体が60iのごく普通の動画として扱えるようになるのです。結局24p化するので無駄な作業といえばそのとおりなのですが、扱いやすには天地の差があります。