| @旅行/散歩

テントとタープ

ゴールデンウィークの前半でキャンプをしに行った。福岡の人がキャンプをしに行く場所といえば阿蘇・久住方面が人気だが、自分が阿蘇出身ということもあって実家の方に行くのにテントで寝泊まりするのは違和感があって久住でキャンプしたことは一度しかない。どちらかというと佐賀方面に惹かれる。車で一時間ちょいで行けて、森や海や温泉があって、キャンプ場はそこまで混雑しておらずまぁ快適だ。高速料金が安く済むのもいい。久住阿蘇方面だと 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. 一日目は午後から新幹線で大阪か名古屋まで移動し、夜行バスに乗り換えるので旅程的には二日目 

| @ブログ

今宿二宮神社の藤棚

このサイトは 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 やシェルの操作は特殊技能のようなものなので忘れるともったいない。たまに触って忘れないようにしておきたい。

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

| @登山/ランニング

浮嶽 大岩展望台

4/2 ~ 4/4 で脊振山系全山縦走に挑戦した。福岡の西端の十坊山から佐賀の基山まで二泊三日で歩いた。総歩行距離は 72km 、累積獲得標高は 5500m 。 20km 以上歩き、 1500m 以上登るのを三日間繰り返す。泊まりはハンモック + タープで、食料の補給はなし、水は湧水や沢で補給しつつ歩き通した。

自分は体力がなく歩くのがとても遅くて、全山縦走のことを知ったときにはとても自分に踏破できるとは思ってなかった。実際、 2 年前の夏に脊振山から金山までのセクションハイクをしたときにはバスに乗り遅れるし散々な有様だった。

4 年前にも十坊山から二丈岳までを歩く糸島四座縦走に挑戦して失敗している。

UL (ウルトラライト)メーカーの軽量な登山用品を買い集めながら歩くのが遅いどん亀という矛盾した雑魚だったのだが、 2021 年はジョギングを開始して徐々に体力をつけ、長めの縦走もこなした。4年前に途中で撤退した糸島四座縦走も比較的楽に達成した。

ちゃんと歩けた勝因と改善点をまとめてみた。

勝因

  • 荷物は軽く
    • 服はメリノウールにして余計な着替えは持たなかった
      • メリノウールは汗をかいても匂わない、化繊の服はひどい匂いを漂わせるので着替えが必要になる
    • カメラも持っていくことを諦めたので iPhone で撮った写真しかない
  • ちゃんとした昼飯を食わない
    • 基本的に昼間の食事は行動食のみ
    • 絶景ポイントで休憩して山飯作ったりコーヒー飲むとかやらない
    • 時間を節約でき、荷物も減らすことができる
  • 塩味の行動食
    • 日中、ちゃんとした飯を食わない代わりに塩味の行動食があると良い
      • 具体的にはカルパスや魚肉ソーセージ
    • コストコのアドベンチャーミックス(塩味のミックスナッツ + ドライフルーツ)もよかった
  • アミノバイタルゴールド
    • 現代の仙豆
    • めっちゃ疲れてても翌日足がパンパンにはならない(少なくとも午前中は)
    • 一日一本飲んでたが二、三本飲んでもよいみたいなのでもっとたくさん飲めばもっと楽だったかも
  • 山と道 MINI2
    • メッシュポケットがスーパー便利
      • 暑くなって脱いだ服をしまう
      • 行動食をつっこんでおく
      • 水場で浄水器をさっと取り出して浄水する
  • KATADYN Be Free (浄水器)
    • どこの水もサクッと浄水できるとわかっていたので大量に水を持って歩かずに済んだ(必要に応じて沢水などを浄水して調達すれば良い)
  • Black Diamond Distance Z (トレッキングポール)
    • 軽量なアルミポールを初めて買った
    • 脚の負荷をだいぶ軽減してくれたと思う
    • 荷物が多いので左右のふらつきを抑制して安全に歩けた

改善点

  • カロリー
    • カロリー計算した上で行動食を準備できてなかった
    • 持参したウィーダーインゼリーはプロテインやビタミンなどを重視した低糖質のやつでカロリーが少なくエネルギー源としてふさわしくなかった
    • 安くて甘くて体に悪そうなやつをもっと持ってくるべきだった(どらやき、ようかん、惣菜パン、イカフライなど)
  • サイズの合ってない靴
    • Altra Olympus 4 はちょいとデカめでサイズが合っておらず、下りで靴の中で足が動いて辛かった
  • メリノウールの靴下
    • これまでメリノウールの靴下で足が蒸れると感じたことはなかったが、 Injinji の五本指ソックスと履き比べてみて蒸れを感じてしまった
  • かさばるレインウェア
    • 低山のレインウェアとして雪山でも使えるハードシェルを持って行くのはかさばって良くない
    • レインウェアとウィンドシェルで機能がかぶるものを二つ持つのも邪魔
    • 省スペースでレインウェアとウィンドシェルの両方の役割を果たす雨具が必要
      • 山と道の UL All-Weather Hoody を買った

装備

  • 帽子
    • Milestone メッシュキャップ
  • Tシャツ
    • icebreaker メリノウールTシャツ
    • Smartwool Everyday Exploration T Shirt (予備)
  • 行動着
    • 山と道 Merino Hoody
  • ウィンドシェル
    • Patagonia Houdini Jacket
  • パンツ
    • WORKMAN メリノウールパンツ × 2 ( 1 枚予備)
  • ズボン
    • 山と道 Light 5-Pocket Shorts
  • 靴下
    • OS1ST FS4 PLANTAR FASCIITIS SOCKS
    • Injinji Trail SP TIE-DYE
    • Point 6 Hiking Lt Mini × 2 ( 1 足予備)
    • Altra Olympus 4
  • トレッキングポール
    • Black Diamond Distance Z
  • ザック
    • 山と道 MINI2
  • 防寒着
    • Patagonia Nano Puff Jacket
    • Mountain Equipment パウダーパンツ
    • EXPED ダウンソック
  • レインウェア
    • ARC'TERYX Alpha SL
    • Patagonia トレントシェルパンツ
  • クッカー
    • EVERNEW Ti 570 Cup
  • バーナー
    • EVERNEW チタンアルコールストーブ
    • VARGO Titanium Hexagon Wood Stove
  • ハンモック
    • AXESQUIN ウキグモ Light
    • AXESQUIN モグ 350
  • タープ
    • EXPED Hammock Trekking Tarp
  • ライト
    • Petzl Tikka
    • Ledlenser ML4
  • モバイルバッテリー
    • Anker PowerCore Essential 20000 PD

コロナ禍で飲み会に行かなくなって浮いた金でアウトドアギア買いまくったのが生きた感じの縦走だった。なかでもベストを挙げるとすると山と道 MINI2 だろう。

山と道総帥の夏目さんが書いている MINI2 の制作ノート 2021 年版がとてもよい。

山と道設立当初は、「耐久性や強度よりも軽量性が大事」と思っていました。1回のULハイクが人生を変えるかもしれない可能性を秘めていると信じているからです。

しかし、たくさんの方々にMINI2を送りだしていくと、みんな上手く使えているだろうか、壊れていないだろうかと、心配も積もるようになりました。できれば安心して長く使ってもらいたい。UL原理主義的であった自分の物作りの考え方も少しずつ変化してきているのかもしれません。

そして2017年に、山と道HLCで日本全国を旅して色々な方々と出会い、気がついたことがありました。僕が考えているようなULハイカーは、日本中を探しても実はほとんどいなかったのです。

ULハイカーのための道具作りをしてきた自分は誰に向けて作っていたのか? 自分の思いは独りよがりだったのか? あらためて自分が作る道具と向き合うきっかけとなりました。

MINI2 | 山と道 U.L. HIKE & BACKPACKING

この文章は首がもげるほど頷きながら読んだ。アプリやウェブサービスの開発に携わってる人なら似たような経験をしたことがあるのではないだろうか。

実際に縦走で初めて使った MINI2 は軽いながらも頑丈な作りで木の枝で何度も擦ったがダメージがなかったし、メッシュポケットはとにかく便利だった。暑くなって脱いだ服をガサツにメッシュポケットに突っ込み、寒くなったらさっと取り出して着て、腹が減ったら行動食をパッと取り出して食べる。ハードな山行を支えてもらったし、今回の UL ハイクで人生が変わった(少なくとも登山人生の一つの目標を成し遂げた)。

山と道の短パンを初めて買ったのは 2017 年の 3 月で、それから登山アプリの会社に入って登山をするようになり、昼飯に 120 円のチキンカツとインスタントそばを食べて浮かせた金で山と道の製品を買ってきた。 UL ギアを身につけながら歩くのがめっちゃ遅いしロングハイクもしたことがなかったのだが、今回やっと、自分で考えて可能な限り荷物を削り、誰かに荷物を持ってもらったりすることなく、途中で補給を受けることもなく、 70km 以上の縦走路を歩き通すことができた。ようやく UL ギアが様になるハイカーになれたのではないかと思っている。

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

Archives ページでチャートのカテゴリー選択とセレクトボックスのカテゴリー選択が連動していなかったのを統合して連動するようにした。以前、やり方がわからなくてチャートのカテゴリーのレジェンドをクリックしたときにクリックされたカテゴリーをチャートから非表示にしつつ色をグレーアウトさせるのもできるようになった。どのカテゴリーの記事をいつ頃どのくらい書いていたかがわかるようになってめっちゃ便利。

Archives ページは React で作っていて、チャートとセレクトボックスでそれぞれに別々にカテゴリー一覧を API から取得していたのを一本化し、非表示とするカテゴリーも同じ state として管理するようにした。こういうのがサクッとしかも高速にできて React は便利。 jQuery でやるのは大変だった。