Outlookデータファイル設定

Windows10標準メーラーで過去の受信メールが同期できずストレスを抱えていたので、マイクロソフトオフィスOutlookに引っ越した際にエラーで起動できませんでした。

Google先生によるとデータファイルをOneDriveフォルダからローカルを既定に設定すると良かったみたいです。[コントロールパネル]-[ユーザーアカウント]-[Mail Microsoft Outlook 2016] から[データファイル]を開いてファイルパスを編集すると正常起動してめでたしめでたしです。

foobar2000カスタムスキン PandraBoxを試してみる

カスタマイズの自由度が高いfoobar2000ですが、カスタムスキンをインストールするにはColumns UI など動作に必要なコンポーネントをあらかじめ用意しなければなりません。しかし幸い、ファイルのダウンロードリンクとインストールの概要が foobar2000&スキンのインストール にありましたので詳細は譲ることとします。

コンポーネントをダウンロード解凍してfoobar2000のインストールフォルダにコピー、初回起動のUIの選択でColumns UIを選択、今回はDeviant ARTPandoraBox カスタムスキンをダウンロードしました。(英サイト/要ログイン)

1.7zipファイルを 7-zipファイルマネージャー などで解凍。

2、 configuration, FONT, images, scripts, user-components の5フォルダが見えます。その中のFONTフォルダを開いて.ttf拡張子のフォントファイル3個をダブルクリックしてインストール。

3.imageフォルダをC:\Program Files(x86)\foobar2000 の中にコピー。

4.残りのフォルダ(configuration, scripts, user-components)を %appdata%foobar2000 にコピー。

アプリを実行するとカスタムスキンが起動しました。

[File]-[Perferences]の左ペインの[Display]-[Main Window]から[Esc key function] を[Exit] に設定するとfoobar2000 がアクティブウィンドウのときに[Esc]を押すとアプリを終了でき便利です。

最初、席を離れるときにWindowsを[Windows]+[L] でログオフすると音が止まる現象に悩みましたが、[Playback] から[Other] の中の[Prevent screensaver & monitor standby when playing] のチェックを外すと良かったみたいです。

それでは、楽しい「foobar2000」ライフを!

グループポリシーを利用してデバイスのインストールを制御する

Windows10のカーネルDMA保護 が有効かどうか、[ファイル名を指定して実行]から msinfo32 を使って調べたところ、[無効]だった(マザーボードが古いからしょうがないね)ので次善策としてグループポリシーによるデバイスインストール制御について設定したのでメモ。

BitLocker に対する 1394 DMA と Thunderbolt DMA の脅威を軽減するための SBP-2 ドライバーと Thunderbolt コントローラーのブロック

[Windows]+[R] で [ファイル名を指定して実行]から gpedit.msc と入力して[Enter]

グループポリシーエディターを起動します。

[コンピューターの構成]-[管理用テンプレート]-[システム]-[デバイスのインストール]-[デバイスのインストールの制限] から [他のポリシー設定で記述されていないデバイスのインストールを禁止する] を[有効]にします。

一方、[Windows]+[X] でショートカットメニューから[デバイスマネージャー]を起動して、許可するデバイスのハードウェアを右クリック、[プロパティ]から[詳細]タブの[ハードウェアID] を表示して[コピー]します。

同じくグループポリシーの[コンピューターの構成]-[管理用テンプレート]-[システム]-[デバイスのインストール]-[デバイスのインストールの制限] の中の[これらのデバイスIDと一致するデバイスのインストールを許可する]を [有効] にして、先ほどコピーした[ハードウェアID] をリストに登録します。

リストにないハードウェアドライバーをデバイスマネージャーからアンインストールしてみます。

機器を再び、取り付けるとシステムから警告が表示されドライバーのインストールが制限されているのが確認できました。

Thunderbolt のID「 PCI\CC_0C0A 」を[これらのデバイスIDと一致するデバイスのインストールを禁止する]一覧に登録して作業終了です。

参考URL: グループ ポリシーを使用してデバイスのインストールを制御するためのステップバイステップ ガイド(英語)

Crucial MX500 1TB 内蔵SSDの増設

前回、富士通 TX1310 M3のRAIDモードを無効にしてACHIモードで組んだのですが、Amazon.co.jp で注文したCrucial MX500 1TB 内蔵SSDを余らせてしまうのも勿体ないということでデスクトップ機への増設をしてみました。

変換名人 SATA電源(15ピン) 2分岐ケーブル ロック付 SPR/2

変換名人 SATA電源(15ピン)延長ケーブル 50cm SPR/CA50

分岐ケーブルで電源を採りに行き、延長ケーブルを使いPCケース背面のHDD収納スロットまで取り回しをしました。

PCを起動して[Windows]+[X]のショートカットメニューから[ディスクの管理]でフォーマット

ドライブ文字の割り当てをして、エクスプローラーから認識しました。

物理NIC買い忘れた

ESXiホストと仮想マシンのIPアドレスは別に必要だったため、物理NICをAmazon.co.jp でお買い物。

ギガビット デスクトップPCI-e 10/100/1000 Mbps自動ネゴシエーションネットワークアダプタ(インテル 82574L / EXPI9301CT チップセット)NIC、シングル銅RJ45ポート(短縮版)

インテル PRO/1000 PT サーバ・アダプタ EXPI9400PT

届くのが来週なのでESXiホストのオレオレ認証局からSSL証明書をインポートしました。

「自己認証局(CA)と自己証明書(SSL)を Windows 版の XCA で管理してみる」

が詳しいので参照することをお勧めしますが、インポートはEdgeブラウザの[設定] -[証明書の管理] – [インポート]-[証明書のインポートウィザードの開始]から、作成した証明書を[インポート]しました。

ブラウザからホスト名でエラーなしでアクセスできることを確認して作業終了です。

来週こそゲストOSインストールしたいです。

ヤマハルーターRTX810のマルチセッション- DHCP固定IP払い出し-フィルタ型ルーティング設定してみる

新たに固定IPが必要な方にプロバイダ契約を変更せずにマルチセッションで2つ目のプロバイダ接続ができる業界最安値のインターリンク のNTT東西フレッツ対応「フレッツZOOT NEXT お試し最大2か月無料」を申し込み早速、ヤマハルーターRTX810 をフレッツ光ネクストのONU「PR-500MI」にブリッジ接続にしてマルチセッションしてみました。

今回は、YAMAHA RTX1200 。マルチセッション組む時に見落とした事
を参考にコマンドから設定してみました。


詳細は 同時接続するときの設定例ヒント/アイディア|FAQ for YAMAHA RT Series / PPPoE が役に立ちました。

デフォルトゲートウェイのpp 1, pp 2 にプライマリとセカンダリのプライベートIPアドレスをフィルターするパケットルールを適用して上記資料にあるようにNATディスクリプタを共有設定しました。

ip route default gateway pp 1 filter 600000 gateway pp 2 filter 600001
ip lan1 address 192.168.100.1/24
ip lan1 secondary address 192.168.101.1/24

ip filter 600000 pass 192.168.100.0/24 * * * *
ip filter 600001 pass 192.168.101.0/24 * * * *

dns server select 600000 pp 1 any . 192.168.100.1-192.168.100.254 dns server select 600001 pp 2 any . 192.168.101.1-192.168.101.254
dhcp scope 1 192.168.100.2-192.168.100.254/24 dhcp scope 2 192.168.101.2-192.168.101.254/24
pp select 2
ip pp nat descriptor 1000
dhcp scope bind 2 192.168.101.10 ab:cd:ef:12.34:56 ←端末のmacアドレス(DHCP固定IP払い出し

あとはコントロールパネルから固定IPを設定したWindows10からインターネットに接続できることを確認して作業終了です。

次はVMwareのホスト設定したいですね。

リムーバブルドライブのBitLockerロック解除

SATA3接続のSSDをデータドライブとしてWindows10 Proのディスク暗号化機能、BitLockerで暗号化して音楽ファイルなどを保存していたのですが、ある日突然、解除できなかったのでPowerShellのコマンドでのアンロック方法をメモ。

manage-bde のロック解除 | Microsoft Docs

PowerShell を管理者として実行プロンプトから

manage-bde -unlock F: -pw

無事、パスワードを訊かれ初期パスワードを入力するとアンロックできました。ロックするには

manage-bde -lock F:

今のところ、GUIからのロック方法は見つかりませんでした。

ベンチマーク測定

前回、Crucial の64GBメモリW4U3200CM-16G x4を増設しましたが色々調べた結果、JEDEC定格1.2V以外では動作せず、クロックも2933MHzが限界と判明し OCするならおとなしくG.skillでも買って置けばよかったと後悔しきり。増設後は、2666MHzネイティブのSamsung M378A1K43CB2 16GB から比べてスコアも格段に上がったので良しとします。

WD Black 500GB NVMe M.2 SSD 2枚をRAID0化したボリュームのCrystal Disk Markの結果はこちらです。

Cristal Disk Mark7.0 は、win32bit 版とUWP(Universal Windows Platform)版があり計測方法(キュー、スレッドのマルチ化)の違いから一律に比較できないのが残念ですがご参考まで。CINEBENCH 結果はランク4。

今後は滅多にメモリを買い替えることもないと思います。次はHDD増設したいですね。

Crucial DDR4-3200 64GB 増設オーバークロック

 Python で大量のCSVデータを処理する現状に、16GBの容量ではメモリクラッシュすることが多くなり増設を検討しなければならなくなりました。
 幸い、マザーボードの空きスロットに余裕があり相性など色々調べた結果、Amazon.co.jp |Crucial (Micron製) デスクトップPC用メモリ PC4-25600(DDR4-3200) 16GBx2枚 を2セット分購入しました。

Crucial デスクトップメモリ PC-25600(DDR4-3200) 16GB x4

早速、ケースを空けてスロットに取り付け。Asrock のUEFIブートメニューから[F6] Advanced → [OC Tweaker] → [DRAM Frequency] から[DDR4-3200] を選択、[F10] で[Save & Exit] しましたが起動しません。(汗

電源強制OFFから再起動してもUEFI起動せず、お釈迦にしてしまったと思いましたが冷静にCMOS電池を外してリセット。初期設定に戻すとブートメニューからUEFIセッティングに入ることができました。 メニューでは64GBを認識しているのでクロック値に問題があると考え、[DRAM Frequency] の最適な値を探る再起動→リセットを繰り返すと2800MHz の時点でOS起動することができました。これで欲が出て2933MHz までオーバークロックすると無事、起動。定格CPU下での3200MHz までOCはできませんでしたが、ひとまず安心でしょうか。

DRAM Frequency 2933MHz(値を2倍)

定格以外の設定も試してみたいですが今回は以上迄とさせていただきます。

TensorFlow2.1.0 環境構築(Windows10)

突然ですがAnaconda にディープラーニングのライブラリーTensorFlow 環境を構築したいと思い、Google先生に訊いたところ

初心者がGPU搭載Windows10にPython + Anaconda + TensorFlow + Kerasの環境を構築してみた[2018/4/28]

上記Tips が見つかったので試したことをメモします。

エディション Windows10 Pro
バージョン 1903
マザーボード Asrock Z370 Pro4
CPU    Intel Core i7 8700K
メモリ   16.0GB
GPU    Nvidia Quadro P2000

まずは下記手順にてAnaconda Promptを管理者として実行してAnacondaをアップデート。(参考:Windows環境でのAnacondaのアップデート

Anaconda本体をアップデートする
> conda update -n base conda

Anacondaすべてのパッケージをアップデートする
> conda update --all

AnacondaのPythonをアップデートする
> conda update python

Pythonのバージョン確認
> python --version
Python 3.7.6

Microsoft Visual Studio 2019 Community 無料ダウンロード
https://visualstudio.microsoft.com/ja/downloads/

からC++ のパッケージをインストール

続いてNvidia CUDA toolkit10.1 をダウンロード、インストール
https://developer.nvidia.com/cuda-toolkit-archive

バージョンは最新の10.2 だとdllエラーがでたので、ひとつ下のグレードでよかったみたいです。

https://developer.nvidia.com/rdp/cudnn-download から cuDNN v7.6.5 [November 5th, 2019] for CUDA 10.1をダウンロード、解凍して

bin,include, lib 各フォルダを C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 に上書きコピー。

Anaconda Navigator の[Environments]から仮想環境を[Create]、tensorflow と入力して [Create]


[Not Installed] からanaconda 関連のパッケージを検索して、[Apply] すると仮想環境にanaconda のインストールが完了します。

Anaconda Prompt (tensorflow) をスタートメニューから管理者として起動してtensorflow-gpu, keras をインストール。

追記)Anaconda Navigator のEnvironments からGUIでtensorflow関連のパッケージをインストールもできますけどバージョン違いでエラーがでるのですべて信頼はできません。

> pip install tensorflow-gpu
> pip install -U tensorflow keras

最初、pip install keras したのですが、AtrributeError が出たので一旦、pip uninstall keras して再度、pip install -U オプションすると上手く行きました。(まぐれ当たりでしょうか?)スタートメニューからJupyter Notebook (tensorflow)を起動してバージョン確認。

pip list | find "tensor"
tensorboard 2.1.0 tensorflow 2.1.0 tensorflow-estimator 2.1.0 tensorflow-gpu 2.1.0 tensorflow-gpu-estimator 2.1.0
import keras print(keras.__version__)
Using TensorFlow backend. 2.3.1

めでたくUsing TensorFlow backend. が表示されました。

TensorFlow 2.x のバージョンからTensorFlow 1.x のコードを実行したいときは

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

とするとハッピーになれるようでした。(下記サンプルコード転記)

import tensorflow.compat.v1 as tf
import numpy as np

tf.disable_v2_behavior()
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random.uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Before starting, initialize the variables.  We will 'run' this first.
init = tf.global_variables_initializer()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

# Learns best fit is W: [0.1], b: [0.3]