@kyanny's blog

My thoughts, my life. Views/opinions are my own.

悔しいけどいまは note が良い

はてなブログ周辺に蔓延するアフィリエイトブログとスパム行為には、乗り換えを考えるほどではないものの、何かを書く気が失せる程度にはうんざりさせられている。

対して note は、良い書き手が集まっているのだなと否応にも感じさせられる。 Google で検索したり SNS でシェア・リツイートされてきてふと読んでみて、良いこと書いてあるなあと思う記事はだいたい note だ。書き手は見たことも聞いたこともないひとたちばかりで、たぶん id: という表記では無いからそう感じるのだろうし、というかこの人たちははてな id を持ってなさそうだなという気もする。

自分にはあの「誰が書いてもおしゃれに見える」感じは合わないし*1、はてながブログサービスを提供する限りはここで書き続けるつもりだから note を選ぶことはないが、もし誰かにブログをはじめたいけどどれがいい?と聞かれたら、悔しいけどいまは note を勧めると思う。

*1:同じ理由で Instagram にも未だに馴染めない

zsh git completion error: __git_func_wrap:3: : not found

Description

zsh で git の補完が効かなくなった。 TAB を押下するたびに __git_func_wrap:3: : not found というエラーが出力されて補完が使い物にならない。

$ zsh --version
zsh 5.7.1 (x86_64-apple-darwin19.0)

$ git --version
git version 2.27.0

$ tig --version
tig version 2.5.1
ncurses version 5.7.20081102
readline version 8.0

f:id:a666666:20200717031942g:plain

tig 2.5.1 に同梱されている bash/zsh 用の補完スクリプトが原因っぽい。巨大な Git リポジトリで tig の補完が遅くなる問題への対処として bash/zsh completion: reimplement and decrease runtime by factor 1863 · jonas/tig@26ab51d · GitHub でリファクタリングされたが、これが zsh でうまく動かないっぽい。

Solutions

Homebrew で tig 2.5.1 をインストールしている場合、以下の方法で git の補完が壊れることを防げる。 3. が最もスマートなやり方。

1. tig 用の補完スクリプトを削除する

zsh:12: command not found: __tig_main · Issue #940 · jonas/tig · GitHub で紹介されていた方法。単純だが tig の補完は一切効かなくなる。やや不便。

# These files(symlinks) are installed by `brew install tig`
$ rm /usr/local/share/zsh/site-functions/_tig
$ rm /usr/local/share/zsh/site-functions/tig-completion.bash

2. リファクタリング前の補完スクリプトで置き換える

tig の補完も使いたい場合の選択肢。古い補完スクリプトを取得するリビジョンは、 26ab51d28133354bfaa94d064bff37d29b3c30e3 より前の時点ならどこでも構わないが、候補を挙げるなら以下あたり。

  1. GitHub - jonas/tig at tig-2.5.0
  2. Merge pull request #990 from xaizek/two-memory-issues · jonas/tig@bf0cc12 · GitHub
    • 26ab51d28133354bfaa94d064bff37d29b3c30e3 の一個前のコミット
    • つまり 26ab51d28133354bfaa94d064bff37d29b3c30e3^ (または 26ab51d28133354bfaa94d064bff37d29b3c30e3~1)
$ curl -o /usr/local/share/zsh/site-functions/tig-completion.bash https://raw.githubusercontent.com/jonas/tig/tig-2.5.0/contrib/tig-completion.bash
$ curl -o /usr/local/share/zsh/site-functions/_tig https://raw.githubusercontent.com/jonas/tig/tig-2.5.0/contrib/tig-completion.zsh

3. Homebrew で tig 2.5.0 をインストールする

Homebrew でインストールした tig の補完スクリプトを上書きするのが気持ち悪い場合の選択肢。 Homebrew で古いバージョンの Formula をインストールする手順は installation - Homebrew install specific version of formula? - Stack Overflow の回答がいろいろ詳しいが、 URL を指定するやり方が一番簡単そう。

$ brew unlink tig
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/bcdeb6b63d3cb57d0db05bed9a9b4ae14cba6df6/Formula/tig.rb

Homebrew でインストール可能な tig の過去バージョンと、そのバージョンをインストールする URL に必要なコミットハッシュ値は以下の方法で調べられる。

$ git clone https://github.com/Homebrew/homebrew-core.git
$ cd homebrew-core
$ git log -10 -p Formula/tig.rb

See also

stackoverflow.com

全く同じ症状の人がいた。解決はしていないが、経緯と調べ方を知るのに役立った。

Emacs + Python venv

pyvenv.el が使える。 Spacemacs の Python layer にも同梱されている。

  • SPC m V a (M-x pyvenv-activate)
  • SPC m V d (M-x pyvenv-deactivate)

SPC m V キーバインドは python-mode がメジャーモードでないと使えないが、 M-x で直接呼び出しても普通に動作する。

動作原理としては、単純に exec-path やら外部プロセス実行時の PATH 環境変数やらの先頭に venv 環境の python へのパスを追加している感じ。

Integromat + Instagram

数日前から Instagram との接続エラーが発生していて Scenario が停止してしまったが、 Instagram アカウントとの再接続をしたら回復した模様。

左のメニューから Connection → Instagram の「Verify」ボタンを押す。 Reverify だかなんだか、再認証っぽいラベルのボタンが出てくるので押して、 Instagram のサイトで再認証。

macOS Catalina で OM-D E-M1 Mark II を Web カメラ化

OM-D Webcam Beta は Windows にしか対応していないが、 macOS でもソフトを組み合わせれば OM-D E-M1 Mark II を Web カメラ化できるという記事を読んで自分もやってみた。

f:id:a666666:20200711235056p:plain

E-M1 Mark II はバッテリーホルダーを装着しないと AC アダプターで給電できないので常用には向かないが、やはり MacBook シリーズ内蔵の FaceTime HD カメラとは格が違う写り。真正面ではないアングルも良い。卓上用のミニ三脚が欲しくなる。

必要なもの

  • OM-D E-M1 Mark II
    • OLYMPUS Capture に対応しているカメラならなんでも良い
  • OLYMPUS Capture
  • CamTwist

手順

OM-D E-M1 Mark II

OM-D E-M1 Mark II を USB-C ケーブルで MacBook に接続する。接続モードは「🖥️📷コントロール」を選ぶ。

OLYMPUS Capture

OLYMPUS Capture を起動する。接続方式は「USB 接続」を選ぶ。

保存設定ガイドでは「SD」を保存先に選ぶ(どうせ写真撮影はしないので、どれを選んでも構わない)。

ライブビューのウィンドウが表示されていない場合は、デスクトップ最上部のメニューから「表示」→「ライブビュー」を選んで表示する。

CamTwist

CamTwist を起動する。この設定が少々難しい。

  • Step 1: Selec a video source で「Desktop+」を選ぶ。選択状態で下の「Select」を押すか、ダブルクリックする。
  • Step 2: Select some effects は触れなくて良い。
  • Step 3: Adjust settings も触れなくて良い。
  • Settings: Screen で「Full Screen」ではなく「Confine to Application Window」にチェックを入れる。「Select from existing windows」のプルダウンニューから「OLYMPUS Capture(ライブビュー)を選ぶ。
  • Step3: の中段にある「Save Setup」をクリックして設定を保存する。設定の名称はなんでも良い(俺は OLYMPUS Capture Live と入力した)。

f:id:a666666:20200712003346p:plain

Zoom

Zoom を起動し、「設定」→「ビデオ」→「カメラ」から「CamTwist(2VUY)」を選ぶ。映像が左右反転している場合は「マイビデオをミラーリングします」のチェックを外す。

Zoom ミーティングに参加中に画面左下のビデオアイコンの「^」マークをクリックして「カメラを選択」からも選択できる。

「CamTwist」でも同じ画面が表示されるが、「CamTwist(2VUY)」の方が画質が良いらしい。

なお Zoom 以外のビデオ会議システム(Google Meet や Skype)でも同様にカメラの切り替えが可能。

参考にした記事

mono-logue.studio

mono-logue.studio

mono-logue.studio

note.com

life.kei.photo

zoomy.info