雑感等

音楽,数学,語学,その他に関するメモを記す.

Windows10 April Update 2018(バージョン1803)アップデート失敗時の対応

アップデート失敗により発生した問題

下記のような問題が発生した.

  • 「C:\Windows\System32\config\Systemprofile\Desktopは利用できない場所を参照しています。このコンピュータのハードドライブ上、 ...」と表示される.
  • タスクバーの色やデスクトップ背景が黒くなり,タスクバー位置が下(デフォルトの配置)になる.
  • スタートボタン(Windowsボタン)やタスクバーが機能しない.
    • 一部の設定画面にアクセスできない
  • Winキー+Rで「ファイル名を指定して実行」から「explorer」を起動しようとしても「存在しないトークンを参照しようとしました」などと表示され「explorer」が起動しない.
  • キーボード配列が英語キーボードになる.

最終的な対応:インストールメディアによる修復セットアップ(上書きインストール)

上書きインストールではOSのみを上書きし,OSの修復を試みる.
よって,ユーザがインストールしたプログラムやユーザが作成したファイルは削除されない.

手順

  1. Windows 10 のダウンロードから「ツールを今すぐダウンロード」をクリックし,「MediaCreationTool」をダウンロードした.
  2. 別PCで「MediaCreationTool」を実行した.下記のページが示す手順に沿った.windowsfaq.net
    • 内容が消えてもよいUSBメモリ(16GB)にインストールメディアを使った.
  3. 問題のPC上で,USBメモリのルートフォルダ内「setup.exe」を実行した.下記のページが示す手順に沿った.windowsfaq.net
    • セーフモードでは上書きインストールできないと表示されたため,普通に起動してsetup.exeを実行した.
    • USBメモリを差し込んでも認識しなかったため後述の方法でUSBメモリにアクセスした.
  4. 上書きインストール終了後,自身のアカウントにログインし,正常に動作することを確認した.

USBメモリを差し込んでも認識しない問題:mountvolコマンドでディスクをマウント

USBメモリを差し込んでから,cmd上で「a:」から[z:]まで実行しても,
インストールメディアが入ったUSBメモリにアクセスできなかった.
しかし,デバイスマネージャーでは,目的のUSBメモリの項目と思われるものが表示されていた.

下記ページを参考に,USBメモリをマウントし,ドライブレターを割り当てようと試みた.
Windowsコマンド集:(mountvol)

オプションなしで「mountvol」を実行すると「\\?\Volume{~~}\」が羅列されるが,
どれが目的のUSBメモリに対応するのかがわからなかった.
そのため,今回はドライブレターを割り当てられていないすべての「\\?\Volume{~~}\」に
ドライブレターを割り当てた.
各ドライブレターを参照してdirコマンド実行し,setup.exeが含まれる目的のUSBメモリにアクセスできたことを確認した.

※すべての「\\?\Volume{~~}\」にドライブレターを割り当てた場合,
ユーザのアクセスを想定していないドライブ(OS再インストール用のファイルが入ったドライブなど)にも
アクセスできるようになる場合があるが,そういったドライブは「mountvol (該当ドライブレター):\ \d」を実行し,
即座にアンマウントしたほうがよいと思われる.

XYZデータとsRGBデータの相互変換

JIS X 9204 高精細カラーディジタル標準画像(XYZ/SCID)を参照した.
逆行列等の計算は十進BASIC Version 7.8.3の有理数モードを使用した.

変数

8ビットに符号化されたsRGBのコード値:
0\leq R_{\rm 8bit} ,\,G_{\rm 8bit} ,\, B_{\rm 8bit} \leq 255
sRGB値:
0\leq R_{\rm sRGB} ,\,G_{\rm sRGB} ,\, B_{\rm sRGB} \leq 1
CIE 1931 XYZ 三刺激値(相対値):
0\leq X,\,Y,\,Z \leq 1

XYZの絶対的な三刺激値を求めるには,上記のX, Y, Z値をそれぞれ80倍する.
"80"という数値はsRGBの白色点の輝度が 80\,cd/m^{3}であることによる.
https://www.w3.org/Graphics/Color/srgb

 R_{\rm 8bit} ,\,G_{\rm 8bit} ,\, B_{\rm 8bit} \rightarrow X,\,Y,\,Z


f_{\rm 8bit\rightarrow sRGB} (Q)=
\left\{ \begin{array}{ll}
    (Q/255)/12.92 & (Q \leq 0.04045\times 255) \\
    ((Q/255+0.055)/1.055)^{2.4} & (otherwise)
  \end{array} \right.
として

R_{\rm sRGB}=f_{\rm 8bit\rightarrow sRGB} \left(R_{\rm 8bit} \right) \\
G_{\rm sRGB}=f_{\rm 8bit\rightarrow sRGB} \left(G_{\rm 8bit} \right) \\
B_{\rm sRGB}=f_{\rm 8bit\rightarrow sRGB} \left(B_{\rm 8bit} \right) \\


\left[
\begin{array}{c}
 X \\ Y \\ Z 
\end{array}
\right]=

\left[
\begin{array}{ccc}
0.4124  & 0.3576  & 0.1805 \\
0.2126  &  0.7152  &  0.0722 \\
0.0193 & 0.1192 & 0.9505
\end{array}
\right]
\left[
\begin{array}{c}
R_{\rm sRGB} \\ G_{\rm sRGB} \\ B_{\rm sRGB}
\end{array}
\right]

 X,\,Y,\,Z \rightarrow R_{\rm 8bit} ,\,G_{\rm 8bit} ,\, B_{\rm 8bit}


\left[
\begin{array}{c}
R_{\rm sRGB} \\ G_{\rm sRGB} \\ B_{\rm sRGB}
\end{array}
\right] =

\left[
\begin{array}{ccc}
28154000/8687829 & -13355000/8687829  & -1444000/2895943    \\
 -418089250/431495507 &  1618760625/862991014   & 17914625/431495507  \\
484000/8687829  & -1772500/8687829   & 3061000/2895943
\end{array}
\right]
\left[
\begin{array}{c}
X \\ Y \\ Z
\end{array}
\right]
ここで,

f_{\rm sRGB \rightarrow 8bit} (Q)=
\left\{ \begin{array}{ll}
    255 \times 12.92 \times Q & (Q \leq 0.04045/12.92) \\
    255 \, (1.055\,Q^{1/2.4}-0.055) & (otherwise)
  \end{array} \right.
として

R_{\rm 8bit}=f_{\rm 8bit\rightarrow sRGB} \left(R_{\rm sRGB} \right) \\
G_{\rm 8bit}=f_{\rm 8bit\rightarrow sRGB} \left(G_{\rm sRGB} \right) \\
B_{\rm 8bit}=f_{\rm 8bit\rightarrow sRGB} \left(B_{\rm sRGB} \right) \\

XYZ表色系におけるCIE 1931 RGB原刺激の値

十進BASIC Version 7.8.3において有理数モードを使用して分数表記に直し,
JIS Z 8781-1に示される等色関数のXYZ値を線形補間して求める.

CIE 1931 RGBの原刺激は,
[R]: 700 nm
[G]: 546.1 nm
[B]: 435.8 nm
と定められる.

[R]のXYZ値:

\left[
\begin{array}{c}
 X \\ Y \\ Z 
\end{array}
\right]=
\left[
\begin{array}{c}
 283979/25000000 \\ 2051/500000  \\ 0
\end{array}
\right]=
\left[
\begin{array}{c}
0.01135916   \\  0.004102000 \\ 0.000000000000
\end{array}
\right]

[G]のXYZ値:

\left[
\begin{array}{c}
 X \\ Y \\ Z 
\end{array}
\right]=
\left[
\begin{array}{c}
37553947/100000000  \\ 49221249/50000000   \\ 2441339/200000000
\end{array}
\right]=
\left[
\begin{array}{c}
0.3755395  \\  0.9844250 \\ 0.01220670
\end{array}
\right]

[B]のXYZ値:

\left[
\begin{array}{c}
 X \\ Y \\ Z 
\end{array}
\right]=
\left[
\begin{array}{c}
 4164763/12500000  \\ 277717/15625000   \\ 2577681/1562500
\end{array}
\right]=
\left[
\begin{array}{c}
0.3331810  \\ 0.01777389  \\ 1.6497158
\end{array}
\right]

CIE 1931 RGBとXYZの変換

JIS Z 8781-1, p. 5に記載の数値を用いる.
十進BASIC Version 7.8.3において有理数モードを使用して分数表記に直し,逆行列を計算した.
その後行列の積 - 高精度計算サイトを使用して
変換行列と逆変換行列との積が単位行列になることを確認した.


\left[
\begin{array}{c}
 X \\ Y \\ Z 
\end{array}
\right]=

\left[
\begin{array}{ccc}
692223/250000  & 437937/250000  & 14127/12500  \\
250005519/250000000  &  28691937/6250000  &15017001/250000000 \\
0 & 14127/250000  & 1398573/250000
\end{array}
\right]
\left[
\begin{array}{c}
 R \\ G \\ B
\end{array}
\right]


\left[
\begin{array}{c}
 R \\ G \\ B
\end{array}
\right] =

\left[
\begin{array}{ccc}
 23652050/56522127 & -152450000/960876159 & -79592350/960876159   \\
 -1717650/18840709  &  80850000/320292053  & 15092650/960876159  \\
 17350/18840709  & -2450000/960876159   & 57202550/320292053 
\end{array}
\right]
\left[
\begin{array}{c}
X \\ Y \\ Z
\end{array}
\right]

minicondaで環境作成とパッケージインストールに失敗する場合(Windows 10)

  • OS: Windows 10
  • プロキシサーバ経由でネット接続
  1. minicondaで環境作成に失敗した.
    1. cmdから"conda create -n py36 python=3.6"を実行した結果urlopen error [WinError 10060]が出る.
  2. 対処:proxy設定(.condarcファイルを作成)して,proxy設定が有効なpython環境下で実行していることを確認する.
  3. conda環境下(activation py36実行後)のcmdで"conda install jupyter"を実行してPermissionErrorが出る.
    1. 対処:cmdを管理者権限で実行する.pycharm上のコンソールから実行すると失敗する?

参考
qiita.com

スパイウェアをインストールさせる方法

某ソフトがこの手法を使っている?(被害妄想並の感想)

  1. 便利なソフトウェアを作る(違法ダウンロード支援ソフトなど)
  2. zip形式ではなくexe形式のインストーラでインストールさせる
  3. インストーラの動作を遅くして利用者をイラつかせ,利用者が思考停止して「次へ」を連打させる
  4. 通常インストールをデフォルトで設定しておき,「おすすめソフトウェア」としてスパイウェアをインストールさせる
    1. 通常インストールのほかにもカスタムインストール項目を用意すること
      1. カスタムインストールを選択すればスパイウェアを含まずにインストールできるようにする
      2. 利用者が「自分の意志でスパイウェアをインストールした」という証拠になる