| @雑談

福岡県水産海洋技術センターから見る脊振山

年が明けてからやるのはどうかと思うが、タイミングがなかったので今さらながら 2022 年のふりかえり。

ランニング

2022 年はよく走った。これまでも何度か走ってると書いていたが、ちゃんとグラフにしてみると 2022 年の 8 月までは大して走っておらず、 2022 年の 9 月から本腰を入れて走るようになったようだ。

オレンジ色の線が 2022 年のもので、9 月から傾きが急になっている。 9 月は月間 110km 走った。月間 100km はフルマラソンに出られる基準のようなのでこの頃は調子こいていた。

ランニングの頻度を上げるのに役立ったのが計画表だった。それまで漫然と走っていたが、漫然と走っていると月間 100km も走れないことに気がついた。自分は一回 5km 走っているが、それを気が向いたときに週 2, 3 度やるだけだと月間 50km くらいにしかならない。きちんとランニングした日と距離を確認していかないと目標には辿り着かない。ログは Apple Watch で取得しているが、統計データとしては見られない。なので HealthFit というアプリを使っているが、 HealthFit では目標設定ができないので Numbers でシートを作って管理することにした。これは元はてなのディレクターの二宮さんの記事の真似。

こちらが年間の週次のランニング計画。

年間ランニング計画

こちらが月間の日次のランニング計画。

月間ランニング計画

月間のシートに日次の目標と実績値を入れると、年間の週次のシートに自動反映される仕組みになってる。これによって自分は一週間に何 km 走る予定で現在目標に対してどのくらい達成しているのかを確認できるようになる。

37signals の本を読んで、計画を立てるのはアホだ、数値目標なんて意味がない、未来を先読みすることはできない、という発想に影響されて計画を立てたりするのは何となく良い印象を持っていなかったけど、月間何キロくらい走りたいとか、ベンチマークとなる具体的な数値目標がないとなかなか実績は積み上がっていかないと思う。もちろんまだ走ったことがない状態でいきなり月間 100km のような目標を立てるのは愚かだと思うが、そこそこ走れるようになってきたら(自分の力がわかるようになってきたら)計画を立てたり数値目標を設定したりするのは悪くないことだと思う。

9 月にがむしゃらに走ったおかげか、最近は走るペースが一段速くなっていて、 1km を 5 分台で走れるようになってきた。今年はちょっと色気を出して初心者向けのトレランの大会に出てみようかと思ってる。

登山

4 月に脊振山系全山縦走、 11 月に九州脊梁に行った。夏に北アルプスを予定していたが、ちょうどコロナにかかって行くことができなかった。何にせよ最近は山に登るのよりも近所を走る方が楽しいので山への足が遠のいた一年だった。登山時の体力作りで走り始めたのに本末転倒している。

仕事

一昨年は結構でかい成果を出せたが 2022 年はぱっとしない一年だった。反省したい。

生活

iPhone を買い換えて 11 から 14 Pro になった。カメラが三つになって望遠の写真を撮れるようになったのが便利。 Dynamic Island も便利。タイマーかけてるときに常に Dynamic Island で残り時間を確認できるのは相当便利。 164800 円払ってよかった( 36 回ローン)。

サウナにハマってぼちぼち行っていた。サウナーの人たちのように一週間に何回も通うというほどではないが、金曜日の仕事帰りにサウナまで走って行ってサウナに入って帰るというのを何回かやった。花金感が出て良い。

2020 年に車を買い換えたがあまりドライブしてない。アメ車なので燃費が悪い、コロナなので出かけづらい、などいろいろあるが、せっかく車を買い換えたのに使わないで置物になってるのはもったいないので有効活用したい。

そういえば 2022 年は YouTube をよく見た。 YouTube Premium に入ったので広告が表示されなくなり、邪魔が入ることなくとてもなめらかに動画を視聴できるようになった。 Netflix はあまり見ていなかったので解約し、 YouTube で素人が上げる動画をよく見た。ストーリーのない、ただ料理をしているだけとか、ただ穴蔵を掘っているだけの 15 分くらいの動画を見るのがちょうどよい。 Netflix の動画は長いし、ことあるごとに金、暴力、セックスを意識させられるので見るのがきつい。こってりしすぎている。

ブログ

Tantivy を導入して全文検索できるようにした。検索も見た目を変えてインクリメンタルサーチできるようにしたりした。年に一回くらいはバズる記事を書きたいが、 2022 年は不作だった。反省したい。

総括

仕事や生活、ブログは本当にぱっとしなかった。その代わり走ることを頑張っているのかも知れない。ランニングや登山は、大して頑張って生きていないのに走ったり山に登ったりするとめっちゃ頑張ってるかのような錯覚を得られて自己肯定感が高まる。仕事などでもちゃんと成果を出しつつ走ったりできたら良いのだけど自分の場合は逃避になってるような気がする。しかし走るのをやめたら仕事で成果を出せるかというとそうでもないし、遺伝的に糖尿病のリスクがあるので発症しないように死ぬまで走り続けるしかない。 2023 年は運動しつつ仕事やブログ書きでも一定の成果を上げたい。あともうちょいサウナに行きたい

| @散財

Projection on a wall by Anker Nebula Cosmos

去年、 Rebuild ポッドキャストで miyagawa さんがプロジェクターの話をしているのを何度か聞いて気になるようになりプロジェクターを買った。コロナ禍なので映画館に行きづらいし、居間のテレビのチャンネル選択権は自分にはないので寝室の壁に映して見られるプロジェクターを導入した。 Anker の Nebula Cosmos というもの。 明るさが 900 ANSI ルーメンあって、昼間でもカーテンを閉め切ればなんとか視聴可能。Android TV 内蔵で基本的にこれ一つあれば動画配信サービスの動画が見られる。コロナにかかってしんどいときもプロジェクターで動画を見て凌いだ。

プロジェクターで一番見たのはおそらく YouTube で、中田敦彦のYouTube大学伊豆のぬし釣り、海外のキャンプ動画や登山動画をよく見た。海外の動画は画質が当たり前のように 4K で撮影・編集技術ともに高く(基本的に自撮りだが、三脚と複数台カメラとドローンを駆使していて映画並の映像クオリティ)、プロジェクターの大画面で見ると凄かった。この手の映像で魅せる系の動画はスマートフォンや Mac のディスプレイでは良さがわからなかったと思う。

その次によく見たのは Apple TV+ で、モーニングショーやテヘラン、テッドラッソあたりを見た。いまもフォー・オール・マンカインドを見てる。 Apple TV+ のドラマはどれも高画質なのが良い。なお Android TV にもちゃんと Apple TV アプリがあるので Apple TV+ の作品を問題なく視聴できる。素晴らしい。

プロジェクター、概ね満足しているが、不満な点としては以下。

ファンの音が少しうるさいのと夏場は排熱が厳しいと感じる。また部屋が狭く壁正面にプロジェクターを配置できなかったので斜めから投影しており(日本の住宅事情だとこういう設置方法が多いと思う)、補正が必要になる。角度補正機能はあるが、ちょいちょいズレるので手動で補正する必要がある。

しかしこれらはまだ許容範囲で、最も不満なのが Netflix が完全対応していないことだ。 Netflix は著作権的なアレでプロジェクターでのアプリ動作を拒んでいるようで、 Nebula で Netflix を見るためには Nebula Manager というモバイルエミュレーターのようなアプリを Google Play でインストールし、そのなかにスマートフォン版の Netflix アプリをインストールしなければならない。しかもこのスマートフォン版 Netflix は Nebula 付属のリモコンで操作できず、いちいちスマートフォンの専用アプリで操作する必要がありはちゃめちゃに使い勝手が悪い。極め付けは画質の悪さで、せっかく Full HD のプロジェクターで投影してるのにスマートフォン版 Netflix は SD 画質なのでぼやけたり滲みのある映像になってしまう。

ちゃんとした Netflix アプリを使うには Apple TV や Fire TV 、 Chromecast などを使えば良いのだが、 Netflix のためだけにそこまでするのはどうだかなぁという感じがするので未導入。結果として Netflix を見る頻度が落ちてとうとう解約してしまった。 Netflix オリジナルコンテンツは「金、セックス、権力」というような番組が多かったので食傷気味だったしこれでよかったのかもしれない。今後は YouTube と Apple TV+ と Amazon Prime Video を見て過ごすことにする。

Anker Nebula Cosmos

| @登山/ランニング

HealthFit.app

Apple の「フィットネス」アプリへの不満

Apple Watch の「ワークアウト」を起動して走ったり運動したりすると iPhone 側の「フィットネス」アプリに記録が残る。心拍数やペース、 1km ごとのスプリットペースなどはわかるのだが、月ごとのグラフなどを表示する機能はない。個別の記録か、月ごとの集計値を見ることしかできない1

iOS Fitness app iOS Fitness app workout detail
Apple 標準のフィットネスアプリのキャプチャ。アクティビティのログ一覧と総消費カロリーなどが表示されるが、一ヶ月間で何キロ走ったかなどの統計データ(グラフ)は見られない。詳細の見た目はかっちょよいが込み入ったことはわからない(自分で Numbers などに転記して計算しないといけない)

グラフや分析データを見るにはランニング系アプリを使うしかない

月ごとの集計値をグラフにして見るためには Strava などに記録をアップロードするしかないが、詳細な分析は Strava でも有料プラン( Strava Summit )に加入しないと確認できない。特定のサービスにロックインされるのは嫌だし、どこかにデータをアップロードしなくても統計データを確認する方法はないものだろうかと探してみたら、 HealthFit という iOS アプリが見つかった。

HealthFit

610 円で買い切り。 Strava Summit の一か月分の値段よりも安いのになかなかよい。月ごとの集計データを確認できるし、心拍数をゾーン毎にパイチャートにして、運動中の負荷の割合を確認できる。 Apple のフィットネスアプリのローソクグラフよりもはるかにわかりやすい。

詳細な活動データ

HealthFit app activity overview HealthFit app activity metrics HealthFit app Heart rate pie chart
HealthFit アプリのワークアウト詳細。かなり詳細なデータが見られる。負荷などを計算して表示してくれる。心拍数のパイチャートがお気に入り。

心拍数の分布はかなり参考になる情報で、同じペースで走っていて心拍数の最大値も平均値も同じくらいだけど、実は分布がかなり違うということがある。月一回くらい近所の山(叶岳・高地山・高祖山・鐘撞山周回)でタイムトライアルやってる。去年の冬にベストタイム出したときと先日走ったときで、心拍数の平均値は同じくらい( 152bpm と 159bpm )だが、分布が全然違う。好タイムを出したときはレッドゾーンの割合が少ない。

去年 先日
左が去年のデータで右が先日のデータ。去年走ったときはレッドゾーンの割合が 8% しかないが、先日走ったときは 31% もある。フィットネスアプリのローソクチャートを見るだけではこの違いはなかな気が付けない。

心拍数の分布状況から自分の運動能力を客観的に確認できて便利だ。

集計データと TSB モデル

集計データの方はこんな感じ。フィットネスアプリでは見ることができない月ごとの集計グラフや、前年同日比のランニングやウォーキングの距離、 TSB モデルなるものに基づくトレーニング状況が確認できる。

月ごとの統計 日ごとの累積値(前年同日比) トレーニング状況がわかるグラフ
左から月ごとの統計、日毎の累積値(前年同日比)、 TSB モデルに基づくトレーニング状況がわかるグラフ。

統計グラフはまさにこういうのが欲しかった。別に特別な機能じゃないので標準のフィットネスアプリでこのくらい表示出来て欲しい。

二つ目の累積値前年比較も便利だ。今年は去年に比べてサボっているつもりだったのだがむしろちゃんと走っているようだ。去年は秋から走る頻度が上がっているので去年に負けないように頑張らないといけない、ということもわかって便利。

三つ目の三色のグラフは最初は見方がわからなかったが、 TSB Model の解説ページに飛んで理解したところによると、水色の線が長期的なトレーニング負荷(体力)、赤色の線が短期的なトレーニング負荷(疲労)、緑色の線がトレーニングストレスバランス(パフォーマンス)を表しているようだ。

パフォーマンスがマイナスの状態だと能力を発揮できないので、レース前にはトレーニングを減らして緑の線が 0 より上に来るようにすべし、などと記載されていた。ほほー、と思った。マラソンやトレランの大会に出る人には参考になるデータだろう。登山のためにトレーニングしている人もアルプスの山に登る前には緑線が非負になるように調整すると体調万全で登れるだろう。

Strava の代替になるか?

Strava にある有料機能に、いつどのレベルの負荷でトレーニングすべきか、休むべきかをわかりやすく指南してくれる機能があるが、グラフを見て分析するのが苦にならない人なら TSB モデルのチャートを自分で見て代替できるだろう。

Strava の有料プランの目玉機能に、近所の同じコースを走る人たちとタイムを競える機能( Strava のセグメント、リーダーボード、ローカルレジェンドなど)がある2。自分と同じくらいのペースの人とのバーチャルな競争はモチベーションアップにつながりそうだが、一人で黙々と走りたい人には不要だろう。

Strava はなかなか面白い仕組みのアプリだと思うが、自分には Summit (有料版)の料金はいささか高すぎる(月 800 円 OR 年 6300 円、アメリカだと年 $59.99 )。アメリカ人からしたら年間 60 ドルは昼飯 2 〜 3 回分くらいなんだろうけど、福岡なら 6300 円あれば昼飯 7 〜 9 回分にはなる。結構な出費だ。

分析は自分でできて、他人との競争にも興味がなく、お金は節約したいという人に HealthFit はおすすめだと思う。

なお誤解のないように書いておくと HealthFit はアンチランニング SNS ・プラットフォーム的なアプリではなく、 Strava のほかいろんなラン系のサービスに記録を書き出すことができる。 SNS などで交流しつつ、分析は自分で行いたいという人にも向いている。

もし良かったら試してみて下さい。


  1. 「ヘルスケア」アプリの方にグラフを表示する機能はあるが、ウォーキングとランニングの距離がまとめて表示されてトレーニング文脈よりも健康文脈の方が強く、ランニングの目標管理には使いづらい。一日あたりの平均値が表示されるのもいまいち。 

  2. サイクリングの人たちはほかにルート作成の機能を重宝しているらしい。これは以前は無料で使えたがいまは Summit 限定でこの機能のために自転車乗りの人たちは Strava の有料プランを使っているみたいだ。 

| @登山/ランニング

ジョギングしてるという話を何回も書いてる。走るのは10年前もやってたが、頻度がまちまちで走る距離も短かった。月に1、2度、1kmから2kmくらいしか走ってなかった。最近は週に2回は走っている。距離は1回あたり5km。昨日走りながら、なぜ継続できているのかを考えた。

一つ目にはリモートワークになって自由に使える時間が増えたことがある。家から会社までドアトゥードアで45分かかるので、通勤しなくなってから1日あたり1時間半も自由に使える時間が増えた。この余暇の時間を使って走っている。

二つ目にApple Watchを買ったことがある。以前使っていたPebble Time RoundのRunkeeperアプリだと、ランニングを一時停止したり再開したり終了したりがちゃんと動かなかったが、Apple Watchのワークアウトはこれらが完璧に動き、iPhoneを取り出すことなくランニングを開始できるのがとても便利で、走るためのハードルを下げている。ペース表示や心拍数表示もわかりやすい。Apple Watchにはアクティビティリングやワークアウトなど、運動を促す仕組みもあり、これらが運動するいいきっかけになっている。ヘルスケアアプリ内で心肺能力(VO2max)が可視化され、心肺能力が低いと成人病で死にますよ、運動しましょう、などという警告が表示されるのが走るモチベーションにつながっている。

三つ目に登山のための体力づくりがある。ある程度登山をして、自分の歩くスピードの遅さが気になるようになってきた。荷物が重すぎるとか安い靴を履いてるからとか考えてみたが、結局は体力のなさ、心肺能力の低さが原因だった。少しでも快適かつ安全に登山をしようと思ったら、普段から走って体力づくりをしておくしかない。会社の登山が速い人たちはみんな普段からランニングしているようだ。

四つ目に靴や運動着に良いものを導入したことがある。以前はナイキや無印良品の1000円から2000円くらいの化繊シャツに綿のパンツ(下着)、ナイキの靴をはいて走っていた。安い化繊のシャツは乳首と擦れてやたら乳首が痛くなったし、綿のパンツは汗でびっしょり濡れて気持ち悪く、ナイキのシューズは幅が狭くて足が痛くなり長く走れなかった。シャツをパタゴニアのキャプリーンシリーズに変えて乳首が痛くなることはなくなり、パンツをワークマンのメリノウールパンツに変え、さらにはライナー付きのパタゴニアのストライダー・プロ・ショーツに変えたことで汗濡れを意識せずに済むようになり、靴をゼロシューズのベアフットシューズに変えたことで足の痛みはなくなった。道具は大事だ。

ランニング、何が面白いのか分からなかったけど、サウナのような効果があると思ってる。頭を無にして汗をかくのでサウナに近い。走って帰宅したあと冷水シャワーを浴びるとちょっとととのいそうになる。山でトレランして沢にドボンしたらきっとととのうのではないかと思う。なのでサウナ好きな人は走るのも好きになれると思うのでおすすめです。

ちなみに走ってスーパー銭湯行ってサウナ入るの2回やったことあるけど最高だった。今夜も雨が降ってなかったらやろうと思う。おっさんになるとこのくらいしか楽しみがない。

| @登山/ランニング

Patagonia Strider Pro Shorts と山と道 Light 5-Pocket Shorts

ランニング用短パンで困ってるという話を去年書いた。

履き心地は山と道の短パン( Light 5-Pocket Shorts )が最高だが値段が高い( 13200 円)ので日々のランニングでは使いたくない、何か良い代替はないものか、というもの。

山と道の Light 5-Pocket Shorts には値段が高いことに加えてデメリットがあることがわかってきた。

山と道 Light 5-Pocket Shorts

一つ目はポケットに入れたものが揺れること。登山の時にはスマートフォン用のサイドポケットがすこぶる便利だが、走るときにここにスマートフォンを入れていると揺れて邪魔になる。去年書いた記事ではポケットがあった方がよいということを書いているが、走るときにはポケットは考え物だということに気がついた。

もう一つは耐久性の低さで、ちょっとほかの繊維とこすれただけで毛玉ができてしまった。毛玉取りしても良いが、ただでさえ生地が薄いのに(ストッキングみたいな生地を想像してもらえばよい)毛玉取りをかけたらさらに生地が薄くなりそうだ。

最後に、スースーで快適な履き心地といってもあくまで登山用の短パンなので走る際に下着のパンツをはいてさらにその上から短パンだと暑い。 7 月に山を走ったときにはいてみたらハチャメチャに暑かった。

山と道の Light 5-Pokcet Shorts 並の履き心地の良さ、足さばきの良さを保ちつつ値段がそこそこで、ガシガシ使っても大丈夫な耐久性を備え、ポケットに入れた物が揺れて邪魔になることがなく、走っても暑くならない短パンがあったらうれしい。 YAMAP STORE で値引きになっていた patagonia のストライダー・プロ・ショーツの 5 インチを試してみたらなかなか良かった。

Patagonia Strider Pro Shorts

値段は定価 9350 円だがセール品だったので 7480 円で買えた。

履き心地は山と道の Light 5-Pocket Shorts 同様に快適だが、生地の耐久性は高そうだ。

ポケットは腰回りにあり、体に密着するような作りになっているので入れた物が揺れることはない。ただし自分のスマートフォンは iPhone 11 ででかくてポケットに入らない。その点は残念だ(ケースなしの裸状態であれば iPhone 11 でも背面ポケットに入ることがわかりました。お詫びして訂正します🙇🏻‍♂️)。 iPhone SE や iPhone 12 mini 、 iPhone 13 mini などであればポケットに入ると思う。

さらにライナー付きなので下着のパンツをはく必要がない。下着を身につけずに直接短パンをはくのには最初は抵抗があったが、何度がはいて走ってみてこっちの方が断然快適だということに気がついた。

山と道の Light 5-Pocket Shorts は購入の争奪戦もすさまじく、めっちゃ運が良くないと買えないものになってしまったが、 patagonia の製品であれば普通に買えるし、運が良ければセールで少し安く買える。安定して 7000 円くらいでストライダー・プロ・ショーツが手に入るとうれしい。アメリカの REI では $79 で売られてるみたいだ。

ただし patagonia は円安の影響で日本での販売価格を値上げしたようで、公式サイトで定価を確認したところ 11000 円になっていた。これでは山と道の Light 5-Pocket Shorts とあまり値段が変わらない…。なお YAMAP STORE であればまだ旧来の価格 9350 円で買えるようだ。YAMAP ユーザーは DOMO のクーポンなどが定期的にもらえると思うのでもしクーポンがあるなら利用することで少し安く買えると思う。

なおサイズについて。ストライダー・プロ・ショーツはピチピチ気味なので patagonia 公式サイトのレビューだと自分と同じような体型(身長 172cm 、体重 70kg )で M を選んでいる人が多いが、 S で良いと思う。自分は去年 M サイズを買って( M しか残ってなかった)今年は S サイズを買ってみたが、 M だと走るときに生地がばたついてうるさいし、あまりにもスースーしすぎてフリチンで走ってるみたいな感じがして不安になる。S は確かにピチピチ気味になりライナーも少し窮屈だが、生地がばたつくことはないし、生地に伸縮性があるのでパッツンパッツンで走れないということもない。 patagonia の公式サイトのモデルの人たち( 185cm で M サイズを着てる)もパッツンパッツン気味ではいてるし、そもそもパッツンパッツン気味ではくことを想定されている製品だと思う。

Patagonia Strider Pro Shorts

10 年くらい前、月に 2, 3 度くらい大濠公園を走ってたとき高級なランニングウェアに身を包んで走ってる人たちを見て「バカなのかな…」と思ってたけど、気がつくと自分も散財してることに気がついた。綿のTシャツや短パンでももちろん走れるが、汗をかいて不快になったり足さばきが悪くてストレスを感じたりする。 1km ~ 2km くらいをちょろっと走るくらいならそれでもよいかもだけど、 5km 走ると汗びっしょりになって綿の服ではどうにもならない感じになる。また値の張るランニング用品を買うことで「せっかく買ったのだから」と走るモチベーションを上げることにもつながる。通勤もしないし出かける機会も少ないので走らないと体の調子悪くなるしまっとうな金の使い方をしているということにしよう。

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

Rust 製の全文検索システム Tantivy を Ruby から使える Tantiny を導入したことを書いた。

結構手軽に使えるのだがやはり日本語のトークナイズ(形態素解析)ができないのでいまいちなところがあった。 Tantivy には lindera-tantivy というものがあって、 Lindera は kuromoji のポートなので、これを使うと日本語や中国語、韓国語の形態素解析ができる。 Tantiny に導入できないか試してみたが、自分の Rust 力では到底無理だった。

ちなみに関連記事の表示でも日本語の形態素解析は行っている。

MeCab に neologd/mecab-ipadic-neologd を組み合わせてナウな日本語に対応させつつ形態素解析している。

この仕組みを作ってトークナイズは Ruby で自前で行い、 Tantiny および Tantivy にはトークナイズ済みの配列を食わせるだけにした( Tantiny はトークナイズ済みのテキストを受け付けることもできる)。トークナイズを自前で行うことで辞書ファイルで拾いきれないような固有名詞もカバーできる。例えば 山と道 なんかは MeCab と mecab-ipadic-neologd にトークナイズさせると に分割されてしまう。自前のトークナイザーで単語として認識させていている。おかげで「山と道」をちゃんと検索できるようになっている

なお、自前のトークナイザーはこんなコードになっている。

class Tokenizer
  attr_reader :text

  class << self
    def run(text)
      self.new(text).tokenize
    end
  end

  def initialize(text)
    @text = text
  end

  def cleansed_text
    @cleansed_ ||= text.
      gsub(/<.+?>/, '').
      gsub(/!?\[(.+)?\].+?\)/, '\1').
      gsub(%r{(?:```|<code>)(.+?)(?:```|</code>)}m, '\1')
  end

  def words_to_ignore
    @words_to_ignore ||= %w[
      これ こと とき よう そう やつ とこ ところ 用 もの はず みたい たち いま 後 確か 中 気 方
      頃 上 先 点 前 一 内 lt gt ここ なか どこ まま わけ ため 的 それ あと
    ]
  end

  def preserved_words
    @preserved_words ||= %w[
      山と道 ハイキング 縦走 散歩 プログラミング はてブ 鐘撞山 散財 はてなブックマーク はてな
    ]
  end

  def nm
    require 'natto'
    @nm ||= Natto::MeCab.new
  end

  def words
    @words ||= []
  end

  def tokenize
    preserved_words.each do |word|
      words << word if cleansed_text.match?(word)
    end

    nm.parse(cleansed_text) do |n|
      next unless n.feature.match?(/名詞/)
      next if n.feature.match?(/(サ変接続|数)/)
      next if n.surface.match?(/\A([a-z][0-9]|\p{hiragana}|\p{katakana})\Z/i)
      next if words_to_ignore.include?(n.surface)
      words << n.surface
    end

    words
  end
end

preserved_words が手製の辞書だ。 はてなはてブ も辞書登録しておかないと MeCab だとバラバラに分割されてしまって検索できなかった。

難点としては記事更新後に自動でインデックスの更新が行われず、 cron によるバッチ処理でインデックス更新を行っている1。なので検索インデックスにデータが反映されるまでにタイムラグがある。 Tantiny でやれれば記事作成・更新時のコールバックとして処理できるのでリアルタイムに変更を検索インデックスに反映させることができるが、個人の日記なのでタイムラグありでも大きな問題にはならない。

本当は Tantiny で lindera-tantivy を使えるようにして Pull Request がカッチョイイのだが、とりあえずは自分は目的が達成できたので満足してしまった。 5 年くらい前から Rust 勉強したいと思っているが、いつまでも経っても Rust を書けるようにはならない。


  1. mecab-ipadic-neologd を VPS 上でインストールできず(めっちゃメモリを使う)、手元の Mac で Docker コンテナ化して Docker Hub 経由でコンテナイメージを Pull して VPS 上で Docker 経由で動かしている(その辺について書いてる記事: ブログのコンテナ化を試みたけどやめた) 

| @雑談

ららぽーとのニューガンダム

コロナにかかってしまった。いまはもうだいぶ回復して明日で自宅待機も終わるが、正直かなりしんどかった。

時系列

自分がいきなり感染したわけではなく最初は家族(嫁さん)だった。次に子ども、四日遅れで自分も感染した。

  • 7/10
    • 嫁さんの具合悪くなる
  • 7/11
    • 嫁さんを病院に連れて行こうと試みるが近所の病院は電話つながらず OR 予約満杯 |
    • 少し離れたところにある老人ホーム併設の病院で診てもらえ、嫁さんの陽性判明
  • 7/12
    • 子どもは家からオンライン授業
    • 夜、子どもの具合も悪くなる
  • 7/13
    • 子どもを小児科に連れて行き検査
  • 7/14
    • 子どもの陽性判明
    • 夜から自分の具合悪くなる
  • 7/15
    • 病院に連れて行ってもらうが近所の病院満杯で少し離れた病院に
    • 自分の陽性判明
  • 7/15 ~ 7/18
    • 39度の熱が出ては解熱剤で下げを 4 日間繰り返す
  • 7/19
    • 平熱に戻るが体調は万全とは言えず(座ってるだけで汗をかく)

自分がかかるまで

自分が発症するまでが結構きつくて、感染しないように部屋を分けて過ごそうと試みたがそもそも家が狭くトイレは一箇所しかないのでどうしても生活動線が重なり感染してしまった。本当はダメなのだが、家族の感染がわかったときに食料がなかったのでスーパーに買い出しに行って雑炊の素やレトルト食品、野菜などを沢山買ってきた。嫁さんのために雑炊を作り、仕事をして、洗濯をし、子どもにも食事させてなど家事育児を一人でこなさないといけないのがとにかくしんどかった。家が狭いので自分の机で子どもにリモート授業を受けさせて、自分はキャンプ用の小さい椅子とテーブルで仕事してた。そうこうしているうちに子どもも症状が出てきて、病院に連れて行って検査を受けたところ陽性だった。

自分が感染

自分はなぜか症状が出ず、すでに感染してるのかもだけどワクチンが効いてて症状が出てないのかもな〜、なんて思ってたら四日遅れで症状が出て、 38 度の熱が出てぶっ倒れた。この頃には嫁さんが回復していたので今度は自分が病院に連れて行ってもらって検査を受けた。

この病院に行くというのが難易度が高い。家の近くの病院は電話がつながらないかつながったとしても予約で一杯で診てもらえず、普段行かない離れた病院に行って診てもらった。具合が悪い状態で診てもらえる病院を探すのがハチャメチャにしんどい。嫁さんのときは自分が病院に電話して回って、自分のときには嫁さんが病院に電話して回った。病院は診てもらえるところ見つかったとしてもちょっと遠いところだったりして、車がなかったら病院に行くこともできない。首都圏は人口多くて車を持ってない人も多いだろうのでもっと大変そうだ。

インフルエンザよりもしんどい

正直コロナを舐めていて、ワクチンを三回受けてるしきっと軽い風邪の症状で済むと思っていたが、そんなことはなくて 39 度以上の熱が 4 日間出てハチャメチャにしんどかった。鼻づまり、鼻水、咳の症状は熱が下がったあとも続いた。弱毒化していると言われるが普通の風邪なんかよりも断然やっかいだ。

陽性判明後、保健所からは SMS しか来ない

嫁さん、子ども、自分のときも保健所からは電話などはない。厚労省と市役所から SMS が届くだけ。別に大した情報は書いてないし病状の報告などを求められることもない。いまは陽性者は二グループに分けられてて、基礎疾患があったり高齢だと電話がかかってきて、それ以外は SMS のみで自分で治せやということのようだ。

物資支援は受けられず

体調的なつらさのほかには外出制限的なやつがきつい。家族が発症したら同居家族は濃厚接触者となり外出禁止となる。とはいえ普通は買い置きしていないのでいきなり外出するなと言われても困ると思う。支援物資的なものがもらえるのかと思って役所に電話すると、この制度はパソコンが使えない高齢者か一人親家庭の人が対象、家族が動けるなら支援対象外、家族が買い出しに行くかネットスーパーで何とかしろと言われた。陽性者が家庭内にいる場合は家族も外出禁止ではないのか。ちゃんと税金を払っているのにパソコンが使えるというだけで行政の支援を受けられないのは不公平だと思った。結局自分は登山用に買ってたウィダーインゼリーやカロリーメイト、カルパスなどを食べて凌いだ。

検査は症状が出るまでは受けられない

濃厚接触家族の検査についても難しかった。自治体がやっている無料検査所のルールを見ると、無症状者が対象で症状がある人や濃厚接触者は検査対象外とある。なので発症前の無症状の状態で検査してもらおうと病院に電話すると無症状者は検査できないと言われる。濃厚接触者で無症状の人は自治体の検査は受けられず、保険の効かない自由診療で全額自己負担で検査を受けるか、発症して症状が出てから一般の病院で検査してもらうしかなさそうだ。

経済的なダメージ

ちなみに自分の場合は海の日の連休を使って北アルプスに登山をしに行こうとしていて飛行機や山小屋、ホテルを予約していたが全部キャンセルしなければならなくなった。山小屋はキャンセル料かからなかったものの、飛行機と下山後に後泊する予定だったホテルはキャンセル料がかかった。コロナにかかりつつ合計 20000 円くらいが飛んで行って厳しかった。清水の舞台から飛び降りる思いで準備をしていたので正直悲しい。

入っててよかった映像配信サービス

自分は Netflix と Amazon Prime ビデオと Apple TV+ に入ってる。療養中はしんどいので映画やドラマを見て気を紛らわせてた。 Apple TV+ のザ・モーニングショー面白かった。ドラマかなんかでも見てないとやってられないくらいしんどかったのでコロナ陽性と判明した瞬間、なんかの動画配信サービスに登録した方がよいと思う。

まとめ

世間的にはコロナに打ち克ったムードがあふれていて近所のスーパーでもマスクしてないおじさんなんかをよく見かけるようになったが、やっぱりコロナはなるとしんどい。インフルエンザよりもきついと思う。経済的なダメージもある。なのでかからないで済むならかからないに越したことはない。幸運にもまだコロナにかからずに済んでいる人はワクチンを三回打ってたとしても油断しない方がよい。すでに身の回りで感染した人沢山でてると思うけど、体感的に今回のやつはめっちゃ簡単にうつるので注意して下さい。