ForkLift 3 で SSH トンネルとパスフレーズ付きの秘密鍵を使う

環境は次の通り

次の構成の場合の設定方法

  • 経由サーバ nobita (nobita@192.168.111.222:19222)
  • 目的サーバ dora (dora@172.16.33.44:22)
  • プロトコル: SFTP

~/.ssh/config

Host *
 # 鍵認証のみ使用する
 IdentitiesOnly yes
 # ssh-agent を使用する
 AddKeysToAgent yes
 # パスフレーズを記憶する
 UseKeychain yes

Host nobita
 HostName 192.168.111.222
 Port 19222
 User nobita
 IdentityFile ~/.ssh/nobita_priv.pem

SSH Tunnel Manager Preferences

Login: nobita
Host: nobita
Port: 19222

Local redirections (Port / Remote Host / Port)
20044 / 172.16.33.44 / 22

ForkLift

Protocol: SFTP
Server: 127.0.0.1
Username: dora
Password: <Public Key Authentication>(~/.ssh/dora_priv.pem)
Port: 20044

上記のように設定したら、ターミナルから ssh-agent に鍵を登録する

ssh-add -K ~/.ssh/dora_priv.pem

-K オプションを付けることにより、パスフレーズをキーチェーンに保存することができる

If your private key is protected with a passphrase, then open Terminal (Applications > Utilities > Terminal) and run this command to add the passphrase to the ssh-agent:

ssh-add -K /path/to/private_key

How to connect to SFTP using a passphrase protected private key on macOS 10.12 or later?

Affinity Publisher で欧文のみ文字スタイルを設定する

1. スタジオ「検索して置換」を開き、「検索」欄に次の内容を入力する(\u1effỿ に置き換わる)。

[ -\u1eff]+

2. 必要であれば歯車のアイコンから検索対象のフォーマット(段落スタイル)を選択する
3. 「次で置換」の歯車のアイコンから文字スタイルを選択する
4. 「すべて置換」


f:id:scientre:20211108124933p:plain

クラウドナインのCD/DVDレーベル印刷で使える色

2021年10月現在、CDプレス・DVDプレスを格安で行える「クラウドナイン」のレーベル面シルク印刷で使える色は次の通り。

  • DIC 5
  • DIC 9
  • DIC 16
  • DIC 21
  • DIC 23
  • DIC 50
  • DIC 60
  • DIC 66
  • DIC 68
  • DIC 76
  • DIC 81
  • DIC 92
  • DIC 94
  • DIC 95
  • DIC 102
  • DIC 106
  • DIC 107
  • DIC 111
  • DIC 118
  • DIC 122
  • DIC 123
  • DIC 125
  • DIC 132
  • DIC 137
  • DIC 138
  • DIC 140
  • DIC 141
  • DIC 143
  • DIC 154
  • DIC 156
  • DIC 157
  • DIC 158
  • DIC 159
  • DIC 161
  • DIC 163
  • DIC 174
  • DIC 175
  • DIC 182
  • DIC 183
  • DIC 185
  • DIC 189
  • DIC 197
  • DIC 202
  • DIC 212
  • DIC 213
  • DIC 215
  • DIC 220
  • DIC 222
  • DIC 223
  • DIC 226
  • DIC 232
  • DIC 234
  • DIC 236
  • DIC 242
  • DIC 251
  • DIC 255
  • DIC 283
  • DIC 297
  • DIC 305
  • DIC 332
  • DIC 334
  • DIC 339
  • DIC 409
  • DIC 433
  • DIC 434
  • DIC 435
  • DIC 492
  • DIC 513
  • DIC 546
  • DIC 548
  • DIC 563
  • DIC 567
  • DIC 568
  • DIC 579
  • DIC 582 黒
  • DIC 582M マット黒
  • DIC 583 白
  • DIC 591
  • DIC F27 純白
  • DIC 4000
  • DIC 618 銀
  • DIC 619 金
  • DIC 620 金
  • DIC 636
  • DIC 640
  • DIC 641
  • DIC 705
  • DIC 2010
  • DIC 2269
  • DIC 2498
  • DIC C62
  • DIC F41
  • DIC F101
  • DIC P442
  • DIC C308 特殊色
  • DIC 618M マット銀
  • DIC C309 特殊色
  • DIC 620M マット金
  • DIC TY10 透明色
  • DIC TC10 透明色
  • DIC TO06 透明色
  • DIC TM10 透明色
  • DIC TB10 透明色
  • DIC TC02 透明色
  • DIC TR55 透明色
  • DIC TG20 透明色
  • DIC SP-1 透明色

WordPress の Contact Form 7 プラグインが動かなくなったときの対処法

症状

WordPress の Contact From 7 プラグインを導入しているサイトで、お問い合わせフォームを送信するとプログレスアイコンが回ったまま送信できない。

お問い合わせ送信時のリクエスPOST /wp-json/contact-form-7/v1/contact-forms/8/feedback を見てみると、コード 404 で次のエラーが返ってきている。

{
	"code": "rest_no_route",
	"message": "URLとリクエストメソッド(request method)に合ったルートがありません",
	"data": {"status": 404}
}

どうも問題が発生する Contact Form 7 のバージョンは 4.8 らしい。

原因1:カスタム投稿タイプの show_in_rest が有効でない

カスタム投稿タイプを使用している場合、register_post_type() でカスタム投稿タイプを作成する際に show_in_rest というオプションを指定する必要がある。

<?php
register_post_type('CustomPage', [
	'public' => true,
	'label' => 'カスタムページ',
	...
	'show_in_rest' => true,
]);

原因2:サーバの設定で rewrite (Apache の場合) が設定されている

サーバが Apache の場合は次の順で原因を調べる。

1. WordPress のインストールディレクトリに .htaccess があれば内容を確認し、/wp-json/... がマッチするルールがないか確認する
2. なければその親ディレクトリを順に調べる
3. それもなければ Apache の設定ファイルを調べる

さくらのレンタルサーバの場合

今回の場合はさくらのレンタルサーバを使用しており、ユーザ領域以外で次のルールが設定されているようだ。

  • URL の末尾にスラッシュ / がなく、ファイルとしてリソースが存在しない場合は自動的にスラッシュ / を付加した URL にリライトする

この動作をユーザ領域で上書きするため、WordPress のインストールディレクトリにある .htaccess に次の設定を記述する。

# /wp-json/ で始まるリクエストは、URL はそのままで index.php で処理する
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-json/ [NC]
RewriteRule .* index.php [L]

動画を Twitter 向けに変換する zsh 関数

Twitter に投稿できる動画の要件は以下のようだ。

  • フレームレートは60fps以下
  • 解像度は32×32から1280x1024の間
  • ファイルサイズは512MBを超えない
  • 時間は0.5秒から140秒の間
  • アスペクト比は1:3から3:1の間
  • ピクセルアスペクト比は必ず1:1
  • YUV420だけサポート
  • AAC-LCだけ、HE-AAC、HEv2-AACはサポートしない
  • 音声チャンネルはモノラルかステレオだけ、5.1チャンネルやそれ以上は不可
  • クローズGOPであること
  • プログレッシブ方式だけでインターレース方式は不可

このうち制限を知らずによく引っかかるのがフレームレート、YUV フォーマット、音声形式なのでそれらを補正するコマンドを用意する (FFmpeg はインストールされているものとする)。また、音声を削除もついでに行うコマンドも用意しておく。

# Twitter 向けに動画を変換する
function video-for-twitter() {
	help() {
		echo 'video-for-twitter'
		echo 'Usage: video-for-twitter input output'
	}
	if [ "$2" = "" ]; then
		help
		return
	fi
	ffmpeg \
		-i $1 \
		-c:v libx264 \
		-c:a aac \
		-vf fps=30 \
		-vf format=yuv420p \
		$2
}

# Twitter 向けに動画を変換する(音声なし)
function video-for-twitter-no-audio() {
	help() {
		echo 'video-for-twitter-no-audio'
		echo 'Usage: video-for-twitter-no-audio input output'
	}
	if [ "$2" = "" ]; then
		help
		return
	fi
	ffmpeg \
		-i $1 \
		-c:v libx264 \
		-an \
		-vf fps=30 \
		-vf format=yuv420p \
		$2
}