@kyanny's blog

すべての商品はファッション商品となる。すべての産業はファッション産業となる - 浜野安宏

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

Ruby Weekly #508

Table of Contents

  1. Ruby Weekly #508
    1. Anonymous Struct literal
    2. How GitLab Scaled Async Workload Processing with Sidekiq
    3. The Ruby Spec Suite Compatibility Report
    4. Diff::LCS: Generate Difference Sets Between Enumerable Sequences
    5. Xlsxtream: A Fast, Streaming XLSX Spreadsheet Writer

Ruby Weekly #508

Anonymous Struct literal

  • ${a: 1, b: 2} と書けるシンタックスの提案 (Struct.new(:a, :b).new(1, 2) 相当)

How GitLab Scaled Async Workload Processing with Sidekiq

  • Their Sidekiq fleet is 26 servers with 158 CPUs between them

  • ワーカープロセスいくつくらい並行実行されるんだろう

The Ruby Spec Suite Compatibility Report

  • rubyspec って死んだんじゃなかったっけ、と思ったけど微妙に名前を変えて継続していたらしい

Diff::LCS: Generate Difference Sets Between Enumerable Sequences

Xlsxtream: A Fast, Streaming XLSX Spreadsheet Writer

macOS 「3本指でスワイプ」と「3本指のドラッグ」は両立しない

システム環境設定→トラックパッド→その他のジェスチャ→ページ間をスワイプ を「3本指でスワイプ」にするのと、

システム環境設定→アクセシビリティ→ポインタコントロール→マウスとトラックパッド→トラックパッドオプション...→ドラッグを有効にする を「3本指のドラッグ」にするのは、

両立しない。

トラックパッドの「3本指でスワイプ」を有効にすると「3本指のドラッグ」が静かに無効化されてしまうので注意が必要。「3本指のドラッグ」はドラッグ操作によるテキストの範囲選択にも効いているので、範囲選択が効かなくなって慌てる。

ページ間のスワイプの初期値は「2本指で左右にスクロール」で、 Chrome で意図せず「戻る」操作がトリガーされてしまうので、それを抑止するために「3本指でスワイプ」に変更したら↑の現象に悩まされて、数年前にも試して同じ理由で断念したことを思い出した。

f:id:a666666:20200709010949p:plainf:id:a666666:20200709010954p:plain

ivy で ghq

~/.emacs なり ~/.spacemacs なりに書く。 M-x my/ivy-ghq で実行。

  (defun my/ivy-ghq ()
    "ghq list -p => find-file (dired)"
    (interactive)
    (ivy-read "ghq: "
              (split-string (shell-command-to-string "ghq list -p") "\n")
              :require-match t
              :action (lambda (path)
                        (find-file path))
              :caller 'my/ivy-ghq))

Django: django.db.models で連続したアンダースコア __ を含むカラム名を使う

django.db.models では連続したアンダースコア __フィールドルックアップの意味を持つので、モデルのフィールド名には使えない。フィールド名の制約に制約の説明がある。モデルに記述することはできるが、マイグレーションを作成できない。

既存のテーブルが foo__bar のようなフィールドを持っていて、それを django から扱いたいケースもありえる。そのような場合は db_column を使えば良い。

class Foo(models.Model):
    foo_bar = models.CharField(db_column='foo__bar', max_length=200)

https://gitlab.com/kyanny/django-model-consecutive-underscore/-/blob/master/polls/models.py#L14-15

以下のようなマイグレーションファイルが作成される。データベースに直接 ALTER TABLE する必要はない。

https://gitlab.com/kyanny/django-model-consecutive-underscore/-/blob/master/polls/migrations/0002_foo.py