技術的ひとりごと(備忘録)

いろいろな備忘録的な何か

Windows 10 マルチホーム環境でCIFSアクセスが遅い

  • 構成
    • 部屋AのPC(PC①) : Win10、インターネット接続用NW(NW#1) と 自宅内NW(NW#3) に接続
    • 部屋BのPC(PC②) : Win10、部屋B内のLAN(NW#2) と 自宅内NW(NW#3) に接続
    • ルータ: NW#1とNW#2を接続、NW#1→NW#2の通信は素通し、NW#2→NW#1の通信はNAPTしている
  • 背景
    • PC① から NW#2 に直アクセスしたいニーズが有るため、ルータにVPN接続し、NW#1のIPをもらっている
    • ただし、PC① から PC② への CIFSアクセスについては品質の観点から NW#3 を使っている。(NW#3のIPを使ってアクセスしている)
  • 起きた事象
    • 上記ルータにVPN接続していない状態で、PC②の CIFS共有フォルダにアクセスすると待ち時間0秒でファイルアクセスできる
    • ルータにVPN接続した状態で、PC②の CIFS共有フォルダにアクセスすると、ファイルアクセスに数秒~数十秒の街が発生する。
      • 待ち時間は周期的に発生する。CIFS共有上の動画ファイルを再生すると頻繁にバッファリングが発生してまともに見れない。
  • 切り分け状況
    • VPN未接続時は NW#3 側に SMB 関連のトラフィックが流れているが、VPN接続すると流れていないように見える(どうやってアクセスしているか謎)
    • VPN未接続時の通信は IPv6 で流れていた。(NW#3経由)
  • 対応
    • PC①からPC②にアクセスする際のアドレスをIPアドレスからコンピュータ名に変更すると、VPN接続時においても待ち時間がなくなった。
  • 原因
    • CIFSクライアントの仕様。
    • CIFSアクセスする際のパスをIPアドレスで指定すると、想定外のI/Fを使って通信してしまうケースが有るとのこと。(何でだ!)
    • 参考

続・MP3ファイルの一覧を作成

やりたいこと(requirements)

  • MP3Tagでエクスポートしたファイルの列をファイル更新日時(_file_mod_date)の値でソートしたい
  • 順番は降順(descending order)としたい
    • ただし、MP3Tag のloop関数は降順ソートに非対応

実装

  • テキストエクスポートファイルのソート処理部にて $sub と $replace を駆使すれば対応可能
  • 日付内の記号を数字変換して減算し、昇順ソートする

$loop($sub('10000000000',$replace(%_file_mod_date%,'/','0')))

 :
$loopend()

  • 更新日時、アルバム名、トラック番号、ファイル名の順ソートしたい場合は以下のような形になる

$loop($sub('10000000000',$replace(%_file_mod_date%,'/','0')))$loop(%album%)$loop(%track%)$loop(%_filename_ext%)

 :
$loopend()$loopend()$loopend()$loopend()

参考URL

WindowsPCでブルーレイを再生できない (ディスプレイドライバの問題っぽい)

Windows 10 PC に PowerDVD15を突っ込んで 市販の Blu ray ソフトを再生しようとしたところ「保護コンテンツを再生できません。」「ディスプレイがHDCPに対応するか確認してください」的なエラーが出て再生に失敗する現象に遭遇。

CyberLink BD & 3D Advisor」を使ってステータスを確認するとグラボ(ラデHD5770/Driver15.201)とディスプレイの ”BD” の値が「なし」になっていた。(BDを再生できる場合は「対応」という値になる。)

Win10化前までは TotalMedia Theatre で BD再生できていたのにおかしいなと思って調べていたら、ディスプレイドライバが「汎用ディスプレイ ドライバー」になっていたことを確認。試しにメーカー提供のドライバ差し替えてみたところ再生できるようになった。


原因としては、ディスプレイドライバを当てていなかったせいでBDのコピーガード機能が動かなかったか、かPowerDVDがディスプレイドライブ名を引っ張ってこれなくて処理が止まっていたのかのどっちかだろうね。面倒だから切り分けしないけど。

Win10化した時にディスプレイドライバ入れ忘れたんだろうな。というか、最初から1920x1280を指定できていたいので気づけなかった。

再生ソフト側かBDドライブ側の問題と思ってたので面食らいました。

Windows10メモ/タスクバー上のChromeのアイコンがおかしくなった場合の復旧手順

タスクバーに乗っかているChromeのアイコンが「関連付けなし」なファイルのアイコンに変わる現象が発生した。復旧方法を見つけたのでメモメモ。

  1. タスクバー上のChromeのアイコンを右クリック。
  2. 「タスク > Google Chrome」を右クリックして「プロパティ」を選択。
  3. アイコンがおかしくなったChromeのショートカットのプロパティが出てくるので「ショートカット」タブの「アイコンの変更」をクリック。
  4. Chromeのexeを指定して本来のアイコンを選択。

アイコンが化けた理由は不明。いつの間にかおかしくなっていた。

異なるKindleアカウントで購入した電子書籍を同時表示する方法 (Windows環境向け)

  1. 経緯
    • Amazon Kindle による電子書籍サービスを利用しているが、趣味用のアカウントと技術書用のアカウントを分けて作っている。
      • 混ざると管理上よろしくないため。(仕事場とかもっていけなくなるし。)
    • ただし、自宅のパソコンでは両方のアカウントで買った電子書籍サービスを読めるようにしたい。
    • Amazon KindleWindows版クライアントは、1アプリあたり1アカウントしか紐付けできないため工夫が必要。
    • Windows版クライアントで落とした書籍は暗号化されており、ダウンロード時に使っていたWindowsアカウントでしか開けない。
  2. 目標
    • 複数Kindleアカウントで購入した書籍を単一のWindowsデスクトップで閲覧できる環境を作る。
  3. 実現方法
    1. 概要
      • runasコマンドを使って別ユーザでKindleクライアントのプログラムを実行すれば良い。
    2. 前提
      • 以下のKindleアカウントが持っているものと仮定する。
        • "KA01":Kindleアカウントその1(趣味用)
        • "KA02":Kindleアカウントその2(技術書用)
    3. 実装
      1. Windowsに以下のアカウントを作成する
        • "winuser01": 通常デスクトップログイン用 兼"KA01"で購入した書籍の閲覧用。
        • "winuser02": "KA02"で購入した書籍の閲覧用
      2. "winuser01"でWindowsにログインし、Kindleクライアントをインストールする。
      3. Kindleクライアントのアカウント設定で"KA01"のアカウント情報を登録する。
      4. "winuser02"でWindowsにログインし、Kindleクライアントをインストールする。
      5. Kindleクライアントのアカウント設定で"KA02"のアカウント情報を登録する。
      6. "winuser01"でWindowsにログインし、以下1行の内容を含むバッチファイル(.bat)を作成する。
        • runas /user:"winuser02" C:\Users\"winuser02"\AppData\Local\Amazon\Kindle\application\Kindle.exe
    4. 使い方
      • Windowsのログインアカウントは"winuser01"を使用する。
      • "KA01"で購入した書籍を閲覧したい場合は、デスクトップもしくはスタートメニューに表示されているKindleクライアントを実行する。
      • "KA02"で購入した書籍を閲覧したい場合は、前述した 3.実装 の 6. で作成したバッチファイルを実行する。
        • その際、パスワードが聞かれるのでのログインパスワードを入力すること。パスワードが正しければ"KA02"の書籍が表示される。

前述の理由でアカウント使い分け必須だと思いますが、見る本を変える度に、アカウント情報もしくはWindowsユーザの切り替えするのも大変不毛ということで、何とかなってよかった。
仮想マシンAndroidを突っ込み、その中にKindleを入れるという方法も過去に試したのですが、その時は、重たくてイマイチでした。

MP3ファイルの一覧を作成

  1. やりたいこと
    • あるフォルダを起点として、その配下の複数のフォルダに格納されている、MP3ファイルの一覧を出力したい。
    • ファイルごとに、アルバム名、曲名、保存場所 などの情報を出力したい。(M3Tagから引っ張る想定)
  2. 対応方法
    • mp3tagで対応可能。
    • mp3tagを実行し、ファイルリストが表示される画面に起点となるフォルダをドロップしてファイル一覧を作成する。
    • ファイルを全選択した状態で左上の「ファイル(F)」→「出力(E)」を選択。
    • 出力方法の選択肢が出るので、htmlなりcsvなり選択して出力する。
  • 捕捉メモ

今回はhtml形式の出力の方法をカスタマイズした。
カスタマイズ情報をメモメモ。

  • ①アルバム→アーティスト→曲名の順番でソートする。
    • loopの書き方を以下のように変える。
    • 【変更前】
      • $loop(%_filename_ext%)
      • $loopend()
    • 【変更後】
      • $loop(%album%)$loop(%track%)$loop(%_filename_ext%)
      • $loopend()$loopend()$loopend()
  • ②ファイルパス名の情報などを加工する
    • ファイルの直リンを作るために利用。
    • replaceコマンドが利用可能。
    • $replace(%_folderpath%,'変更前テキスト','変更後テキスト') のような書式で使う。
    • テキストにメタ文字が含まれる場合はシングルクォートで囲うこと。囲わない場合 Syntax Error が出力される。
    • 予約変数はこちらを参考に。

プロセッサ使用数を制限する@Excel2010

Excelで大規模な再計算を走らせると全CPUコアをフル稼働させることになり、他の動作に影響が出るので制限をかける。

  1. 「ファイル」タブを選び「オプション」を選択。
  2. 「詳細設定」を選び、数詞の項目にあるところで「使用するプロセッサの数を指定する」を選択し、プロセッサ数の値を変更する。