AWS Tools for PowerShell を PowerShell にインストールしてファイルの一括アップロード

AWS Tools installer のインストール

AWS CliAWS Tools for PowerShell でも構文違うの面倒くさいなぁと思いつつ

PS C:\WINDOWS\system32> Install-Module -Name AWS.Tools.Installer 
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\ikeno\AppData\Local\PackageManagement\ProviderAssemblies'
に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'
を実行して NuGet プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
プロバイダーをインストールしてインポートしますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y

信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する
場合は、Set-PSRepository コマンドレットを実行して、リポジトリの InstallationPolicy
の値を変更してください。'PSGallery' からモジュールをインストールしますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ
(既定値は "N"):Y
PS C:\WINDOWS\system32> Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3 -CleanUp

確認
この操作を実行しますか?
対象 "AWS Tools version 4.1.346.0" に対して操作 "Install-AWSToolsModule" を実行しています。
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ
(既定値は "Y"):
Installing module AWS.Tools.EC2 version 4.1.346.0
Installing module AWS.Tools.S3 version 4.1.346.0
PS C:\WINDOWS\system32>

IAM を使用してユーザを作成して「セキュリティ認証情報」からアクセスキーを生成する

アクセスキーを設定する

PS C:\> Set-AWSCredential `
>> -AccessKey [Accesskey] `
>> -SecretKey [秘密鍵] `
>> -StoreAs [プロファイル名、デフォルトなら default]

目的のファイルが有るフォルダに移動して

foreach ($f in Get-ChildItem ) {
   Write-S3Object -BucketName [S3バスケット名] `
   -File $f -Key [オブジェクト名]/$f -CannedACLName public-read -ProfileName [IAMプロファイル名]
}


参考:
AWS Tools for PowerShell とは何ですか? - AWS Tools for PowerShell

tor 経由で ssh でアクセス

tor はブラウザだけじゃなくて socks5 を設定することで ssh も使える

Tor Project | Downloadから「Download Tor Source Code」のリンクをクリックして、「Windows Expert Bundle」からファイルをダウンロードする。
f:id:nao550:20220201233733p:plain

ダウンロードしたzipファイルを適当なフォルダに展開する。自分は「C:\temp\torsocks」展開した。
f:id:nao550:20220202001459p:plain


コマンドプロンプトを管理者権限で開いて、以下のコマンドを実行

.\tor.exe --service install

f:id:nao550:20220201233844p:plain

「サービス」を見ると、「Tor Win32 Service」が登録されて、実行になっているはず。
f:id:nao550:20220201234037p:plain


Teratermの「プロキシ」で「type:SOCKS5」、「Hostname:localhost」、「Port number:9050」で、「URL」に「socks://localhost:9050」と設定される。
f:id:nao550:20220201234833p:plain


あとはふつうに Teraterm から ssh アクセスすれば、Tor 経由の ssh アクセスになるので、身元を追うことは基本的に不可能になる。

# サービスのインストール
tor.exe --service install   

# torrc ファイルを作成してサービス登録時に読み込みする
tor.exe --service insatll --options -f "c:\temp\torsocks\tor\torrc"

# サービスの削除
tor.exe --service remove

2021年暮れの CentOS6.6アップグレード作業

今更ながら CentOS 6.6 のアップグレード。すでに CentOS 6 系のサポートは 2020年11月30日でサポートが終了しているが、なんか手元に残っていたのでアップグレードをしてみた。

[root@hoge ~]# yum check-update
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
エラー: Cannot find a valid baseurl for repo: base

当然のことながらできない。

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

mirrorlist をコメントアウトして、baseurl のコメントを外して、http://mirror.centos.orghttps://vault.centos.org/ に変更する。
とりあえず、CentOS-Base.repo の base と updates 以外の項目は enable=0 にして無効にする。

[root@hoge yum.repos.d]# yum check-update
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
 * rpmforge: mirrors.netix.net
https://vault.centos.org/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] problem making ssl connection

SSLでエラーがでる。証明書が古いので証明書を更新する。

適当なディレクトリに移動して、証明書をダウンロードして rpm でインストール。

[root@hgoe src]# wget --no-check-certificate https://vault.centos.org/6.10/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm
[root@hoge src]# rpm -Uhv  ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm

他に P11-kit や nss、Openssl などのパッケージが必要になるかもしれないので必要に応じて vault あたりからダウンロードして、rpm でインストールする。

[root@hoge yum.repos.d]# yum check-update
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
base                                                     | 3.7 kB     00:00
base/primary_db                                          | 4.7 MB     00:03

エラーが出なくなったので、アップグレードを行う。

[root@hoge yum.repos.d]# yum update -y
reboot
[root@hoge ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)

6.10 にアップグレードされた。

ハイレゾ音源について

ハイレゾ音源とその再生についていろいろ調べた。目的はPC環境での再生について。

ハイレゾ音源とは

基本的にCD(16bit、44.1MHz)以上のビットレートの音源がハイレゾ音源になる。特に量子化ビット数は24bit以上が求められる。

フォーマットとして、WAVE、MP3、AACFLACなどがある。
非圧縮のWAVE、AIFF可逆圧縮FLAC、ALAC、非可逆圧縮のMQA、MP3、OggAAC

ハイレゾ音源で使用されることが多いのは FLAC だが、最近は MQA が使用されることも多い。

MQAは既存のCDなどでCD音質で聞くことができるが、対応機ならハイレゾで聞くことができるという特徴がある。MQA のほうが圧縮率が高いが非可逆で技術がクローズドなため、技術がオープンで可逆圧縮FLACに対して長期で見た場合継続に疑問点が付く。

参考:https://rideonmarin.blogspot.com/2018/04/mqa-part15.html

MQAの対応には「MQAフルデコーダー」と「MQAレンダラー」があり、MQAレンダラーのみではMQAのデコードができず、「MQAコアデコーダー」と組み合わせて再生する。MQAレンダラーは対応のDACなどに、MQAコアデコーダーなどはPC上の再生ソフトなどに搭載される。MQAフルデコーダーは据え置きの再生機などに。

PCMとDSD

PCMはアナログ音声を波の高さで記録する、一般的にPCで使用される方式、DSDはアナログ音声を波の密度で記録するハイレゾ音源で使用されることが増えている形式。

PCMは編集可能だが、DSDは編集が難しく、一発どりや最後のマスタリングで使用されることが多い。またDSDは再生にそれ用のアプリと機器が必要になり、USBを通してデータを送ることができないのでPCMデータに偽装したDoP(DSD over PCM)という形式がある。DoPも送信元、送信先ともに対応している必要がある。

DSDのほうがアナログ感があるらしい。 

配信サービスについて

ハイレゾ音源のストリーミングと、ダウンロード可能なところとがある。

ストリーミング:TIDAL、Qobuz、Spotify、DEEZER、PrimeSeat、AppleMusic、

ダウンロード:e-onkyo music、mora、OTOTOYAmazon Music HD
参考:http://www.alphapex.co.jp/deliver.html

再生環境について

再生ソフトウェア

デコーダーにライセンス料がかかるためMQA対応のフリーソフトはない。


MQA対応:Audirvana、Room など、MQSを FLAC コンテナにして再生することもできるがMQAとして再生するためにはMQAフルデコーダーのDACに出力する必要がある。正常にMQAで再生できればDACのMQAインジゲーターが光る。

FLAC:VOX、foobar2000、Amarra、HQ Player、MediaMonkey、Flacはオープンフォーマットだけあって再生対応アプリは多い。


iTunesから移行できそうなのは、MediaMonky、MusicBee などか

エンコーダー

FLACは公式版 https://ftp.osuosl.org/pub/xiph/releases/flac/foobar2000、fre:ac、Exact Audio Copy

MQAのエンコーダーは一般にはなさそう

[TASK]CDデータの取り込みDBについて調査する

ハードウェア

ハイレゾはデジタルデータの問題でDACでアナログになった音声を出力するスピーカー、ヘッドフォンはそれなりのものであればハイレゾ対応でなくても問題はない。ハイレゾ対応であればより良い音が出るのはたしかだが、そこまでこだわる前にそれぞれのヘッドフォンやスピーカーの音の個性が好きかどうかを気にしたほうがいい。


ハイレゾ対応のポータブル再生機にはヘッドフォンの接続でバランス接続、アンバランス接続がある。アンバランスはRLでグランドが共通、アンバランスはRLでグランドが独立している。 アンバランスは既存の3.5mmジャック、バランス接続は4接点の2.5mm、5接点の4.4mmのジャック形状がある。


Bluetoothハイレゾを再生機に送るなら、Bluetooth 5.0 以上で、aptX HD、AptX Adaptive、LDAC、HWA に対応している必要がある。

Windows 10のアップデートを止める方法

Windows10が自動的にアップデートするのを止めるには、サービスと、グループポリシーを設定する。
環境は Windows 10 Pro 1909で確認。

サービスの停止

[エクスプローラー]から[PC] を右クリくして[管理]をクリック。
f:id:nao550:20210103150840p:plain

[コンピュータの管理]ウィドウが開いたら、[サービスとアプリケーション]にある[サービス]から[Windows Update]を[停止]にする。
f:id:nao550:20210103151113p:plain

グループポリシーの修正

[ファイル名を指定して実行]から[gpedit.msc]を実行する。
f:id:nao550:20210103151315p:plain

[ローカルコンピュータポリシー]の[コンピュータの構成]→[管理用テンプレート]→[Windows コンポーネント]→[Windows Update]にある[自動更新を構成する]を[無効]にする。
f:id:nao550:20210103151534p:plain

f:id:nao550:20210103151722p:plain

以上

AWS Linux 2 に emacs を設定

emacs
emacs

AWS Linux 2 に emacs を設定する作業の記録

AMI から Amazon Linux 2 を立ち上げて、yum upgrade で更新しておく。


標準状態では emacs 25 が yum に用意されている。

[ec2-user@awstest ~]$ yum list |grep emacs
yum list |grep emacs
emacs.x86_64                           1:25.3-3.amzn2.0.1            @amzn2-core
emacs-common.x86_64                    1:25.3-3.amzn2.0.1            @amzn2-core

emacs 25 ではセキュリティ証明書が古く、emacs package が使用できず、package-list-package を実行するとエラーが表示される

Failed to verify signature archive-contents.sig:
No public key for 066DAFCB81E42C40 created at 2020-08-27T21:05:02+0000 using RSA
Command output:
gpg: Signature made Thu 27 Aug 2020 09:05:02 PM UTC using RSA key ID 81E42C40
gpg: Can't check signature: No public key

emacs 26 に更新しても上記の問題は解決できるが、emacs 25 での解決方法は以下の通り。


.emacs.d/init.el に package-check-signature を nil に設定して、elpa などのリポジトリを追加する

(setq package-check-signature nil)

(require 'package)

(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
(add-to-list 'package-archives '("ELPA" . "https://tromey.com/elpa/") t)
(package-initialize)

init.el を変更したら、M-x load-file で .emacs.d/init.el を読み直して、M-x package-list-package を実行する。


追加したリポジトリのパッケージ一覧が表示されるので、gnu-elpa-keyring-update をインストールする。

今後は gnu-elpa-keyring-update が自動的に keyring を更新してくれるので、(setq package-check-signature nil) は削除してよい。

WSL2の設定

Windows 10 2004 以降なら WSL2 が使用できる。WSL2 は完全な Linux カーネルを使用しているので、Windows 10 + WSL2 + Docker とかいう運用も可能になる。

インストール

PowerShell を管理者モードで開き、

Windows Subsystem for Linux のインストール

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

"仮想マシン プラットフォーム" のオプション コンポーネントを有効にする

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ここで再起動して、WSL を有効にする

WSL2 にするにはカーネルコンポーネントの更新が必要になるので、https://aka.ms/wsl2kernel から Linux カーネル更新プログラム パッケージを入手してインストールする。
f:id:nao550:20200530140741p:plain


インストールしただけでは WSL のバージョンが 1 になっているので、2 に変更する

PS C:\Users\user> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

Microsoft Store で [Linux] で検索するとインストールできるディストリビューションが表示されるので好きなのをインストールする。

f:id:nao550:20200529160442p:plain
Microsoft Store


自分はちょっと前後になってしまって、WSL1 の環境に Ubuntu をいれてしまったので、WSL 2 への変更をする

PS C:\Users\user> wsl --list -v
  NAME      STATE           VERSION

Ubuntu Stopped 1

PS C:\Users\user> wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。
インストールできれば起動できるようになっているので起動する。 f:id:nao550:20200529160735p:plain スタートメニューにも追加されているのでそちらからでも可能 初回起動時にはLinux管渠のユーザ名とパスワードの設定が求められる。これは Windows とは別のアカウントで、ここで設定するユーザが管理者アカウントとなり、sudo コマンドなどが使用できる。 f:id:nao550:20200529160946p:plain かんたんに WindowsLinux 環境がつくれる。

tips

Linux 環境の /mnt 以下に Windows のドライブがマウントされる。 Linux 上のネットワークインタフェースは Windows と共有されるので、localhost:ポート番号で Linux 上のポートにアクセスできる。 ということは WindowsLinux でポート番号の競合が発生するので実行するサービスには注意が必要。 逆に Linux から Windows のポートにアクセスする場合は、IPアドレスでアクセスする。 参考 Linux 用 Windows サブシステムの概要 | Microsoft Docs