数学オンラインテストモジュール STACK 4.5.3(2020081700) を LMS Moodle 3.9.1+ on Debian GNU/Linux 10.5 buster にインストール

公式ドキュメント

にしたがってインストール. Debian 10.5 buster では

# apt install maxima gnuplot

$ maxima --list-avail
Available versions:
version 5.42.1, lisp gcl
$ gnuplot --version
gnuplot 5.2 patchlevel 6

となった.

ところが, Moodle の サイト管理/プラグイン/問題タイプ/STACK/動作確認スクリプト では,

CASは何も評価された式を返しませんでした。CASとの接続を確認してください。 CASは期待したとおりデータを返しましたが,エラーがありました。
(%i1) 
file_search1: stringproc not found in file_search_maxima,file_search_lisp.

などとなる. 使用する Common LISPgcl ではだめで sbcl が必要だったことがあるのを思い出し, sbcl 対応の maxima

から取ってくることにした(Debian 上で自分でコンパイルすることもできるだろう). このバージョンにしたのは, STACKの設定で選べる最新バージョンだから.

# apt remove maxima
# dpkg -i maxima-common_5.42.2-1_all.deb 
# dpkg -i maxima-sbcl_5.42.2-1_amd64.deb 
# maxima --list-avail
Available versions:
version 5.42.2, lisp sbcl

これでキャッシュを消して再度 health check すると, いくつか warning はでるものの pass した.

Insync CLI版での Debian/GNU Linux への Google Drive からのリストア

Insyncは, Google Drive とローカルドライブとの同期用の有料の3rd party 高機能クライアント+サービス.

特筆すべきは, Linux 用の CLI 版(デスクトップを使わない headeless サーバ 用)を, 無サポートの旧バージョン 1.5.7 ではあるが提供している.

Debian 7 wheezy 用の deb, Fedora Core 24 用の rpm が提供されているが, Delian 10 buster でもインストールできた*1.

使い方は現在でもこの説明が正しい*2.

クラッシュした Linux home の Insync による Google Drive からのリストアの経緯

home を一定頻度でフルバックアップ, Insync でいくつかのフォルダを(同期フォルダ内に home 内のへの symbolic link を作ることにより)常時バックアップしている Debian がクラッシュした.

別の host にフルバックアップをリストアしたのに続いて, Google Drive のバックアップを手動でダウンロードして最新まで戻そうとする. いくつかのフォルダはリモートレポジトリに git push してあったので, pull してきた.

ここで, 別の host に Insync headless をインストールして, 常時バックアップを始めようとした. すると, 「このホストは登録済みです」のようなことを言われ, 同期用フォルダが作られないのに Insync が CPU を使っている状態になっていた. これはなぜかというと, Google/Insyncアカウントや同期用フォルダの情報が home 内にファイルとして残っていて, それに基づいて, 新たにインストールした Insync が動作を開始していたのだった.

ここで不安になるのは, どちら向きの同期が起きるかということ.

  • ローカルのフルバックアップに欠けている最新のファイル群が削除されたと見なされGoogle Drive 側で削除される
  • Google Drive 側のローカルに未同期とみなされ, ローカルにコピーされる

結果論としては後者が起きた. 再現性はチェックしていない. Google Drive 側で作成したファイルも, 旧 host で symbolic link を介して追加されたファイルもあったのだが, 同じ振る舞いだった.

ただ, git pull した部分は履歴情報が壊れたかもしれないわけで, 今後どのように振る舞うか観察する必要がある.

*1:ただし, curses で書かれたメニューベースの選択同期の設定はエラーが出て使えなかった. Python(ライブラリ)のバージョンの問題か?

*2:ただしインストールは dpkg -i *.debで.

mac miniでLG UltraFine 5K Displayを高解像度(5120x2160)で使用

LG UltraFine 5K Display では5K表示(5120x2880)が可能.

www.apple.com

Mac mini (macOS 10.15 Catalina)では,

最大2台のディスプレイ: Thunderbolt 3経由で接続した5,120 x 2,880ピクセル解像度、60Hzのディスプレイ1台と、HDMI 2.0経由で接続した4,096 x 2,160ピクセル解像度、60Hzのディスプレイ1台

www.apple.com

とのこと. LG UltraFine 5K Display はApple Storeに載っている製品だから, 当然5120x2880表示(相当のフォント密度での表示)が可能かと思うが, 環境設定 > ディスプレイではその選択肢でもっとも dense な表示にしても, 4Kでもっともdenseな表示よりも表示できる文字数は少ない.

5Kの意味ないじゃん, と言いたくなるが, 実は, 「変更」ラジオボタンの Option+クリックで下の様な選択肢が出る. もうすべてのボタンは Option+クリックして何かいいことが起きるかどうか観察しないといけない?

f:id:hig3:20200814061657p:plain

このことは下の記事から学んだ.

www.macotakara.jp

これらの解像度も含めメニューバーにプルダウンメニューに出してくれるアプリがある.

Display Menu

Display Menu

  • Milch im Gemüsefach
  • ユーティリティ
  • 無料
apps.apple.com

余談だが, 上の切替をしているうちに, mac mini から HDMI 出力できなくなったことがあった. 仕様をよく読むと, HDMI 出力は HDMI ポートから1個だけしかできない(上の仕様参照. USB-C や Thunderbolt にHDMIコンバータをつないでもだめ. 実験した). けっきょく, PRAM リセットで復活した.

iPad Pro 12.9inch Gen1 から Gen4 への変更とマイクロフォン接続

以前は, IPad Pro 12.9inch 1st Gen と Apple Pencil 1st Gen, Explain Everythingを使ってスクリーンキャストの動画を作っていた. マイクとしては

使っていた. マイクレベルの調整は, GarageBand で行っていた.

iPad Pro 12.9inch を 1st Gen から 4th Gen に置きかえると, Lightning から USB Cに, Apple Pencil 1st Gen から 2nd Gen に変わるけど, 接続をApple USB-C Digital AV Multiportアダプタ に変更すればほぼそのままでいいでしょ, と思っていたら, だいぶ試行錯誤が必要だった.

*1:商品ページには Micro USB - Lightning ケーブルでつなげばよいと書いてある

*2:Apple Lightning - USBカメラアダプタでは電力が足りないと言われた

ふたつの helm ひとつの auctex

helm には, Emacs Lisp のパッケージ と Kubernetes のパッケージマネージャがあるのか. 後者が後発だけど知名度は高い?

MacPorts の helm-3.1 ports は後者. 前者は MacPorts では emacs port を入れた後で MELPA から取得する. ややこしいことに, MELPA には, kubernetes-helm というパッケージもある. これは後者を Emacs の中から使えるようにするもの.

一方, MacPorts において, auctex ports がある一方, Emacs から MELPA 経由でも auctex を取得できるが, これらは同起源のもの. MacPorts の auctex は MacPorts の texlive との整合性のために修正されているのだろう.

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル

  • 作者:るびきち
  • 発売日: 2011/11/26
  • メディア: 単行本(ソフトカバー)

MacのVisual Studio Code を, 特定ユーザが起動できない問題の診断と解決

2018年末頃の最新の Visual Studio Code, macOSSnow Leopard OS X Server での話.

Macの/Application にインストールした Visual Studio Code を, ローカル管理者は起動できるのに, 一般ユーザ(の一人?)は起動できないことを発見. エラーメッセージは何もでない.

こういうときは, ファイル/ディレクトrの permission の問題か, いまの場合一般ユーザは OpenDirectory で管理し, Home は NFS Driveなので, それらが関係するか, かと疑ったが, 最初は診断の方法が思いつかなかった.

shell% open Visual Studio Code.app

はオプションを受け付けないが,

shell% /Applications/Visual Studio Code.app/Contents/Resources//app/bin/code" --verbose

は叶であることに気づく.

出力は

[main 18:29:23] Could not delete obsolete instance handle { Error: ENOENT: no such file or directory, unlink
'/Network/Servers/NFSSERVERNAME/Volumes/home/USERNAME/Library/Application
Support/Code/1.21.1-main.sock'

ということで, NFSも関係するかもしれないが, このユーザの Visual Studio Code が以前に異常終了したことに起因するものだった. フォルダごと消去すること, 正常に Visual Studio Code が起動するようになった.

rm -r /Network/Servers/NFSSERVERNAME/Volumes/home/USERNAME/Library/Application
Support/Code

徹底解説Visual Studio Code

徹底解説Visual Studio Code

はじめてのVisual Studio Code (I・O BOOKS)

はじめてのVisual Studio Code (I・O BOOKS)

Visual C++2019パーフェクトマスター

Visual C++2019パーフェクトマスター

Windows 10 で Symantec Endpoint Protection がインストールされているとき Server Manager ウィンドウが開かない

Windows 10 の Server Manager は, リモートの Windows Server や Hyper-V Server を操作するためのアプリケーション*1. Windows 10 に大規模なアップデートが来るたびに, イントールされていたものが消去されていたり, 新規インストールの方法が変わったり, かなり心配なことが起きる*2.

ServerManager が October 2018 Update で消されたので再インストールし, 起動しようとしたが, アプリケーションウィンドウが現れない. 繰り返し起動したが同じ. TaskManager で見てみると, 繰り返し起動された複数のインスタンスが CPU 100% を取り合っている状態で, ウィンドウが出ないだけだとわかる. ここから後はかなりあてずっぽうだったが, このへんでセキュリティソフトウェア SEP = Symantec Endpoint Protection が関係しているという記事を見つけたので, SEPをアンインストール(停止だけでなく)したところ, Server Manager は正常にウィンドウが開くようになった. SEPのバージョンの情報があると他の人に役立つところだが, 記録できていない.

social.technet.microsoft.com

高いけど, Windows Server の Hyper-V, Windows Server の Server Manager のほうが変化が少なくて気楽だな〜

できるPRO Windows Server 2016 Hyper-V できるPROシリーズ

できるPRO Windows Server 2016 Hyper-V できるPROシリーズ

ひと目でわかるHyper-V Windows Server 2016版 (ひと目でわかるシリーズ)

ひと目でわかるHyper-V Windows Server 2016版 (ひと目でわかるシリーズ)

*1:CUIベースの単独の Hyper-V Serverに使ってる.

*2:特に, CUIHyper-V Serverはサポートが薄く, Server Manager に特別な設定が必要なので.