月報 2024/08, 2024/09

Mon 12 Aug 2024

13:12:07 Quest3 + Pro touch

Quest3 + Pro touch (Proコントローラ). この組み合わせは Meta 公式にサポートはされてこそいるがなかなか微妙だ. 私の場合, 次のような問題によく遭遇する。

公式に問い合わせたことはあるが, ペアリングをやり直せ, 電源を入れ直せのテンプレ回答以上の文言を引き出せなかったので諦めてる. この問題が起きるタイミングは次の2つだ.

  1. Quest 起動時
  2. しばらくコントローラの動きがなかったとき
    • スリープ状態(省電力のため?)なのかもしれない
    • でもこれは少し動かしたりボタンを無意味に押してみたらすぐもとに戻る

2 は書いてる通り本来問題がないのだが, SteamVR を噛ませるとスリープ状態になったまま元に戻らないような挙動になる. しかしあくまで SteamVR から見た状態なだけであって, Quest から見ると実際には正しく動いている.

この2ケースについて一応の解決策を見つけた.

  1. Quest 本体の電源ボタンを何度か押して見る
    • 再起動する必要はない
    • 軽く一度だけ押すと Quest 自体はスリープモードになる
    • スリープ復帰のタイミングで運が良ければコントローラの位置調整が始まってくれる
    • あとは数分気長に待つのも良い
  2. Meta メニュー (右手のメニューボタン) を軽く押す
    • SteamVR が悪いだけなので一瞬 SteamVR を抜けたら良い
    • これも再起動まではする必要がない
    • Meta メニューボタンを軽く一度押す
      • "Steam リンク" を閉じますか/再開しますか の画面が現れる
      • この画面は SteamVR ではなくて Quest の画面なのでここでしばらく待って手を動かしてみる
      • コントローラが復帰するはず
(2024/10/03 の追記) コントローラのドライバ(?)は定期的に更新される. ちなみにこの更新は自動であって拒否したりダウングレードはできない. 更新のたびに上記の問題は全く起こらないときもあるが, 次の更新でまた発生する. そういうものだ.
(追記その2) 解決策 3 がある. コントローラのスリープ状態とそこからの復帰状態を何度か繰り返させることだ. コントローラの電源を落とすのも手だが, ずいぶん時間がかかる (きっちり10秒間 meta ボタンを押し続けることで電源が落ちる). 充電器に置いて充電状態にする, また手に取る, ということを何度か繰り返すことで, スリープと復帰ができる. これで解決することもたまにはある. 全く解決しないこともある.

Tue 13 Aug 2024

21:47:52 傷ついたのは誰の心?

傷ついたのは誰の心?

もしかすれば筒井康隆の短編で一番好きかもしれない. 一番は言いすぎたな. 一番は「睡魔のいる夏」だから.

罪の大きさを心の傷で測ってはいけない. 加害者だって同様に傷つくものだから. それを知っていれば本作は全く不条理な小説ではなくなる. ふとした時に口にしたくなる.

傷ついたのは誰の心.

Thu 22 Aug 2024

14:28:21

生きやすさのためのコツ

  1. 適切にお金は無いフリをしておく
  2. 適切にお金はあるフリをしておく
  3. 友達は少数精鋭にしておく

Fri 23 Aug 2024

11:22:49

ごめんなさいと謝りながら, 何かお酒を二杯飲んだ

Fri 30 Aug 2024

16:13:43

duolingo で中国語やってたんだけど, 先週くらいにセクション2まで終わったらセクション3が始まるんだけど, これが何かというとセクション2までの内容をひたすら何度も復習するというもの. 復習するにしても内容が偏ってるんで答えを暗記してしまった. 毎日変わらない復習をするだけで, 初めのうちは何かおかしいなと思いながら馬鹿正直にやってたんだけど, もうこれ以上テキストが無いのだとようやくわかって duolingo を閉じた.

16:27:53 withcache

たぶん絶対便利なコマンド考えた. コマンドの頭に withcache と付けるとコマンドの結果をキャッシュしてくれる. 例えば

curl http://google.com

は毎回問い合わせちゃうけど, 代わりに

withcache curl http://google.com

と実行すると, 初回は問い合わせて, 続けて1時間程度はキャッシュを残しておいて, 実際に問い合わせずにキャッシュをそのまま出力して済ませる.

試しに書いてみた.

stdout しかキャッシュしない. MacOS でしか動作確認してない. 問題があったらちゃんと書き直す.

(2024/09/05 の追記) シェルスクリプトで書いてたけど Python で書き直した. シェルスクリプトでコマンドオプションを正確に受け取るのは難しい. 案の定バグを仕込ませてしまっていた.
(2024/10/03 の追記) withcache は今現在でもお気に入りのコマンドになった. もっと短いコマンド名にエイリアスしておくと良いかもしれない. 例えば @ は実は自由に使えるみたい. alias @=withcache としてしまおう.

Sat 31 Aug 2024

17:43:08 vrc/#夏

タグ検索をできるようにした

ちょっと面倒くさい事情があった.

このページは URL の cympfh.cc/vrc/#XXX#XXX の部分 (つまり location.hash ) を仕様通り適切に使っていた. 次の仕様だ.

HTML/DOM のある要素が id=XXX の場合に #XXX でアクセスするとその要素を先頭にした位置までスクロールしてくれる. 加えて, css で :target 及び :not(target) を指定することで #XXX にアクセスするときとしないときとで id=XXX のスタイルを変える事ができる.

cympfh.cc/vrc はこれを利用して大量の要素に id を振って並べていた. #XXX にアクセスしてくれたときだけ, 該当する要素にスクロールしてそれだけを大きく表示してそれ以外を小さく表示するという見せ方をしていた. これ仕組みは今でもお気に入りの手法だ.

ここにタグ検索をできるようにした. #TTT にアクセスしたら TTT という文字列にヒットする要素だけを並べることにする. 結果的には, id=TTT という要素がそもそも存在しなければ先程述べた挙動とはバッティングしない. 存在する場合には先程の挙動が実行される. しない場合は自分で書いた JavaScript が実行されるようになっている.

本来バッティングする仕組みが2つ混ざっているのだが, 結果的に都合よく動いている.

Tue 03 Sep 2024

20:46:01

oil.nvim を試してみてる. Lua 製なので nvim でしか動かないんだが, nvim で動くファイラ. ほとんど netrw みたいな見た目と操作性なんだけど, 機能は全部揃ってるので欲しいだけ高機能に扱っていいし, 興味がないなら netrw に少し毛が生えたくらいの機能で満足していい. 私はそれで十分なんじゃないかと思って昨日から生活してみてる.

ネットで拾った最低限の設定だけ採用してる. デフォルトでは <C-p> でプレビューなんだけど私はこれはタブ操作に割り当ててるので <C-v> にした. MacOS の上でネイティブで動かしてると delete_to_trash は本当にちゃんとゴミ箱に移動してくれる. WSL2 の場合はどうしよう.

(2024/10/03 の追記) ranger をやめた. ranger 自体は vim/nvim プラグインではなくて TUI のファイラーなのだが, 追加で nvim の中で使えるプラグインを入れていた. しかしまあ Python スクリプトでもあるし依存が多く動作が安定しない. あと単純に重たい. oil.nvim で満足してる. nvim を使ってる最中はもちろんだし, ただターミナルにいる場面でも nvim . とやって oil.nvim を立ち上げるほうが便利が場面が多々ある.

Fri 06 Sep 2024

12:49:19

一番グリーンウォッシュで馴染み深いのアレよね. この木、何の木。

Fri 20 Sep 2024

18:14:53

Mac/Karabiner. Control-1/2/3 でそれぞれ英字入力/日本語入力/中国語入力を一発で切り替えるようにした. 元々 Control-Space で順繰りに切り替えてて, IMEがちょうど二つのときは今使っているもう一方のIMEになるだけなので簡単だったが, 三つ以上あるともうついていけない. しかもその順繰りの順序が最近使った順なので, 余計に困難を極める.

config.json

{
    "description": "Use Control+1/2/3 to switch language.",
    "manipulators": [
        {
            "from": {
                "key_code": "1",
                "modifiers": {
                    "mandatory": [
                        "control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "select_input_source": {
                        "language": "en"
                    }
                }
            ],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "2",
                "modifiers": {
                    "mandatory": [
                        "control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "select_input_source": {
                        "input_mode_id": "com.apple.inputmethod.Japanese"
                    }
                }
            ],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "3",
                "modifiers": {
                    "mandatory": [
                        "control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "select_input_source": {
                        "language": "zh"
                    }
                }
            ],
            "type": "basic"
        }
    ]
}

Thu 03 Oct 2024

二ヶ月に一回こうやって手元の日記を集めて一つのテキストにまとめる作業をしてるんだけど, 分量的に三ヶ月に一回でも十分かもしれないと思い始めた. 奇しくも一年の12ヶ月は3の倍数でもある.