@kyanny's blog

My thoughts, my life. Views/opinions are my own.

罪の声

前から気になってたけど読み切れる気がしなくて二の足を踏んでいたが奥さんが読む気になってあっさり読み終えてしまい、実家の母に送る予定だというのでその前に読もうと思って何週間かの中断を挟みつつ読んだ。

映画化されて帯にも映画のワンシーンが映ってるようなバージョンで、どうしても読みながら役者の顔が脳裏にチラついてしまい、もっと前に読めばよかったと少し後悔した。配役は逆のほうがしっくりくる、というか両方とも星野源でいいと思う。

f:id:a666666:20201125015038j:plain

書影まで実写化されてしまって、あのおどろおどろしい表紙の印象が台無しだ。

罪の声 (講談社文庫)

罪の声 (講談社文庫)

  • 作者:塩田武士
  • 発売日: 2019/05/15
  • メディア: Kindle版

Python: Git ブランチ名に .py が含まれると flake8 が誤作動する場合がある

  1. Git ブランチ名に .py が含まれる(例: fix/foo.py
  2. flake8--exclude オプションを指定して実行する(例: flake8 --exclude venv .

という条件を満たすと、以下のようなエラーが発生することがある。

./.git/logs/refs/heads/foo.py:1:42: E999 SyntaxError: invalid syntax
./.git/logs/refs/heads/foo.py:1:80: E501 line too long (157 > 79 characters)
./.git/logs/refs/heads/foo.py:1:98: E225 missing whitespace around operator
./.git/logs/refs/heads/foo.py:1:114: E225 missing whitespace around operator
./.git/logs/refs/heads/foo.py:1:128: E225 missing whitespace around operator
./.git/logs/refs/heads/foo.py:2:80: E501 line too long (150 > 79 characters)
./.git/logs/refs/heads/foo.py:2:98: E225 missing whitespace around operator
./.git/logs/refs/heads/foo.py:2:114: E225 missing whitespace around operator
./.git/logs/refs/heads/foo.py:2:128: E225 missing whitespace around operator
./.git/logs/refs/remotes/origin/foo.py:1:42: E999 SyntaxError: invalid syntax
./.git/logs/refs/remotes/origin/foo.py:1:80: E501 line too long (146 > 79 characters)
./.git/logs/refs/remotes/origin/foo.py:1:98: E225 missing whitespace around operator
./.git/logs/refs/remotes/origin/foo.py:1:114: E225 missing whitespace around operator
./.git/logs/refs/remotes/origin/foo.py:1:128: E225 missing whitespace around operator
./.git/refs/heads/foo.py:1:2: E999 SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
./.git/refs/remotes/origin/foo.py:1:1: F821 undefined name 'da7d6585eeac60722e04b10f612acb327e9cd72c'

これは、

  • --exclude オプションを明示したことによって flake8--exclude オプションの初期値がクリアされる(初期値には .git が含まれる)
  • flake8.git 以下をチェック対象にする
  • .git 以下に Git が内部的に利用するファイルがあるが、ブランチ名に .py が含まれるとそれらのファイルが Python スクリプトのように見える
  • flake8 が見かけ上 Python スクリプトっぽいファイルに syntax check を実施してエラーを出す

という仕組みで発生しているようだ。

対策としては、 --extend-exclude オプションを利用する。

$ flake8 --extend-exclude venv .

Microsoft Authenticator のバックアップの注意点

1. Azure AD アカウントは復元できない

なので、職場で Office365 (Azure AD) によるアカウント管理が導入されている場合、 Microsoft Authenticator アプリを再インストールしたりスマートフォンを初期化したりすると、自力で 2FA の再設定ができずアカウントから締め出されてしまう。

docs.microsoft.com

重要

保存されるのは、個人およびサードパーティのアカウントの資格情報のみです。

(snip)

さらに検証が必要なアカウントを復旧する

個人用アカウントや職場または学校アカウントでプッシュ通知を使用する場合、情報を復旧する前に追加認証を提供する必要があることを示すアラートが画面に表示されます。 (snip) 個人用 Microsoft アカウントの場合、代替電子メールや電話番号と共にパスワードを入力して本人確認することができます。 職場または学校アカウントの場合は、アカウント プロバイダーから提供された QR コードをスキャンする必要があります。

他端末のブラウザのログインセッションが生きている間は、以下の手順に従い、自力で QR コードスキャンをして 2FA を再有効化することもできる(実際、一度はそれで有効化できた)。しかし、ログインセッションが切れてしまうと 2FA を要求されてしまうので、常に有効な方法ではない。

blog.azure.moe

対策としては、 Microsoft Authenticator 以外の 2FA 手段を追加登録しておくこと。ベーシックな SMS 認証があれば十分だが、 Authy も追加してバックアップを有効化しておくと盤石。

2. バックアップを有効化した後で追加したアカウントはバックアップ対象外

そんなバカなと思ったが、そういうものらしい。

doitu.info

新しいアカウントを追加しても、バックアップが即座に自動的に実行されされることはありません。 これはつまり、放置しておくと最初に「クラウドのバックアップ」をオンにした以降に追加されたアカウントはバックアップされない、ということです。

対策としては、上記ページにあるように、バックアップをオフ(削除)→オン、という操作で最新のバックアップを再作成できるらしい。

まとめ

  • 2FA app は Authy 一択
  • 2FA app を過信しないこと。電話番号 (SMS) 認証を追加できる場合は追加すべき
  • Microsoft Authenticator のバックアップ機能にはガッカリ