注目エントリーにカテゴリタブがついたことよりも大きな変化

先日の機能追加で注目エントリーページにカテゴリータブがつきました

カテゴリごとの注目エントリーを追加しました - はてなブックマーク日記 - 機能変更、お知らせなど
これはこれとして、リリース文には触れられていませんが注目エントリーに大きな変更が加えられましたね、それは表示エントリーが50件から20件に縮小されたことです。
http://b.hatena.ne.jp/entrylist
従来の50件から半分以下になったことで、どのような変化が起きるかざっくり考えてみました。

  • 1ページに表示されるエントリー数が減ることで流れが速くなる
  • それによって
  • キャッチーなタイトルでないと、なかなかブックマーク数を伸ばすことができない
  • 人気ブログでないと、なかなかブックマーク数を伸ばすことができない
  • ウチみたいな弱小ブログ涙目><

という。
まぁ、実際はどうなるかは分かりません。
カテゴリーのタブがうまく機能することで従来よりも流れが遅いカテゴリーというのが出る可能性もありますし、また今回の仕様変更で人気エントリーのページに注目エントリーが表示されるようになり、

http://b.hatena.ne.jp/hotentry
むしろ逆に多くの人の目に触れるため、却って弱小ブログにとってチャンスになることもあるかもしれません。
というわけで、どう転ぶかは分かりませんが、この変更が与える変化は割と大きいのではないかなー、と思った次第。

参考リンク

絵で見る「はてなブックマーカーの働き」 - シナトラ千代子
注目エントリー人気エントリーと人気ブログとの関係なんかはこのエントリーのイラストが非常に分かりやすいかと。



特定のユーザーがブックマークしてた場合フィルタする方法

表題の内容はちょっと置いていて、はてなブックマークのコメントでid:otsuneさんからこうしたコメントをいただきました

id:otsune すばらしい。ekkenブクマとotsune netwatchタグが付いてるのを除去するXPathの実例が欲しいところ

http://b.hatena.ne.jp/otsune/20090120#bookmark-11704615

経緯を説明すると、これはおそらくTwitterでの私の発言を受けての内容ですね

[ダイアリー更新] はてブ正規表現XPathでフィルタできるGreasemonkey http://tinyurl.com/9xsyoa 説明を書くのがメンドイ。まだ、これまでに作成したGreasemonkeyリストに追加しなきゃいけないしなー。

http://twitter.com/rikuo/status/1125832036

ただ、この Greasemonkey 作ってて思ったのだけど、特定ユーザーのお気に入りがブックマークしてたら、目立つようにする、という使い方はありだなと思った。

http://twitter.com/rikuo/status/1125833675

このままでもできるけど、スピンアウトさせてもいいかもしれない。例えば、お気に入りを2グループに分ける、というのはできる。(3グループ以上だとどうしようかな。)

http://twitter.com/rikuo/status/1125835572

あと真逆で、特定のユーザーをフィルタにするという手段もありかなと。名指しすると、前にも書いたけどid:ekken氏を揉め事フィルタにするとか、id:otsune氏の[netwatch]がついてれば、非表示とか(お気に入りページで、だけど)。

http://twitter.com/rikuo/status/1125839438

というのを書いていました。
どういうことか、もうちょっと詳しく説明するとですね

特定のユーザーをフィルタに使うことで、内容の選別が出来るのではないか?

現在のはてなブックマークのお気に入り機能は基本的に、「例)この人はJavascriptの話題に明るいから追加しよう」という具合にその人の興味のあることを自分も知りたいから、という動機で活用されているかと思います。
……なんですが、それを逆にその人が興味のあることをフィルタとして使えないか?というアイデアです。


具体的に言うと、私自身はてなブックマークでネットの議論とか揉め事とかがよく注目・人気エントリーに上がっているのを見て、興味ないなー、なんとか除外することができないものだろうかなー、と考えていました。
で元々は昨年、2008年9月のTwitterの投稿でもこう書いていました

個人的には「このユーザーがブックマークしていたら除外」という機能があればいいかなー。名指しするけれど、id:ekkenさんをフィルタに使えばかなりの「揉め事」を見なくできる。ちなみにid:ekkenさんの人品骨柄にどうというわけでない、ただ興味の範囲が合わないので。

http://twitter.com/rikuo/status/929155006

名指ししますが、id:ekkenさん、あと上でも挙げた id:otsuneさんは、私には興味ない揉め事とかを好んで収集しているんですね*1。で、そうした収集家をフィルタとして使うことで揉め事を巧く消去できないものだろうか?と考えていました。
ただ、当時ははてなブックマークのリニューアル前で、注目・人気エントリーを誰がブックマークしているのか?という情報を調べてフィルタする、というのはちょっと(私の技術的には)難しかったんですね、なのでアイデア止まりだったのですが、リニューアルでお気に入りが注目・人気エントリーに表示されるようになったので、

今回試してみようかな、という次第。

設定の方法

前置きが長くなりましたが、ようやく表題の「特定のユーザーがブックマークしてた場合フィルタする方法」です。
まず先日制作した
はてブを正規表現やXPathでフィルタできるGreasemonkey
をインストールしてください。
さらに、お気に入り機能ははてなブックマークユーザーでないと使えないので、

  • はてなにログインもしくはユーザー登録

そして

  • 任意のユーザーをお気に入りに登録

という作業をします。
で、設定は2種類

  // 注目・人気エントリー用
  xpath.hotentry = [
  ];
  // お気に入りページ用
  xpath.favorite = [
  ];

このGreasemonkeyXPathでフィルタの条件をつけられるのですが、ページ構造が注目・人気エントリーとお気に入りページでは異なるので、それぞれ別に設定が必要になります。
まずは注目・人気エントリーでの場合

注目・人気エントリー

(id:sampleをお気に入りに登録していて)id:sampleをフィルタの条件にしたい場合は

  // 注目・人気エントリー用
  xpath.hotentry = [
    'descendant::li[@class="favorite"]/img[contains(@title,"sample")]',
  ];

このようになります。
実際には "sample" のところを任意のユーザー名に変更してください。例えばid:ekkenさんなら

  xpath.hotentry = [
    'descendant::li[@class="favorite"]/img[contains(@title,"ekken")]',
  ];

こうですね。
注目・人気エントリーのページでは、このGreasemonkeyでタグをフィルタの条件に加えることはできないので、ユーザー名のみです。

お気に入りページの場合

(id:sampleをお気に入りに登録していて)id:sampleをフィルタの条件する、またid:sampleが [tag] をつけているエントリーを抽出したい場合は

  // お気に入りページ用
  xpath.favorite = [
    'descendant::li[@class="others"]/a[1]/img[contains(@title,"sample")]',
    'descendant::li[@class="others" and child::a[1]/img[contains(@title,"sample")] and descendant::a[@class="user-tag" and contains(text(),"tag")]]',
  ];

このようになります。
つまり、id:ekkenさんと id:otsuneさんが[netwatch]をつけていた場合の設定なら

  // お気に入りページ用
  xpath.favorite = [
    'descendant::li[@class="others"]/a[1]/img[contains(@title,"ekken")]',
    'descendant::li[@class="others" and child::a[1]/img[contains(@title,"otsune")] and descendant::a[@class="user-tag" and contains(text(),"netwatch")]]',
  ];

となるわけです。




とは言え、あくまで考えて見ただけで実際にはどの程度フィルタの効果が出るのかは、まだ検証していません。
もし効果があり、しかも割と使う人が多ければ、わざわざXPath書かなくてもも、この機能だけをスピンアウトさせる・もしくは機能追加してユーザーIDを登録するだけでフィルタの条件にできるよう改善するかもしれません。

追記

あと、フィルタで見えなくする方向で書いてますが、この Greasmonkeyは条件に合致すればむしろ強調して表示する、という機能も備えています。なので、真逆に揉め事大好きな人は、そうして使うとか、またこの人のブックマークは必ずチェックしたい、という場合にも使えます。

><

*1:念の為フォローしておくと、このお二方の「興味あること」には私は興味を持てないというだけで、人品骨柄をどうこう言うつもりはないです。