There's an echo in my head

日々のメモ。

シン・エヴァンゲリオン劇場版 :||

見た。

www.evangelion.co.jp

毒気を根こそぎ抜かれるかのような、これ以上ないほど晴れ渡るような終わり方だった。 この問題はシンジくん側の人間にだけでなく、ゲンドウについても寄り添わないと解決しないということに本作を見て初めて気づいたし、そこを深掘りして整えてくれた。踏み込むべきはそこだったんだ。 世界観についての謎は最終作にも関わらずさらに増えたけど、でも物語としてはこれでちゃんとケリがついたように思う。

序、破、Qは劇場では見ていなかった。ちょうどアニメから離れていた頃だったんだと思う。 ただ、2013年の東京Ruby会議10の追加開催のサブタイトルに本作をもじった「シン・東京Ruby会議10 劇場版 ||=」をつけていたことを考えると、そこからだけでも8年経っていたわけで、長い。 新劇場版の制作がガイナックスではなくカラーになった話も考えると、お疲れ様でした、というほかない。

閃光のハサウェイ

みた。

gundam-hathaway.net

とても面白かった。映像が美しく、冒頭の旅客機が大気圏へ再突入する際の様子と、そこで静かに流れるテロップからすぐに心が引き込まれた。主人公の操るガンダムが暴れ散らかすような話ではなく、全体として機体が暗闇の中で描かれることが多かったこともあって重厚感を感じた。機体の描写よりもそこにいる人々の描写が多いところも好みに合ったのだと思う。

原作は読んでいないし、劇中でも細かい背景は説明されないので状況を推測しながらになる部分は多いけど、それでもストーリーを楽しめた。ハサウェイたちの活動について、後日 Twitter でこんなツイートを見かけて、でも彼は彼で悪手だということに薄々なりとも気付いているんだろうなとも思った。

この映画を観た後に久しぶりに逆襲のシャアを見直した。見直している最中、ブライトさんが映るたびに「この人、ハサウェイがああなるって知ったらどんな気持ちになるんだろう…」という懸念が頭から離れなかった。

劇中のハサウェイのように、細身のスーツ一着でアクティブに動いて戦っている人を見るとかっこいいなと思う。 (他にも例えばキングスマンとか)

三部作らしいので続編も楽しみだし、本作ももう一度見に行きたい。

the pillows “RETURN TO THE THIRD MOVEMENT Vol.3” at 渋谷 duo MUSIC EXCHANGE

おっかなびっくりしながら行ってきた。本当にみんな元気でよかった。でも2時間近く立ってるのが大変になっちゃったんだよなあ。でもよかった。

さわおが肉体は衰えても、心はそれとは別に老いないようにしているというようなことを言っていて、そういうものかもなと思った。思考の出力方式としての体が衰えるから、それによって思考の幅が狭まることもあると思うけど、でもそればかりでもないのかもしれない。

いやでも今日は(といってもこれを書いているのは12月だけど)本当にみんな元気でよかった。

OpenSSL の -trace オプションを使って SSL/TLS のメッセージを観察する

openssl s_client コマンドの -trace オプションを使うと SSL/TLS のメッセージを人間に優しい形でみることができる。 どういうメッセージが見られるかは OpenSSL with trace などで試すことができる。

ただ、リファレンスにある通り、このオプションは enable-ssl-trace をつけてビルドをしないと利用できず、例えば apt で配布されているバイナリでは無効になっている。

なので、 Debian buster コンテナ上でのビルド方法をここにメモしておく。

$ docker run -it --rm buildpack-deps:buster bash
root# cd /usr/local/src
root# curl -O https://www.openssl.org/source/openssl-1.1.1d.tar.gz
root# tar zxf openssl-1.1.1d.tar.gz
root# cd openssl-1.1.1d
root# ./config enable-ssl-trace && make && make install && make clean && ldconfig

こんな感じ。

root# openssl s_client -trace -connect google.com:443 -cipher "DEFAULT:@SECLEVEL=2"
CONNECTED(00000003)
Sent Record
Header:
  Version = TLS 1.0 (0x301)
  Content Type = Handshake (22)
  Length = 301
    ClientHello, Length=297
      client_version=0x303 (TLS 1.2)
      Random:
        gmt_unix_time=0xBF8D65C0
        random_bytes (len=28): (snip)
      session_id (len=32): (snip)
      cipher_suites (len=62)
        {0x13, 0x02} TLS_AES_256_GCM_SHA384
        {0x13, 0x03} TLS_CHACHA20_POLY1305_SHA256
        {0x13, 0x01} TLS_AES_128_GCM_SHA256
        {0xC0, 0x2C} TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        {0xC0, 0x30} TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        {0x00, 0x9F} TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
        {0xCC, 0xA9} TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
        {0xCC, 0xA8} TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
        {0xCC, 0xAA} TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
        {0xC0, 0x2B} TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        {0xC0, 0x2F} TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        {0x00, 0x9E} TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
        {0xC0, 0x24} TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
        {0xC0, 0x28} TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
        {0x00, 0x6B} TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
        {0xC0, 0x23} TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
        {0xC0, 0x27} TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
        {0x00, 0x67} TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
        {0xC0, 0x0A} TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
        {0xC0, 0x14} TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
        {0x00, 0x39} TLS_DHE_RSA_WITH_AES_256_CBC_SHA
        {0xC0, 0x09} TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
        {0xC0, 0x13} TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
        {0x00, 0x33} TLS_DHE_RSA_WITH_AES_128_CBC_SHA
        {0x00, 0x9D} TLS_RSA_WITH_AES_256_GCM_SHA384
        {0x00, 0x9C} TLS_RSA_WITH_AES_128_GCM_SHA256
        {0x00, 0x3D} TLS_RSA_WITH_AES_256_CBC_SHA256
        {0x00, 0x3C} TLS_RSA_WITH_AES_128_CBC_SHA256
        {0x00, 0x35} TLS_RSA_WITH_AES_256_CBC_SHA
        {0x00, 0x2F} TLS_RSA_WITH_AES_128_CBC_SHA
        {0x00, 0xFF} TLS_EMPTY_RENEGOTIATION_INFO_SCSV
      compression_methods (len=1)
        No Compression (0x00)
      extensions, length = 162
        extension_type=server_name(0), length=15
          0000 - 00 0d 00 00 0a 67 6f 6f-67 6c 65 2e 63 6f 6d   .....google.com
        extension_type=ec_point_formats(11), length=4
          uncompressed (0)
          ansiX962_compressed_prime (1)
          ansiX962_compressed_char2 (2)
        extension_type=supported_groups(10), length=12
          ecdh_x25519 (29)
          secp256r1 (P-256) (23)
          ecdh_x448 (30)
          secp521r1 (P-521) (25)
          secp384r1 (P-384) (24)
        extension_type=session_ticket(35), length=0
        extension_type=encrypt_then_mac(22), length=0
        extension_type=extended_master_secret(23), length=0
        extension_type=signature_algorithms(13), length=42
          ecdsa_secp256r1_sha256 (0x0403)
          ecdsa_secp384r1_sha384 (0x0503)
          ecdsa_secp521r1_sha512 (0x0603)
          ed25519 (0x0807)
          ed448 (0x0808)
          rsa_pss_pss_sha256 (0x0809)
          rsa_pss_pss_sha384 (0x080a)
          rsa_pss_pss_sha512 (0x080b)
          rsa_pss_rsae_sha256 (0x0804)
          rsa_pss_rsae_sha384 (0x0805)
          rsa_pss_rsae_sha512 (0x0806)
          rsa_pkcs1_sha256 (0x0401)
          rsa_pkcs1_sha384 (0x0501)
          rsa_pkcs1_sha512 (0x0601)
          ecdsa_sha224 (0x0303)
          rsa_pkcs1_sha224 (0x0301)
          dsa_sha224 (0x0302)
          dsa_sha256 (0x0402)
          dsa_sha384 (0x0502)
          dsa_sha512 (0x0602)
        extension_type=supported_versions(43), length=9
          TLS 1.3 (772)
          TLS 1.2 (771)
          TLS 1.1 (770)
          TLS 1.0 (769)
        extension_type=psk_key_exchange_modes(45), length=2
          psk_dhe_ke (1)
        extension_type=key_share(51), length=38
            NamedGroup: ecdh_x25519 (29)
            key_exchange:  (len=32): (snip)

Received Record
Header:
  Version = TLS 1.2 (0x303)
  Content Type = Handshake (22)
  Length = 122
    ServerHello, Length=118
      server_version=0x303 (TLS 1.2)
      Random:
        gmt_unix_time=0x142E888C
        random_bytes (len=28): (snip)
      session_id (len=32): (snip)
      cipher_suite {0x13, 0x02} TLS_AES_256_GCM_SHA384
      compression_method: No Compression (0x00)
      extensions, length = 46
        extension_type=key_share(51), length=36
            NamedGroup: ecdh_x25519 (29)
            key_exchange:  (len=32): (snip)
        extension_type=supported_versions(43), length=2
            TLS 1.3 (772)
(snip)

2020/12/25 Homecomings の BLANKET TOWN BLUES 日本橋三井ホールに行ってきた

もう1ヶ月以上前のことだけど、行ってきた。

当日は仕事で開演から20分ぐらい遅れて到着し、照明が明るくなって指定席に移動できるようになるまでの20分ぐらいは後ろの方で立って見ていた。

コロナ禍の中でライブに行くのは初めての体験で、入り口のところでまずは手をアルコール洗浄し、チケットも自分でもぎって差し出されるビニール袋に自分で入れる、会場内では演者以外が喋らず拍手のみで反応を返す、という徹底した状況だった。終演後も建物から出るまでほとんど会話がなかった。参加者としても徹底している。 ただ、MCの中で畳野さんが「みなさんにお知らせがあります」とメジャーデビューの話を予定より早く切り出そうとしてつっこまれていた時には、会場も声を出して笑っていた。

1年前の2019/12/22の PET MILK の際に福富さんが「世界が優しくなくなっている」と言っていたけど、今回は「優しくないニュースもあるけど、優しいニュースもある」というような話をしていて、ネガティブな状況のなかでもポジティブなところも見ようとしているのかなあと上から目線ながら感じた。

個人的にメジャーとインディーズの境界が曖昧になってきているので、メジャーデビューの話を聞いたときには「あっ、インディーズだったんだ」という気持ちだったけど、多分それは外にいるからで、中の人たちからしたらきっと嬉しいことだから、そう考えるとめでたい。

最初に演奏された Blue Hour がとても好きで、今回遅刻で生演奏を聴けなかったことが残念だったけど、でも帰宅してから配信で聴くことができた。感染症の蔓延自体はネガティブな出来事だけど、それが引き金となってこうやって新しい手段が増えること自体はとても嬉しい。

youtu.be

今ならライブのディレクターズカット版が1500円というお手頃価格で配信されているのでこちらもお勧めである。 https://t.pia.jp/pia/ticketInformation.do?eventCd=2031028&rlsCd=001&lotRlsCd

セットリスト

Yahoo!ニュースより抜粋。

01. Corridor(to blue hour)
02. Blue Hour
03. Hull Down
04. Lighthouse Melodies
05. Smoke
06. Living Life
07. ANOTHER NEW YEAR
08. LEMON SOUNDS
09. HURTS
10. Special Today
11. Have Yourself A Merry Little Christmas
12. Moving Day Part1
13. Continue
14. PLAY YARD SYMPHONY
15. Cakes
16. Songbirds

<アンコール>
17. Whale Living

<ダブルアンコール>
18. Pedal
19. I Want You Back

screen で reattach しても ssh-agent が効き続けるようにする。

仙石浩明の日記: ssh-agent を screen の中から使う方法 に書かれているように、 screen のなかで ssh-agent を使うにはちょっと一手間がいる。この中の環境変数 $SSH_AUTH_SOCK を毎回書き換える処理が、 OpenSSH 7.3 から導入された IdentityAgent を使うことで不要になっていたのでメモ。

なお、以下は全て screen を実行するリモートホスト側での作業になる。

まず ssh ログイン時に実行される ~/.ssh/rc で、 $SSH_AUTH_SOCK を元にシンボリックリンクを作る処理を入れる。これは従来と同じで、 ssh-agent のソケットファイルを同一のパスで指定できるようにするための対応である。

#!/bin/bash

# Fix SSH auth socket location so agent forwarding works within tmux/screen
if [ "$SSH_AUTH_SOCK" ]; then
  ln -sf $SSH_AUTH_SOCK ~/.ssh/agent.sock
fi

そして ~/.ssh/config で IdentityAgent にこのシンボリックリンクを指定する。

Host *
    IdentityAgent ~/.ssh/agent.sock

参考

macOS をセットアップするときに設定しているもの

OS のバージョンによって変わっているかもしれない。

:memo: Sonoma 以降に対応した記事を書いた。

確認ダイアログのボタンを Tab キーで選択できるようにする

Preferences -> Keyboard -> Shortcuts -> Use keyboard navigation to move focus between controls

スクロールバーを常に表示する

System Preferences -> General

自動補正をだいたい無効化する

System Preferences -> Keyboard -> Text

同一アプリケーション内のウィンドウを Option+Tab で切り替える

System Preferences -> Keyboard -> Shortcuts -> Keyboard

Terminal.app のタブを Ctrl+Tab で切り替える

System Preferences -> Keyboard -> Shortcuts -> App Shortcuts

Select~ と Show~ の両方を設定しているのは、バージョン間のメニュー名の差異によるものだろうか。

Terminal.app からコピーするときに装飾を除外する

$ defaults write com.apple.Terminal CopyAttributesProfile com.apple.Terminal.no-attributes

Terminal.app でコマンド実行した行に角カッコが付かないようにする

$ defaults write com.apple.Terminal AutoMarkPromptLines -bool NO

https://apple.stackexchange.com/questions/209635/what-functionality-do-marks-offer-in-the-el-capitan-terminal

タイトルバーのファイル名をダブルクリックしたときにファイル名の変更をしない

$ defaults write -g ApplePersistence -bool no

Google Chrome.app でスワイプしたときにナヴィゲーションの操作をしない

$ defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool FALSE

円マークでバックスラッシュを入力する

  1. Input method の設定画面を開く
  2. 日本語入力の ¥ の入力でバックスラッシュを入力するよう選択する
  3. あわせて Input modes でローマ字にチェックを入れる
  4. そうすると Input method で ABC の項目がマイナスボタンで削除できるようになるので、削除する

https://materialsinformaticsbeginner.blogspot.com/2021/03/backslash-setting-bigsur.html

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。