令和5年度大学入学共通テストを解いた

令和5年度大学入学共通テストの問題を解きました。
解いたのは『英語(リーディング・リスニング)』、『国語』、『地理B』、『倫理、政治・経済』、『数学Ⅰ・数学A』、『数学Ⅱ・数学B』、『物理』、『化学』の8科目です。
今年の1月に解いた令和4年度大学入学共通テストの結果はそれぞれ以下の記事です。

kakashibata.hatenablog.jp kakashibata.hatenablog.jp

問題

以下のページで公開されている問題と解答を利用させて頂きました。

edu.chunichi.co.jp

結果

結果は以下の通りです。 括弧の中は配点です。

  • 英語(リーディング) 45点(100点)
  • 英語(リスニング) 81点(100点)
  • 国語 145点(200点)
  • 地理B 87点(100点)
  • 倫理、政治・経済 82点(100点)
  • 数学Ⅰ・数学A 66点(100点)
  • 数学Ⅱ・数学B 63点(100点)
  • 物理 83点(100点)
  • 化学 42点(100点)

リーディングが時間が足りず、過去最低の点数でした。 全科目を通して疲れました。 試験時間の途中でへとへとになる感覚です。 共通試験に限らず、日頃の勉強を避けていたことが祟ったのだと思います。 いわゆる勉強体力が減ったように感じます。

令和4年度大学入学共通テスト追・再試験を解いた

令和4年度大学入学共通テスト追・再試験の問題を解きました。
解いたのは『英語(リーディング・リスニング)』、『国語』、『地理B』、『倫理、政治・経済』、『数学Ⅰ・数学A』、『数学Ⅱ・数学B』、『物理』、『化学』の8科目です。
今年の1月に解いた令和4年度大学入学共通テストの結果はそれぞれ以下の記事です。

kakashibata.hatenablog.jp kakashibata.hatenablog.jp

問題

以下のページで公開されている問題と解答を利用させて頂きました。

www.dnc.ac.jp

結果

結果は以下の通りです。 括弧の中は配点です。

  • 英語(リーディング) 84点(100点)
  • 英語(リスニング) 66点(100点)
  • 国語 134点(200点)
  • 地理B 81点(100点)
  • 倫理、政治・経済 81点(100点)
  • 数学Ⅰ・数学A 49点(100点)
  • 数学Ⅱ・数学B 50点(100点)
  • 物理 76点(100点)
  • 化学 37点(100点)

1月の令和4年度大学入学共通テストも解きたいと思います。

Microsoft Store でインストールしたアプリの自動更新を OFF にするには Microsoft Store の設定を変更する

試した環境

本題

Microsoft Store でインストールしたアプリの自動更新の設定をするには、 Microsoft Store アプリにある「アプリの設定」から行います。 「アプリの設定」はMicrosoft Store アプリ上部のユーザアイコンをクリックして表示される「アプリの設定」からアクセスできます。 これはサインインしていなくても問題ありません。 「アプリの設定」にある「アプリの更新」のトグルをOFFにします。 これで自動更新がOFFになります。 インストールしたアプリを更新する際にはMicrosoft Store アプリの「ライブラリ」から更新できます。 自動更新させたい場合には、同様の手順で「アプリの更新」をONにします。

余談

余談として私がこの機能を必要とした経緯を書きます。

私の環境では Windows Terminal を Microsoft Store からインストールしました。
先日長時間のCUIプログラムを実行する機会があり、Windows Terminal からコマンド実行して数日放置させるつもりでした。 この際に Windows Update の更新を一時停止だけ設定しました。 プログラムを夜通し実行しようとしたが途中で Windows Update と再起動が入ってしまったという経験は私を含め多くの Windows ユーザがしているのではないでしょうか。 なので Windows Update の更新を一時停止する設定だけは忘れずにして、実行開始しました。 しかし、翌朝確認すると Windows Terminal が閉じていました。 イベントビューアーでログを確認すると夜中に Windows Terminal の更新が入っていました。 私は Microsoft Store 経由でインストールされたアプリの自動更新は Windows Update 経由で行われるものだと何故か勝手に思い込んでおり、Windows Update の更新を一時停止すれば問題ないと思っていました。 Windows Update の更新を一時停止しても Microsoft Store でインストールしたアプリの自動更新は停止しないことにその時気づきました。

長時間実行する際にはこの点にも注意する必要があるのだと知ったので、情報共有します。 同じ失敗をする人が減る助けになればと思います。 それと私が同じ失敗をしないためにも。

Git で safe.directory の設定をせずに外付けディスク上でリポジトリを扱いたいならファイルシステムを NTFS にする

試した環境

本題

Git では version 2.35.2 からユーザとディレクトリの所有者とを確認して、特定の条件ではそのディレクトリ下で Git の諸々のコマンドの使用が制限される機能が追加されました。 制限の対象になるディレクトリ下でgit addgit commitなどのコマンドを使うには、以下のようにGitの設定のsafe.directoryに対象ディレクトリを追加する必要があります。

git config --global --add safe.directory F:/test

この機能制限の対象になるディレクトリについて、私は外付けHDDやSSDディレクトリが対象になるのだと思っていました。 しかしファイルシステムNTFS にすればUSBメモリ上のリポジトリでも機能制限の対象にならないようです。 NTFSディレクトリの所有者情報を持ち、FAT32, exFATディレクトリの所有者情報を持たないファイルシステムなのが理由だと思います。 ファイルシステムにあまり詳しくないので違っていたらごめんなさい。
従って、 Git で safe.directory の設定をせずに外付けディスク上でリポジトリを扱いたいならファイルシステムNTFS にするといいのですが、ファイルシステムを変更するにはディスクのフォーマットをする必要があります。 既にディスクにファイルを展開している場合は取り返しのつかないことにならないように注意してください。

NTFS での実験

まず NTFS で試します。 ドライブやディレクトリのプロパティにセキュリティタブがあります。

git initリポジトリを作成すると、デフォルトの git bash ではブランチ名(master)がカレントディレクトリの後に表示されます。

USER@HOST MINGW64 /f/test
$ git init
Initialized empty Git repository in F:/test/.git/

USER@HOST MINGW64 /f/test (master)
$ ls -al
total 8
drwxr-xr-x 1 USER 197121 0 Sep 19 10:48 ./
drwxr-xr-x 1 USER 197121 0 Sep 19 10:47 ../
drwxr-xr-x 1 USER 197121 0 Sep 19 10:48 .git/

そしてgit addgit commitコマンドも問題なく行えます。

USER@HOST MINGW64 /f/test (master)
$ touch test.txt

USER@HOST MINGW64 /f/test (master)
$ git add test.txt

USER@HOST MINGW64 /f/test (master)
$ git commit -m 'test'
[master (root-commit) f34ace4] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

FAT32, exFAT での実験

次にFAT32, exFAT で試します。 両方試しましたが、同じ結果だったので1つにまとめます。 プロパティを見ると NTFS にはあったセキュリティタブがありません。

機能制限下でもgit initコマンドは使用可能のようです。 ただし、NTFS ではカレントディレクトリの後に表示されていたブランチ名(master)が、FAT32, exFAT では表示されません。

USER@HOST MINGW64 /f/test
$ git init
Initialized empty Git repository in F:/test/.git/

USER@HOST MINGW64 /f/test
$ ls -al
total 0
drwxr-xr-x 1 USER 197121 0 Sep 18 11:54 ./
drwxr-xr-x 1 USER 197121 0 Jan  1  1980 ../
drwxr-xr-x 1 USER 197121 0 Sep 19 10:09 .git/

git addコマンドでファイルを追加しようとすると、リポジトリに疑わしい所有者を見つけたことと所有者が記録されないファイルシステムディレクトリである旨のメッセージを表示して失敗します。

USER@HOST MINGW64 /f/test
$ touch test.txt

USER@HOST MINGW64 /f/test
$ git add test.txt
fatal: detected dubious ownership in repository at 'F:/test'
'F:/test' is on a file system that doesnot record ownership
To add an exception for this directory, call:

        git config --global --add safe.directory F:/test

Gitの設定のsafe.directoryに対象ディレクトリを追加すればカレントディレクトリの後にブランチ名(master)が表示され、git addgit commitコマンドが使えるようになります。

USER@HOST MINGW64 /f/test
$ git config --global --add safe.directory F:/test

USER@HOST MINGW64 /f/test (master)
$ git add test.txt

USER@HOST MINGW64 /f/test (master)
$ git commit -m 'test'
[master (root-commit) 8773d01] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

参考

https://git-scm.com/docs/git-config/#Documentation/git-config.txt-safedirectory

執筆時点での最新版の git ドキュメントは、本機能が追加されたgit 2.35.2 のキュメントと比較すると内容に追加があります。

git diff HEAD^ と git diff HEAD^..HEAD との違い

試した環境

本題

git diff HEAD^git diff HEAD^..HEADでは未コミットの変更箇所があるときに挙動が違います。 以下のような内容のテキストファイルを用意します。

1st
2nd commit
3rd unstage

1行目を書いてgit add -Aおよびgit commitし、2行目を追記してgit add -Aおよびgit commitし、3行目を書いて commit してない状態にします。 この時git diff HEAD^をすると、最後にコミットした変更点とコミットしていない変更点に変更箇所のマークがつきます。

$ git diff HEAD^
diff --git a/file.txt b/file.txt
index 2a5d015..6dac622 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1,3 @@
 1st
+2nd commit
+3rd unstage

git diff HEAD^..HEADをすると、最後にコミットした変更点のみに変更箇所のマークがつきます。

$ git diff HEAD^..HEAD
diff --git a/file.txt b/file.txt
index 2a5d015..eb27d5c 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1,2 @@
 1st
+2nd commit

上記は unstaged の結果ですが staged も同じ結果です。 file2.txt を追加してgit add file2.txtした状態でgit diff HEAD^をすると、以下のようにfile2.txtの変更点に追加で変更箇所のマークがつきます。

$ git diff HEAD^
diff --git a/file.txt b/file.txt
index 2a5d015..6dac622 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1,3 @@
 1st
+2nd commit
+3rd unstage
diff --git a/file2.txt b/file2.txt
new file mode 100644
index 0000000..5c1789c
--- /dev/null
+++ b/file2.txt
@@ -0,0 +1 @@
+3rd staged

参考

Git - git-diff Documentation

pexpect の pxssh は Windows では利用できないようだ

試した環境

本題

PythonSSH 接続してインタラクティブにコマンド実行したくて Pexpect の pxssh を使おうとしたところ以下のエラーが出ました。 import pexpect呼び出す方法では以下のエラーが出ます。

>>> import pexpect
>>> ssh = pexpect.pxssh.pxssh()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'pexpect' has no attribute 'pxssh'

from pexpect import pxsshで呼び出す方法では以下のエラーが出ます。

>>> from pexpect import pxssh
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\work\.venv\lib\site-packages\pexpect\pxssh.py", line 23, in <module>
    from pexpect import ExceptionPexpect, TIMEOUT, EOF, spawn
ImportError: cannot import name 'spawn' from 'pexpect' (E:\work\.venv\lib\site-packages\pexpect\__init__.py)

pxssh.pyの23行目で spawn を import しようとしてます。

from pexpect import ExceptionPexpect, TIMEOUT, EOF, spawn

__init__.pyを読むと、Windows ではpty_spawn.pyの spawn を import しないことになっており、結果 pxssh が利用できないようです。

if sys.platform != 'win32':
    # On Unix, these are available at the top level for backwards compatibility
    from .pty_spawn import spawn, spawnu
    from .run import run, runu

参考

pxssh - control an SSH session — Pexpect 4.8 documentation

FFmpeg で入力動画を再生時間と同じ速度で読み込むには -re フラグを使用する

試した環境

  • FFmpeg version 5.0.1-essentials

本題

FFmpeg で入力動画を再生時間と同じ速度で読み込むには-reフラグを使用します。 ストリーミングを再生速度より早くファイルを読み込みたくない場合に使えます。 -reは入力ファイル指定より前に記述する必要があります。

ffmpeg -re -i input.m3u8 -c copy output.mp4

似たようなオプションに-readrateフラグがあります。 これは後ろに正の実数を指定して、1秒間に何秒分のデータを読み込むか、つまり読み込みスピードを設定できます。 -readrate 1-reと等価です。

参考

StreamingGuide – FFmpeg

ffmpeg Documentation