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」ライフを!

フリー音楽再生アプリfoobar2000を試してみる

サポートの終了したSONYのMediaGo をミラーサイトからダウンロードして.flacオーディオを再生していましたが近頃、音飛びが酷いのでプレイヤーを再インストールしたのですが改善しません。そこで軽量フリーの再生アプリfoobar2000 を試してみました。

■ ダウンロードURL:http://www.foobar2000.org/download

■ 主な対応フォーマット:MP3, MP4, AAC, WMA, FLAC, WAV, AIFFほか

[File]-[Add Folder…] からファイルの読み込み、[Load Playlist…]からMediaGoの.m3u8形式のプレイリストの移行もスムーズでした。追々、カスタマイズしていこうと思います。

参考URL: https://www.digimart.net/magazine/article/2015081901550.html

書評 – TensorFlowで始める株式投資のためのディープラーニング

手習いでPython(Windows10-Anaconda3-Jupyter Notebook) を応用できる分野として数年前からブームとなっているAIによる株価分析に興味を持っており、TensorFlowを始めたい初学者にも再現性のある本書。

TensorFlowで始める株式投資のためのディープラーニング| Amazon.co.jp

実際に全銘柄データをダウンロード、Pythonでマージするところから第1章を始めて、第2章で古典的な線形回帰分析、第3章はディープラーニングの概念、理論の説明、第4章で実際にTensorFlowで分析した結果を線形回帰分析した結果と比べて評価するまでを学習者とデータ加工、表、グラフへの出力をしてゆきます。プログラムコードはURLからもダウンロードできるのでタイプが苦手な人にもGoogle力とデバッグ知識があれば再現可能な内容となっています。AIをはじめ、ディープラーニング、機械学習の概念をつかむのに画像解析だけじゃないところが画期的といえましょう。Python で株式投資の奥深い概念をどこまで応用できるか興味のある人には最適な入門書だと思います。

McAfee Endpoint Security for Linux 無料トライアル版をインストールする

McAfee Endpoint Security for Linux Threat Prevention 10.6.9 無料トライアル版ENSL1069_Eval.zip をダウンロードします。

https://www.mcafee.com/enterprise/ja-jp/downloads/trials.html?pid=endpoint-security

ファイルを解凍、作業ディレクトリ /usr/local/src/ 配下に設置します。

# cd ENSL1069_Eval/ENSL1069_Eval

キーを解凍
# tar xvf MCAFEE_LLC.PUB.TAR

本体を解凍
# tar zxvf McAfeeTP-10.6.9-121-Eval-standalone.tar.gz

解凍された圧縮ファイルを解凍
# tar zxvf McAfeeTP-10.6.9-121-standalone.linux.tar.gz
すべて解凍
# tar zxvf McAfeeESP-Basic-10.6.9-126-Full.linux.tar.gz
# tar zxvf McAfeeESP-KernelModule-10.6.9-126-Full.linux.tar.gz

キーをインポート
# rpm --import MCAFEE_LLC.PUB

署名を確認
# rpm -K McAfeeESP-10.6.9-126.x86_64.rpm
# rpm -K McAfeeRt-10.6.9-126.x86_64.rpm
# rpm -K McAfeeTP-10.6.9-121.x86_64.rpm
# rpm -K McAfeeESPFileAccess-10.6.9-126.x86_64.rpm
# rpm -K McAfeeESPAac-10.6.9-126.x86_64.rpm

# cd MA562LNX/

パッケージをインストール
# rpm -ivh MFEma.x86_64.rpm
# rpm -ivh MFErt.i686.rpm
# cd ..
# ./install-mfetp.sh usefanotify

ライセンス条項をスクロールして accept [Enter] します。

インストールが終わるまでディスプレイを眺めながらお茶でも飲みます。

コマンドから起動確認

# /opt/McAfee/ens/tp/bin/mfetpd restart
# /opt/McAfee/ens/tp/init/mfetpd-control.sh status

mfetpd start/running, process ######
お疲れさまでした。

to_csv のencoding オプション

Python3 でリストをcsv として保存したものをExcel で開くと文字化けする件。read_csv でencoding を指定したのと同じものをto_csv のオプションに指定したら解決しました。

・
・
csv_name = "\price_data.csv"
data.to_csv(OUT_DIR + csv_name, encoding = 'sjis', index = False)

to_csv のencoding のデフォルトは ‘utf-8’ なので指定必須でした。

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]

ディレクトリのAilias設定

Apache のconf ファイルでディレクトリのAlias設定をしたのでメモ。

/DocumentRoot/wordpress/ ディレクトリにWordpress をインストールしているとしてhttp://{ホストネーム}/computers/ とブラウザのアドレス欄に入力してアクセスしたいときに、httpd.conf ファイルを開いてAlias を設定しました。

<If Module alias_module>
    Alias /computers "/usr/local/apache2/htdocs/wordpress"

Apache 再起動。

WordPress のダッシュボードから[設定]-[一般]-[Wordpress アドレス] と[サイトアドレス]のURLにhttp://{ホストネーム}/computers としてディレクトリ設定を追加。

ブラウザでhttps://{ホストネーム}/computers でアクセスできることを確認。

これがやりたかったんですね。

ただ、旧URL でのアクセスをリダイレクト処理は別途、必要ですね。(くぅ~ん

try-except (Python)

Python で受け取った入力値の型が間違っているときはエラー(この場合はValueError)がでますが、そんな例外を処理する予約語としてtry except 文が用意されています。以下のコードは西暦を干支に変換するコードですが、半角数字が入力されないときのエラーを例外処理しています。
try:
(処理)
except(ValueError):
(例外処理)

eto.py

eto = ["申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未"]
try:
    x = input("生まれた年を西暦で入力してください。: ")
    y = int(x)
    y = y % 12
    print("あなたの干支は {} です。".format(eto[y]))
except(ValueError):
    print("4桁の半角数字を入力してください。")

あらかじめエラーが予想される処理をtry 文に投げて、except(エラーの種類)文で例外処理をします。エラーの種類は、データ型のエラー(ValueError)のほかに、0で割り算をした時のZeroDivisionError などがあります。

openメソッド(Python)

外部の.txt ファイルを読み込むopen メソッドについて調べたのでメモ。

pythonでlistをファイルに保存し、読み込む方法(numpyも同様!)

Titles.txt

Stand Still - Wave Racer Remix
Slumber Party
Milky Way Stars (feat. TR)
At The End Of The Night

上記のような素のテキストファイルをリストに読み込みたいとして。

open(‘ファイルパス’, ‘モード’, <option>[encoding=’utf-8′])

ファイルパス ‘filepath/filename’ スクリプトからの相対参照
モード r 読み込み用
w 書き込み用
a 追加書き込み
r+ 読み込みと書き込み
w+ 読み込みと書き込み
a+ 読み込みと書き込み
b バイナリモード
option encoding utf-8, cp932(SJIS)など

open_file.py

Titles = []
f = open('Titles.txt', 'r')  
for x in f: 
    Titles.append(x.rstrip("\n")) 
for title in Titles: 
    print(title) 
f.close()

Titles.txt を読み込みモード’r’ でファイルオープンして、リストに一行づつ追加していきます。
for ループを2回廻すのがスマートではないですがリストの内容をプリントアウトしています。

f = open('Titles.txt', 'r') 
・ 
・ 
・ 
f.close()

とするところを、close忘れを防ぐ意味もあってwith ~asと記述するとファイルをオブジェクトf として扱えます。

Titles = []
with open('Titles.txt', 'r') as f:  
    for x in f: 
        Titles.append(x.rstrip("\n")) 
        print(x.rstrip("\n"))

1行づつファイルを読み込む上記コードもreadメソッドを使えばまとめてリストにできますね。改行コードも関係ないのかな。これ、もう分かんねえなぁ。

Titles = []
with open('Titles.txt', 'r') as f:
    Titles.append(f.read())
for x in Titles:
    print(x)

追記)Windows10 のVisual Studio Code のデバッグ機能を使って外部ファイルの読み込みをしていましたが一向に出力してくれないので、CentOS のbash を使ったところ正常に読み込んでくれました。

訂正)まとめてreadメソッドで読み込むコードのforループの参照オブジェクトに誤りがありましたので修正しました。

continue と break (Python)

突然ですが、Python でループの途中に処理を飛ばしたいときやループを中止したいときに用意されている予約語、continue と break を使ったスクリプトの例を作ってみました。

continue はループの途中でif 文で条件分岐を挟むとそれ以降のコードが実行されずに飛ばされます。

break はやはりif 文で条件分岐を挟んでループ処理そのものを中止します。

Titles = [
	"Discopolis 2.0 - Fehrplay Remix",
        "Never Alone - J-Kraken Remix",
        "Golden",
        "Steal Your Heart",
        "I Want You To Know",

]

Artists = [
        "Lifelike, Kris Menace, Fehrplay",
        "Chachi, Natascha Bessez",
        "Thomas Hayes, Kyler England",
        "BRKLYN, Lenachka",
        "ゼッド, セレーナ・ゴメス",
        
]

i = 0
for i, new in enumerate(zip(Titles,Artists)):
    new = Artists[i]
    x = input("{} {} / {} | アーティスト名を修正してください。:".format(i, Titles[i], Artists[i]))
    if x == "":
        continue
    elif x == "q":
        break
    new = x
    Artists[i] = new
    print(i, Titles[i], "/", Artists[i])

ループで読み込まれたアーティスト名をリストの最後まで修正し続けるコードですが[Enter]が押されたときはcontinue でスキップ、[q] を入力したときにbreak でループ処理を終了します。

結果

0 Discopolis 2.0 - Fehrplay Remix / Lifelike, Kris Menace, Fehrplay | アーティスト名を修正してください。:[Enter]
1 Never Alone - J-Kraken Remix / Chachi, Natascha Bessez | アーティスト名を修正してください。:[Enter]
2 Golden / Thomas Hayes, Kyler England | アーティスト名を修正してください。:[Enter]
3 Steal Your Heart / BRKLYN, Lenachka | アーティスト名を修正してください。:[Enter]
4 I Want You To Know / ゼッド, セレーナ・ゴメス | アーティスト名を修正してください。:Zedd, Selena Gomez
4 I Want You To Know / Zedd, Selena Gomez