| @登山/ランニング
福岡マラソン完走

福岡マラソン 2023 に出場してほぼ歩かず1完走することができた。

ランニングを始めた当初は走ること自体は目標ではなく、登山の際の体力をつけるのが目的で、マラソン大会に出るなんて考えてもいなかった。タイムは 4 時間 5 分だった。マラソンはサブフォー( 4 時間切り)すると「お、やるね」という感じで、サブスリー( 3 時間切り)すると「マジすげー」という感じらしい2

自分は普段、 6'10"/km くらいで走ると結構きついのだが、マラソンのときは何と 5'46"/km ペースで走っていたことになる。ちなみにサブフォーを達成するには 5'41"/km ペースで走る必要がある。「 40km 以上もキロ 5 分台で走るなんて無理だろ」と思ってたが何とできてしまった。ただサブフォーには届かなかった。

良かった点

30キロ過ぎで一番速く走るマラソン サブ4・サブ3を達成する練習法』を読んだこと

直前だったが小出監督の著書をマラソン前々日の金曜夜に Kindle で買って読んで、最初はゆっくり、 30km 以降からスピードを上げる作戦をとった。

サブフォーは 5'41"/km ペースだからと無策にこのペースを維持しようとしたら自分はおそらく途中で歩いてしまっていたと思う。特に福岡マラソンは中間の九大折り返し地点と 30km 付近で結構きつい坂がある。この辺で失速することも見越してペース配分しないといけない。

自分は以下のような感じでペース配分をしていた(左が計画、真ん中が実績、右が計画と実績の差分)。

計画・実績・乖離: ずっと 5'41"/km で走るのではなく、最初はゆっくりめに走って後半からペースを上げる走り方を想定
計画 実績 乖離
地点 ペース ラップ ペース ラップ ペース ラップ
5km 05:50 29:10 06:22 31:52 +00:32 +02:42
10km 05:45 28:45 05:50 29:10 +00:05 +00:25
15km 05:45 28:45 05:46 28:48 +00:01 +00:03
20km 05:45 28:45 05:45 28:45 00:00 00:00
25km 05:45 28:45 05:39 28:14 -00:06 -00:31
30km 05:40 28:20 05:56 29:39 +00:16 +01:19
35km 05:30 27:30 05:52 29:20 +00:22 +01:50
40km 05:25 27:05 05:30 27:29 +00:05 +00:24
42.195km 05:25 11:53 05:21 11:45 -00:04 -00:08
合計 05:40 3:58:58 05:48 4:05:02 +00:09 +06:04

インターネット上の情報源

エンジニアがすごく頑張ってサブスリーしたよって話 - KAYAC engineers' blog は何度も読んだ。

YouTube でいろんな動画も見た。うたランチャンネルは実際になかの人がサブスリーを達成するまでのドキュメンタリーっぽくなっててやる気出た。

YouTube には他にもランニング系の動画がたくさんあるが、いかにフォームを良くして楽に走るか的なやつが多く、説明も観念的なやつが多い(頭を前方から上に引っ張られてるつもりで走れとか)。基本的にそんなに楽に走る方法はないと思ってる。楽に走れるフォームがあるとして、そのフォームで走るためにはある程度の心肺能力と足腰の筋力がないとダメだったりする。なのでまず最初はジョギングで距離を稼ぎ、心肺能力と筋肉をつけてからフォームを改善していくべきだと思う。

ランニング系の動画で見る価値あるやつは科学的に説明してるやつで、なぜそうなのかをきちんと説明してるやつ。「なぜ」の部分が説明されていない動画は見る価値がないと思う。

コースの後半を走る 30km 走を事前に二回行っていてイメージトレーニングができていた

30km 走(試走)により、二見ヶ浦(景色の良い観光地)にさしかかったタイミングで景色に見とれず走りに集中できたし、強風にシャツが煽られて乳首スレすることがわかっていたので当日は乳首スレ対策に乳首を覆うテープを貼って走った。終盤には外れていたけど乳首痛で走れないのはめっちゃしんどいので事前予習しておいて良かった。

身軽作戦

ランニング用ウェストポーチを身につけず、財布も iPhone も持たずに、ジェル三つランパンに突っ込んだだけの身軽作戦で走った。やはり身軽さに勝るものはないと思う。とても走りやすかった。

マラソンにあわせて買ったグッズが役立った

  • C3fit のアームスリーブ
    • 腕振りの疲労軽減効果はわからないが防寒効果は確実にあった
  • Altra の Escalante 3
    • 足幅広すぎおじさんなので NIKE などのシュッとした靴ははけない
    • アメリカ Amazon で買って輸入、送料込み 16000 円くらいで買えた。 Altra のシューズは国内正規品で買うと軒並み 20000 円オーバーなので助かった。
  • Inner Fact の AXIO NIKKE 5 本指ソックス
    • 長い距離を走ると自分の汗で足がふやけて靴擦れしたりマメができたりするが、この靴下はドライをキープしてくれてマメもできなかった。
  • 半信半疑で買ったモルテンの高級ジェルがめっちゃ効いて、 30km 以降のエネルギー切れ・集中切れがなかった
    • 35km 付近を最速ラップで走れていた

家族、同僚、友だち、その他見ず知らずの人の応援

  • 知ってる人の応援もありがたいが、知らない人の応援もありがたかった
  • 九大の近くの蔦屋書店前で九大の学生が爆風スランプの "Runner" を演奏していて、正直自分がこの曲で励まされるとは思っていなかったが元気が出た

足が攣りそうでギリギリ攣らなかった

  • もしゴールがあと 1km 先だったら攣ってたと思う
  • アキレス腱からふくらはぎにかけてテーピングをしたあと、トレランのレースでも使うカーフガード(着圧タイツ)を履いていた
  • その他前日に 2 本、当日朝にも 1 本 Mag-on の顆粒を飲んでいた

悪かった点

スタート前の寒さ

  • スタートブロックに入ってから走り始めるまでの待ち時間が 1 時間近くあり、とても寒くて具合が悪くなりそうだった
    • patagonia のフィーディニジャケットを携帯しておくべきだった
    • とはいえ極力荷物を減らす作戦だったので仕方ない面も
    • 使い捨てのゴミ袋ポンチョを着てる人たちが羨ましかった

事前申告タイムの適当さ

  • エントリー時に申告した予測タイムが 5 時間で、後方ブロックからのスタートとなり、スタート後 15km 地点くらいまで混んでいて非常に走りにくかった
    • エントリー時、自分がサブフォーを狙えるとは思っていなかった

ためらわずにおしっこに行くべきだった

  • スタートブロックに入る前におしっこは済ませていたが、寒い中待っている間にまたトイレに行きたくなり、スタートして 2km くらいの地点でトイレに行ってしまった
    • スタートブロックに並んでいる間に列から抜けてトイレに行くべきだった

Teton Bros. のシャツの耐久性の低さ

  • Teton Bros. の Elv1000 Non Sleeve を着て走ったが、安全ピンで穴を開けないために両面テープでゼッケンを貼ったところ、テープを剥がす際に生地にあとが残って最悪だった。まだ 5 回くらいしか着ていないのに 😢

Apple Watch バッテリー切れ寸前

  • Apple Watch Ultra も持っているが重さが気になるので 3 年以上使ってバッテリーが弱ってる Series 6 で走ったところバッテリーがギリギリだった(ゴールしてワークアウトを止めた途端バッテリーが切れた😰)
    • Apple Watch は iPhone とセットで使うと iPhone 側の GPS を使うが、単体で使うと自分の GPS を使うのでバッテリー消耗が激しくなるらしい

総じて

マラソン楽しかった。トレランののんびりした感じもよいが(エイドで休憩したり、まわりの人としゃべったりする感じ)、一秒のロスを惜しんで立ち止まらずひたすら走るマラソンにもマラソンならではの良さがあると思った。

今後

計画と実績の乖離を見てわかる通り、スタート直後の混雑とトイレ、上り坂区間でのロスが響いている。トイレや混雑、上り坂で失速してしまうことは避けられないので、それらも織り込み済みの上でペース配分を考えないといけない。つまり全般的にスピードが足りてなかったと言えそう。普段のランニングのペースをもう少し上げて、 5km を 25 分以内に走るくらいは楽々できるようになってないとサブフォーは難しいのかもしれない。これまでスピード練習と言えばインターバル走がメインだったが、ペース走を取り入れてマラソンで狙うペースよりも速いペースで 10km くらいを走る練習をやっておく必要がありそうだ。

来年 2 月 18 日に熊本城マラソンに出ることになっているので今回の反省を活かしてここでサブフォーを達成したい。めっちゃ田舎の何もないところを走らされるみたいなので糸島の農道を走ってメンタルを鍛えておきたい。

できれば来年の福岡マラソンか青島太平洋マラソンでサブ 3.5 ( 4'58"/km ペース)を達成したい。

必死の形相でゴールに駆け込む著者

  1. スタート直後におしっこがしたくなってトイレに並んだときと、 30km 過ぎのエアーサロンパスステーションでサロンパスをスプレーするときにちょっと止まった 

  2. サブフォー達成はマラソン完走者の上位 28% くらいで、サブスリー達成者は上位 3% くらいらしい。
    https://sub3.blog/sub4/degree-of-difficulty 

| @雑談

Money

個人開発ではないが、課金については仕事で結構やってきてまぁまぁの知見を得た。かつて自分も情報を得ようとネットで探してみたが、極めて情報が少なかった。ソフトウェア開発についてのノウハウは結構ネットに転がってるが、値付けなどについての情報は少ない。エンジニアとマーケッターでは文化が違うのかもしれないが、そもそも値付けに関しては商材(ソフトウェア)によって様々なので定石がなく、結局のところ自分で試してみないと正解がわからないのではないかと思う。そういう前提はあるものの、自分が得た知見をベースに Cside さんの質問に答えてみたいと思う。

寄付募集型か、有料で一部の機能を解放する型か

寄付型ではかなり少人数しかお金を払ってくれない。どんなにヘビーに使ってもお金を払う必要がなければ1円も払わない人の方が圧倒的だと思う。

機能に課金しないのであれば、共感とか支援という文脈でお金を払ってもらうかたちになる。となるとソフトウェアにどんな機能があるかよりも、どんな人が作っているかや、作り手の思想や哲学の方が大事になる。ソフトウェアのファンではなく作り手個人のファンを作る感じに近い。

とういわけで、自分の人間的魅力に自信がある場合を除いて機能解放型(フリーミアム)をおすすめしたい。

価格設定

めちゃくちゃに難しい。これは実験もしづらい。しかしある程度ユーザーを集められているなら、「ヴァン・ウェステンドルプの価格感度メーター」がおすすめ。ユーザーに以下の四つを問い、グラフ上にプロットして最適価格を探る。

  • この商品がいくらなら高すぎて購入に抵抗を感じますか?
  • この商品がいくらなら安くないと感じますか?
  • この商品がいくらなら高くなくて買得だと感じますか?
  • この商品がいくらなら安すぎて品質に不安を感じますか?

高すぎると高くないの交点が高さの限界点、安くないと安すぎるの交点が安さの限界点、安すぎると高すぎるの交点が最適価格となる。

書籍『Product-Led Growth』より
書籍『Product-Led Growth』より

有料で一部の機能を解放するなら、どこまで有料にするか

これもめちゃくちゃに難しいが、以前書いた以下の記事は正鵠を射ていると思う。

ソフトウェアには売りとなるコア機能があるはずで、この機能を段階性の課金にする。たとえば一定期間内で 5 回までは無料で使えるが、 6 回目からはサブスクリプション登録済みのユーザー限定にする。そしてそのコア機能を使いたくなる魅力的なおまけの機能をたくさん作る。そうするとおまけ機能を使いたいがためにコア機能もじゃんじゃん使って制限に到達し、お金を払うことになる。

おまけ機能自体に課金することはあまり良くなくて、課金の仕組みが複雑になってメンテナンスコストが上がる。課金体系をシンプルにするためにおまけ機能とコア機能をセット販売すると、人によって何に価値を感じるかは様々なので「コア機能だけ使いたいのでコア機能だけの安いプランを作ってほしい」と言われてしまう。なので課金対象はあくまでコア機能の無料枠をはみ出た部分だけにし、おまけ機能は無料化するのが良い。

料金プランはシンプルであればシンプルであるほど良く、開発者自身も楽になるしユーザーの認知的負荷も小さくなる。複雑な料金プランは誰も幸せにならない。

買い切り型か、月額サブスクリプション型か

自分が買い手のときは買い切り型が好みだが、売り手として考えるときは月額サブスクリプションが良い。

ソフトウェアは作っておしまいではなく必ずメンテナンスが発生する。買い切り型では常に新機能を追加した新しいバージョンをリリースしなければ収益を上げられず、メンテナンスに十分な時間を割くことができない。結果としてソフトウェアの品質が低下してしまう。サブスクリプション型であれば毎月定額で収入を得られるので、メンテナンスに時間を割きやすい。

ユーザーとしても海のものとも山のものともつかないソフトにいきなり数千円を払うのには抵抗があるはずなので、試しやすい金額で使い始められるサブスクリプションの方がうれしいはずだ。

サブスクリプションの継続率は作り手にとって示唆に富んだ情報源にもなる。継続率が低下していたらユーザーの満足度が下がってきているというシグナルだし、開発方針の決定に有効活用できる。ソフトウェアはユーザーの満足度が全てだ。満足度を測るために機能開発することさえある。それをせずにサブスクリプションの継続率から満足度を推し量ることができるなら一石二鳥だ。

サブスクリプションのデメリットは開発難易度が上がることだ。 App Store や Google Play の仕組みを使うと Apple や Google にショバ代を取られるし彼らの方針に振り回されて大変な目に遭う。ウェブアプリであれば Stripe を使って自前実装することもできるが、スマートフォンアプリで機能課金をする(有償で機能制限を解除する)場合はアプリ内決済の実装がルール上必須となる(リーダーアプリ除く)。そのほか、ユーザーからの問い合わせも増えるので、サブスクリプションは財務的にはメリットがあるが、肝心の機能開発に割ける時間が減ってしまうというリスクもある。


以上が自分の知見を元にした Cside さんの質問への回答になる。

しかし冒頭にも書いたように価格を含めた課金の設計は売る物によって様々で定石はないと思う。結局のところは実際に自分で試して正解を探り当てていくしかない。

ここに書いてある情報がある日突然マーケティングっぽいことに手を出すことになった門外漢の人の助けとなれば幸いです

| @労働

可也山.jpg

プロダクトマネージャーになって 5 年ちかくが経った。最初の 2 年くらいはエンジニア気分が抜けず、 Vim を開いて何かやったりということがあった。ただ 3 年目くらいからはエンジニアっぽいことは一切やらず、プロダクトマネジメントだけをやるようになってきたと思う。ようやく自己紹介をするときによどみなく「プロダクトマネージャーです」と言えるようになってきた。

現在は登山アプリ・サービスの会社で仕事をしていて、割と頻繁に山に行ってドッグフーディングしている。なのでユーザー(山に登る人)の課題感が大体わかっているつもりだ。

もしいまの環境を変えることになったとして、自分は登山アプリ以外のプロダクトマネジメントができるのだろうかとふと思った。山が好きだから(ドメイン知識があるから)できているのか、それともプロダクトマネジメントのスキルが身についてきているのか。

これまで B2C 、 C2C 、 B2B2C など様々なサービスの開発に関わってきた。正直 ATI (圧倒的な当事者意識)が高い方ではなかった。なのでそんな自分がプロダクトマネジメントできるとは思ってもみなかったが、登山アプリの会社に就職して登山を好きになり、当事者意識が高まってプロダクトマネジメントを生業とするに至った。なのでいまの環境を離れてしまえばプロダクトマネジメントはできない可能性がある。趣味と仕事が重なる領域以外でも自分のプロダクトマネジメントスキルが活かせるのかが気になっていた。

しかしそもそも自分はソフトウェア(デジタルプロダクト)自体が好きなのだということに気がついた。あのプロダクトはこういう戦略で成長したとか、ソフトウェアの背景にある作り手の思想とか、そういうことを考えるのが好きだ。

ベンチャー企業のなかには、そのプロダクトがユーザーのどんな問題を解決しているのか作っている側も分からないまま突っ走っていることがあるのではないかと想像する。いまの職場でも、ユーザーがどの部分に最も価値を感じているのかを理解するまでにはだいぶ時間がかかった。

ある程度のシェアを獲得して、今後さらに規模を拡大したいというフェーズでは、ユーザーがプロダクトのどの部分に最も価値を感じているのか、ユーザーがプロダクトに期待している価値は何かをはっきりと理解する必要がある。ひょっとすると作り手の思い込みでユーザーが必要としていない機能を作っているかもしれない。プロダクトの価値を再定義し、機能を整理する必要性が出てくる。 0 → 1 のプロダクトマネジメントはではなく、 1 → 10 のプロダクトマネジメントだ。自分はこのような役回りが好きだし、こういった仕事もプロダクトマネージャーの気づかれにくい重要な役割の一つだと思う。

| @登山/ランニング

Apple Watch でトレランするならフットパスが便利

Apple Watch でトレラン(ランニング)する人のための記事を以前書いた。アプリを組み合わせれば Apple Watch が Garmin 相当になるという記事だった。

その記事ではトレラン中の地図&アクティビティトラッカーとしては WorkOutdoors が良いと書いていたが、フットパスというアプリを発見してしまってこっちの方が地図が見やすく操作も簡単で高機能だった。 Apple Watch でトレランするならフットパスが激しくおすすめだ。

フットパスは、スマートフォンのアプリを開いて指先で地図上をなぞるといい感じにルート(ウォーキング、ランニング、ハイキング、サイクリング、ドライブなどに対応)を提案してくれるというのがウリだが、正直この機能は日本の道路では使いづらい。きちんと区画整理されている欧米の街だったら使いやすいかもしれないが、ぐねぐね細い道が入り組んだ日本の道路では「そこじゃないんだよな」というルートが提案されることがある。

指なぞりルート作成機能はいまいちなのだが、自分が感心したのは以下だ。

  1. ゴール時刻の予想タイムを出してくれる(フットパス上で計画したルートだけでなく、 GPX を取り込んでも表示してくれる)
  2. 行動中の Turn-by-turn navigation (もうすぐ右ですとか、分岐を直進とか教えてくれる)
  3. Mapbox Outdoor Style の地図のほか、国土地理院地図を選ぶこともできる(国産アプリ以外ではめずらしい)
  4. 行動中に登りが残り何メートルあるか確認できる機能(地形を視覚的に確認できる)
  5. ウェブサイト footpathapp.com の使い勝手

ゴールタイム予測

Footpath App
何時頃ゴール地点に着くかを予測してくれる。

何時頃ゴール地点に着くかを予測してくれる。モーダルウィンドウ内の太字部分(「 15'00"/km 」と書いてあるところ)を左右に短くスワイプするとペースを変更出来て、任意のペースで何時間でゴールできるか確認することができる。

登山用の計画アプリだと「何月何日の何時に登山開始」みたいに日時を入れないと予想時間が表示されないが、これだと日時を指定することなく「いまスタートしたら何時頃下山できるか」がぱっとわかる。

スマートフォンアプリ側で計画を調整して Apple Watch に転送して開始すると、活動中は現在のペースだと何時頃ゴールできるかをリアルタイムで推測してくれる。

ゴールタイム予測

Turn-by-turn navigation

Turn-by-turn navigation

地図を表示しながらの Turn-by-turn navigation

いわゆるカーナビのような機能。 Garmin の Forerunner 9XX シリーズに付いてる機能を Apple Watch で利用できるようになる。 WorkOutdoors ではナビゲーション機能はなく、ルートを外れたときと復帰したときにアラートがなる仕組みだった。正直なところトレイルでカーナビのような機能はいらないのではと思っていたが、実際に使ってみるととても便利だった。ルートを間違ったことを事後的に教えてもらっても便利だが、なるべくならルートを間違うこと自体を予防したい。もうすぐ分岐があることを事前に教えてもらえると、分岐にさしかかったときに注意するのでテキトーに走って間違ったルートに進むということがない。

標高断面図

標高断面図 全体

標高断面図 部分

これからどれくらいの登りが控えているのかを確認できる。これがめっちゃ便利。予定しているコース全体で見ることもできるし、直近のセクションに拡大して確認することも可能。予定している累積獲得標高のうちすでに何メートル登ったか、残りは何メートル登るのかが一目でわかる。これは登山を始めた当初から欲しい情報だったのでスーパー便利だ。

パソコン向けウェブサイト

footpathapp.com

パソコン向けのウェブサイトがまたよくできていて、ルートに任意のポイントを設置することが可能。前回トレランのレースに出たときはエイドステーションにマーキングしておいて関門時刻を書いておいた。こうすることでエイドまであと何キロメートルかがわかり、精神的に楽だった。

もちろんウェブサイトでルートを作成、編集することもできるし、 GPX ファイルを取り込むこともできる。

注意点

自分が知る限り、 Apple Watch でトレランするならフットパスが最高なのだが注意点がいくつかある。

1. 日本語訳が良くない

「他のワークアプリで使用する」というトグルスイッチを有効にしたら、ログが自動的にワークアウトに追加されなかった。この項目の意味はフットパスを地図アプリとしてのみ使い、ワークアウトのログは純正アプリで取るケースを想定していそうだが、この日本語では意味がわからない。

2. GPX インポートしたとき、本来通りたいところではないところにルートが引かれる

地図アプリの定番 SDK に Mapbox というものがある。フットパスも Mapbox をベースにしているが、 Mapbox も独自のルート情報を持っているようで、 GPX ファイルを取り込んだときに勝手にルートが Mapbox 上のルートに置き換えられてしまう。 Mapbox 上のルートは間違っていたり、現在使われていないところが残っていたりするのでちょっとやっかいだ。

3. Apple Watch Ultra でないとナビゲーション通知が事前に届かない

Apple Watch Ultra であればちゃんと分岐の前で通知が来るので便利なのだが、 Series 6 だと通過後に通知が来ることがあった。

4. UI がもっさりしている

デジタルクラウンを回すことで距離モード、ペースモード、標高モードを切り替えられるが、この切り替えがスムーズに行かずストレスを感じる。

5. ランニング向けの情報が不足

純正のワークアウトアプリであれば、ランニング中に心拍数ゾーンを確認できたり、ケイデンスや上下動を確認できたり、任意の地点でセグメンテーションしたりすることもできるが、フットパスにはそれらの機能がない。フットパスは地図アプリとして使い、ログは純正ワークアウトアプリで取れということかもしれないが、それだと GPS を使うアプリを同時起動することになって電池の持ちが悪くなりそうだ。

6. サブスクリプションに登録する必要がある

年額 2600 円のサブスクリプションに入らないと機能が使えない。自分は全然払う価値があると思うが、サブスクリプションに抵抗がある人は買い切り 1200 円の WorkOutdoors をどうぞ。

まとめ

いくつか注意点がありはするものの、フットパスに出会ってから山を走るのが快適になった。トレランのレースに出るとまわりは Garmin や Polar 、 Sunto などを使っている人ばかりで、「やっぱり Apple Watch で山を走るのはダメなのかな?」と不安になっていたが、いまは全く不安を感じなくなった。

電池持ちのよい Apple Watch Ultra とフットパスがあれば、日常生活では Apple Watch の便利な機能(タッチレス決済、 iPhone や Mac のロック解除、音を鳴らして iPhone を探す、 Apple Music で音楽を聞く)を享受しつつ、ルートを確認しながら安全に山を走ることができる。めっちゃおすすめです。

Footpath app

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

OGP 読み込み君が悪用されていて困ったという記事を書いた。

Referer でブロックされるようなサイトからリンクするときに OGP 読み込み君をかませて掲示板やブログのコメント欄に URL を投稿しまくっていたのだと思う。調べたら 73 万件以上のリンクが OGP 読み込み君によって生成され、リンク先の OGP カードがキャッシュされていて、ディスク容量を 2.8GB も消費していた。許せん。

認証なしで使える OGP 生成カードのようなエンドポイントを露出していたのがそもそもの間違いだった。スパマーのはびこる今日のインターネットではこういう無防備なことをはするべきではなかった。

ということで iframe で OGP を展開する方式をやめて、インライン表示するようにした。普通に OGP 表示用の HTML を生成してキャッシュしている。なので初回に OGP を読み込むときにめっちゃサイトのレスポンスが遅くなった( iframe であれば非同期読み込みできてメインの HTML の描画は高速だった)。

良くも悪くも、インターネットは巨大になってきていて、ちょっと穴のあるシステムをインターネットに公開してしまうと悪意をもった人に悪用されて膨大なダメージを負ってしまう可能性がある。難しい世の中になってきている。

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

OGP 読み込み君を作ってよそのサイト(自分のブログの過去記事含む)の OGP をいい感じに iframe で表示していた。

しかし最近この機能がスパマーに悪用されているようだ。自分がこのブログ内で言及した覚えのない URL へのアクセスが一杯あり、そのせいでめちゃくちゃにサイトの負荷が高くなっているようだった。 OGP 読み込み君はキャッシュする機能はあるが、基本的に Ruby でよそのサイトに HTTP リクエストを投げるので悪用されると負荷が高くなってしまう。

Nginx で悪用されたくないパスへのリクエストには Referer 制限をするようにしたのでこれで負荷が下がってほしい。

追記

ロードアベレージが平均 3 、高いときは 20 くらいになってたのが 0.1 くらいに戻った。

海外のスパマー、本当に色々酷いことやる。日本語読めないのに OGP 読み込み君の仕様を突き止めて悪用してる。多分、こんなことしても利益は 1 円もないのに何がしたいんだろう。他人にダメージを与えられればそれでいいんだろうか?

| @ブログ

よく検索されているキーワード

検索フォームの下に「よく検索されているキーワード」を追加した。実はこれ完全に自己満足で Google Analytics のサイト内検索で調べる限りだと検索機能はほとんど使われていない。一方で自分はめちゃくちゃ使っている。なので自分自身の検索も含むすべての検索ログをアクセスログから抽出して集計し、検索回数が多い順に並べて表示した。

検索フォームにはインクリメンタルサーチ機能があって、検索ワード入力途中にも HTTP アクセスがあるので検索ログには不完全なキーワードも残る。それらが表示されないように 1 文字だけのキーワードや、実際に Tantiny に投げて返ってくる結果が少ないキーワードは除外している。

自己満足ではあるのだが、このサイトをもっとも閲覧していてもっとも検索している自分が便利になればそれで良い。