月報 2025/05, 2025/06

Thu 01 May 2025

12:47:06


https://httpcats.com/

 
httpcats.com/

Sat 03 May 2025

00:03:52

Sun 04 May 2025

15:35:51

TODO: fontawesome を捨てて Remix Icon になっていく.

Mon 05 May 2025

13:02:44


自由意志の定理
ジョン・H・コンウェイとサイモン・B・コーヘンの自由意志定理は、我々の選択が過去の関数ではないという意味で我々が自由意志を持っているならば、ある仮定のもとで、いくつかの素粒子も自由意志を持っているはずだと述べている。コンウェイとコーヘンの論文は2006年にFoundations of Physicsに掲載された。 [1] 2009年に、著者らはより強力な定理をNotices of the American Mathematical Societyに掲載した。[2]その後、2017年にコーヘンは詳細を詳しく説明した。[3]
 
jmedia.wiki/%E8%87%AA%E7%94%B1%E6%84%8F%E5%BF%97%E5%AE%9A%E7%90%86/Free_will_theorem

Thu 08 May 2025

12:12:43 使ってる定期券入れ

自分のためのメモ. 使ってるのは HIRAMEKI っていうメーカーのパスケース. 絵柄も含めてたぶんこれだったはず.


ラウンド|パスケース(定期入れ) スタンランミルク | HIRAMEKI.[ヒラメキ]WEB本店
ラウンド|パスケース(定期入れ) スタンランミルク ラウンド パスケース HIRAMEKI.[ヒラメキ]WEB本店,革小物・長財布・財布・バッグのオリジナルブランドHIRAMEKI.[ヒラメキ]本革にアートを施した他にはない革製品を展開。誕生日プレゼントやお祝いにもお勧めです。
 
www.e-hirameki.jp/c/item/pass/pass-ml-2000

絵柄はもうとっくに消えてる. "HIRAMEKI" ってロゴもかろうじて読み取れてどこのものか判別できた.

ズボンのポケットに入れたまま何度も洗濯乾燥させたんで, 色は真っ茶色に変色したし少し形も歪んでる. できればこれと全く同じものの新品に取り替えたい気持ち半分, 愛着があるからもう変えられない気持ち半分.

Wed 14 May 2025

16:17:57 昨日新しいPCが届いた

RTX 5080 を積んでるので mouse5080 というマシン名にした. 諸々必要そうなソフトウェアのインストールとセットアップはしたけどまだやり残してることがある

Tue 20 May 2025

12:36:26

自動化する手段が用意されているなら, まだそのソフトウェアは民主的で自由だ.

Fri 23 May 2025

12:47:16 GoogleStore のスマホ下取りは使うな

過去にも問題を起こしてるのを知らなかった私が悪い. 秋葉原にあるイオシスとかさ, 実店舗に直接行って対面でやり取りするほうが安心だと思った.

この当時から2025年現在も品川にあるPCSワイヤレスという会社が委託されてるらしい. 送り先はそこになっている.

想像するに問題は, 送られてくるスマホの量が多すぎて追いついてないんだろう. そして Google サポートとこの下取り業者の連携が全く取れていない. それにしても Google のサポートは酷かった. 終始自信の無さそうな声で自分たちのミスを認めてくれなかった.

  1. 下取りをお願いする (4/22)
  2. Google から下取りキットが届く (4/30)
  3. スマホを入れて返送する (5/1)
  4. そういえば音沙汰がない (5/22)
  5. Google Store のページでは「発送待ち」となってる (5/22)
    • つまりこちらがまだスマホを返送していないことになっている
    • でもそのすぐ下には郵便局の追跡番号とリンクがある
    • それをクリックすると「受取済み」となっている
  6. Google サポートに電話する (5/22)
    • 注文番号と下取りIDと郵便局の追跡番号を全部伝える
    • 酷い返答を受ける
      • 「届いてない可能性が高い」という言い方をする
      • 品川郵便局で停められているに違いない
      • そもそも品川郵便局から来るのはおかしい
      • 自分で郵便局に問い合わせて確認しろ
    • 疑問
      • 可能性が高いってなんやねん
        • 届いたか届いてないかの二択だろ
      • どうせ、届いたうえで下取りと紐づけられてないだけだろ
      • 追跡番号見れば状態は「受取済み」なのに何故頑なに郵便局で停まってると主張するの
  7. しれっと下取りが始まった (5/23 朝)
    • 昨日のやり取りについては何も触れられない
    • 形式的な「下取りが始まりました」と「下取り金額が確定しました」のメールが届くだけ

結果下取り上限の三万円が確定したんでいいんだけど, 一行か二行程度でもサポートからお詫びメールくらい来てほしかったね.

なんにせよ, Google ストアに余計なお世話を掛けたくはないので, 極力使わないようにする.

Sun 25 May 2025

16:09:34 Kelisli triple, Monad

\(\def\C{\mathcal C}\)

Kleisli triple とはいくつかの条件を持った \((T,\eta,\#)\) のこと. 自分の理解のために対応する Maybe モナドを横に書いておく.

Maybe X = Something X | Nothing

圏(特に型の圏) \(\C\) で考える.

構成要素 数学的な意味 Maybe モナドでの意味
\(T\) 自己関手 \(\C \to \C\) 任意の型 X に対して Maybe X という型が存在すること
\(\eta\) 任意の \(A \in \C\) について射 \(A \to TA\) を与えるポリモーフィズム return x = Something x という関数 return
\(\#\) 射 \(f \colon A \to TB\) があったときに射 \(f^\# \colon TA \to TB\) を定める fmap f という関数が存在して,
fmap f (Something x) == f x ,
fmap f Nothing == Nothing

次の3つの条件を要請する.

条件 Maybe モナドで書き直した条件
\(f \colon A \to TB\) について \(f = f^\# \circ \eta_A\) f x == fmap f (return x)
\(\eta_A^\# = 1_{TA}\) fmap return m == m
\(f \colon A \to TB, g \colon B \to TC\) についての合成則 \(g^\# \circ f^\# = (g^\# \circ f)^\#\) 後述

最後の条件は

(fmap g) . (fmap f) == fmap (fmap g . f)

例えば Nothing に適用すると

(LHR) = (fmap g) . (fmap f) Nothing = Nothing
(RHR) = fmap (fmap g . f) Nothing = Nothing

自明に成立. Something x に適用すると

(LHR) = (fmap g) . (fmap f) (Something x) = (fmap g) (f x)
(RHR) = fmap (fmap g . f) (Something x) = (fmap g . f) x

というわけでやはり成り立っている.

Thu 29 May 2025

19:31:05

Kensington の SlimBlade Pro 購入した. 前々から気になってたんだけど, 昨日 Amazon を見たら一万六千円が一万三千円になってたんで. もう今日の夕方届いた.

標準アプリの Kensington Works でボタン機能を割り当てた. まずはこれで勝負する.

サードパーティ製のツールを使えばもっと割当を増やせられるらしいけど, どうせほとんど使わないことは過去の自分が実証している. 意味のないボタンの押し方を覚えられるわけがないので.

左下と右下が通常の左クリックと右クリック. 同時押しで中クリックになる.

上の「Win+Shift+KeyS」は Windows のスクリーンショット機能. これは絶対多用することが分かってる.

右上の「左クリック」は左クリックとしか表示されてないけど, 実は Shift を重ねてる. ブラウジングの際に新しいタブで開くのに使う. でも大抵のブラウザでは「中クリック」で同じ挙動をしてくれるのでこれは要らないのではないか. でもまあ同時押しなんてしなくて済むならしないに越したことはない.

左上の「BackSpace」はブラウザでページを戻るために使う.

まだ上下対称に配置換えすべきかとも思ってる. つまり左クリックと右クリックを左上と右上に配置すべきではないかと.

トラックボールを水平方向に回すとスクロールになる. これは「水平方向」の判定がちょうどよく甘い. スクロールしたいときにちゃんとスクロールになる. そして人差し指をどうしても折り曲げないといけないあのスクロールホイールから開放された喜びが大きい.

2025/07/04 追記

今はこうなった

Tue 03 Jun 2025

12:53:11 AutoHotKey 設定開陳

Windows が好きな理由の一つに AutoHotKey の存在がある.


AutoHotkey

 
www.autohotkey.com

これによってキーボード操作やマウス操作の挙動を自由に上書きできる. Windows API を直接利用してるから自由度が高いし安定しているし遅延みたいなものも感じられない.

現時点の設定がこれ.

##Requires AutoHotkey v2.0
##Include IMEv2.ahk

; vim-like keybinds
; Ctrl + `[ is Esc
^[::
{
    IME_SET(0)
    Send "{Esc}"
    return
}
; Alt + ...
!h::Send "{Left}"
!j::Send "{Down}"
!k::Send "{Up}"
!l::Send "{Right}"
!m::Send "{Enter}"

; For Vivaldi
##HotIf WinActive("ahk_exe vivaldi.exe")
; yy copies the URL
:*B0:yy::
{
    Sleep 100
    Send "^l"
    Sleep 100
    Send "^c"
    Sleep 100
    return
}
##HotIf

ちょっと解説してみる.

##Requires AutoHotkey v2.0

v2.0 以降の記法を使うことを宣言している. ネットで適当に調べると v1.0 の記法がまだまだ多いので注意.

##Include IMEv2.ahk

IMEv2.ahk というファイルを読み込んでいる. これは GitHub - k-ayaki/IMEv2.ahk: Autohotkey v2.0 でIMEを制御する関数群 から頂いたものを同じディレクトリに保存してる. このスクリプトは IME の状態を取得したり変更できる関数を提供してくれる.

; Ctrl + `[ ::
^[::
{
    IME_SET(0)
    Send "{Esc}"
    return
}

Ctrl + [ を押したときの挙動を定義している. ターミナルを使う人は Ctrl + [ は Esc キーと同じ意味を持つ. 特に Vim は Esc を多用するから Ctrl + [ に慣れておくと便利だ. このときについでに, IME を無効にするとより便利だ. ノーマルモードにいるときに, ひらがな入力をすることなんて無いから. {} の中が実行される処理で, IME_SET(0) で IME を無効にし, Send "{Esc}" で Esc キーを送信している.

; Alt + ...
!h::Send "{Left}"
!j::Send "{Down}"
!k::Send "{Up}"
!l::Send "{Right}"
!m::Send "{Enter}"

頭の !Alt キーを意味する. !hAlt + h のこと.

私のキーボード (HHKB) には矢印キーが無い. 一番右下にある Fn を右手小指で押しながら, 右手人差し指で [;'/ らへんを押すと矢印キーになるのがデフォルトだ. 右手の小指がいつも腱鞘炎になっている理由の一つがこれだ. そもそも矢印キーを極力使わないのが HHKB の思想ではあるんだが, 現代においてそういうわけにもいかない.

一つだけ HHKB Studio という最新の HHKB を持ってる. これはカスタマイズの自由度が増えた. そしてスペースバーの更に下に3つキーが増えた. デフォルトでこれはマウスのクリックになってるのだが, Fn をここに持ってくることが出来る. というわけで私は左手親指でスペースバーの下にある Fn を押しながら右手で h/j/k/l を押すことで矢印キーを入力できるようにしている.

それはいいんだが, じゃあ他のPC はどうするのか. そちらは昔の HHKB が刺さってる. わざわざ PC を切り替えるたびにキーボードを持っていくのか. 面倒だ. 結局どのキーボードでも使える設定を共有するのが良いと思う.

というわけで, どうせ他のアプリケーションで使ってないような Alt + h/j/k/l を矢印キーだということにした.

ついでに Alt + mEnter にしてる. これも小指を労るための設定だ. でもまだ癖で小指で Enter を押してしまってる. m にしてる理由はターミナル環境で ^M が改行コードだから.

; For Vivaldi
##HotIf WinActive("ahk_exe vivaldi.exe")
; yy copies the URL
:*B0:yy::
{
    Sleep 100
    Send "^l"
    Sleep 100
    Send "^c"
    Sleep 100
    return
}
##HotIf

#HotIf は条件を書いていて, Vivaldi がアクティブなときだけ以下のキー割当を有効にするという意味. 次の #HotIf までが有効範囲.

yy と入力したら {} の中が実行される. Ctrl + L でアドレスバーにフォーカスを移動し, Ctrl + C で URL をコピーする. 間に Sleep 100 は入れたほうが良い. 最初と最後にも入れておくのも必要.

また yy の前にある謎の *B0 だがこれは次の意味がある.

Vivaldi 自体の設定でショートカットキーを定めてもいる. 例えば g でページトップまでスクロール移動, Shit + g でページボトムまでスクロール移動などを設定している. でも「URL をコピーする」という項目が無かったのでこれだけは AutoHotKey で実装している. ただし Vivaldi で設定できることは出来るだけ Vivaldi の中で設定するのが良い. 例えばテキストエリアの中の入力でも yy が有効なので, yy を入力した時点でフォーカスがアドレスバーに移動してしまう.

Fri 06 Jun 2025

12:11:35 腱鞘炎の治し方:その指を使わない

定期的に右手小指が腱鞘炎になる. 明らかに Enter キーのせい.

あと HHKB 特有だが矢印キーのために右下の Fn キーを使う. これも右手小指で押す.

Enter キーは薬指で押すこと.

あと AutoHotKey で Alt+m を Enter にした. でもIMEの変換候補の決定みたいな細かい操作はやっぱりEnterキーを使う癖が染み付いて離れない. 押すなら薬指でという癖をつけようとしてる.

矢印キーも Alt + h/j/k/l に割り当てた. Alt な理由は Alt で修飾するようなショートカットキーを他に使ってないから. Alt はどのキーボードでも大体同じ位置にあって同じように左手親指で押せるから.

Tue 10 Jun 2025

12:14:35

最近見た夢3日分をちゃんと覚えてる.

夢日記。自分に五歳の息子がいた。五歳の状態で突然夢の中で出会ったのでお互いにどこか他人行儀に敬語で話している。息子は私に歳を尋ねる。私は少し躊躇するのだった。

夢日記。身近な人が死ぬ。悲しいがここは戦場なので黙って受け入れるしかない。それよりも、頼りにしていた人なのでこれからは自分が引っ張らなければならない。今後のことを考えよう。

夢日記。教室に行くと私の机が廊下に出ている。何故か犯人がすぐに分かった。その人のもとに行く。私は何もいわずまずその人の机の上のものを叩いて床に落とす。その人の机をわざと大きく上に持ち上げ、自分の場所に運んだ。多くの人がやめろと私を静止しようとしたが、かえって危ないから離れてくれと私は言って払った。私はまだ、こんなに幼稚に怒れるのかと呆れた。

Mon 23 Jun 2025

12:54:44

SVD-AE

Thu 26 Jun 2025

18:21:33 WSL/Windows 間でクリップボードを共有する

基本いつも Powershell を経由して Get-ClipboardSet-Clipboard を使ってた. しかも文字コードで死ぬことが常なので, WSL/Windows で共有するテキストファイルへの読み書きを経由させることで文字コード問題を回避してた.

こんなシェルスクリプトを使ってる.

TMP_WSL=~/Downloads/clip.txt
TMP_WIN="C:/Users/$WIN_USER/Downloads/clip.txt"  # TMP_WSL と同じファイルを指してる

copy() {
    cat | nkf -s >$TMP_WSL
    powershell.exe /c "Get-Content $TMP_WIN | Set-Clipboard"
}

paste() {
    powershell.exe /c "Get-Clipboard -Format Text > $TMP_WIN"
    cat $TMP_WSL | nkf | tr -d '\r'
}

Vim/Neovim エディタでもこのスクリプトを噛ませることで, 環境を気にしないでクリップボード操作を実現させてきた.

しかし, 一つだけ大きな問題があって, powershell.exe の呼び出しに一秒程度平気で掛かってしまう. WSL からコピーした直後にブラウザでペーストしようとすると大抵間に合わない.

lemonade というツールを見つけた.


WSL2とneovimでクリップボードを共有する(lemonade) - Qiita
背景 もともとwindowsにてvirtualboxの仮想環境を扱っておりましたが、 諸事情によりWSL2に乗り換えることとなりました。 virtualboxではlemonade を使用し、 windows側でlemonadeサーバーを立て、仮想環境からwindows側へ...
 
qiita.com/r12tkmt/items/ddb75886b69dc4a328c3

GitHub - lemonade-command/lemonade: Lemonade is a remote utility tool. (copy, paste and open browser) over TCP.
Lemonade is a remote utility tool. (copy, paste and open browser) over TCP. - lemonade-command/lemonade
 
github.com/lemonade-command/lemonade

要は Windows にサーバを立ててしまって WSL からはそのサーバに HTTP リクエストを投げるだけの形にするらしい. 試してみた. 日本語を入れても簡体字を入れても変な文字化けは起こしてない. そして高速だ. 自前のシェルスクリプトにもこれを組み込んだ.


clip use lemonade if available · cympfh/bin@c32bb5c

 
github.com/cympfh/bin/commit/c32bb5cd3a82015c749752cc0787b71c4962af46