加算・減算・乗算の場合のデータ型の変換ルールこの結果から次の変換ルールがあることが分かります。同じ順位の型同士の演算で、型は変わらない。float64符号なし整数と符号あり整数の演算は、昇格する。入力配列の型と同じ型の配列スカラーの型順位が上位の場合、スカラーのデータ型が降格する。配列と配列の演算スカラー同士の演算に準じる。動的型付けの演算では、何らかの変換ルールで、演算結果のデータ型を決める必要があります。符号あり整数型の演算の場合を除けば、概ね理解できる変換ルールです。符号なし整数と符号ありの整数は昇格させるという基準で設定されている変換ルールと思いますが、だからと言って、昇格した先のデータ型が浮動小数というのは、理解しがたい仕様です。除算の場合のデータ型の変換ルール除算の場合の変換テーブルは、以下の図の通りです。変換ルールは、次の通りです。除算の場合は、基本的にfloat64を出力する。摩訶不思議なデータ型の変換ルールpythonは予め出力のデータがを決めない動的型付けのため、被演算子に基づき決めた何らかのデータ変換ルールに従って、演算を行う必要があります。そのデータ変換ルールが、前節で説明したような変換ルールだったわけです。概ね、理解できる変換ルールですが、整数同士の演算を浮動小数点に昇格させてしまうのは、直感的に予想できない変換ルールです。主たる使用目的の一つはアドレス指定と思います。あれば、uint64を浮動小数へ変換するルールは、奇異なルール、摩訶不思議なルールと言わざるを得ません。整数型へ変換を行えば済む話かもしれません。昇格ではなく、64ビットの整数への変換の方が分かりやすく、適切な仕様ではないでしょうか。最後にpythonのデータ型の変換についてまとめました。pythonでは、uint64型と符号あり整数型の演算が浮動小数に変換されるという摩訶不思議なデータ型の変換ルールがあり、注意が必要です。初心者でなくても、はまりそうな点ではないかと思います。付録A:演算結果のデータ型を表示するスクリプトpython3のスクリプトです。動作確認は、ubuntu18.04で行っています。python2のスクリプトも作っています(python3との違いは、print文の関係のみ)。python2との違いpython2とpython3で加算・乗算・乗算については、同一動作でした。除算については、python3と動作が異なります。変換テーブルは、以下の通りです。Python2の除算演算における変換規則。python2では四則演算の全てで同じ変換規則を使っています。出力するように変更されています。python2とpython3の違いは、除算結果のデータ型の変換ルールの違いとなります。摩訶不思議なデータ型変換ルール。プログラムを作りました。テーブル内に入っている他の情報もすべて出力します。ディスクのパーティションテーブルが正常に設定されているか、調査しました。第2GPTヘッダを正しい位置、つまり、ディスクの末尾に配置しているか、という点です(関連記事は、ここ)。覗くと、次のエラーメッセージが出力されます。ソースコードを読めばいいのかもしれませんが、この原因をよく理解していませんでした。パーティションサイズの認識に何らかの異常があるのですが、このエラー自体は深刻なものではなく、自動修復しても構わない程度のもののようです*1。最初に疑ったのは、Windows。Windowsでは認識したことになっているディスクサイズが実際のディスクサイズと違うのではないか?その影響が、先のエラーメッセージとなって現れたと推測しました。このことを確認する一つの方法が、第2GPTヘッダの位置が適切な場所、つまり、ディスク末尾に置かれているか、ということです。GPTテーブルを読み取るプログラムは、このような背景から生まれました。使用した言語は、Pythonです。初心者なので、変なところがあると思います。ご指導・ご鞭撻のほどよろしくお願い致します。仕様GPTヘッダの情報を全てテキストで出力します。保存したGPTデータです。取り出せない主なデータは、第1と第2のGPTヘッダの位置情報とCRCの値、MBRぐらいです。それ以外の情報は、gdiskでもほぼすべてテキスト出力できます。GPTヘッダの位置情報を含めて、すべてのデータを出力します。目的や入出力が異なりますが、GPTテーブルを読み出すCのプログラムもあります。今回の目的には合致しませんでしたが、参考にさせて頂きました。使い方は、次の通りです。image.注にも書きましたが、gdiskでは、自動的にGPTヘッダを修復してしまうことがあるので、変更を加えないそのままのGPTヘッダを読み取りたい場合には、ddダンプしたファイルを使った方がよいです。pyhonの3.6.6で行っています。gdiskで保存されるGPTテーブルGPTテーブルのほとんどの情報は、gdiskのCUIから読み出すことができます。筆者が知りたかったGPTヘッダの位置情報については、CUIからは調べることはできません。*2、このバイナリファイルを解析することで、知りたい情報を得ることができます。パーティションエントリー]の計34セクタが配置され、第2GPTヘッダやパーティションエントリーのコピーはディスク末尾に配置されますので、プログラミングの際には、少々、注意を払う必要があります。gdiskが保存するGPTデータは、メモリ上に展開されたパーティション情報です。ついて以下の説明があります。実施された場合にも、自動修復された状態のGPTテーブルがファイルに出力されそうです。WindowsのGPTテーブルに異常なし次の二つのディスクについて、GPTテーブルを調査しました。Windowsシステムが入った1TBのHDDWindowsシステムが入った500GBのSSDプログラムの出力例を付録Bに示します。HDDの場合でも、SSDの場合でも、ddダンプしたファイルから読み取ったGPTテーブルと、gdiskのGPTデータから読み取ったGPTテーブルとの間では、MBRの極一部を除き同一でした。気になっていた第2GPTの位置ですが、ディスク末尾の最終セクタへのオフセット値を示していて、正常です。ddダンプしたディスクイメージの末尾の1セクタ(512バイト)から読み込んだ第2GPTテーブルにも異常は見られませんでした。Windowsが作ったパーティションテーブルだからと言って、GPTについては、おかしなことをやっているわけではなさそうです。「GPTについては」です。WindowsのMBRはいい加減gdiskの結果とddの結果で異なる部分は、MBRの部分でした。これは、MBRの第1パーティションの全セクタ数で、例えば、SSDの場合には以下となります。(500GBのSSDの場合)。Windowsの場合、パーティションの最初のセクタ数(LBA)は正しいようですが、パーティションの全セクタ数は実際の数字を反映せず、0xFFFFFFFFが設定されています。GPTが管理するセクタ数(=ディスクの全セクタ数-1)をMBRの第1パーティションの全セクタ数として設定しているようです。HDDの場合も同様に修正されています。いう設定は、サイズ不明ということなのでしょう。パーティションサイズを取得できないわけではないので、手抜き実装としか思えません。相手にしなかったということでしょうね。ついては、いい加減な実装をしていました。結論Windowsでは、第2GPTヘッダーが正しく配置されないという疑念がありましたが、特に問題なさそうです。WindowsのMBRのパーティションサイズは正しく入力されていません。gdiskでは、Windowsが設定した不適切なのMBRの値を自動的に正しい値に設定し直しているようです。していたことなので、疑念が晴れてスッキリしました。Pythonの勉強にもなりました。摩訶不思議なデータ型変換ルール。付録A:GPTテーブルを読み取るPythonプログラムソースコードとサンプルデータは、ここ(Googleドライブ)に置いておきます。GPTテーブルの構造については、「GUIパーティションテーブル」(wikipedia)やその英語版に解説があります。これを参考にしました。悪影響を与えていました。回避方法を紹介します。1803アップグレード何かと安定しないと言われる1803アップグレード。Chromeについての異常動作については紹介しました(関連記事は、ここ)。この原因は、CryptSvcの暴走ですが、VirtualBoxでも、起動時にCryptSvcが暴走し、正常起動できない状態となりました。ゲストOSのUbuntuが起動しないVirtualBoxからゲストOSのUbuntuを起動しようとしても、応答せず、起動しません。画面が真っ暗でUbuntuが起動しない。Services)の負荷が上昇します。私のdynabookの場合、通常は0%のCPU使用率が数%程度となる。CryptSvcを停止しても起動しないCyptSvcの暴走が原因のようなので、CryptSvcを停止しましたが、今度は異なるエラーで起動しません。今度は、ubuntuの起動以前の段階で停止しているようです。原因の推測CryptSvcが起動していれば、ubuntuを起動するフェーズに入れるが、ubuntuを起動するフェーズに入ると、CryptSvcが暴走し起動を阻害するので、一旦、CryptSvcが停止させる必要がある、といったところではないかと思います。解決策この問題は、以下の方法で回避できます。ubuntuの起動中にCryptSvcを再起動するCryptSvcの停止のタイミングにシビアな印象はありませんが、タスクマネージャからの停止だと面倒なので、スクリプトを書いておくと楽です。CryptSvc上記のバッチファイルを管理者特権で実行すれば、CryptSvcが再起動します(ちょっとだけ楽にするために改良したスクリプトは、ここ)。根本的な解決方法の一つはクリアインストールです。私の場合、諸事情でWin10をクリアインストールする羽目になって、この問題は根本的に解決しました(笑)。最後にMicrosoftさん、CyptSvcの暴走問題を早く解決してくださいませ。Chromeが「応答時間が長すぎます」といって遅くて使えない。1803へのアップデートが原因だった。【概要】Windows10の筆者用のカスタマイズのための設定についてまとめました。リカバリメディア・バックアップの作成、WindowsOSの設定、アプリのインストール,、機器設定などについて述べます。はじめに最近、何回かWindowsを再インストールする羽目になったので、メモしておきます。V3も同じような設定です。V3は中華製4K対応ミニパソコンですが、SSD128GB搭載で、ハードディスク時代のdynabookよりも快適でした(笑)。AMZegal28924M-Egal今買うなら、後継機のVMacですが、Amazonではいくら何でも...という価格設定です。GearBestやAliexpressで中国からの直輸入がお勧め。リカバリメディアの作成クリアインストールするときに必須なメディアを作成する。「アプリ」→「Windows管理ツール」→「回復ドライブ」→「システムファイルを回復ドライブにバックアップします」にチェックメディアに必要な容量は、16GBも必要だったかな?VOYOの場合は、8GBも要らなかった。Edgeの「お気に入り」などが、Microsoftアカウントの設定と同期する。「確認」が必要な場合には、Microsoftアカウントのメールアドレスへのセキュリティコードの送信を行う。ウィンドウのスナップをオフウィンドウを画面の端にドラッグしたときに最大化するなど、スナップ機能をオフにする。「設定」→「システム」→「マルチタスク」→「スナップ」をオフにする。内蔵wifiの無効化BuffaloのWifiドングルのみに限定する(内蔵のwifiは不安定なため)。必要に応じて、IPアドレスを固定する。表示する」のチェックを外す。入力モードを表示する」を「オフ」にする。完全シャットダウンのショートカットを作成する。「シフトキー」+「シャットダウン」でも完全シャットダウンは可能。ユーザーフォルダ名の変更Windowsが生成したユーザーフォルダ名を「tora」に変更する。現在のMicrosoftアカウントをローカルアカウントに切り替える。「ローカルアカウントでのサインインに切り替える」このときのユーザー名は、tempなどで、toraにはしない。パスワードは空白で構わない。新規ローカルアカウントを作成する。「ユーザー名」に「tora」を入力(ユーザーフォルダは、C:\Users\toraとなる)パスワードは空白で構わない。「アカウントの種類の変更」で「管理者」にする。サインアウトし、toraでログオンする。toraをMicrosoftアカウントでのサインインに切り替える。「Microsoftアカウントでのサインインに切り替える」Microsoftアカウントでサインインする。サインインするときの設定画面が現れ、いくつか設定する。C:\Users\以下のディレクトリを確認し、必要なものはコピーする。古いアカウントを削除する。ローカルアカウント「temp」を削除する。古いフォルダを削除する。一番下の「メニュー」の「ダウンロード・インストール手順」(https://www.nuro.jp/mansion/kaspersky/howto/dl.htmlからインストールする。「スキャン」→「スキャンスケジュール」でスキャンのスケジュールを設定する。PackVirtualBoxのインストール後、拡張パックをインストールする。「Oracle_VM_VirtualBox_Extension_Pack-5.2.18.vbox-extpack」を選択し、インストールエラーコードVERR_ACCESS_DENIEDでインストールに失敗。VMs」を元の場所(C:\Users\tora)に戻す。VMs\ubuntu16.04\ubuntu1604.vbox」を開く。「設定(S)」を確認する。Files\Oracle\VirtualBox\VBoxGuestAdditions.iso」Ubuntu側からファイルマネージャ(Caja)で、「VBox_GAs_5.2.18」にアクセスしようとしても、「VBox_GAs_5.2.18をマウントできません」とエラーとなる場合がある。この場合、コマンドラインでマウントする。仮想ディスクのサイズの縮小500GBへのSSDに入れたために、SSDの空き容量が80GBと余裕がなくなった。ゲストOS上の不要ファイルを削除して、仮想ディスクのサイズを縮小する。ゲストOS(ubuntu)の不要ファイルを削除する。170GB程度を削除して、使用量は90GB程度。この他にswap領域として4GBが確保されている。仮想ディスク上の空き領域を0で埋める。VBoxManageで仮想ディスクを縮小する。disabled調べたuuidでディスクを指定して、縮小する。バイトへと、約180GBの縮小。共有フォルダの設定を確認する。ユーザーフォルダ名を変更すると、パスが変更される。ubuntuやVirtualBoxのバージョンアップの影響で動作が変わることもしばしばある。永続化する(M)」にもチェック)。自動マウントされない場合VirtualBox側で自動マウントを指定しても、自動マウントされない場合がある。0groupをvboxsfにしたい場合には、gid=vboxsfを追加する。VirtualBox側では自動マウントしない設定にしておく方が、無難(たぶん、fstabが優先)。対策2:マウントをスクリプト化し、必要なときにマウント。additionのサービスを再起動すると、マウントが外れる。Ubuntuのバージョンアップ16.04から18.04へバージョンアップする。不要なbootイメージを削除する(/bootの空きがなくなりエラー発生)。デスクトップは、1.12.1から1.20.1にバージョンアップ)。iTunes音楽データバックアップした「iTunes」フォルダを「ミュージック」フォルダにコピーする。iTunesをインストールする。5台のパソコンが認証されていたので、1台のみに変更する。Music」フォルダを「ミュージック」フォルダにコピー。E709c用のドライバ・ソフトウェア(HPソリューションセンター)のインストール(HP製)https://support.hp.com/jp-ja/drivers/selfservice/hp-officejet-6500-all-in-one-printer-series-e709/3795309からダウンロード「OJ_AIO_6500_E709_Full_Win_WW_140_408-5.exe」(バージョン:14.8.0、2015年8月3日リリース)無線接続の場合は、プリンタとパソコンを同じ無線LAN(SSID)に接続する。(HP)」を選択し、プリンタ名、プリンタ共有などを設定する。注:プリントしたときに、下の余白が大きすぎる。はがき印刷、写真印刷(フチなし)などの設定ができない。最後に内容は、随時、アップデートしていきます。回復ドライブとシステム修復ディスクの違いについて教えてください。20:12Windows10のインストールメモTweetもっと読むコメントを書く次のページ楽天ROOMにガジェットをまとめてます。グレイテスト・ショーマン心温まるミュージカル。