2022-09-20

Linux: Firefoxのツールチップ

Firefoxを開いた状態でマウスをあるウインドウから別のウインドウへ動かしたときにFirefoxの上を通過すると、ツールチップが開いたままになることがある。これによって移動先のウインドウが隠れてしまう。

これを回避するため、browser.chrome.toolbar_tipsfalseに設定してみた。

根本的な解決ではないが、上記の問題はタブのツールチップによって引き起こされていたので、これで様子をみてみる。 ウインドウが非アクティブのときにツールチップが出ないようにしたかったが、そのような設定は見つからなかった。

2022-09-01

RPMとDPKGとの比較

最近Ubuntuを使うことが出てきたが、パッケージツールの使い方で苦労している。RPMとDPKGとの違いをまとめておく。
rpm dpkg
rpm -qa dpkg -l
rpm -ql pkg-name dpkg -L pkg-name
rpm -qi pkg-name dpkg -s pkg-name
rpm -e pkg-name dpkg -r pkg-name
rpm -qf /path/to/file dpkg -S /path/to/file
DNFとAPTの比較もまとめておく。
dnf apt
dnf provides */file apt-file search file
なお、apt-fileを使用するには、パッケージをインストールする必要がある。
sudo apt install apt-file
sudo apt-file update

外部のレポジトリは、 add-apt-repository というコマンドで追加できる。software-properties-commonというパッケージをインストールする。

sudo apt install software-properties-common

2022-08-24

MOTU M2 on Fedora 35

Fedora 35でdnf updateにより、MOTU M2を使用できなくなった。 どうやらalsaの更新が原因だった。

Googleで検索していると、以下のバグレポートと修正を見つけた。 /

以下のようにalsa-ucm-confの修正をパッチにして、手元の設定に当てた。

gh repo clone alsa-project/alsa-ucm-conf
cd alsa-ucm-conf/
git show 3a6acaa509 > /tmp/motu-m2-ucm2.patch
cd /usr/share/alsa
sudo patch -p1 < /tmp/motu-m2-ucm2.patch

2022-08-09

Intel上のmacOSでarm64のbrew bottleをダウンロードする

Intel macでarm64用のパッケージをビルドするために、arm64版のbrew bottleをダウンロードしたい。 その手順を残しておく。

手順

  1. 別のディレクトリに Homwbrew をインストールする。
    sudo mkdir /opt/brew-aarch64
    sudo chown ${USER}:staff /opt/brew-aarch64
    cd /opt/brew-aarch64
    curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1
    
  2. brewの動作に必要なツールをインストールする。
    PATH=/opt/brew-aarch64/bin:$PATH brew install ruby
    export PATH=/opt/brew-aarch64/bin:$PATH
    export HOMEBREW_PREFIX=/opt/brew-aarch64/
    
  3. brewスクリプトのアーキテクチャを取得する箇所を書き換え、arm64に変更する。Catalinaを使用しているので、強引にBig Surに書き換える。以下に変更箇所を示す。
    diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh
    index cbe08846a..925c39706 100644
    --- a/Library/Homebrew/brew.sh
    +++ b/Library/Homebrew/brew.sh
    @@ -5,7 +5,7 @@
     
     # Doesn't need a default case because we don't support other OSs
     # shellcheck disable=SC2249
    -HOMEBREW_PROCESSOR="$(uname -m)"
    +HOMEBREW_PROCESSOR='arm64'
     HOMEBREW_PHYSICAL_PROCESSOR="${HOMEBREW_PROCESSOR}"
     HOMEBREW_SYSTEM="$(uname -s)"
     case "${HOMEBREW_SYSTEM}" in
    @@ -425,7 +425,7 @@ then
       HOMEBREW_PRODUCT="Homebrew"
       HOMEBREW_SYSTEM="Macintosh"
       [[ "${HOMEBREW_PROCESSOR}" == "x86_64" ]] && HOMEBREW_PROCESSOR="Intel"
    -  HOMEBREW_MACOS_VERSION="$(/usr/bin/sw_vers -productVersion)"
    +  HOMEBREW_MACOS_VERSION="11.0"
       # Don't change this from Mac OS X to match what macOS itself does in Safari on 10.12
       HOMEBREW_OS_USER_AGENT_VERSION="Mac OS X ${HOMEBREW_MACOS_VERSION}"
     
    diff --git a/Library/Homebrew/system_config.rb b/Library/Homebrew/system_config.rb
    index a019aa4de..ab8aa002f 100644
    --- a/Library/Homebrew/system_config.rb
    +++ b/Library/Homebrew/system_config.rb
    @@ -118,7 +118,7 @@ module SystemConfig
     
         sig { returns(String) }
         def kernel
    -      `uname -m`.chomp
    +      "arm64"
         end
     
         sig { returns(String) }
    diff --git a/Library/Homebrew/hardware.rb b/Library/Homebrew/hardware.rb
    index 52bf2e5e8..80ae69329 100644
    --- a/Library/Homebrew/hardware.rb
    +++ b/Library/Homebrew/hardware.rb
    @@ -57,17 +57,7 @@ module Hardware
     
           sig { returns(Symbol) }
           def arch_64_bit
    -        if arm?
    -          :arm64
    -        elsif intel?
    -          :x86_64
    -        elsif ppc64le?
    -          :ppc64le
    -        elsif ppc64?
    -          :ppc64
    -        else
    -          :dunno
    -        end
    +        :arm64
           end
     
           def arch
    
  4. パッケージをダウンロードする。(下記の例では、openblas)
    brew fetch --force-bottle openblas
    brew fetch --force-bottle gfortran
    
  5. 次回から使用する際は、以下のようにbashで設定する。(うっかりbrew installでインストールしないよう、プロンプトも変更しておく。)
    export PATH=/opt/brew-aarch64/bin:$PATH
    export HOMEBREW_PREFIX=/opt/brew-aarch64/
    PS1='[\u@\h \W brew-arm64]\$ '
    

2022-06-26

wrong port forwarding

Crontabに遠隔のマシンから自宅へのポートフォワードの設定を入れようとして、とんでもない間違いを犯してしまった。
  flock -w 3600 /dev/shm/.ssh-forward.lock ssh -NfR 12345:localhost:22 example.com
この設定を入れたところ、遠隔側のNATのテーブルを使い果たしてしまった。
  • 間違い1: -fオプションをつけたので、ロックが働いていなかった。
  • 間違い2: ExitOnForwardFailureを設定しなかったので、ポートフォワード失敗してもそのままセッションが張られていた。

正しくは、以下のように記載するべき。

  flock -w 3600 /dev/shm/.ssh-forward.lock ssh -o ExitOnForwardFailure=yes -NR 12345:localhost:22 example.com

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 で設定したフォーマットでそのまま処理するように見える。