何もしてないのにGoogle認証に弾かれるようになった件と対処法

■tl;dr: 設定→コードの時刻調整→今すぐ同期

■状況:ある時 github にGoogle認証経由でログインしようとしたところ,authenticator が生成する数字を使ってもログインできなくなった.もちろんパスコードは期限内のものを使っている.

■問題は何だったか:
同様のトラブルがないかググったところ,どうもスマホの時刻がGoogleと同期していない状態になってしまっているらしいことがわかった.

■解決法:スマホの authenticator の右上をタップすると「設定」が出現するので順に「コードの時刻調整」「今すぐ同期」と押すと同期が回復する(はず).こうして再び github にログインできるようになった.

■IT関係で「何もしてないのに壊れた」という話が出ると大抵「これはやってもかまわないからノーカンでしょ」という行動で(相談者が)致命的な間違いを犯していることが多い.今回は「これはノーカン」ということも含めて特別な行動を起こしたことがないのに同期がズレてしまった.これからは誰かに相談されても「何もしてないのに壊れるわけないでしょ」と言ったり思ったりしないようにしないとな~.

(python) PIL(Python Image Library)で画像が表示されないトラブルとその解決法

■tl;dr: sudo apt install imagemagick

■状況: PIL(Python Image Library) というモジュールを使って次のようなサンプルを書いた:

from PIL import Image

im = Image.open('lena.jpg')
im.show()

WSL(Windows Subsystem for Linux) にインストールした anaconda (python環境の一つ)で実行するとlena.jpg が表示されるはずなのに何も表示されない.

■この現象の起こる理由:
下記の「参考にしたページ」によるとPILは xv または display という画像ビューワを呼び出す.しかしUbuntuのように eog (Eye of Gnome) という画像ビューワしかデフォルトでは持たない場合画像表示が失敗する.

■(とりあえずの)解決方法: imagemagick をインストールする.すると display が提供されるようになり,PIL での画像表示がうまくいくようになる.WSLの場合X環境が必要になるのでWSLからevinceを使う方法で説明したような方法で整備をする必要がある.

■参考にしたページ:https://stackoverflow.com/questions/16279441/image-show-wont-display-the-picture

G13(左手デバイス)で「押下しているときだけGキーが効く」ようにする

https://github.com/dif-engine/memo/blob/master/G13/script.lua

G13というロジクール製の左手デバイスがあります.(現在は廃盤ですが「Logicoolゲームソフトウェア」でサポートされています).このデバイスは,挙動をLuaスクリプトで制御できます.今回は「Gキーを押している間だけ有効にする」というのをやってみました.(上のコードです).

グラフィックソフトにおいてスペースバーに「手のひらツール」が割り当てられていることがあります.多くの場合,スペースバーを押し下げている間だけこのツールが有効になり,手を離すと直前に使っていたツールに遷移します.

以前のロジクール製G13ドライバにはこのような挙動をさせるための機能があったのですが,Windows10になってから削除されてしまいました.そこでこのような挙動をさせるためのLuaスクリプトを書いてみました.

上に貼った github のコードの「GtoKeys」という関数を好みに合わせて編集して使ってください.
例えば「G1」を押すと「ABC」キーが押されるようにしたければ g[1] の箇所を
g[1] = {"a","b","c"};
とすれば良いです.「G2」を押すと「Shift+B」が押されるようにしたければ g[2] の箇所を
g[2] = {"lshift", "b"};
とすれば良いです.一文字だけ割り当てる場合には
g[4] = "d";
のようにします.

G13(というデバイス)にはG1~G22の合計22個のGキーが並んでいますが,実はジョイスティック部分なども(内部的に)Gキーとして扱われます.スクリプトを書く際の参考にしてください.
pic

WSLにlatexを入れる(自分用メモ)

■やめといたほうがいい: sudo apt install texlive

■おすすめ:
sudo apt install wget perl-tk
mkdir tmp; cd tmp
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xzf install-tl-unx.tar.gz
cd install-tl-*
sudo ./install-tl

★最後に ~/.bashrc を編集して
export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH
export INFOPATH=$INFOPATH:/usr/local/texlive/2018/texmf-dist/doc/info
export MANPATH=$MANPATH:/usr/local/texlive/2018/texmf-dist/doc/man

(2018 のところは年によって数字が違うが,上のインストールスクリプト完了時のメッセージを参考にして欲しい).

■ネットワークインストーラがうまく動かない場合は iso を使う.ここが参考になる. 数GBあるのでFree Download Manager などのダウンロードツールを使う.

Windows10ではisoファイルを通常のフォルダのように開けるがWSLからはそのままでは見えない.isoファイルをダブルクリックして開いたときに割り当てられているドライブレターを確認しておく.手元のノートパソコンで試したときにはDドライブになっていた.

$ sudo mkdir -p /mnt/d
$ sudo mount -t drvfs D: /mnt/d
$ sudo /mnt/d/install-tl

SSH メモ

■秘密鍵から公開鍵を復元する:
$ ssh-keygen -y -f 秘密鍵のパス > 復元した公開鍵のパス

■github で使われるFingerprintの取得:
$ ssh-keygen -l -E md5 -f 鍵のパス

参考にしたサイト:
ssh-keygenで秘密鍵から公開鍵を生成する
https://gist.github.com/yosemitebandit/1994947

Maxima のplot2dが動かないとき(メモ)

Windows再インストール後に久しぶりにMaximaでグラフを描かせようとしたら次のようなエラーメッセージが出た:

Maxima encountered a Lisp error:
OPEN: Directory #P”C:\\Users\\USERNAME\\AppData\\Local\\Temp\\” does not exist
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.

F:\maxima-5.41.0a\binにあったmaxima.batでMAXIMA_TEMPDIRをエディタで編集し,

if not defined MAXIMA_TEMPDIR set "MAXIMA_TEMPDIR=%TEMP:\=/%"

とあった行を

if not defined MAXIMA_TEMPDIR set "MAXIMA_TEMPDIR=%TEMP:\=/%/maxima"

と修正した.Maximaを再起動すると今度は無事にグラフが作成できた.

古いPCにDebianを入れた記録(自分用メモ)

PCが一台余ったのでDebianを入れることにした.いままではLinuxといえばUbuntuしか使ったことがないのだけど,岡部さん(@master_q)にプッシュされたという理由で今回はDebianを入れてみた.

■インストール用isoファイルのダウンロード
余ったPCには今まで64ビットWindows 10 が入っていたので,アーキテクチャは「amd64」となる.
このページから firmware-9.5.0-amd64-DVD-1.iso をダウンロードする.(このページに限らず,大きなサイズのファイルをダウンロードするときには Free Download Manager のようなものを使うことは大事だ.このようなツールを使うと途中でDLに失敗しても再開できる).

■isoファイルの書き出し.
ダウンロードしたisoファイルをWin32Disk ImagerでUSBメモリに書き出す.

■古いPCのインストール前準備
十年ぐらい前からのPCでは起動時にF2を押そうがF8を押そうがすぐにWindowsが立ち上がってしまう.UEFI画面を出す方法などはPCによって少しずつ違う.各自調べてほしい.

■Debianのインストール
適当に終わらせた.

■stack のインストール
Debianのaptで入るstackはバージョン1.xで,これでは stack upgrade もできない.
仕方ないのでcurl経由で無理やり最新版stackを入れた:

$ su
パスワード:
# apt install curl
# curl -sSl https://get.haskellstack.org/ | sh -s - -f
# stack --version
Version 1.9.1, Git revision ....

参考にしたページ
Debian GNU/Linux インストールガイド

4.3. USB メモリでの起動用ファイルの準備

本気で Haskell したい人向けの Stack チュートリアル

■謝辞 この記事を書くにあたり,岡部さん(@master_q)にはいろいろお世話になりました.

wxMaximaのインストーラ(自分用メモ)

検索上位に来なかったので自分用にメモ.
ここからインストーラを取ってくる.

TeXStudio for Windows の設定(自分用メモ)

■目標:platex で作った文書を扱う.

■コマンドの編集
[オプション(O)]>[TeXStudioの設定(C)]を選んで設定パネルを表示する.
必要ならば左のカラムで「コマンド」を選び,右のカラムのコマンドを編集してゆく:
・LaTeX
(old)latex.exe -src -interaction=nonstopmode %.tex
(new)platex.exe -no-guess-input-enc -kanji=utf8 -synctex=1 -interaction=nonstopmode %.tex
・BibTeX
(old)bibtex.exe %
(new)upbibtex.exe %
・Biber
(old)biber.exe %
(new)biber.exe --bblencoding=utf8 -u -U --output_safechars%

texstudiosetting001+

■ビルドの編集
左のカラムで「ビルド」を選び,次のように編集する:
texstudioBuildSetting

参考にしたページ:
TeXstudio/設定/Windows

git for Windows のhomeを好きな場所に設定する

git for Windows の home を F:\WSLHOME に設定してみよう.

1. Git for Windows のサイトに行ってインストーラをDLする.

2. (オプション)インストール時にはなるべくこのようにしたほうが良いと思う:
gitbashInst1

3. $HOME を設定する.「PC」を右クリックして「プロパティ」→ 「システムの詳細設定」で「環境変数」を選ぶ.

次にユーザー環境変数を新しく作る.「新規(N)」を押して
変数名:HOME
変数値:F:\WSLHOME
としてやる.OKしてコントロールパネルを閉じる.

参考にした記事:
Git for Windows tip: Setting $HOME and the startup directory