Drafts

@cm3 の草稿置場 / 少々Wikiっぽく使っているので中身は適宜追記修正されます。

Windows10×Let's Noteでカーソルが表示されなくなった時

世の中にいろいろ解決策が示されているが、画面タッチしたりキーボード使ったりを行き来していて突如消えてしまった時は再起動しかないことがほとんど。この「再起動」が曲者で、

  • 再起動
  • シャットダウン&電源入れる

どっちもを繰り返さないと復帰しない。まだ5回くらいしか出会っておらず、条件を絞り切れていないが、

  1. シャッドダウン
  2. 電源入れる
  3. 再起動

の流れが最も効率的な復帰の仕方な気がする。…この叩けば直るテレビ感。

ed25519 を公開鍵認証で使う

SSH鍵の暗号化方式を強化してみた。 | しま★りん.blog @ayurina とおなじく、Ubuntu 16.04 アップグレードの際に、key type ssh-dss not in PubkeyAcceptedKeyTypes になってしまったために ssh でログインできなくなり、現在最強の ed25519 を使うことにした。→結局 4096bit rsa を使っている。(途中の X2GO について参照)

Windows で ed25519 キーの生成するには puttygen の最新版を使う

PuTTY Download Page から、beta 0.67 だとだめで、The latest development snapshot だと、ed25519 を作成することができた。

autorized_keys 内の書式

ssh-ed25519 [キー本文] [ラベル]

参考:

X2Go ができなくなる!

リモートデスクトップ環境として X2Go を使っているが、そのクライアントが、ed25519 だけでなく ecdsa にも対応していない。

一時だけ、~/.ssh/config/etc/ssh/sshd_config の双方に、PubkeyAcceptedKeyTypes=+ssh-dss を記入して sudo service sshd restart するという手がある。…がそんなことするならそもそも 4098bit rsa 使えばいいじゃん…。

代替策として Chrome Remote Desktop を試そうとしたが

XMPP プロトコルで ポート 5222 を空ける必要があり、大学のサーバでは不可

その他参考

GitHub のコミット一括削除方法

どこまでもどるか決める、一括削除が適切か立ち止まる

多くの人が参加しているようなプロジェクトではコミットログをいじることは望ましくないとか、基本的にはコミットログをいじることは推奨されていません。パスワードのような機密情報をアップしてしまったとか、大容量のファイルを誤ってアップしてしまったとかそういう場合に適切なんじゃないかと思います。私の場合は後者でした。

また、いざという時のために現在のワークスペースをどこかにコピーしておくことをお勧めします。

手元のワークスペースを直前のコミットの状態に合わせる

git reset --hard HEAD

手元のコミットログを削除

たとえば4つ前まで戻す場合は

git rebase -i HEAD~4

すると

pick c047b57 コミットメッセージ1
pick 7ad53bb コミットメッセージ2
pick 4904961 コミットメッセージ3
pick 0f4a444 コミットメッセージ4

みたいなのを編集する画面になるから、残したいコミットだけを残して削除、保存、エディタを閉じる。

Successfully rebased and updated refs/heads/master.

みたいなメッセージが出る。

それを強制的に GitHub にあげる

git push origin +master

この + 記述が無いと Updates were rejected エラーが出ます。

以上。

参考

盆に見た映画の感想。ネタバレ容赦なし(見ていないと意味が分からないと思う)。3つ見たうちの2つに関するメモ。身から出た錆で意気消沈していたので、映画でも見れば気分が変わるかもと期待して。

『セッション』90点

前から見たいなとは思っていた。その理由の一つはジャズをテーマに扱った映画であることだったが、結論から言えば、特にジャズ映画としてはノれなかった。でも、見る価値のある映画だった。あと、注意点として、セッションという邦題はマーケティング上の理由だろうが全く内容を反映していない。

私はこの映画のメインテーマを「求道」だと捉えた。禁欲、自己との闘い、ライバルとの競争や、師弟のありかたも基本的にはその一部に過ぎない。「求道」に関してそういうモチーフはありふれている。平成19年度入学式(大学院)総長式辞 | 東京大学 での「孤独を恐れぬ勇気」からのくだりや、『たたかう音楽』の著者高橋悠治に関するドキュメンタリー なんかも私は連想した。

次世代を育てるための過剰なまでの厳しさを語るシーンは、その後の裏切り行為によって建前として否定されたとみるべきではない。あれも確かにフレッチャーの本音だ。求道において being upset (これを「悔しい」と訳したのは非常に的確だ)は重要な推進力だ。誰にでもそれが効くわけでもなければ、度を越せば鬱や自殺だって引き起こす。Sean Casey を殺してしまったことは大きな損失であるし、フレッチャーはそれにショックを受けている。交通事故という嘘もその罪悪感の裏返しだろう。しかし、

But I tried. I actually fucking tried.

とそういう教育法を実践したことを誇るフレッチャーを殴りつけることができる言葉は、直前の本人の言葉

I never really had a Charlie Parker.

「結果が全て」だということだけだ。そしてその結果は最後に訪れる。拳で殴り掛かったり、倫理的に糾弾することは、求道の埒外だ。アンドリューは最後の喧嘩に音楽で答える。だから結果的にはフレッチャー的なるものが一貫して流れている。Sean Casey に対するフレッチャーの涙のエピソードや女の子への激励はその流れと共存する。

ホモソ云々は、そうラベリングすることがどう役立つのか意味があるのか見当がつかないので詳細な言及を放棄する。

映画の中と同様、現世ではフレッチャーは指導者としては放逐されるだろう。日本なら、芸術家としてさえも放逐されかねない。だからこそ、心の中にフレッチャーを。

余談1

途中の

アンドリュー: Because I wanna be great.

ニコル: And you're not?

アンドリュー: I wanna be one of the greats.

のやり取りで出てくる「偉大」概念や、序盤でフレッチャーに言わされる

I'm here for a reason.

自らの意志で音楽をやっているのだという宣言は、その中身のなさ(「偉大」とはなにかが分からない、理由は何かがわからない)が印象的だ。求道における信念というのは最後に言葉では説明できないものがあるほうが強かったりするものだ。

余談2

Charlie Parker のシンバルエピソードは不正確らしい。参考: Getting Jazz Right in the Movies - The New Yorker

あまり史実をこういう不正確な使い方するのは好きではないし、フレッチャーが自分に都合よく覚えているとしても、それをどっかに注記しておくのが良いかと思う。もとから映画なんかすべてフィクションだとエンドロールにも書いてあるし、そこを気にするのは好みの問題でしかないが。

参考


BUDDY RICH IMPOSSIBLE DRUM SOLO HQ

最後のシーンの元ネタらしい

エターナル・サンシャイン』70点

ナンパをする映画ということで推薦された。ビフォア・サンセットを例に挙げたので、「電車の中で」という部分も含めて一致している(そんな推薦ができることに驚きw)が、あの強引で我儘な感じは女性が口説く側だから許されるのであって、見ててヒヤヒヤするものだった。

クレメンタインがメンヘラキャラで、記憶の消去というネタも、メンヘラの記憶喪失から発想したのかなと思った。そういう意味では途中SFな設定が出てくるものの、非常にリアリティのある映画だった。でも、最後はただ刹那的な恋の肯定に聞こえてしまい、ただ寂しく感じた。

映画のつくりとしては、素晴らしかった。見てる側が記憶消去後の場面から見るため主人公と同じ当惑を感じるとか、過去の思い出が消去のために挿入される構図とか、無駄がなく完璧だった。

僕は映画に薬としての効能を求めるので、見た後に落ち込んじゃうこの映画はおそらく再訪しないと思う。

cron で source コマンドを有効にする方法

結論

crontab に

SHELL=/bin/bash

と書くことで、シェルが bash に切り替わり、source コマンドが使えるようになる。

参考

Windows コマンドプロンプトから Python に変数を渡す

結論

  • スペースを含む変数の場合は " で囲う必要がある。
  • しかし、~(チルダ) を使って自分で設定した変数の "(ダブルクオート)は外せない
    • %変数の使い方に書かれているような特殊変数には効果あり。
    • だから、ちゃんと受け渡し先で解釈されるように試行錯誤。
  • " で囲った場合は \ は基本的には一つでOK
    • ただし、" 直前に \ を置く場合は \\ とする。
    • 例: set path="C:\hoge\fuga piyo\hogera\\"

以下テスト例

> set a="a a"
> python test.py %a% %a%

['test.py', 'a a', 'a a']

> python test.py %a %a
['test.py', 'a']

> set b="b\"
> python test.py %b% %b%
['test.py', 'b" b"']

> set c=c\
> python test.py %c% %c%
['test.py', 'c\\', 'c\\']

> set d=d\\
> python test.py %d% %d%
['test.py', 'd\\\\', 'd\\\\']

> set e=e e\\
> python test.py %e% %e%
['test.py', 'e', 'e\\\\', 'e', 'e\\\\']

> set f="f f\\"
> python test.py %f% %f%
['test.py', 'f f\\', 'f f\\']

> set g="g\\ g\\"
> python test.py %g% %g%
['test.py', 'g\\\\ g\\', 'g\\\\ g\\']

> set h="h\ h\\"
> python test.py %h% %h%
['test.py', 'h\\ h\\', 'h\\ h\\']

> python test.py %~h%
The following usage of the path operator in batch-parameter
substitution is invalid: %~h%

For valid formats type CALL /? or FOR /?

> set i="i i\"
> python test.py %i% %i%
['test.py', 'i i" i', 'i"']

test.py

import sys
print(sys.argv)