tag:blogger.com,1999:blog-22333459148968498002024-03-13T14:45:59.008+09:00いkamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.comBlogger378125tag:blogger.com,1999:blog-2233345914896849800.post-64284969824149538092023-12-26T15:41:00.003+09:002023-12-26T15:41:37.068+09:00macOSのbashでzshに変更するよう促すメッセージを消す方法macOS上のbashを使おうとすると、以下のようなメッセージが出力される。
<pre>
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
</pre>
これを消すには、 <code>~/.bashrc</code> などbashが起動したときに読み込まれるファイルに以下の記述を加える。
<pre>
export BASH_SILENCE_DEPRECATION_WARNING=1
</pre>
kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-16466516927159040172023-06-25T01:47:00.004+09:002023-06-25T01:47:32.564+09:00lcov function coverage lines新しいlcovで作ったファイルを古いlcovに読ませると、ファンクションカバレッジが半減するようになった。
どうも新しいlcovでは関数定義の開始・終了行を記録するようになったらしく、古いlcovでそのまま読ませると、終了行を関数名と認識するらしい。
<p/>
バージョン番号の違いまでは追っていないが、最近1-2周間ほどの間に、CIのmacOS上でbrewを使ってインストールしたlcovのデータを、Linuxマシンのlcovでマージさせようとするとこの問題が起こった。
<p/>
以下は新しいlcovの出力例:
<pre>
SF:/Users/runner/work/obs-studio-cirun/obs-studio-cirun/obs-studio/libobs/callback/decl.h
FN:32,37,decl_param_free
FN:45,55,decl_info_free
FNDA:113041,decl_param_free
FNDA:77756,decl_info_free
</pre>
以下は古いlcovで同じファイルを処理した例:
<pre>
SF:/home/runner/work/obs-studio-cirun/obs-studio-cirun/obs-studio/libobs/callback/decl.h
FN:32,decl_param_free
FNDA:2,decl_param_free
FN:45,decl_info_free
FNDA:11,decl_info_free
</pre>
<p/>
sedで以下のように処理することにした。
<pre>
sed -i 's;^FN:\([0-9]*\),\([0-9]*\),;FN:\1,;'
</pre>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-64019381237114617642023-05-18T00:11:00.028+09:002023-05-18T00:11:00.133+09:00lcov on macOSmacOS上でLCOVを使用しカバレッジレポートを取る方法を説明する。
<h2>インストール</h2>
<pre>
brew install llvm lcov w3m
</pre>
<h2>CMakeのシンプルな設定例</h2>
CMakeLists.txt:
<pre>
cmake_minimum_required(VERSION 3.16)
project(a VERSION 0.1.0)
add_compile_options(-fprofile-arcs -ftest-coverage)
add_link_options(--coverage)
add_executable(a a.c)
</pre>
以下の設定を試したが、生成されるカバレッジデータのフォーマットが異なり、LCOVで処理する方法がわからなかった。
<pre>
# add_compile_options(-fprofile-instr-generate -fcoverage-mapping)
# add_link_options(-fprofile-instr-generate -fcoverage-mapping)
</pre>
その他、以下のファイルを準備する。
llvm-gcov.sh:
<pre>
#! /bin/bash
exec `brew --prefix llvm`/bin/llvm-cov gcov "$@"
</pre>
<h2>ビルドし実行</h2>
以下のどちらでも良さそう。
<pre>
cmake -G Xcode -B build .
cmake --build build
</pre>
<pre>
cmake -B build .
(cd build/ && make VERBOSE=1)
./build/a
</pre>
実行して正常終了すれば、<code>*.gcda</code>と<code>*.gcno</code>というファイルができているはず。
<h2>カバレッジの取得</h2>
以下のコマンドで、LCOVのデータを作成し、HTMLを作成する。(そして<code>w3m</code>で開く。)
<pre>
lcov -c -d ./ -o lcov.info --gcov-tool $PWD/llvm-gcov.sh
genhtml -q lcov.info -o ./coverage/
w3m ./coverage/index.html
</pre>
<h2>参考にしたサイト</h2>
<ul>
<li><a href='http://logan.tw/posts/2015/04/28/check-code-coverage-with-clang-and-lcov/'>Logan's Note</a></li>
<li><a href='https://qiita.com/azuki_bar/items/3be3c6a72ea266952d9b'>clangでビルドしてlcovでカバレッジを取る方法 - @azuki_bar</a></li>
<li><a href='https://embeddedartistry.com/blog/2017/02/24/installing-llvm-clang-on-osx/'>Installing LLVM/Clang on OS X</a></li>
</ul>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-71705349318391501832023-05-03T17:21:00.007+09:002023-05-03T17:24:53.082+09:00iptables hashlimitを使ったSSH攻撃のログ削減SSHサーバーを運用していると、ユーザー名・パスワードの総当たり攻撃を受けることがある。ログが膨らんで嫌なので、減らす方法をメモする。
<p/>
接続の試行を複数回行わないと、SSH接続を受け付けなくする。これにより、SSHサーバーが走っていることに気づかれない。この代償として、自身で接続するときには何度かSSHコマンドを打ち直す必要がある。
<p/>
以下の例だと、最初の10回分の接続はドロップする。必要に応じて、sourceのネットワークを限定するか、リミット値を調整すると良いだろう。
<pre>
sudo iptables -I INPUT 1 -p tcp -m tcp -m state --state NEW --dport 22 -m hashlimit --hashlimit-upto 50/hour --hashlimit-burst 10 --hashlimit-mode srcip,dstport --hashlimit-name ssh-limit -j DROP
</pre>
<p/>
ちなみに、<code>--hashlimit-burst</code>を<code>2</code>くらいに設定すると、SSH接続するときに数秒の待ち時間で接続できるが、SSH攻撃はさほど減らなかった。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-59076483870505942562023-02-20T18:50:00.009+09:002023-02-20T18:59:08.452+09:00avrdude: target doesn't answer というエラーが出るときの対処<h2>問題</h2>
ATtiny44Aを使った回路を組んだところ、以下のようなエラーが出て、プログラムできなくて困っていた。
<pre>
$ avrdude -v -c usbasp -p t44 -U signature:r:/dev/stdout:i
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
</pre>
<p/>
このようなトラブル時に何を試行錯誤すると良いのかも含め、備忘録として残しておく。
<h2>解決方法</h2>
結局のところ、SCKの周波数が高いことが原因だったようで、<code>-B 10</code>をつけて解決した。
<p/>
以下が実行例。
<pre>
$ avrdude -B 10 -F -c usbasp -p t44 -U signature:r:/dev/stdout:i
avrdude: set SCK frequency to 93750 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9207 (probably t44)
avrdude: reading signature memory:
Reading | ################################################## | 100% 0.00s
avrdude: writing output file "/dev/stdout"
:030000001E920746
:00000001FF
avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)
avrdude done. Thank you.
</pre>
<h2>試行錯誤</h2>
情報通りに<code>-F</code>をつけて試しにsignatureを読んでみると、以下のように変なdevice signatureが表示され、この値が毎回変わる。
<pre>
$ avrdude -F -c usbasp -p t44 -U signature:r:/dev/stdout:i
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x37f912
avrdude: Expected signature for ATtiny44 is 1E 92 07
avrdude done. Thank you.
</pre>
<p/>
データシートを再確認し、ATtiny44AはATtiny44と同じsignatureが書かれているようなので、<code>-p t44</code>でプログラムできることを確かめた。配線間違いが心配になり、配線を再確認したが異常は見つからない。
<p/>
Verboseオプションをつけて表示される内容を確認した。
すると、以下のような情報が表示されていたので、SCKを遅くしたところ動作した。
<pre>
avrdude: auto set sck period (because given equals null)
</pre>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-67633586331793505572022-09-20T12:21:00.003+09:002023-03-22T13:55:54.823+09:00Linux: FirefoxのツールチップFirefoxを開いた状態でマウスをあるウインドウから別のウインドウへ動かしたときにFirefoxの上を通過すると、ツールチップが開いたままになることがある。これによって移動先のウインドウが隠れてしまう。
<p/>
これを回避するため、<code>browser.chrome.toolbar_tips</code>を<code>false</code>に設定してみた。
<p/>
根本的な解決ではないが、上記の問題はタブのツールチップによって引き起こされていたので、これで様子をみてみる。
ウインドウが非アクティブのときにツールチップが出ないようにしたかったが、そのような設定は見つからなかった。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-36295865689674433122022-09-01T00:47:00.008+09:002023-11-30T20:16:28.527+09:00RPMとDPKGとの比較最近Ubuntuを使うことが出てきたが、パッケージツールの使い方で苦労している。RPMとDPKGとの違いをまとめておく。
<table>
<tr>
<th>rpm</th>
<th>dpkg</th>
</tr>
<tr>
<td><code>rpm -qa</code></td>
<td><code>dpkg -l</code></td>
</tr>
<tr>
<td><code>rpm -ql <i>pkg-name</i></code></td>
<td><code>dpkg -L <i>pkg-name</i></code></td>
</tr>
<tr>
<td><code>rpm -qi <i>pkg-name</i></code></td>
<td><code>dpkg -s <i>pkg-name</i></code></td>
</tr>
<tr>
<td><code>rpm -e <i>pkg-name</i></code></td>
<td><code>dpkg -r <i>pkg-name</i></code></td>
</tr>
<tr>
<td><code>rpm -qf <i>/path/to/file</i></code></td>
<td><code>dpkg -S <i>/path/to/file</i></code></td>
</tr>
</table>
DNFとAPTの比較もまとめておく。
<table>
<tr>
<th>dnf</th>
<th>apt</th>
</tr>
<tr>
<td><code>dnf provides <i>*/file</i></code></td>
<td><code>apt-file search <i>file</i></code></td>
</tr>
</table>
なお、<code>apt-file</code>を使用するには、パッケージをインストールする必要がある。
<pre>sudo apt install apt-file
sudo apt-file update
</pre>
<p/>
外部のレポジトリは、 <code>add-apt-repository</code> というコマンドで追加できる。<code>software-properties-common</code>というパッケージをインストールする。
<pre>sudo apt install software-properties-common</pre>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-13493591581899971412022-08-24T20:46:00.003+09:002022-08-24T20:46:30.520+09:00MOTU M2 on Fedora 35Fedora 35で<code>dnf update</code>により、MOTU M2を使用できなくなった。
どうやらalsaの更新が原因だった。
<p/>
Googleで検索していると、以下のバグレポートと修正を見つけた。
/<ul>
<li><a href='https://github.com/alsa-project/alsa-ucm-conf/issues/190'>USB-Audio: Motu M2: Audio interface unable to be loaded in 1.2.7.2</a></li>
<li><a href='https://github.com/alsa-project/alsa-ucm-conf/pull/191'>ucm2 profile for MOTU M2</a></li>
</ul>
<p/>
以下のように<code>alsa-ucm-conf</code>の修正をパッチにして、手元の設定に当てた。
<pre>
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
</pre>
kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-56619743794469086492022-08-09T00:06:00.004+09:002022-08-16T01:19:12.877+09:00Intel上のmacOSでarm64のbrew bottleをダウンロードするIntel macでarm64用のパッケージをビルドするために、arm64版のbrew bottleをダウンロードしたい。
その手順を残しておく。
<h2>手順</h2>
<ol>
<li>別のディレクトリに Homwbrew をインストールする。
<pre>
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
</pre>
</li>
<li>brewの動作に必要なツールをインストールする。
<pre>
PATH=/opt/brew-aarch64/bin:$PATH brew install ruby
export PATH=/opt/brew-aarch64/bin:$PATH
export HOMEBREW_PREFIX=/opt/brew-aarch64/
</pre>
</li>
<li>brewスクリプトのアーキテクチャを取得する箇所を書き換え、<code>arm64</code>に変更する。Catalinaを使用しているので、強引にBig Surに書き換える。以下に変更箇所を示す。
<pre>
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
</pre>
</li>
<li>パッケージをダウンロードする。(下記の例では、openblas)
<pre>
brew fetch --force-bottle openblas
brew fetch --force-bottle gfortran
</pre>
</li>
<li>次回から使用する際は、以下のようにbashで設定する。(うっかり<code>brew install</code>でインストールしないよう、プロンプトも変更しておく。)
<pre>
export PATH=/opt/brew-aarch64/bin:$PATH
export HOMEBREW_PREFIX=/opt/brew-aarch64/
PS1='[\u@\h \W brew-arm64]\$ '
</pre>
</li>
</ol>
kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-35409441946892310552022-07-19T03:17:00.004+09:002022-07-19T03:17:44.647+09:00systemctlで再起動時にBIOS設定へ入る方法Linux上の<code>systemctl</code>で、以下のコマンドによりBIOS設定へ入ることができる。
<pre>
sudo systemctl reboot --firmware-setup
</pre>
<h3>参考</h3>
<ul>
<li><a href='https://superuser.com/a/1083166/93055'>Linux on UEFI - how to reboot to the UEFI setup screen like Windows 8 can?</a></li>
</ul>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-57985117251603314222022-06-26T00:59:00.003+09:002022-06-26T00:59:59.654+09:00wrong port forwardingCrontabに遠隔のマシンから自宅へのポートフォワードの設定を入れようとして、とんでもない間違いを犯してしまった。
<pre>
flock -w 3600 /dev/shm/.ssh-forward.lock ssh -NfR 12345:localhost:22 example.com
</pre>
この設定を入れたところ、遠隔側のNATのテーブルを使い果たしてしまった。
<ul>
<li>間違い1: <code>-f</code>オプションをつけたので、ロックが働いていなかった。</li>
<li>間違い2: <code>ExitOnForwardFailure</code>を設定しなかったので、ポートフォワード失敗してもそのままセッションが張られていた。
</ul>
<p/>
正しくは、以下のように記載するべき。
<pre>
flock -w 3600 /dev/shm/.ssh-forward.lock ssh -o ExitOnForwardFailure=yes -NR 12345:localhost:22 example.com
</pre>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-818331709779997892022-04-19T22:43:00.002+09:002022-04-19T22:46:38.516+09:00Spamhausへブラックリスト解除を申請KagoyaのVPSを借りたところ、以下の550メッセージで<code>outlook.com</code>宛のメールを送信できないことが判明した。
<pre>
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)
</pre>
<p/>
上記のURLへアクセスしたところ、delistの申請を進めることができ、1時間ほどでメールを送れるようになった。
<p/>
それにしても、新たに借りたVPSがこのような状態になっているのは困る。
同じようなことが続くなら、他のVPSを借り直すか、VPSはやめて自宅サーバー経由でプロバイダ経由の送信にするかなど思案中。
<p/>
その他にも、ブラックリストのチェックを行えるサイトがあるらしい。
次に借りるときは、使用期間中に調べるようにしよう。
<nl>
<li><a href='https://check.spamhaus.org/'>Spamhaus</a></li>
<li><a href='https://mxtoolbox.com/blacklists.aspx'>MX toolbox</a></li>
<li><a href='https://www.blacklistalert.org/'>blacklistalert.org</a></li>
</nl>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-10594878385433687862022-02-28T22:31:00.001+09:002022-02-28T22:31:06.069+09:00ウインドウサイズをxdotoolで設定する方法xdotoolを使うと、ウインドウのサイズをコマンドから設定できる。1920x1080などきりのいい大きさに設定することで、ソフトの使用方法の解説動画を作る際に役立つだろう。
<pre>
xdotool search --name 'name of the window' windowsize %@ 1920 1080
</pre>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-32818513099172779212022-02-27T19:43:00.002+09:002022-02-27T19:46:36.204+09:00FFmpegでPulseAudio入力の量子化ビット幅を設定する方法FFmpegでPulseAudioの音声を録音する際、デフォルトでは16ビットになる。
24ビットや32ビットに設定するには、 <code>-c:a</code> オプションを使用する。
<p/>
例えば、以下のようなコマンドで、32ビットで録音することができる。
<pre>
-c:a pcm_s32le -f pulse -i alsa_input.<i>device_name</i>.analog-stereo -c pcm_s32le output.wav
</pre>
<p/>
なお、 <code>-c</code>オプションを使用した場合、中途半端に設定が変わるようで、左右のデータが混じったりと正しく動作しない。
ソースコードを追ったところ、pulse audioへはS16LEを要求し、受け取ったデータを <code>-c</code> で設定したフォーマットでそのまま処理するように見える。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-15759617380891126112021-12-02T20:29:00.002+09:002021-12-02T20:29:31.524+09:00すでに起動したプロセスの出力をリダイレクト起動済みのプロセスの出力のリダイレクトを変更する方法をメモする。
特に、バックグラウンドでプロセスを起動した後、出力を<code>/dev/null</code>へリダイレクトしたくなることがある。
<p/>
GDBでプロセスにアタッチする。
<pre>
gdb -p 874046
</pre>
<br/>
以下のように<code>dup2</code>を使う。
<pre>
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
</pre>
<br/>
第2引数 (<code>flags</code>) のコードは、主要なものは以下の通り。
<table>
<tr><th>O_RDONLY</th><td>00</td></tr>
<tr><th>O_WRONLY</th><td>01</td></tr>
<tr><th>O_RDWR</th><td>02</td></tr>
<tr><th>O_CREAT</th><td>0100</td></tr>
<tr><th>O_APPEND</th><td>02000</td></tr>
</table>
kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-86594134733711370072021-10-11T16:11:00.001+09:002021-10-11T16:11:32.543+09:00OBS Studioの音声モニターをGoogle Meetへ送る方法NDIからの音声を、Linux上のOBS Studioの音声モニターを経由して、Google Meetへ送る方法を考えている。
まだ音声が聞こえるかどうかまでは試していないが、アイデアを記事に残しておく。
<h2>手順</h2>
<ol>
<li>loopbackモジュールをロードする。
<pre>pactl load-module module-loopback sink=Virtual1</pre>
</li>
<li>OBS StudioとGoogle Meetを起動する。</li>
<li><code>pavucontrol</code>を起動し、OBS Studioのモニター出力を<code>Virtual1</code>へ切り替え、Google Meetの入力を<code>Vritual1.monitor</code>へ切り替える。
(もしかすると、OBS Studioでモニターデバイスを予め設定しておく方が良いかもしれない。)
</ol>
<h2>その他</h2>
おそらく、Zoomのように<code>.monitor</code>を除外するようなアプリケーションでは、この方法は使用できない。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-24650919655904634502021-10-09T12:18:00.001+09:002021-10-09T12:23:40.747+09:00DNFで提供されるフィル一覧を取得する方法DNFでパッケージが提供するファイル一覧をインストールする前に取得することができる。インストール前にどのようなファイルがダウンロードされるか知ることが出来て便利だ。
<pre>dnf repoquery -l <i>package</i></pre>
<p/>
RPMでは以下のコマンドに相当するが、インストールされているパッケージでないと表示してくれない。
<pre>rpm -qf <i>package</i></pre>
<p/>
また、ダウンロードしたRPMファイルでどのようなファイルがインストールされるかを見る場合、以下のようにRPMコマンドを使用する。
<pre>rpm -ql -- <i>file.rpm</i></pre>
しかしながら、<code>lesspipe.sh</code>に頼って<code>less</code>で開く方が早い。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-83399706943947284152021-10-01T17:36:00.000+09:002021-10-01T17:36:15.406+09:00git grep で特定のファイルを除外する方法<code>git</code>でファイルを検索する際、特定のファイルだけ除外したい場合がある。
たとえば、
<ul>
<li>ソースコード中の文言を探したいが、翻訳ファイルは除外したい</li>
</ul>
といった用途がある。
<p/>
このようなとき、以下のように<code>:(exclude)</code>をつけると、<code><i>exclude_pattern</i></code>に該当するファイルを除外できる。
<pre>
git grep <i>regex</i> <i>path...</i> ':(exclude)<i>exclude_pattern</i>'
</pre>
kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-16497476921536967852021-09-24T18:26:00.007+09:002021-09-24T23:32:33.904+09:00Redhat Enterprise Linux 9で何が新しくなるのかRedhat Enterprise Linuxのアルファ版は、今の所Fedora 34がベースとなっているらしい。
Fedora 34を使用していてどんな違いがあるのか、メモを残しておく。
<p/>
この記事は未完成で、これから加筆してゆく予定。
<p/>
<nl>
<li>Kernel version: 4.18.0 -> 5.13.16
<nl>
<li><code>iostat</code>でdiscard数・サイズも表示されるようになる。
</nl>
</li>
<li>qt6が加わる。</li>
<li>すべてのオーディオがPipewireを通るようになる。 <a href='https://fedoraproject.org/wiki/Releases/34/ChangeSet#Route_all_Audio_to_PipeWire'>[記事]</a> 使用する上で何が変わるのか良くわからないが、音響を扱うなら知っておいて損はないだろう。
</nl>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-62654288760685672432021-09-09T12:01:00.004+09:002021-09-09T12:15:26.981+09:00Bashにて複数行の貼り付けが1コマンドになるFedora 34のBashを使っていると、中ボタンクリックで改行付のコマンドを貼り付けると、コマンドが実行されなくなった。
例えば、
<pre>
pwd
ls
</pre>
というテキストを貼り付けると、
<pre>
[user@localhost ~]$ pwd
ls
</pre>
と表示され、改行を含めて一つのコマンドとしてプロンプトに入ってしまう。このあとEnterキーを押せば各行が実行されるのだが、これまで中ボタンクリックだけでコマンドを実行していたので、不便に感じている。
<p/>
解決方法は、<code>~/.inputrc</code>に以下の設定を追記する。
<pre>set enable-bracketed-paste off</pre>
起動済のbashの設定を変えるには、以下のコマンドを実行する。
<pre>bind 'set enable-bracketed-paste off'</pre>
<p/>
参考記事:
<ul>
<li><a href='https://matoken.org/blog/2020/11/12/gnu-bash-bracketed-paste-settings/'>GNU Bashのbracketed pasteの設定</a></li>
</ul>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-80151300319312543422021-09-09T01:17:00.004+09:002021-09-09T01:17:44.899+09:00Rocket Lakeでvaapiを使用する方法Fedora 34で、Intel第11世代のCore i7でvaapiを使用する方法の概略をメモしておく。
<h2>セットアップの概略</h2>
<ol>
<li>rpmfusionをセットアップする。</li>
<li>ffmpeg などをDNFでインストールする。</li>
<li>libva libva-intel-driver などをDNFでインストールする。</li>
<li>intel-media-driver をソースからビルドする。21.1.3では動作せず、21.2.3にしたら動作した。
<ol>
<li>rpmfusionからsrpmをダウンロード
<pre>dnf download --source intel-media-driver</pre>
</li>
<li>ダウンロードしたsrpmを展開
<pre>rpm -Uvh intel-media-driver-21.1.3-1.fc34.src.rpm</pre>
</li>
<li>specファイルを編集
<pre>vim rpmbuild/SPECS/intel-media-driver.spec</pre>
<code>Version</code>, <code>Source0</code>, <code>%changelog</code> を編集した。
</li>
<li>ビルドしてインストールする
<pre>rpmbuild -ba rpmbuild/SPECS/intel-media-driver-21.2.3.spec
sudo rpm -Uvh /home/kamae/rpmbuild/RPMS/x86_64/intel-media-driver-21.2.3-1.fc34.x86_64.rpm</pre>
</li>
</li>
</ol>
<h2>使用</h2>
<pre>
LIBVA_DRIVERS_PATH=/usr/lib64/dri/ \
LIBVA_DRIVER_NAME=iHD \
ffmpeg \
-vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_output_format vaapi \
-i input.mkv -vf 'format=nv12|vaapi,hwupload,deinterlace_vaapi,scale_vaapi=w=1920:h=1080' -c:v h264_vaapi -c:a copy -y output.mp4
</pre>
<p/>
これ以外に、ソースからビルドしたOBS Studioでも動作した。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-29771883772524342682021-08-07T19:28:00.003+09:002021-09-24T23:33:02.884+09:00Logi MX Master 3を使ってみた半月ほど前にLogiのマウス<a href='https://www.logicool.co.jp/ja-jp/products/mice/mx-master-3.html'>MX Master 3</a>を購入した。
<h2>マウス自体の使い心地</h2>
やや重量が重たく、最初はしんどかったが、だんだん慣れてきた。
以前に使っていたものは100gほどだったが、MX Master 3は141gと40%ほど重量が増えた。40%くらいなら大したことないだろうと思っていたが、意外と重たく感じる。
<h2>MagSpeed</h2>
ホイールは電気的にラッチのオン・オフを切り替えられるようになっている。
ボタンを押すと切り替えられる以外に、ホイールを高速に回転させると自動でオフ、回転速度が落ちるとオンにもどるようになっている。
いちど回すと10秒間くらいは回り続け、ほぼ止まりかけるまで回転数が落ちるとカチッと音がして止まる。使っていて面白く、ついホイールを回したくなる。
<h2>Linuxでの設定など</h2>
<code>solaar</code>を引数なしで起動すると、GUIが起動して設定できる。
<p/>
<code>solaar</code>は便利なことに引数でCUI操作することもできる。
例えば、ホストを切り替えるには以下のようにコマンドを入れる。最初の<i>2</i>はマウスの番号、最後の<i>1</i>は切り替え先の番号。
<pre>
solaar config <i>2</i> change-host <i>1</i>
</pre>
<hr/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="https://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B084ZYLD7P&linkId=13c5e142bcaed79eece695d1acf7fcda"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="https://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08HRQRVPJ&linkId=79de73883165022502f2af40b6c78291"></iframe>
kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-61976009756244403952021-06-04T14:44:00.008+09:002021-09-09T12:12:23.524+09:00LinuxユーザーがMacOSを使っていて不便に感じたこと普段はXFCE4を使用しているが、MacOSを使ってみて不便に感じた所を挙げておく。
<h2>端末</h2>
端末内では選択でセレクションバッファ (のようなもの) へコピー、中ボタンクリックで貼り付けできる。
しかし、他のウインドウとコピー・ペーストを行うには、Super + C / Vを使用する必要がある。
使い分けが慣れない。
<p/>
ダブルクリックで、単語単位の選択だが、記号混じりも含めて選択するように設定できない。(設定が見つからなかった。)
例えば、<code>git grep</code>の結果からファイル名部分をダブルクリックした時、コロン (<code>:</code>) で区切られた左側全てを選択してほしいが、ハイフンなどが入っているとそこまでしか選択されない。
<p/>
文字が滲んで見える。
<p/>
日本語を表示させる方法が分からなかった。等幅フォントで日本語表示できるフォントが無いのだろうか?
<br/>
<span style='color: red'>⇒ LinuxにSSHログインした後、環境変数<code>LC_CTYPE</code>を消して<code>LANG=ja_JP.UTF-8</code>を設定したら、日本語を表示できるようになった。</span>
<p/>
普段使っているフォント (VL Gothic) と異なるので、文字に違和感がある。
<h2>ウインドウ操作</h2>
セレクションバッファの機能がない。
<p/>
コピー・ペーストだけでなくかなり色々なショートカットが異なる。
<table>
<tr><th>ツール / 機能</th><th>Linux</th><th>Windows</th><th>MacOS</th></tr>
<tr><td>ブラウザ / 新規タブ</td><td>Ctrl + T</td><td>Ctrl + T</td><td>Super + T</td></tr>
<tr><td>テキストボックス / 全て選択</td><td>Ctrl + A</td><td>Ctrl + A</td><td>???</td></tr>
</table>
<h2>マウス</h2>
マウスの加速に慣れない。
マウスを動かす速さに応じてカーソルの移動量が異なる。普段の動き方と異なり、目的の場所にマウスカーソルを動かすのが難しい。
<br/>
<span style='color: red'>⇒ <code>defaults</code>コマンドで設定できる。
<pre>defaults write .GlobalPreferences com.apple.mouse.scaling 1.1</pre></span>
<p/>
ホイールにも加速がついており、回す速さに応じて、同じ角度だけ回しても移動量が変わる。
例えばブラウザで1ページ分だけスクロールしたい時にすばやく回すと、行き過ぎる。1行毎にゆっくり読みたいときには、移動量が少なすぎるが、少ないと感じて更に回すと行き過ぎる。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-60443432609470400112021-04-26T22:44:00.003+09:002021-04-26T22:47:02.395+09:00自宅でのミーティングで使用する音響機器<h2>マイク - Shure SM58</h2>
色々と迷った末に決め兼ねたので、定番のSM58を購入した。
購入当時は、X2Uという小形のUSB接続オーディオインターフェイスとセットで売られていたので、このセットを購入した。
<p/>
ノイズが十分に小さいことはもちろんだが、指向性が高くあまり周囲の音を拾わないことを期待して購入した。
<p/>
マイクから口が離れると音量が小さくなってしまうので、マイクに口を近づけることを常に意識する必要がある。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B000CZ0R42&linkId=96dd2b87d9bc7674dd1b6a83b884fe6f"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B0000AQRSU&linkId=de1a33dd27739b131de687164f1099dd"></iframe>
<h2>オーディオインターフェイス - Shure X2U</h2>
モノラルのXLR入力・ステレオの3.5mmステレオジャック出力 (ヘッドホン用) が着いている。
ミーティングではマイク1本で十分なので、モノラル入力がちょうどよい。
<p/>
出力側はあまり気に入っておらず、Volumeつまみを回すと左右の定位がふらつく、PCとマイクのバランスを出力するようになっており、PCからの音量を一定でマイクの音量だけを調整するなどが出来ないなど、問題を感じている。
<h2>スピーカー - オンキョー GX-100HD</h2>
会議ではイヤホンを使うこともあるが、音楽を聴くときなどにも使用している。
ディジタル入力がついている。10年以上前に購入したが、まだ壊れることなく使用できている。
<h2>三脚</h2>
マイクを立てるのに、スマートフォン用の三脚を使用している。
もともとはスマートフォン用に買ったが、ほぼマイクにつかっている。
なお、マイクホールダとカメラ三脚とではネジ径が異なるので、変換アダプターを使っている。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00D76RNLS&linkId=5eb0c0705aafdee500a90f49e27f39ae"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B001AK1NW8&linkId=210fa26ecf98747ec925a472c80792a5"></iframe>
<h2>オーディオインターフェイス - TI PCM2704</h2>
<a href='https://www.ti.com/'>TIのサイト</a>で、サンプルとしてもらったもの。これに74HC04をドライバとしてRCAに出力する。材料費はトータルで500円くらいだろう。既成品よりもかなり安い。
<h2>iPhone</h2>
食事の準備などで動き回りながらミーティングを聴く時には、同時にiPhoneでミーティングに接続して持ち歩くこともある。
ただし、発言するときは、もう一方の端末に自分の声が出てハウリングの原因になるので、片方のスピーカーを切っておくように注意する。kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0tag:blogger.com,1999:blog-2233345914896849800.post-37471170423689246622021-04-26T22:04:00.003+09:002021-04-27T00:00:51.540+09:00コロナ禍において買って良かった物・持っていて良かった物在宅で仕事 (Work From Home, WFH) をするようになり、1年ほど経った。
買っておいて良かった物、新たに買って良かった物を紹介する。
<h2>食器洗い機</h2>
パナソニック製のNP-TCB1を、コロナ前、就職してから少し経った頃に買った。
大学時代は大学近くに安価な飲食店が多かったため外食がほとんどだったが、就職して外食が割高になって自炊する機会がやや増えた。食器洗いが面倒だったので、購入した。
<p/>
コロナ禍で自宅で料理・食事することが増えたので、重宝している。
2-3人用を1人で使用しているが、料理時に具材を入れるのに食器を使ったなど、複数種類の大きめの食器があると一度には入り切らない。大きめの食洗機を買うか、並べて入れられるように形の揃った食器を使うのが良いだろう。
<p/>
私が購入したのは乾燥機能なしの最も安価なモデルだ。
食器を洗う際には90度程度の温水を使用するので、食器洗いが完了してすぐに扉を開けておくことで、乾燥機能は必要ない。
外出時に食器洗いを開始するような使い方をする場合には、乾燥機能が着いている方が良いと思う。また、Panasonicの最上位モデル <a href='https://panasonic.jp/dish/products/NP-TZ300.html'>NP-TZ300</a> には自動で扉を開ける機能がついているらしい。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08D61PP8F&linkId=6c33ce4d4b1e2dd44c8ea71b38361cd1"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08D65Z7K1&linkId=57aa5790f8f553d439e4c6c7faa916bc"></iframe>
<h2>ロボット掃除機</h2>
普段いる場所は綺麗な方が気分が良いが、自分で掃除機をかけるのは面倒だ。WFHが始まってしばらく経ってから、部屋を綺麗に保つためにロボット掃除機Eufy L70を購入した。
<p/>
L70はLIDARによるSLAM (Simultaneous Localization and Mapping) 技術が使われているロボット掃除機の中では比較的安価だったので、これを購入した。地図を作成・更新しながら動き回る様子を見ていると楽しい。掃除後にvacuum containerを取り出し、どれだけ掃除したのかを確かめながら掃除機でゴミを吸い取るようにしている。
<p/>
L70で十分な機能があると思うが、Roomba i7はさらに高機能らしい。
L70は曜日・時刻を指定して掃除する機能 (schedules) や部屋の場所を指定して掃除する機能 (zone clean) がついている。i7はこの組合せで、指定した時刻に特定の場所だけを掃除するなどもできるらしい。
<p/>
また、L70を使っていて気になるのは、掃除中に部屋の敷居を何度も踏み越えることだ。敷居に傷がつかないかと心配になる。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07RPVCZMF&linkId=5b71a41264fe80de6c3556ae6ed01e2b"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07NZJ4MNS&linkId=7b5b768a9b2653919e5de98a7bb706e2"></iframe>
<h2>空気清浄機</h2>
昼間は天気・花粉・黄砂情報を確かめて換気するが、部屋の埃や花粉の対策で空気清浄機を使用している。
花粉やカビの胞子、PM2.5を捕捉できるよう、HEPAフィルターがついているものを選んだ。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07YXTJN6J&linkId=c0cb1b38041c3b6b3418f2e9d5c5d738"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B081J67R5H&linkId=83567c285f5927060fc886091bccdbf5"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07Z8P8MG6&linkId=0b1596f8e431c24c794ec6560b0c62a1"></iframe>
<h2>アーモンド</h2>
<a href='https://freetonsha.com/2018/05/09/almond-wonderful/'>この記事</a>を読んで、アーモンドを間食用に購入するようになった。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B081PML2L7&linkId=d6228101c0262e1bf51deaee690c181a"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B074K8W3SR&linkId=560be4689146894082b837a5256c7265"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00TZUAXLC&linkId=63991a12bf39f54b4ca323ccb89dcd84"></iframe>
<h2>Amamzonギフト券のチャージ</h2>
銀行振込の支払によってまとめてチャージすると、最大で2% (Prime会員で無い場合) のポイントが1ヶ月ほど経ってから付与される。
高額な商品をAmazonで買ったとき (上記の掃除機のこと)、Amazon Primeの無料体験と組合せてこの方法を使った。
<p/>
クレジットカード払いとは異なり1-2ヶ月ほど早く支払うことにはなるが、私が使っているクレジットカードでは1%しかポイントがつかないので、1%分多くポイントがつく。2ヶ月で+1%の利率を年に換算すると6%/年になるので、メリットがあると判断した。某証券会社で株式信用取引をすると3%ほどの利率がかかるが、それよりも良い。
<p/>
さほど多く使用しないなら、Amazon Mastercardクラッシックで1.5%のポイント取得をねらうのが良いだろう。
<p/>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08G1PWN9X&linkId=816ecc9eef17569fe602033a38e7c64b"></iframe>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=mocf0x-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B0092VO0LI&linkId=46da7ad3361a05f5fbceb9b2c8a7b2a2"></iframe>
<h2>その他</h2>
<ul>
<li><a href='/2021/04/blog-post.html'>音響機器については別の記事にまとめました。</a></li>
</ul>kamaehttp://www.blogger.com/profile/17420592888933956383noreply@blogger.com0