【2024年最新版】今年買ってよかったもの

1年以上このサイトを放置してたんで更新方法すら忘れてる感があるが、 今年買ってよかったものを羅列していく。

SKAGEN JORN HYBRID HR スマートウォッチ SKT3000

今年一番買ってよかったやつ。 アナログ腕時計の文字盤が電子ペーパーになってるタイプのスマートウォッチ。

  • 良い点
    • 見た目が普通の腕時計
    • スマホの通知確認、アラームに使えて便利
    • 電子ペーパーのためバッテリーが数週間もつ
  • 悪い点
    • 電子ペーパーのため画面の更新は若干もたつく (画面が小さいこともあり1秒もかからないが)
    • タッチパネルではないため、側面にある3つのボタンでの操作が必要
      • ボタンを押し込む際の荷重は軽めで 3mm ほど出っ張っている
      • 手の甲などにあたって画面が勝手に変わっていることがある

エレコム Bluetooth5.0 マウス EX-G PRO Lサイズ M-XGL50MBSKBK

長年使ってた Microsoft Sculpt Ergonomic Mouse が廃番になっていたため乗り換え

  • 良い点
    • 高さがあり持ちやすい
    • M、XL サイズも試したが、L サイズの握り心地が一番良かった
    • ボタン数多め
  • 悪い点
    • 充電式のバッテリーは数日しかもたないため、頻繁に充電が必要
    • 中クリック(ホイールクリック)がかなり固くて押しづらい
    • 充電ケーブルの差込口が狭く、付属の USB Type-C ケーブルでしか充電できない

電動空気入れ PANP RIDE MINI

ボタンを押すだけで、事前に設定しておいた空気圧まで自動で空気が入る。便利。

créer 人感センサーライト

廊下にこれを付けたら、夜中にトイレへ行く際などわざわざ照明をつけなくてもよくなった。 コンセント式なので電池交換の手間もない。

マキタ 携帯電話ホルダー A-73162

Galaxy Z Fold5 がデカいんで、ポケットに入れられないとき使ってる

Secrid カードケース

下のレバーを引くとカードが少しずつズレた状態で飛び出すので取り出しやすい

タニタのツインスティック

バーチャロンやるならやっぱりこれ

ロフトベッド

物を置けるスペースが拡大したが、既に埋まってしまった

にゃんぷっぷーぬいぐるみ

かわいい

aptX Adaptive LL 対応 Bluetooth 機器で PC ゲームに使える完全ワイヤレスなオーディオ環境構築

PC でゲームをしたり音楽を聞いたりする際に有線のイヤホンを使用していたが、 ケーブルが煩わしく感じていたのでゲームに使える完全ワイヤレスイヤホンを探すことにした。

aptX LL と aptX Adaptive

ある程度汎用的に使える Bluetooth 接続のものにしたいが、 Bluetooth のプロファイル A2DP で標準のコーデック SBC は音声の遅延が大きい。 ゲームに向いた低遅延のコーデックについて調べたところ、 aptX LL (Low Latency) と aptX Adaptive という規格があるらしい。

aptX LL は名前通り低遅延なコーデック、 aptX Adaptive はローレイテンシー (LL) モードとハイクオリティ (HQ) モードを切替可能。 aptX Adaptive の方が新しいコーデックだが、 aptX Adaptive のローレイテンシーモードよりも aptX LL の方が規格上の遅延は少ない。

よって、aptX LL 対応の機器を買おうとネット上で調べたり某家電量販店で探したが、 aptX LL 対応の機器が少なくいいものが見つからなかった。

Creative BT-W5 と EarFun Air Pro 3 を購入

結局 aptX Adaptive 対応の USB アダプタ Creative BT-W5 と 完全ワイヤレスイヤホン EarFun Air Pro 3 を購入した。

BT-W5 は発売時の記事が印象に残っていたのと、 Sound Blaster 等 PC 用サウンド系パーツの老舗メーカーという安心感から選択。

クリエイティブストアのみでの販売なので、上のリンクは旧機種の BT-W4 にしている。 BT-W5 との違いは aptX HD、24bit/96kHz への対応の有無なので低遅延が目的ならどちらでもいい。

EarFun Air Pro 3 を選んだ理由は、1万円以下の完全ワイヤレスイヤホンで評判が良かったため。

迫力サウンドと強力NCで8,990円! 信じられない超コスパTWS「EarFun Air Pro 3」 - AV Watch[Sponsored]

遅延時間の確認

遅延時間の確認には Latency Tester を使用した。 Web サイト上で音に合わせてマウスをクリックするかスペースキーを押すことで簡易的に遅延時間を確認できる。

また、確認に使用した機器は以下の通り。

アダプタ

アダプタ 対応コーデック
サンワサプライ MM-BTUD43 SBC, aptX
Creative BT-W5 SBC, aptX, aptX HD, aptX Adaptive

ヘッドホン / イヤホン

ヘッドホン / イヤホン 対応コーデック
EarFun Air Pro 3 SBC, AAC, aptX Adaptive
Sony MDR-ZX770BN SBC, AAC, aptX
FOSTEX TM2C SBC, AAC, aptX

確認結果

アダプタ ヘッドホン / イヤホン コーデック 遅延時間
Creative BT-W5 EarFun Air Pro 3 aptX Adaptive LL 100 ms
サンワサプライ MM-BTUD43 Sony MDR-ZX770BN aptX 160 ms
Creative BT-W5 Sony MDR-ZX770BN SBC 200 ms
Creative BT-W5 FOSTEX TM2C aptX 335 ms
Creative BT-W5 EarFun Air Pro 3 aptX Adaptive HQ 350 ms

当然だが Creative BT-W5 と EarFun Air Pro 3 の組み合わせが最も遅延が少ない結果となった。

実際に PSO2 を遊んでみたがアクションゲームで使用するなら特に問題なさそうだった。 音ゲーはやってないからわからない。

問題点

低遅延という点では満足な結果だったが、 それ以外の点でいくつか問題があったので書いておく。

Creative BT-W5

  • PC からはスピーカーとして認識される
  • よって Windows 標準の Bluetooth 設定画面からは機器との接続/切断ができず、 Creative 独自のアプリで操作する必要がある
  • Windows 標準の Bluetooth 接続だと機器が切断されたら自動で別のスピーカー等へ音声出力が切り替わるが、それも行われないため手動で切り替えが必要
  • 音量が大きいため Windows の音量設定を 1 ~ 5% あたりまで下げる必要があり細かい音量調整が効かない

EarFun Air Pro 3

  • 付属のイヤーピースが最大のものでも私には小さくはずれやすい
  • タッチ操作のため誤タッチにより意図しない操作が発生する場合がある

参考サイト

IFTTT の Twitter 連携が有料化したので Python と GitHub Actions で RSS をツイートする

IFTTT で動かしてた某ゲーム公式サイトの RSS をツイートするやつが Twitter 連携の有料化によって動かなくなったため、 GitHub Actions で自作の Python スクリプトを動かして代用することにした。

コードは以下のリポジトリにある。

なぜ GitHub Actions なのか?

  1. Public リポジトリなら無料で利用可能
  2. 定期的な実行が可能
  3. データの永続化に近いことが可能
  4. GitHub Actions の利用経験がなかったため学習用として

RSS 内のどこまでツイートしたかを判別するためその情報を保存しておきたいが、 IFTTT を利用する前に調べた際は 無料で利用可能でデータの永続化が可能なサービスが見つからなかった記憶がある。

今回いくつかの候補の中から GitHub Actions について調べていたところ、 Github Actionsのcacheをデータの永続化(?)に使う - MJHD を見て cache が永続化に利用できると知り GitHub Actions を利用することとした。

Github Actions の cache

公式のドキュメント: 依存関係をキャッシュしてワークフローのスピードを上げる - GitHub Docs

ファイルをキャッシュとして保存し、次回以降のワークフロー実行時に利用できる。

本来はビルドに必要なライブラリなど依存関係を保持しておき ワークフローの実行を高速化するためのものだが、 データの永続化に利用することも可能。

ただし、7日間以上アクセスされていないキャッシュは削除される。容量は最大10 GB。

キャッシュの利用方法

キャッシュを上書きすることはできないため、 保存時は常に新しいキャッシュを作成し、 読込時は最新のものを取得する必要がある。

以下のように key に新しいキーを指定することで新しいキャッシュを作成、 restore-keys に接頭辞のみ指定すると最新のものが取得できる。

- name: actions/cache用keyの生成
  run: echo "CACHE_TIMESTAMP=$(date +%s)" >> "$GITHUB_ENV"

- uses: actions/cache@v3
  id: tweeted
  with:
    path: ./tweeted
    key: tweeted-$
    restore-keys: tweeted-

古いキャッシュの削除

前述の通り放置していても古いキャッシュは7日で消えるが、 GitHub Actions の Cache 管理(2023 年 1 月の場合) を参考に、1日経ったキャッシュはワークフロー内で削除することとした。

GitHub CLI の extension (gh-actions-cache) を使用している。

- name: Cleanup cache
  run: |
    gh extension install actions/gh-actions-cache

    # キャッシュがない場合にエラーとなって停止するのを防ぐ
    set +e

    # 作成から1日以上経っているキャッシュを削除
    for KEY in $(gh actions-cache list -R "${REPO}" -B "${BRANCH}" --key $ --order asc --sort created-at | grep -P 'days? ago' | cut -f 1)
    do
        echo "Deleting ${KEY}"
        gh actions-cache delete "${KEY}" -R "${REPO}" -B "${BRANCH}" --confirm
    done
  env:
    GH_TOKEN: $
    REPO: $
    BRANCH: $

GitHub Actions での定期実行に関する注意点

以下のように schedule で10分毎に実行する設定としたが、 公式のドキュメント にも書かれている通り、負荷が高い場合は遅延したりそもそも実行されない場合がある。

on:
  schedule:
    - cron: '3-59/10 * * * *'

実際半日で72回ほど動くはずが53回しか動いていなかった。 確実に動かしたいものは避けたほうがよい。