2022-04-19

Spamhausへブラックリスト解除を申請

KagoyaのVPSを借りたところ、以下の550メッセージでoutlook.com宛のメールを送信できないことが判明した。
    apc.olc.protection.outlook.com[104.47.57.161] said: 550 5.7.1 Service
    unavailable, Client host [133.18.xxx.xxx] blocked using Spamhaus. To request
    removal from this list see https://www.spamhaus.org/query/ip/133.18.xxx.xxx
    (AS3130). [DM6NAM11FT040.eop-nam11.prod.protection.outlook.com] (in reply
    to MAIL FROM command)

上記のURLへアクセスしたところ、delistの申請を進めることができ、1時間ほどでメールを送れるようになった。

それにしても、新たに借りたVPSがこのような状態になっているのは困る。 同じようなことが続くなら、他のVPSを借り直すか、VPSはやめて自宅サーバー経由でプロバイダ経由の送信にするかなど思案中。

その他にも、ブラックリストのチェックを行えるサイトがあるらしい。 次に借りるときは、使用期間中に調べるようにしよう。

  • Spamhaus
  • MX toolbox
  • blacklistalert.org
  • 2022-02-28

    ウインドウサイズをxdotoolで設定する方法

    xdotoolを使うと、ウインドウのサイズをコマンドから設定できる。1920x1080などきりのいい大きさに設定することで、ソフトの使用方法の解説動画を作る際に役立つだろう。
    xdotool search --name 'name of the window' windowsize %@ 1920 1080
    

    2022-02-27

    FFmpegでPulseAudio入力の量子化ビット幅を設定する方法

    FFmpegでPulseAudioの音声を録音する際、デフォルトでは16ビットになる。 24ビットや32ビットに設定するには、 -c:a オプションを使用する。

    例えば、以下のようなコマンドで、32ビットで録音することができる。

    -c:a pcm_s32le -f pulse -i alsa_input.device_name.analog-stereo -c pcm_s32le output.wav
    

    なお、 -cオプションを使用した場合、中途半端に設定が変わるようで、左右のデータが混じったりと正しく動作しない。 ソースコードを追ったところ、pulse audioへはS16LEを要求し、受け取ったデータを -c で設定したフォーマットでそのまま処理するように見える。

    2021-12-02

    すでに起動したプロセスの出力をリダイレクト

    起動済みのプロセスの出力のリダイレクトを変更する方法をメモする。 特に、バックグラウンドでプロセスを起動した後、出力を/dev/nullへリダイレクトしたくなることがある。

    GDBでプロセスにアタッチする。

    gdb -p 874046
    

    以下のようにdup2を使う。
    p (int)dup2((int)open("/dev/null", 00000, 0000), 0)
    p (int)dup2((int)open("/dev/null", 02101, 0777), 1)
    p (int)dup2((int)open("/dev/null", 02101, 0777), 2)
    detach
    quit
    

    第2引数 (flags) のコードは、主要なものは以下の通り。
    O_RDONLY00
    O_WRONLY01
    O_RDWR02
    O_CREAT0100
    O_APPEND02000

    2021-10-11

    OBS Studioの音声モニターをGoogle Meetへ送る方法

    NDIからの音声を、Linux上のOBS Studioの音声モニターを経由して、Google Meetへ送る方法を考えている。 まだ音声が聞こえるかどうかまでは試していないが、アイデアを記事に残しておく。

    手順

    1. loopbackモジュールをロードする。
      pactl load-module module-loopback sink=Virtual1
    2. OBS StudioとGoogle Meetを起動する。
    3. pavucontrolを起動し、OBS Studioのモニター出力をVirtual1へ切り替え、Google Meetの入力をVritual1.monitorへ切り替える。 (もしかすると、OBS Studioでモニターデバイスを予め設定しておく方が良いかもしれない。)

    その他

    おそらく、Zoomのように.monitorを除外するようなアプリケーションでは、この方法は使用できない。

    2021-10-09

    DNFで提供されるフィル一覧を取得する方法

    DNFでパッケージが提供するファイル一覧をインストールする前に取得することができる。インストール前にどのようなファイルがダウンロードされるか知ることが出来て便利だ。
    dnf repoquery -l package

    RPMでは以下のコマンドに相当するが、インストールされているパッケージでないと表示してくれない。

    rpm -qf package

    また、ダウンロードしたRPMファイルでどのようなファイルがインストールされるかを見る場合、以下のようにRPMコマンドを使用する。

    rpm -ql -- file.rpm
    しかしながら、lesspipe.shに頼ってlessで開く方が早い。

    2021-10-01

    git grep で特定のファイルを除外する方法

    gitでファイルを検索する際、特定のファイルだけ除外したい場合がある。 たとえば、
    • ソースコード中の文言を探したいが、翻訳ファイルは除外したい
    といった用途がある。

    このようなとき、以下のように:(exclude)をつけると、exclude_patternに該当するファイルを除外できる。

    git grep regex path... ':(exclude)exclude_pattern'