| @散財

USB DAC Topping D10s

⚠注意

この記事を書いている時点では設定不足でちゃんと高音質設定で音を聞けていません。詳しくは以下の記事をご覧ください。 Apple Silicon の Mac を使っている人はそもそも USB-DAC なしでもハイレゾ音源を再生できるというオチもあります。

ヒトデさんの日記で Sonos のアンプの話を読んで、急に自分の音楽環境に問題があるように感じられてきて、自分もアンプを買ってみたくなったが値段が高すぎる&パッシブスピーカーを持ってないので意味がないということに気がついた。

自分はいま、 Mac => Bose Computer Music Monitor という流れで音楽を聞いている。 Mac 本体のスピーカーより断然良い音だし、小さいスピーカーなのにめっちゃ良い音が鳴るとは思っているのだが、高校生の頃タワレコの試聴機にソニーのヘッドフォンの組み合わせで聞いていた音がめっちゃ良い記憶で、その後の人生で良いヘッドフォンやスピーカーを買ってもあの頃の音質には及ばない気がしていた。

その漠然とした不満を解消すべく USB DAC なるものに手を出してみることにした。 Amazon で絶賛されていた中国メーカ Topping の D10s という USB DAC がコストパフォーマンスが良くて最高らしい。みんな絶賛してる。

そもそも USB DAC を使うメリットは何か。一つには Apple Music などで配信されているハイレゾ音楽を聴けるようになることがある。普通の 3.5m プラグでスピーカーにつないでもハイレゾ音源は再生できない。もう一つには 3.5m ジャックから出てくる信号はあまり良いものではないらしいく、 USB ポートを介して出てくるデジタルデータを USB DAC でアナログに変換してやる方が音質が良くなるらしい。

自分は抗がん剤の治療のせいで高音難聴になっていて 4K Hz 以上の音が聞き取れないため、こういうのを使って音を聞き分けられるか自信がなかったのだが、上述の通り 20 年以上前にタワレコのナカミチのプレーヤーで聞いた音と近い感じで音を聞きたいという漠然とした願望があったのでリストカット感覚で買ってみることにした。

Windows だとドライバーのインストールなどが必要なようだが、 Mac の場合は USB ケーブルでつなぐだけで Mac がオーディオデバイスと認識してサクッと使い始めることができた。 Topping D10s からの出力は 3.5m ジャックがないので別途 RAC オーディオケーブル(ステレオとかで使う赤白のやつ)が必要。

満を持して Mac => Topping D10s => Bose Computer Music Monitor につないでハイレゾ音源を再生してみたが、正直違いがわからない…。 Amazon であれほど絶賛されているのだからさすがに少しは違いはわかるだろうと思っていたが、まるっきり違いがわからない…。 Amazon で高評価レビューをしていた人達はオーディオ沼の住人たちだったのだろうか…。

そもそも自分はスピーカーもヘッドフォンも Bose で、 Bose のコンシューマー向けの製品はそもそもアンプなどを介さずに利用されることを想定していると思われるので(面倒くさいことをしなくてもほどほどに良い音で聞けるのが Bose のウリなはず)、 USB DAC などを挟んでもメリットを感じにくいのかもしれない。

自宅の机で音楽を聞く環境はここ 15 年くらい変化がなくてマンネリ化していたので何か大きな変化を起こせるかなと思っていたけど、特にそういうことは起こらず無駄遣いになってしまった。悲しい。

追記

何時間か聞き込んでみた。音を大きめにして、ジャズなどのドラムの音を聞き取り安やすい曲を再生してみると違いがわかるような気がする。ドラムの音がなまめかしい。なまめかしいという表現が適切なのかわからないが、音に生音感があるといったらいいんだろうか。ギターなどでは違いを感じにくいけど(高音難聴だからかもしれない)、打楽器の聞こえ方で結構な違いがあるような気がする。最初は無駄銭失いかと思ったけどそうでもないかもしれいと思い直している。

| @旅行/散歩

テントとタープ

ゴールデンウィークの前半でキャンプをしに行った。福岡の人がキャンプをしに行く場所といえば阿蘇・久住方面が人気だが、自分が阿蘇出身ということもあって実家の方に行くのにテントで寝泊まりするのは違和感があって久住でキャンプしたことは一度しかない。どちらかというと佐賀方面に惹かれる。車で一時間ちょいで行けて、森や海や温泉があって、キャンプ場はそこまで混雑しておらずまぁ快適だ。高速料金が安く済むのもいい。久住阿蘇方面だと 3000 円近く高速代がかかるが、佐賀方面だとうちからの場合 200 円くらいしか高速代がかからない(西九州自動車は全線開通していないため無料で通行できる)。今回は佐賀ではないが、佐賀県伊万里市の沖合にある長崎県松浦市の福島という島の初崎キャンプ場に行った。

今回のキャンプでは新しい道具をいくつか使ってみた。

Evernew HD.ALU Pan 20

エバニューのアルミフライパン。ゴールデンウィーク前に突如販売が始まったやつで一瞬で売り切れていた。登山用のコーティングしてあるクッカーは直火にかけるのが心配で、直火にかけても問題ないフライパンが欲しかった。去年秋に買ったエバニューの Backcountry Almi Pot がなかなか良くて、直火で炊飯してもコーティングが剥がれるのを気にせずに済むところが気に入っている。同じ使い勝手を期待して買ってみたところよい感じだった。スパゲティーを作ったり、目玉焼き焼いたり、カレーを作ったりと大活躍だった。

スパゲティ

目玉焼き

カレーを調理中

カレーライス

今回は一番大きいサイズの 20cm を買ったが、テント泊登山(自分の場合はハンモック泊)用に 16cm あたりも買ってもよいなと思った。

Igloo Marine Breeze Ultra 28L

悪天候により一泊に変えたが、当初は二泊三日でキャンプする予定だったのでクーラーボックスを買った。

これまでコストコのショッピングバッグなどを簡易的にクーラーボックス代わりに使っていたが、食材の保温効果は限定的だった。クーラーボックスは 50L くらい必要、みたいな記事が多いが、 50L 以上のクーラーボックスは数万円もして高い。自分は Amazon で Igloo の 28L のやつを買ったがこれで十分だった。肉やビールなど、低温を維持したいものはクーラーボックスに入れ、少々温度が上がっても平気なものはショッピングバッグに入れることにしたところ作成成功だった。

Igloo のクーラーボックス Marine Breeze Ultra 28L

うちの子どもは牛乳が好きなのでキャンプのときにも牛乳を飲ませているが、キャンプ場に着いた日に飲むだけで翌朝の分がなく可哀想だった。ちゃんとしたクーラーボックスを買ったことで牛乳も大きなパックを買うことができるようになり、翌朝も牛乳を飲めて満足そうだった。

うちの車は小型の SUV で荷物がめっちゃ載せられるタイプではないのだが、それでも普通のセダンやコンパクトカーに比べたら荷物を載せられる方だと思う。それでもクーラーボックスのサイズはこれくらいが限界だと感じた。 50L 以上のクーラーボックスを載せられるような車はランクルなどの巨大なやつかピックアップトラック(軽トラ)ではないかと思う。

なお、保冷剤はロゴスの倍速凍結・氷点下パック L を買った。 Amazon のレビューで XL がちょうど良いとあるので買ったところ底の大きさが合わず返品してしまった。 L だとちょうど底に収まる。

DOD ローローバーチェア

キャンプ直前の Amazon タイムセールで DOD のローローバーチェアが安くなっていたので衝動買いした。

キャンプ椅子はこれまで DOD のスワルスエックスだった。小さくて持ち運びしやすいが、生地が伸びやすいのとナイロンなので火に弱く、焚き火がはぜて穴が開いている。座る前の組み立てや撤収時の折りたたみもわずかに面倒くさい。ローローバーチェアは生地が綿なので燃えにくいし、座るときはひょいと広げるだけで良いので楽だ。その分、持ち運び時にかさばる。うちの車にはギリギリ載せられた。 4 人家族だったら運べないだろう。ランドローバーとかチャレンジャーに乗ってる人でないと本当は買ってはいけないものだったのかも知れない。見た目がカッチョイイのでキャンプのほか、自宅バーベキューで活用しようと思う。


実はこれ以外にも細々したものを買っている( Ledlenser の LED ランタン、 ZANE ARTS のシェラカップ、 UNIFLAME フィールドラック用のステンレス天板など)。以前書いた通り、キャンプは道具沼だ。毎回キャンプに行くたびに普通にビジネスホテルに泊まるのと同じくらいお金がかかる。

まだキャンプしたことない人にはおすすめしません。家でゲームしたり Netflix 見たりしてる方が楽しいと思います。

| @技術/プログラミング

ブログ過去記事の閲覧 UI にはこだわりがある。これまで何度か記事を書いた。

このブログの維持管理で一番時間を割いているのが Archives ページだ。しかしアクセスログを見ると自分以外はほとんど利用していない。完全に自己満なのだが、過去の自分を振り返ることができてとても自分には有意義なページだ。

過去記事を振り返るときには検索をしたくなる。タイトルのみであればページ内検索で探せるが、やっぱり本文込みで検索したい。 Lokka の検索はあるが、検索結果ページは 7 件ずつ(この値はカスタマイズできる)表示で全文表示される。自分は検索キーワードに関する記事が存在するか知りたい訳ではない。著者なのでキーワードに関連する記事があるかないかくらいわかってる。じゃなくて過去の自分がいつ頃どの密度でそのトピックについて書いていたかを知りたいのだ。

タグやカテゴリーで絞り込む手もある。しかしカテゴリーやタグは理想的な分類ではない。二つのカテゴリーを横断するような記事があるし、タグは設定し忘れていることが多い。全文検索が一番頼りになる。

SQL で全文検索的なことをやろうとするとパフォーマンスが良くないだろう。やっぱり全文検索システムが欲しい。

Tantivy と Tantiny

とはいえ、個人のブログで全文検索エンジンを導入するのはしんどい。確かに Apache Solr や Elasticsearch を個人ブログに入れるのはきつい。もっと手軽に使えるものはないか探していて、 Rust 製の全文検索システム Tantivy と、その Ruby クライアントの Tantiny を発見した。

これがめっちゃ簡単で昨日数時間サンデープログラミングをして導入できた。システム環境に適合するビルド済みのバイナリが GitHub にあれば Rust 環境のセットアップすら必要ない。 Gemfile に gem 'tantiny' と書いて bundle install するだけで使えてしまう。

うまくいかなかったもの

最初、同じ Rust 製で Wasm までセットで提供してくれる tinysearch を試した。 JSON 形式で全ファイルを書き出すだけで使えるやつだ。しかし残念なことに日本語では全く使えなかった。自然言語処理をやろうとしていてあるあるのパターンだ。日本語は MeCab などでトークナイズしてやる必要がある。

デフォルトのトークナイザーでもそこそこに優秀な Tantivy

Tantivy にもトークナイザーをカスタマイズできる仕組みはあるが、標準の Simple Tokenizer でもそこそこ精度が高い。固有名詞にちょっと弱いが、辞書ファイルがないので仕方ないだろう。

個人ブログでも全文検索できる時代

このブログは個人ブログだが、画像のリアルタイムリサイズサーバーを動かしている(おかげで S3 の転送量が安くて済んでいる)し、 TF-IDF で関連の高い記事も表示している。それに加えて全文検索まで入れてしまった。こういうのは大手のブログサービスを利用しないと使えない機能だったが、 OSS と新しいプログラミング言語( Go や Rust )のおかげで個人でもそこそこのスペックのサーバーでこれらを利用することができるようになってきた。 MovableType でサイトを構築していた時代から何も進歩していないようで実はとても進歩している。こういう文化の灯火が消えないようにしていきたい。

| @登山/ランニング

ゴールデンウィークに Instagram 見てたら登山愛好家の皆さんがめっちゃ遠くの山に行っていて正直うらやましかったのでいても立ってもいられなくなり、北アルプス行きの予約をした。

去年、福岡から北アルプスへの行き方に関しては調べてブログに書いていた(福岡から北アルプス(上高地)までの行き方)。 9 月の頭あたりに行こうかと思っていたが、緊急事態宣言が出ていたので諦めてしまった。今年は巷にコロナに打ち克った感あふれてるし行けそうな気がしてる。

松本までは飛行機( FDA )で行くことにした。金額が高くなっても結局は飛行機の方が時間と費用を加味した総合的な移動コストが安い。セントレアや名古屋空港を経由しても上高地までの移動にバスを挟んで時間がかかってしまうので時間コストが大きい。マイルが貯まっていてセントレアまでの移動費をゼロにできる場合を除いておとなしく FDA で松本まで行った方がよい。天候的にキャンセルせざるを得なくなったときはキャンセル料を払って諦めることにする。

何時頃上高地に着くかによって山行プランが変わる。自分は奥穂高岳に行こうと思っているが、槍ヶ岳の人も似たようなプランになるだろう。

朝一番の飛行機で松本入りすると上高地着が 14:00 過ぎになる。そこからその日のうちに歩いて行けるのは徳沢か横尾までだ。徳沢も横尾も山小屋があって宿泊できる。初日はここに泊まって、翌日一気に奥穂高岳に登頂するのが良いだろうと考えた。登頂後は穂高岳山荘に泊まり、翌朝奥穂高岳にもう一度行って涸沢岳にも立ち寄ってから一日で下山。 13:30 頃に上高地に着くので松本に移動して後泊する( FDA の 17:30 の便には間に合わない)。後泊も入れて三泊四日の旅程になる。

一方、登山開始前日の午後に家を出発し、新幹線(か名古屋・セントレア行きの飛行機)と夜行バスを乗り継いで早朝に上高地入りすると、早朝 5 時半頃から歩いて一日目1に涸沢まで行ける。一日目の夜は涸沢の山小屋に泊まり、二日目に奥穂高岳に登頂できる。ただし山の上でマジックアワーを見たりご来光を見たりはできず、その日のうちに涸沢まで戻って小屋泊することになる。最終日は急いで下山すればその日のうちに帰宅できるが、山では何があるかわからないし予備日は設けておきたいところ。後泊すること前提で予定を組んだほうが良い。ゼロ日目の移動も合わせて四泊五日の旅程になる。

夜行バスで上高地入りする早朝着プランの方が安いような気がしてしまうが、福岡から向かう場合だと結局大阪か名古屋まで新幹線か飛行機を使うので大して金額的なメリットはない。旅程が長くなり、長時間の移動・夜行バスで疲れ、日の出どきやマジックアワーを山頂付近で過ごせない。東名阪に住んでいる人であれば夜行バスの早朝着プランは安く行けてメリットありなのだが、それ以外の地域から行く人にとっては午後着プランの方が無難だろう。

あとは天候が良くなることを祈るばかりだ。


  1. 一日目は午後から新幹線で大阪か名古屋まで移動し、夜行バスに乗り換えるので旅程的には二日目 

| @WWW

インターネット以前の世の中では、コンテンツ(新聞、書籍、テレビ、映画)は公開してしまえばほぼほぼ終わりだったけど、インターネット以後の世界では人々がコンテンツをどう評価・解釈しているのかがわかるようになってきた。むしろ評価・解釈の部分の方が重要性が高まっているように思う。

昔は難しいニュースの解釈や解説は親戚の博学なおじさんがしてたけど、いまはインターネットにいろんな人が解釈や解説を載せてる。みんなでコンテンツを見るのは面白い。ラピュタのバルスやサッカーのW杯しかり。映画も家で一人で見るより映画館で知らない人と一緒に見た方が楽しく感じる。

人間は見たものをどう評価・解釈するかを他の人と共有したい欲求がありそうだ。また、他の人がどう思っているかを知りたい、それを見てからコンテンツを消費するか決めたいというコンテンツ消費の二軍みたいな人たちもいる。コンテンツが無数に溢れているから、あまり面白くないコンテンツで時間を無駄にしたくないという心理が働くのだろう。

コンテンツを評価・解釈する人と、それを見てからどのコンテンツを消費するか決める人の間でプラットフォームを作れると面白いかもしれない。

| @ブログ

今宿二宮神社の藤棚

このサイトは Amazon の Product Advertising API を利用して小銭を稼がせてもらっている(毎月 300 円くらいインターネットの恩沢がある)。去年も 5 月頃に記事を書いているのだが、 30 日間で一個もこのブログ経由で商品が売れなかったので Product Advertising API の利用が制限されてしまった。

Product Advertising API は 2020 年の春に Version 5 への移行が義務づけられ、 30 日間で一回も商品を売れなかったサイトは API の利用ができなくなってしまうのだった。

春は入学や就職、引越の準備で忙しくて誰もこのような泡沫ブログを読んだりしないのだろうか。春は買い物する機会自体は多いと思うので、買い物していないわけではなく、趣味性の高い商品のアフィリエイトが踏まれにくくなるのかもしれない。

| @技術/プログラミング

松浦福島初崎海岸のドクロのような岩

Mac の Homebrew のライブラリ群を久しぶりにアップデートした。 tmux と fish のバージョンを上げたら tmux が動かなくなってめっちゃ焦った。いろんなものを同時にバージョンアップするとどっちに原因があるのかわからなくて困る。結局、 brew reinstall tmux で事なきを得た。

次に VPS の Ubuntu のバージョンが古くなっていたのでアップグレードした。ついでにいろいろ気になってたところ(ログローテートがうまく動いていないところとか Nginx の設定ファイルの配置など)を直して回った。

OS のアップグレードに伴って Ruby の再インストールが必要になり、 Ruby 再インストール後にアプリケーションを deploy しようとすると mimemagic gem が yank されていたりでライブラリのアップデートが必要になった( MimeMagic は脆弱性があって Mercel に変更しないといけなかったが、変え忘れていたところがあった)。これによって引きずられるように gem のアップデートが必要になり、うっかり capistrano3-puma を v5 系にしたところ、 puma の起動ができなくて困った。どうも puma の v5 ではデーモン化オプションが削除されているようで、 capistrano で puma を再起動させたりはできないようだった。いろいろ面倒くさそうなので capistrano3-puma も puma も v4 系に固定して凌いだ。

Archives ページの npm パッケージも古くなってたので、 React や React Router 、 Webpack 、 Babel など各種ライブラリのバージョンを上げた。 React Router の v5 系から v6 系へのアップデートは結構大変だった。以下を読みながらやった。

withRouter などは React Router から機能が消えるのでそれをラップする関数を自分で書いてコンポーネントに mixin するような感じだった。以前に比べたらマイルドになっているとはいえ、 JavaScript 界隈はアップデートについて行くのが厳しい。

職業プログラマーじゃなくなったので開発環境の維持管理などがおろそかになりがちだし、 Vim やシェルのショートカットを忘れてしまうことがある。 Vim やシェルの操作は特殊技能のようなものなので忘れるともったいない。たまに触って忘れないようにしておきたい。

そういえば温かくなって庭の雑草が伸びてきたので庭の草むしりもやった。ゴールデンメンテナンスウィークだ