sudo mkdir /mnt/dvd; sudo mount -t drvfs E: /mnt/dvd
E:
の部分を適切に/mnt/dvd
にファイルが展開されるsudo apt install genisoimage; mkisofs -rJ -o out.iso /mnt/dvd/
out.iso
が出来上がるので Windows からアクセス可能な場所に大事に置いておくインターネット、電話、左翼思想
ずっと放置してたのだが, カメラ (x100f) の修理依頼を出した. フォーカスモードをこのカメラは物理スイッチで切り替えるのだが, MF にしても MF にならない. その気になれば AF モードでも MF みたいなことはできるのだが, 気をつけないと勝手にフォーカスを変更するのでやっぱり不便だ. 修理は電話かインターネットに申し込むのだが, インターネットで申し込もうとすると Google Form だった. ここで壊れてる内容を書くのだが, 改めて精査すると, ファインダーが光学モード(ガラスで素通しに見るだけのモード)に切り替わらないという問題を見つけた. 普段は液晶表示しかしてないからなぁ. 8日に突然日通がやってきて何事かと思ったら, 梱包用のダンボールだけを持ってきて, カメラを引き取っていった. 二日後の今日の朝メールが来ていて, 修理にかかる費用を知らせてきて, このまま修理にすすめるかどうかを聞いてきた. 本当は値切りたかったが, 進めてもらった. 一万二千円にしっかり消費税が載せられた.
夢日記。将来はシャチに飲まれて死にたい話をした
映画「牛久」を見た. 感想は ここ に書いた. 間違えてもメジャーな上映なんてされないタイプの映画なので, 都内でも渋谷の小さな劇場一ヶ所だけで上映されていた. 鳴り物入りで上映された大きな映画が, 例えば最初の週のある一回だけ, 上映終了後に監督が来て出演俳優たちがやって来て舞台挨拶をするなんてあるが, なんとこの映画は毎週土日の夕方は毎回上映後に監督と配給会社の人がやってきて舞台挨拶という名の「質問タイム」が始まる. こういう場でぱっと面白い質問を私はいつも思いつけないので, 苦しい気持ちだった. 小さな小さな劇場なので途中で抜け出すなんてことももちろん出来ず, 時間一杯の質問タイムをただじっと黙って終わるのを待つだけだった.
FFFTP は FTPS をサポートしていて, FTPS は SFTP とは別物
苦というのは薄く伸ばせば飲み干せるというものではなく, 案外, 煮詰めて煮詰めて少量にすると勢いで飲めてしまうものだ.
"ル・サンク小石川後楽園"
渋谷川に沿ってひたすら歩くことをした. 渋谷川は源流すぐから渋谷駅の下をちょうどくぐり抜けるまで暗渠で, 抜けたところにある渋谷ストリームのすぐ下から開渠になっており, そこから河口までは, いわゆる川として眺めることができる.
川の地点を表現するのに, 定期的に架けられている橋の名前が便利だ. 開渠になるすぐ手前には "稲荷橋" が架けられており, 川だった名残であることが伺える. そのすぐ次の "金王橋" から川がお目見えする.
渋谷区内までを "渋谷川", 港区に入ってからを "古川" と呼称するようだ.
川のヘリ部分を観察したが, べたっと塗り固めたのが渋谷川, 石積みしているのが古川と見た目も全然違うので, 区が別々の体制で保全してることがよくわかった.
"天現寺橋" が川の境目になっている. この段差部分がそうなのではないかと, 勝手に推測する.
古川は, 特に芝公園あたりから, ほとんど川の上に首都高が走っており, すぐ川沿いを歩かせてくれないことが多くてつまらなかった. あんまり見えない内に河口となる.
"京都活具(Kyoto Katsugu) フライパン 鉄フライパン 26cm 油慣らし済 日本製"
2021/11/27 に 4100 円で購入していた. これが届いてからフライパンはこれしか使ってない. 初めての鉄フライパンなものでその "油慣らし済" の効果を正しく評価は出来ないのだが, 念の為に自分でも油慣らしを2日掛けてやり, 料理前には油回しをすることをしていた. 何を料理しても, くっつくことがほとんどなかった. 今では使ったあとは洗剤を使って洗うし, 火に掛けてしっかり水を飛ばすことだけ気をつけてる. 注意点として目で見てわかるような乾いたレベルにするだけでは駄目で, 200度くらいまで加熱してると水蒸気の煙が出るので, これが完全に消えるまでしっかり加熱しきることが大事. 手入れとしては, それくらいで, 今では本当に何を料理してもくっつくようなことがない. 完璧なフライパンが手に入ったので大変満足している.
Python 標準モジュールの signal. signal.setitimer
でタイマーが掛けられる. これで素直に手続きに時間制限を設けるといったことが出来る.
import signal
import time
class Timeout(Exception):
pass
def handler(signum, frame):
raise Timeout
def do_stuff(timeout: int):
print("start")
signal.signal(signal.SIGALRM, handler)
signal.setitimer(signal.ITIMER_REAL, timeout)
time.sleep(3)
print("end")
def do_safe_stuff(timeout: int):
try:
do_stuff(timeout)
except Exception as err:
print("Timeout", err)
do_safe_stuff(2)
do_safe_stuff(4)
積んでるゲームや本のことを時々思い起こしてストレスに勝手に感じてる. リストアップすることは一応自分を落ち着けることになるので良い.
どこかにメモしたと思ったんだけど見当たらないので改めて.
旅行先案:石廊崎 #idea
夢日記。パン生地を捏ねたばかりの状態のものが美味しそうだったので一個分を食べた。口の中で膨らむので飲み込むのが大変だった。甘くて美味しかった。
夢日記。仮想好きな人と旅行に行った。観光バスは乗客全員が静脈針を刺していてバスから栄養を摂取できた。バスの運転は荒かったが短時間でカロリーを摂取できて皆喜んだ。
「lain が鬱ゲー」はやや誇大広告 真の鬱ゲーは「アマガミ」
easy-scraper の純 Python 再実装 cympfh/easy-scraper-py を作った. これをラップした版の CLI コマンド cympfh/grepy を作った.
以前に tanakh/easy-scraper をもとに作った cympfh/web-grep と使い勝手は大体似せてる.
$ echo '<div> <b>x</b> <a>y</a> <b>z</b> </div>' | grepy '<b>{}</b>'
x
z
## デフォルトで ltsv を吐くように変更した
$ echo '<div> <b>x</b> <a>y</a> <b>z</b> </div>' | grepy '<div><b>{b}</b><a>{a}</a></>'
b:x a:y
実装に使った言語が違う以上に違うこととしてパーザ部分が違う. オリジナルの tanakh/easy-scraper は HTML をパーズするのに servo/html5ever が使われてる. これは文句なく HTML は正しくパーズできるが XML はサポートしてない(はずだ).
たいてい問題ないがたまに困る. <body>
以下の HTML5 に準拠して行儀よく書かれた HTML コードは処理できるが, <head>
以下のメタデータを読めないことがある. <body>
以下で乱用された <title>
タグ(これは <head>
以下で登場すべきタグだ)を正しく読めない. これはライブラリの問題ではなくて, 世の中の web は汚い HTML コードによって支えられてることが問題だ. しかしながら web スクレイピングとはそれと向き合うことを要求されている.
一番プレーンな XML としてパーズすることにした. だとすると難しいライブラリを使う必要などなくて, Python では標準モジュールに html.parser
というのがあって, これでただただタグの開閉だけ見ることにした. 何かタグが開いたらネストして, 何かタグが閉じたらネストを閉じる. それ以上の難しいことは考えないことにした.
タグが閉じるとき名前も見てないので </>
で構わない:
$ echo '<div> <b>x</b> <a>y</a> <b>z</b> </div>' | grepy '<b>{}</>'
x
z
grepy
→ web-grepy
にリネームした. リネームすると何が良いか. pypi に登録できるようになる.
$ pip install web-grepy
$ which web-grepy
$ curl ... | web-grepy '$PATTERN'
情報に関するエントロピー増大の法則. エントロピーの偏りがあるとき, ここに価値があるとして, 拡散が始まる. あるいは霧消するのを待つ.
全体の情報量はむしろ減るのであって, 保存則を期待する直感を裏切るので, 辛い.
C-m
と C-[
を使う癖
平均が \(\mu\) であるようなある1つの分布から, 独立に観測して得る確率変数 \(X_1, X_2, \ldots\) があるときに,
\[\forall \delta > 0, \lim_{n \to \infty} P( | \frac{1}{n} \sum_{i=1}^n X_i - \mu | < \delta ) = 1.\]連続関数 \(f\) で,
\[E[ f(\frac{1}{n} \sum X_i) ] = f(\mu).\]\(n\) 変数 \(x_1, \ldots, x_n\) に関する積分,
\[I_n = \int dx \left( \frac{1}{n} \sum_i x_i^p \right)^q\]これの \(n \to \infty\) なる極限値が大数の弱法則から求まる.
\(\int dx x^p = 1/(p+1)\) . これが各 \(x_i\) の平均値. \(f(-) = -^q\) を適用することで,
\[I_\infty = \left( \frac{1}{p+1} \right)^1\]を得る.
"Can you solve EVERY PLL with just ONE J Perm?"
すべての PLL を, setup + Jb + clean で解こうとするもの. ここで Jb は J-Perm(b) の手順(ただし末尾の U
操作を除いたもの)を表す.
ところで, PLL の練習をしていて J-perm(b) と T-perm はとてもよく似ていることに気がついた. 具体的には重なってる操作単位が大きい.
次の操作を H と呼ぶことにする. (操作手順における括弧は気持ちのグルーピングだけ表していて意味はない.)
(RUR'U') (R'F) (R2U'R')
すると, J-perm(b) と T-perm は次で表される:
(RUR'F') HU'
HU' (R UR'F')
実際には H
の後ろにはたいてい U'
が続いて HU'
が1セットになってる.
# J-perm (b)
XXb
XXa
Xab
# T-perm
XXb
aXa
XXb
まだいける:
(R'U'F') HU' (RUR'UR)
# F-perm
Xab
XXX
Xab
次は y-perm だが, これはよく見ると Jb がそのまま使われてる.
(R'U'RU') (RUR'F') HU' (UR'UR)
# y-perm
abX
bXX
XXa
わかりやすさのために HU'U
としてるがもちろんこれは H
に省略可.
次の V-perm は実際は F-perm を挟んでる
(RUR'U) (R'U'F') HU' (RUR'UR) (U'RU'R')
RUR'U
が F-perm のためのセットアップ# V-perm
XXa
XXb
abX