| @WWW

mixi2 logo

昨年末に mixi2 出てちょっと話題になった。自分もアカウント作って使ってみた。最初はよく考えられてるなぁと感心したけど、なんか使いづらい。

自分として最も使いづらいと感じるのは絵文字の種類の少なさで、数が少なくて気持ちを表現しづらいと思っている。あらためて見てみると mixi2 の絵文字はのほほん系の絵文字しかなく、喜怒哀楽を表現しきれない。 🤔 のような、わずかでもネガティブなニュアンスのある絵文字は使えなくなっている。

mixi2 emoji

リプライ欄のプレースホルダーも「やさしいことばで返信しよう」となっていて、返信内容を穏やかな方向に限定しようという意図が読み取れる。

mixi2 reply placeholder

mixi2 のメッセージとして、のほほんとしたコミュニケーションだけやって欲しいということなのだろう。

Threads が出たときに記事を書こうとしていろいろ調べていたが、改めて引っ張り出してきて見てみると、 Threads / Instagram 勢もこういうコミュニケーションをして欲しいという意図を持っている。 Threads がリリースされたばかりの頃、 Instagram の責任者の Adam Mosseri は Instagram や Threads は政治や重苦しいニュースではなく、頭を空っぽにして楽しめるお気楽コンテンツだけ見られるお花畑のような場所にしたいと言っていた。

Post by @mosseri
View on Threads

Twitter が居心地がよかったのは人が多かった(自分が情報を知りたいと思う相手が多く Twitter を使っていた)というネットワーク効果的な側面もあるが、「こういうコミュニケーションをしろ」という制約が弱かったからだと思う。 Twitter がコミュニケーションの方向性を指示しようという試みは、せいぜい入力欄のプレースホルダーを "What are you doing?" から "What's happening?" に変えたこと(「あなたはいま何してる?」から「あなたのまわりで何が起こってる?」に変更)くらいだ。

ハイパー起業ラジオに MIXI の元社長の朝倉祐介さんが出ていて、いかに SNS として発展させるかばかりを考えていた当時のミクシィを多角化して立て直したかを話していた。

mixi2 の動きは朝倉さんがやったことへの反動のようにも思える。めっちゃ細かいところまでこだわった俺たちが考える最強の SNS を作ろうとしているのだろう。

果たしてコミュニケーションの方向性を限定するやり方はうまくいくのだろうか。

匿名掲示板のような無法地帯がよいとは思わないが、自分は自由にコミュニケーションできる場所の方が好きだ。

| @WWW

OpenAI の文字起こし AI Whisper を簡単に利用できる whisper.cpp を使って英語の Podcast を文字起こししている。めっちゃ便利。

英語の Podcast 、特に会話主体の Podcast はリスニングがかなり難しかった。ニュースの Podcast などは比較的聞き取れるのだけど、テック系の Podcast などは特に意味がわからない。語彙の問題かと思ってたが、文字起こしをしてみて初めて理由がわかった。フィラー(意味のない場繋ぎのための言葉)が原因だった。文字起こしされたものでも読みにくいのだ。

フィラーとは一般的には "Uh" とか "Um" 、 "Well" みたいなやつだが、人によってだいぶフィラーには違いがある。いま聞いてる Podcast の話者たちは "I mean" とか "as well" 、 "like" や "that" を多用するが、このようなフィラーっぽくない単語を口癖なのか場繋ぎ的に使う。なのでそのまま文字に起こして読んでも意味が通らない文章になっていたのだ。

音のまま会話文を理解するためには「あ、いまのはフィラーだからスキップしてよいな」というのが瞬時に判断できなければならない。フィラーに加えて言い間違いの訂正もある。ニュースのアナウンサーは基本的にフィラーなしで喋るし、言い間違いして訂正することもほとんどない。英検のリスニング問題もそうだ。

しかし生身の人間は、日本語でもそうだけど、話していて考えている最中に「えー(Uh)」とか「あー(Um)」とか言ってしまう。ネイティブの日本語話者である自分は「えー」や「あー」、言い間違いや言い直しは瞬時に頭の中で意味がないものと判定できているが、英語ではそれができないので会話文の理解が難しいのだ。なので英語の会話文を理解するためには、まず①文章として筋の通った英語をわかる必要があり、その上で②フィラーや言い直しなどを瞬時に判定できるようになって音を聞きながらそれらを除外して頭の中で文章を組み立てていく力が必要になるということだ。

whisper.cpp では文字起こしする際に利用するモデルを選べる。名前が小さいモデルほどダンウロードするファイルが小さく、文字起こしの処理も速くなるようだ。英語ならば small でも充分な精度だが、 small は音に忠実に文字起こししようとしてフィラーがたくさん入ってしまう。 medium あたりからフィラーが除去されるようになり、 large だと結構アグレッシブにフィラーや言い間違いを除去してくれて読みやすい英語になる。

Whisper は ChatGPT と同じで、人間っぽいことをやろうとしている。音声からの文字起こし自体なら YouTube にもあるし、音声認識は iPhone や Android 携帯にも付いている。ただ、これらは聞いた内容をそのまま文字にするだけなのでフィラーや言い間違いを除外しない。なので出てきた最終系は意味の通らない文章になってしまう。 Whisper の large モデルあたりは人間が会議の議事録を取るのと近い感じで、言い間違いやフィラーを取り除いてきちんと文意が通るかたちで文字起こししてくれる。さらにそれを ChatGPT に投げて要約させたら議事録係とかいらなくなってしまう。すごい。

whisper.cpp を使う上での注意点としては Apple Silicon の Mac でこそ真価を発揮するので Intel Mac ではかなり遅いということだ。 iMac 5K 2017 で 40 分のエピソードを文字起こししたら 1 時間半くらいかかったのが、 M2 Pro の Mac mini では 20 分もかからずに終わってしまった。 whisper.cpp を使うために Mac を買い換えても元が取れるくらいに便利なので是非 Apple Silicon の Mac を買って whisper.cpp 使ってみてほしい。

| @WWW

博多駅前

サウナイキタイのサ活と Google マップのクチコミには結構乖離があることに気が付いた。自分が行ってめっちゃ気に入って、サウナイキタイでも好意的なサ活が多い佐賀の KOMOREBI の評価が Google マップでは低い。サウナにも水風呂にも入らないのに物価の安い九州(温泉に 500 円で入れる)で風呂に 1100 円払えと言われたら高すぎると感じる人もいるのだろう。しかも混んでるし。

Google マップのクチコミはとても便利だけど、一つの施設で二つ以上の役務を果たしてる場所や客を選ぶタイプの店は評価が下がると思う。本当は自分の好みにピッタリの施設が低評価となっている可能性がある。なので評価が低いからと切り捨ててしまうのではなく、自分と似た属性の人からのクチコミを探し出して読むと実際のところの雰囲気がわかるかもしれないが、それは難易度が高すぎる。

今日のプラットフォームサービスには不幸なマッチングを回避する仕組みが必要なのだと思う。あなたはサウナ好きだからこの施設は満足できますよとか、ここは常連向けですよ的な情報が簡単にわかるようになるとか。

ただ一方でそれは Instagram で自分のようなおっさんに微エロのリール動画ばかり表示されるようなレコメンデーションとアルゴリズムによる支配がいろんなサービスに広まるということであり、それはそれで残念ではある。

もう一つの選択肢としては、釣り SNS や登山 SNS が出来たように、レビューサイトも専門分化させていくアプローチが考えられる。自分のようなアルゴリズムやレコメンデーションにあらがいたいウェブ縄文人にはそういう進化の方が向いているかもしれない。

というようなことを思ってたら一つ前の記事に言及しつつ伊藤直也さんが似たようなことを書いていた。

2ch みたいにごちゃごちゃカテゴリーがサイドバーに並んでいるのには普通の人には難しすぎるので、釣り掲示板がツリバカメラになり、登山掲示板がヤマレコや YAMAP になったんだろう。考えてみるとサウナイキタイもサウナに特化した SNS ・情報サイトだ。

サウナイキタイに話を戻すと、サウナイキタイはローカルルール満載の町銭湯に対する評価が甘いという特徴もある。サウナイキタイでベタ褒めされてる施設(「番台のおばあちゃんが優しい」、「常連の方達とほのぼの交流」などなど)が Google マップではボロクソに書かれてたりする(「番台は意地悪ばあさんそのもの」、「彫り物を入れたヤクザや半グレの常連でサウナが占有されていて入れない」などなど)。ネガティブなことは書かないというコミュニティポリシーの影響なんだろうか(以前、サ活でドラクエ集団がいたと書いたら公式アカウントから警告された)。サウナイキタイだけ見て福岡の銭湯サウナに行ったら刺青を彫った怖い人から凄まれながら入浴しなければならないという体験をしそうだ。

レコメンデーションにしても専門分化にしても塩梅が難しい。レコメンデーションはやり過ぎるとただの偏見にしかならない( 40 代男性はおっさん → おっさんはエロが好き → 微エロ動画見せとくか)し、専門分化して蛸壺化しすぎると一般的な感覚と離れたレビューが集まるようになってしまう(怖い人だらけの銭湯サウナが高評価)。昔のインターネットではこんなことに悩むことはなかった。

昔のインターネットは良かったとばかり言ってもどうにもならないが、インターネットを飯の種とする者の一人として人が増えたいまのインターネット特有の問題をどうにかしたい。

| @WWW

三苫海岸

ソーシャルメディアやニュースサイトに毎日新しいコンテンツが次々に投稿されるので、インターネット上の総情報量は増えていっているはずだが、 20 年前と比べてアクセスできる情報の種類は減っているのではないかと感じる。いま何か情報を得ようとしたときに Google は以前ほど便利ではなくなってきている。 Google がキュレーションした情報にしかアクセスできないからだ。誰にもフィルタリングされていない生の情報にアクセスしようとしたら Twitter 検索の方がよっぼどよいと感じるくらいだ。

昨年末、 40L の登山用バックパックをニュージーランドのショップから購入した。日本でも売っていた商品だが、国内の正規取扱店では売り切れてて個人輸入で購入するしかなかった。商品名で Google 検索しても日本語のページしかヒットしないし、在庫ありとして表示される楽天や Amazon のページには怪しい業者が定価の何倍もの価格でふっかけて販売しているケースがほとんどで、 Google から直接海外のショップのページに辿り着くことができない。メーカーのウェブサイトから各国の取り扱い店をたどってようやく販売しているページを見つけてメールで問い合わせて購入することができた。

15 年くらい前、日本から patagonia.com にアクセスすると patagonia.jp にリダイレクトされて、アメリカで 10000 円くらいで売られているものが日本では 1.5 倍の 15000 円くらいになってて日本人はぼったくられている、というようなことを書いている記事がバズってた(ちなみにいまも patagonia.com を開こうとすると patagonia.jp にリダイレクトされる1)。当時は日本人が価格差に気がつけないようにしているのは邪悪だということで攻撃されていたのはパタゴニアだけだったが、現在では Google が似たようなことをやっていて、インターネット全体でパタゴニアと同じようなことが起こっている。日本人(日本の IP アドレスから日本語設定のブラウザーを利用している人)が海外のショップから直接物を買おうと商品名で Google 検索しても、海外のサイトはほとんどヒットしない。日本人は日本語のウェブページしか見させてもらえない。

日本語のページであっても、すべてが検索結果に表示されているわけではない。何か商品について調べようと Google 検索しても結果に出てくる店は決まっていて、 20 件程度表示されたあとにそれ以降の情報を探すことができない。楽天や Amazon 内の情報のほか、 BASE や STORES 、カラーミー、 Shopify などといった割と利用者が多いカートを採用しているページは Google ショッピングの一覧に表示されるが、そうではない自前の CMS で構築されているような地方のショップのサイトなんかは結果に出てこない。

昨シーズン、ARC'TERYX の Motus AR Hoody というパーカーを買ってとても使い勝手が良かったので、今シーズンも色違いを買おうと探してみたら主要なサイトではすでに売り切れていた。一昨年も GRiPS のサイト(カラーミーで構築されている)に掲載されたタイミングでは買い逃していてネットの海をさまよって何とか辿り着いた地方のショップのサイト(メジャーなカートシステムではない独自システムのサイト)で購入することができた。まさかそんなことあるまいと思いながら今シーズンもそのサイトを訪れて探してみたところ、何とよそでは売り切れて定価の 2 倍とか 3 倍の値段で売られている Motus AR Hoody が定価で販売され在庫が残っていた。こういう例は一度や二度ではなく、何度か経験した。

インターネットに情報が増えすぎて、 Google としても検索結果に表示するページは絞るしかないのだと思う。すると Google にとってクローリングしやすく、サイトの更新を追っかけやすいサイトばかりが検索結果に表示されるようになる。サイトのレスポンスが遅かったり、構造がいまいちイケてないサイトは検索結果に出てきづらくなる。その結果、同じようなページばかりが検索結果に表示され、一部のサイトにだけトラフィックが集中して独自サイトにはアクセスが集まりづらくなってきている可能性がある(だから自分が買ったショップのページでは Motus AR Hoody のような人気商品が売れ残っていた)。

インターネットは情報の非対称性を下げて、より取引を効率化するものだと信じてきてが、どうやらそうではないようだ。一部のページにだけアテンションが集中し、むしろ情報の非対称性が高まっている。あっという間に定価で売られていた商品が売り切れてモノの値段がつり上げられ、一方でアテンションを集められないサイトでは売れ残ってセールになっている。経済学のセオリー通りなら、市場の原理が働いてギリギリに近い競争均衡価格で商品は取引されるはずだが、実際には逆の現象(正規販売店による定価販売と一部の転売業者による価格つり上げ販売)が起こっている。

EC サイトだけでなく、ブログや個人のウェブサイトでも同じような問題が起こっているのではないかと感じる。 Google のコアアルゴリズムアップデートで自分のブログも随分 Google 検索からの流入が減った。

2015 年からの月ごとの検索流入の推移

実際には存在するのに、 Google から不遇されて存在しないことになってしまっているウェブサイトがインターネット上にはきっとたくさんあるだろう。

昔のインターネットのような、検索結果をたどればたどるほど新しい情報と出会えていた頃が懐かしい


  1. 2023-01-18 訂正: patagonia.com から patagonia.jp へのリダイレクトは2023年1月18日時点では機能していなかった 

| @WWW

sauna-ikita-and-sauna-life

ドラマ『サ道』を見てからサウナ好きになった。金曜の夜の遅い時間にテレ東系列で放送される25分ドラマは味があっていい。コーネリアスの音楽(サウナ好きすぎ)もマッチしてた。サウナ情報を検索するため、自然な流れでサ道にも登場するサウナイキタイを使うようになった。

サウナイキタイは便利ではあるが、レビューではなくサ活(サウナに行った記録)の投稿に特化してて、点数などでのレビューではないので初心者にはとっつきづらい(サウナを探しづらい)かも知れない。サウナの検索動線がサイトトップにしかないのもちょっとわかりづらいかも? サ活を読んでるとどこからサウナを探せるのかわからなくなり迷子になる。

少々気になる点がありはするものの、サウナ情報欄の項目がサウナ好きが喜びそうな項目になっていて、それをユーザーが自由に更新できる Wiki ライクな設計になっているので、数多く抱えるユーザーによって施設情報が頻繁に更新されて情報鮮度が高いのが良い。トントゥなるユーザーを褒める仕組みもよい。よく設計されている。

しかし何といってもサウナイキタイはサイトのデザインがすっきりしててオシャンティなところが良い。販売されているグッズもオシャレだ。サービスコンセプトデザインもよい。デザイン系 Podcast resize.fm でたびたび言及されるくらいよくデザインされている。

春頃、サウナイキタイがアプリを作るということと、有料会員制度(サウナイキタイメンバーズ)を始めるということが発表された。

開始当初はサイト上に専用のヴァーチャルなロッカー番号を取得できるだけで明確なメリットがなかったが、その後サウナを地図上から検索できる機能が特典として追加された。

これはめっちゃ便利そうだ。このためにメンバーズに加入するか悩むが、自宅近辺はそんなにたくさんサウナがあるわけではなく、いつも行くところは決まっているので元が取れないかも知れないと尻込みしている。

サウナイキタイのアプリ開発はどうなっているのだろうと何気なく App Store で「サウナイキタイ」と検索してみたら、「サウナライフ」というアプリが見つかった。

サウナイキタイとよく似た作りのアプリで、サ活の投稿に加えサウナのレビューもできるし、コミュニティを作ってユーザー同士で交流する機能もある。またサウナイキタイではポリシーとして実装されていない1サウナのランキング機能もある。さらにはサウナイキタイではメンバー限定の地図からサウナを探せる機能も使えるし、「1000円以下」など料金や決済手段といったサウナイキタイでは使えない特徴でサウナを絞り込む機能もある。めちゃめちゃ多機能なアプリだ。

マップ画面 ホーム画面 福岡の人気のサウナ
地図から探す機能が無料で使える。なぜかホーム画面が左端や真ん中ではなく左から二番目にある。人気のサウナ一覧機能もある。

サウナイキタイがあえて実装していない機能を提供しており、弱みをついているなぁという感じがする。料金で検索できる機能は膝を打った。サウナ好きな人には経済的にゆとりがある人が多いのか、人気のサウナ(サウナイキタイの「イキタイ」が多い)はかなり入浴料が高いことがある。良さそうなサウナを見つけても料金が1600円とかであれば利用するのを諦めてしまう。なので「1000円以下」で検索できる機能は貧乏サウナ愛好家の自分には嬉しい機能だ。

ではサウナライフがサウナイキタイに圧勝かというとそんなことはない。

第一にユーザー数が少ない。アプリプラットフォームはどんなに一つ一つのアイテムの情報量が多くても、そこに集まるユーザーが沢山いて活気がないとダメだ。統一された見やすいフォーマットで情報が整っていなかったとしても、粒度がバラバラであったとしても、常に最新の情報が投稿されていることの方が大切だ。 2 年前の情報はどんなに体裁が整っていても昨日投稿された情報に劣ることが多い。実際、自分の家の近くのサウナで情報の陳腐化が見られた。

これはネット上での存在感が無に等しいことが影響していると思われる。「サウナライフ」でググっても公式のウェブサイトがヒットしないし、 Twitter に公式アカウントもない。何かしらのページがないとユーザーが情報を拡散することができず、バイラルでユーザー獲得できない。新規ユーザー獲得がアプリストア一本槍となってしまっているのを改める必要があるだろう。

第二にデザインと情報設計がよくない。

サウナ詳細 1 サウナ詳細 2
メダルスコア 31 や金銀銅のメダルの割合が何を意味しているのかがわからないし、ラベルの色使いが多すぎるのはごちゃごちゃした印象を与え、サウナの情報を把握するのを阻害している。

サウナ詳細ページには様々な情報が表示されているが、ごちゃごちゃしていて要点をつかみにくい。メダルスコアや金銀銅のメダルのそれぞれが何を意味しているのかもわからない。色使いが多いのもごちゃごちゃ感を増強している。一階層で見える情報が多すぎる。

みんなのサ活 サウナ評価
ユーザー投稿欄がサ活と評価で別れているのがわかりづらい。正直、「みんなのサ活」欄にもレビュー的な内容が投稿されている。ユーザーはどちらも見なければサウナの情報を調べられないのは不便だ。

「みんなのサ活」と「サウナ評価」で情報が重複しているのも良くない。情報設計をミスっている。フロー的な情報が二種類あってユーザーはどちらも確認しないとサウナのことを調べられない。

最後に、システムの設計がサウナイキタイのパクリ+アルファというのが気になる。「サ活」、「サ飯」などの言葉が自然に使われているが、サウナイキタイの文化という感じがする( Twitter で検索するとサウナイキタイリリース前から使われていたようではある)。

全体的にサウナライフはあったら良さそうなものをじゃんじゃん追加してきたアプリという印象を受ける。実際、 App Store のレビューで要望された機能を「作りました〜」という感じで作っているようだ。よく言えばフットワークが軽いがまとまりがない。

ソフトウェア開発はいかにコードを少なくするか、ソフトウェアの規模を小さくするかが大事だ。情報量が増えたりソースコードの行数が増えたらメンテナンス対象が増えるし、ソフトウェアの複雑性が高まるとユーザーにとっても使う上での難易度が上がる。ほとんどの場合良い結果をもたらさない2。最もシンプルなソフトウェアで果たすべき役務を果たすのが最も効率的だ。

聞くところによるとサウナライフは一人で開発されているようだ。クライアントサイドだけでなくバックエンドもあるし、機能の豊富さではサウナイキタイを超えているので一人で開発・運用しているのは正直すごい。サウナライフが弱点を修正したらサウナイキタイにとっては脅威となるに違いない。

サウナイキタイのアプリ開発表明には、少なからずサウナライフが影響しているのではないかと想像する。確かにサウナライフには良くない部分が多いし、 UX や情報量の点でもサウナイキタイの方が勝っているが、アプリで、かつ地図上からサウナを検索できる機能は便利だし、サウナの検索は出先でスマートフォンから行うことが多いはずで、スマートフォンから使うならアプリの方が効率的で快適だ。

果たしてアプリ版のサウナイキタイはサウナライフを圧倒するようなものに仕上がるのだろうか。はたまたサウナライフが UI を改善してサウナイキタイに対抗していくのだろうか。サウナアプリの雌雄を決する戦いが始まろうとしている


  1. 開発チームへのインタビュー 妄想サウナ!「サウナイキタイ」チームの考えるカスタマイズ可能なプライベートサウナってどんなもの?【サウナをつくる】|灯台もと暮らし[もとくら]|これからの暮らしを考える情報ウェブメディア 

  2. 仕事でランディングページの情報量を思い切って削減したことで CVR が 3 倍程度に改善したことがあった。複雑な画面や多すぎる情報量はユーザーの思考の負荷を高め意思決定を阻害する。 

| @WWW

以前書いたはてなブックマークについての記事で、ホットエントリー入りするドメインの多様性が減ってきている、匿名ダイアリーと Togetter ばかりになってきている、なかでも最近は Togetter が匿名ダイアリーを抜いて一位になり、はてなからアテンションを奪って低俗広告を見せている、はてブを見ると Togetter の低俗広告も見ることになり問題だ、ということを書いた。

先日、はてなブックマークで特定キーワードかドメインを非表示にできるミュート機能がリリースされたが、 Togetter の広告が不快なのでミュートできてうれしいという意見が多く、低俗広告に不快感を抱いている人が結構たくさんいるようだった。

低俗広告を表示する側は広告単価が高いので効率的に稼げるし、ユーザーも表立っては苦情を言わないだろうから大したことではないと思ってるのかも知れない。しかし低俗広告は確実に訪れる人の心にストレスを与え、掲載するサイトの信用を毀損していく。

Togetter は訪問者にエロマンガの広告を見せてどうしたいのだろう。エロマンガサイトに行って有料課金サービスに登録して欲しいのだろうか? 自分の家族や友達にも同じことが出来るのだろうか? エロマンガやコンプレックスに訴えかけるようなサイトを少なくとも自分は信頼したり親身に感じることはないし、自分の親や子どもや友達にひどい広告を見せてマネタイズしたいとは思わない。

37signals は一連の従業員退職騒動で以前ほど魅力を感じなくなったが、それでも彼らのサイトに掲げてあるポリシーはよいと思う。

07. We don’t sell you

They say that if you don’t pay for what you use, then you’re the one that’s for sale. Not here. We don’t sell customer data to anyone, and we don’t use personal information to place targeted advertising either. We make a product, people pay for that product, end of transaction. Our business model is selling products, not selling you.

https://37signals.com/07

家族や友だちに見せて良心の呵責を感じることがないプロダクトを作っていきたい。

| @WWW

以前、以下の記事でこのウェブサイトへのアクセス元 User Agent について書いた。

そのとき Hatena::Russia::Crawler というのが謎だということを書いた。最近のアクセスログを見ても相変わらずこの User Agent からのアクセスが多い。またアクセス頻度も高く、同一の URL に対して何度もアクセスしている。

これはやはりはてなの名を騙った怪しいクローラーなのではないかと思い調べてみた。

まず Hatena::Russia::Crawler という User Agent からのアクセスの IP アドレスを調べてみたところ以下だった。

cat log/access.log | grep 'useragent:Hatena::Russia::Crawler/0.01' | cut -f2 | sort | uniq -c | sort -nr
    434 remote_addr:52.68.0.227
    419 remote_addr:54.249.85.140
    417 remote_addr:54.92.97.59
    379 remote_addr:54.250.227.185

whois してみると AWS で運用されているものであることがわかるが、はてなのものかは断定できない。

もしこの IP からはてなブックマークやはてなアンテナなどの User Agent でのアクセスもあれば Hatena::Russia::Crawler ははてなのクローラーであると断定できるだろう。ということで調べてみたところこんな感じだった。

zcat -f log/access.log* | grep -E 'remote_addr:(52\.68\.0\.227|54\.249\.85\.140|54\.92\.97\.59|54\.250\.227\.185)' | cut -f13,2 | sort | uniq -c | sort -nr
  16687 remote_addr:54.250.227.185      useragent:Hatena::Russia::Crawler/0.01
  16448 remote_addr:54.92.97.59 useragent:Hatena::Russia::Crawler/0.01
  16370 remote_addr:54.249.85.140       useragent:Hatena::Russia::Crawler/0.01
  16272 remote_addr:52.68.0.227 useragent:Hatena::Russia::Crawler/0.01
     73 remote_addr:54.249.85.140       useragent:HatenaBookmark/4.0 (Hatena::Bookmark; Scissors)
     60 remote_addr:54.250.227.185      useragent:HatenaBookmark/4.0 (Hatena::Bookmark; Scissors)
     56 remote_addr:52.68.0.227 useragent:HatenaBookmark/4.0 (Hatena::Bookmark; Scissors)
     50 remote_addr:54.92.97.59 useragent:HatenaBookmark/4.0 (Hatena::Bookmark; Scissors)
     31 remote_addr:54.92.97.59 useragent:Hatena::Fetcher/0.01 (master) Furl/3.13
     31 remote_addr:54.250.227.185      useragent:Hatena::Fetcher/0.01 (master) Furl/3.13
     31 remote_addr:54.249.85.140       useragent:Hatena::Fetcher/0.01 (master) Furl/3.13
     26 remote_addr:52.68.0.227 useragent:Hatena::Fetcher/0.01 (master) Furl/3.13
     19 remote_addr:54.92.97.59 useragent:Hatena::Scissors/0.01
     19 remote_addr:54.250.227.185      useragent:Hatena::Scissors/0.01
     16 remote_addr:52.68.0.227 useragent:Hatena::Scissors/0.01
      9 remote_addr:54.249.85.140       useragent:Hatena::Scissors/0.01

なんと、 IP アドレスで検索してはてなのその他のクローラーもヒットしてしまった。つまり Hatena::Russia::Crawler ははてなのクローラーということだ。

ただしググっても一切情報が出てこない。 Hatena::Russia::Crawler で検索してトップヒットするのは自分のブログだ。

改めて Hatena::Russia::Crawler による直近 30 日間のアクセス状況を調べてみるとこんな感じだ。

zcat -f log/access.log* | grep 'useragent:Hatena::Russia::Crawler/0.01' | cut -f5 | sort | uniq -c | sort -nr
  15697 request_uri:/index.atom
   9913 request_uri:/2022/04/20/integrate-charts-category-with-select-boxs
   9373 request_uri:/2022/05/04/reputation-and-interpretation
   8422 request_uri:/2022/05/11/fly-to-kamikochi-from-fukuoka
   7716 request_uri:/2022/05/16/using-tantivy-over-tantiny
   5906 request_uri:/2022/04/17/quit-using-hey
   5139 request_uri:/2021/12/29/thoughts-on-manga-subscription
   1308 request_uri:/2021/12/13/keep-a-stack-books-whether-reading-them-or-not
    787 request_uri:/2022/06/23/each-entry-title-should-be-marked-up-with-h1
    741 request_uri:/2021/12/13/keep-stack-books-whether-reading-them-or-not
    456 request_uri:/2022/06/24/if-you-feel-apple-musics-recommendation-is-awful
    100 request_uri:/2022/06/14/thoughts-on-hatena-bookmark
     46 request_uri:/2015/12/07/thoughts-on-rural-life
     46 request_uri:/2015/12/02/thoughts-on-t-on-t
     46 request_uri:/2015/12/02/thoughts-on-christmas-song
     45 request_uri:/2019/12/02/stop-drinking-outside-frequently
     16 request_uri:/2020/11/08/where-i-went-in-2019
     11 request_uri:/2015/12/05/omm-writer-music-is-nice-to-listen-to-while-writing
      5 request_uri:/2022/05/04/the-golden-maintenance-week
      2 request_uri:/2022/06/24/
      2 request_uri:/2022/06/24

index.atom はフィードの URL なので除外するとして、特定の記事に対して数千回もアクセスがある。 30 日間で 9000 回ということは一日あたり 300 回だ。 1 時間あたり 12.5 回である。何のためにこんなに高頻度でクローリングしているのだろうか。

とここまで調べたところほかの Bot 系アクセスはどうなのかと改めて User Agent 毎のアクセス数を調べてみたらこんな感じだった。

zcat -f log/access.log* | cut -f13 | sort | uniq -c | sort -nr | head -10
 124894 useragent:Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
  65794 useragent:Hatena::Russia::Crawler/0.01
  58274 useragent:Ruby
  31493 useragent:Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1
  29454 useragent:Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)
  21492 useragent:Tiny Tiny RSS/21.11-7cfc30a (https://tt-rss.org/)
  20351 useragent:Slackbot 1.0 (+https://api.slack.com/robots)
  18765 useragent:Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)
  18395 useragent:Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)
  17942 useragent:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

bingbot からのアクセスの方が Hatena::Russia::Crawler からのアクセスの 2 倍近くあった。ただし bingbot は検索エンジンのクローラーらしく、サイト全体をまんべんなくクローリングするような挙動で、特定の URL に一ヶ月間で数千回アクセスするような感じではない。

zcat -f log/access.log* | grep 'useragent:Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)' | cut -f5 | sort | uniq -c | sort -nr | head -25
    571 request_uri:/robots.txt
    352 request_uri:/
    205 request_uri:/category/misc
    160 request_uri:/2007/01/13/732
    156 request_uri:/2005/10/28/129
    150 request_uri:/2009/03/23/1010
    148 request_uri:/category/music
    146 request_uri:/archives
    144 request_uri:/category/www
    143 request_uri:/2016/07/
    143 request_uri:/2009/08/31/1074
    139 request_uri:/2010/07/05/1140
    138 request_uri:/category/photo
    138 request_uri:/2009/02/
    137 request_uri:/2006/09/09/658
    136 request_uri:/tags/netatmo
    136 request_uri:/2010/07/17/1145
    136 request_uri:/2006/07/23/611
    135 request_uri:/2014/03/
    134 request_uri:/?page=32
    134 request_uri:/2007/02/09/747
    133 request_uri:/category/shopping
    133 request_uri:/2021/07/26/how-to-get-to-kamikochi-from-fukuoka
    133 request_uri:/2011/11/03/finally-got-hhkpro2
    132 request_uri:/2006/01/

Hatena::Russia::Crawler は同一 URL に数千回もアクセスして何をしているのだろう? 謎は深まるばかりだ。