Quantcast
Channel: コーヒーサーバは香炉である » CustomBlocker
Viewing all 13 articles
Browse latest View live

Google Chrome 用機能拡張 “CustomBlocker” をリリースしました

$
0
0

Google Chromeの機能拡張を作ったので公開しました。

CustomBlocker (Chrome Web Store)

ひとことで言うと「そのサイトの構造に合せた『NGワード機能』をどんなサイトにでも追加できる機能拡張」です。

  • どこのサイトで
  • どの要素の中を検索して
  • どんなキーワードが含まれたら
  • どの要素をブロックするか

というのを全部自分でカスタマイズできます。

HTML文書の中の狙った要素(しかも複数)を選択するとなると、どうしてもXPathを自力で書いたりしないといけないので非常に面倒だし、それなりに知識が要りますが、この拡張にはHTML文書の中の要素を選ぶとそれに類似した要素を選択できそうなXPathをいくつかsuggestしてくれるという親切機能をつけておきました。たとえば、Twitterの「本文」をひとつクリックすると、空気を読んで同類の要素を選択できるXPathをひねり出してくれます。

これを使うと、 TwitterやFacebokでうっかり映画やゲームのネタバレとかを見ないようにする ソーシャルブックマークで特定のタグのついたコメント、特定のドメインのエントリを非表示にする 2ちゃんねるで罵倒語を含んだ投稿を非表示にする 邪魔な広告を消す 特有のclassやidがついているわけではないのでなかなか隠せない or 隠そうとすると他が巻き添えになるタイプの広告には特に有効。たとえば、オンラインRSSリーダー上で、普通の記事に混じってくる広告を消すとか といったことができます。インポート&・エクスポート機能も用意したので、バックアップを取ったり複数のマシンで共有したりすることもできます。 「XPathやCSSを自分で書いて特定のスタイルを当てる」という拡張はすでに色々あるんですね。AdBlockとかStylebotとか。あと、特定のサイト (TwitterとかGoogle+とか2chとか) に特化したフィルタリング拡張もいろいろあります。CustomBlockerはそれらを合わせたような拡張です。

  • やや詳しいマニュアルはこちら
  • ソースはgithubにあります
  • ダウンロードはこちら

まだ公開したばかりなので改良の余地がいろいろあるかもしれません。バグがありそうな気もします。わかりにくいところもあるかと思います。ご意見ご要望があったらお寄せください。 # 実際は1週間くらい前にこっそりリリースしていたんだけど、色々工事してたらblogに書くのは今日になってしまった……

《追記》 ひとりぶろぐさんが本家の100倍わかりやすい解説記事を書いてくれました! ありがとう! 隠したいものが隠せて便利! | Google Chrome機能拡張CustomBlockerでTwitterのWho to followを消す | ひとりぶろぐ 「XPathキモーイ!」「そもそもXPathなんて知らないし!」という人も多いはずなのでCSSでもフィルタを書けるようにしようかと思います。今週末あたりを目標に……。


CustomBlockerでCSSセレクタが使えるようになりました

$
0
0

Google Chrome用万能フィルタリング機能拡張 “CustomBlocker” をアップデートしました。バージョン1.4です。

文書内の要素を選択するのに今まではXPathしか使えなかったのですが、今回のアップデートにより、CSSセレクタが使えるようになりました。自動でCSSセレクタの候補を出す機能もありますので、簡単にフィルタが作れます。

このスクリーンショットはTwitterでハッシュタグによるフィルタを作っているところ。Twitterではとりあえず「本文でフィルタ」「本文に含まれるURLでフィルタ」「ハッシュタグでフィルタ」の3つを作っておくのがおすすめ。あとは適宜Who to FollowやTrendsあたりのどうでもいいものを消すとさらに快適。

今後の方針として、そもそもXPathやCSSを意識せずに使えるような仕組み (ただしアドバンストモードとかにすると手でXPathやCSSセレクタを書ける) を作っていこうと目論んでいます。

CustomBlockerについて、詳しくはこちらをどうぞ

CustomBlockerアップデート! 「適用中のルール」が見やすくなりました

$
0
0

Google Chrome機能拡張 “CustomBlocker” アップデートしました。最新バージョンは1.4.2です。

今回のアップデートでは、アイコンをクリックすると表示される「適用中のルール」にカーソルを当てると、そのルールが文書中のどの箇所に効いているのかをその場でテストできます。これで、たくさんルールを作っても管理がしやすくなりました。 すでにインストール済みなら、Chromeが勝手に更新を検知してアップデートしてくれるはずです。新規インストールはこちらから。

CustomBlocker @Chrome Web Store

《関連記事》

  • Google Chrome 用機能拡張 “CustomBlocker” をリリースしました (2012年1月27日)
  • CustomBlockerでCSSセレクタが使えるようになりました(2012年1月29日)
  • 隠したいものが隠せて便利! | Google Chrome機能拡張CustomBlockerでTwitterのWho to followを消す | (ひとりぶろぐ (@hitoriblog) さんの超わかりやすい記事)

Facebookの「◯◯予報」「◯◯診断」系アプリを一網打尽に非表示にしてすっきりさわやか

$
0
0

Facebookのタイムラインに「◯◯予報」「◯◯診断」が溢れるようになって邪魔に感じていたので、この間リリースしたばかりのCustomBlocker for Google Chromeで一網打尽に視界から消し去りました。

設定画面はこんな感じ。

Facebookには、「特定のアプリを非表示にする」という機能があることはあるのですが、次から次へとその手のアプリが出てくるので毎回消すのが大変なのです。 「次々に出てくる◯◯予報が邪魔」という声を最近よく聞くので、CustomBlockerのチュートリアルも兼ねた紙芝居で解説してみました。

ついでに、あまりに流行りすぎて何度も流れてきて飽きたネタ (慶應幼稚舎のクイズとか正義の味方とかザッカーバーグの手紙とか……面白かったけどもうおなかいっぱい) も同じような要領でガンガン消しちゃってタイムラインがすっきりさわやか。

「予報」「診断」系アプリを私は全然楽しめないんのですが、楽しんでいる人もいるかと思います。楽しんでいる人が全然いなかったらそもそも流行らないわけで。だからこういうアプリ自体はあってもいいと思っています。 最近はFacebookも「見る/見ない」「見せる/見せない」のコントロールがかなり柔軟にできるようになってきています。去年あたりから、アプリごとにフィード公開範囲を決めたり、アプリを丸ごと非表示にしたり、重要度によってフィルタリングしたりと、新機能が続々追加されています。今後はFacebookの標準機能を「この提供元のアプリは全部非表示」というのができるようになるといいなぁ。

《関連記事》

 

強力なフィルタ作成機能を搭載した「CustomBlocker 2.0」をリリースしました

$
0
0

Google Chrome用の万能フィルタリング機能拡張「CustomBlocker」のメジャーバージョンが上がりました。強力なフィルタリングルール作成機能が加わっています。

以前はフィルタリングルールを作るときに、ダイアログを開く → XPath (or CSSセレクタ) 生成ボタンをクリック → 狙った要素をクリック → XPath (or CSSセレクタ) から選ぶ → 検索対象要素についても同様にXPath (or CSSセレクタ) を生成 → NGワードを追加、という具合で非常に面倒だったのですが、今回のアップデートでは、右クリックメニューから一発でルールが作れます。

「この文字列をNGワードにしたい!」と思ったら右クリックメニューから「ルールを作成」を選択。

CustomBlockerは、ページの構造を分析し、空気を読んでルールの候補をいくつかひねり出します。その候補の中から目的に合ったものを選択したら、あとはNGワードを追加するだけで、簡単にフィルタが作れます。

複雑な構造のページだとちょっと時間がかかるかもしれません。

たとえば、twitterでハッシュタグを右クリックすれば「ハッシュタグの内容によって、ツイート単位でフィルタする」「本文の内容によってツイートをフィルタする」といったルールが出てきます。Facebookでコメントを右クリックすれば「post自体を非表示にする」「コメント単位で非表示にする」といったルールが候補として出てきます。

もちろん、今までのルール作成機能も使えます。

インストールはこちらから

Chrome Web Store – CustomBlocker

CustomBlocker 2.0のデザイン

CustomBlocker 2.4をリリース

$
0
0

Google Chrome拡張 “CustomBlocker” のバージョン2.4をリリースした。ユーザインターフェイスがけっこう変わっている。いらない要素も削除した。

CustomBlocker 2.4での変更点

最新のルール編集画面はこんな具合になった。

今までのはこんな感じだった。

一部の項目の削除

“Description” の項目はほとんど使わないと判断して削った。これはもともと、「XPathやCSSセレクタだけだと意味がわからなくなるだろうから、『ハッシュタグ』とか『投稿者名』とか『コメント』とか、メモで補足できるようにしよう」と考えて設けたフィールドだった。しかし、ルールにカーソルを合わせたときに対象となっている要素がハイライトされる機能をつけたため、わざわざ自分でメモをする必要はなくなった。だから削った。

「隠す要素 / 検索する要素 / キーワード」から「隠す要素 / 条件」へ

それから、今までは「隠す要素(非表示の最小単位)」と「検索する要素(この部分にキーワードが含まれていた場合にフィルタが発動する)」を両方指定する必要があった。2.4以降、後者は不要ということにし、あくまで「キーワードを指定するときのオプション」とした。これを省略した場合は、「隠す要素」の中のどこかにキーワードが含まれていたときに、その要素が非表示になる。

そして、「Block anyway (キーワードが含まれていなくても無条件で非表示にする)」とあわせて、「条件」というセクションにした。「どんなときに非表示にするのか?」という項目をなるべく一箇所にまとめた。

URL指定にワイルドカードが使えるように

さらに、今までURLを正規表現で指定していたけれど、ここはワイルドカードで指定できるようにした。ちょっと複雑なマッチングをさせたい場合のためにオプションとして正規表現も使えるようにしたが、あくまでこれはオプション。
正規表現を使わないといけないというだけで敷居が一気に上がるし、URLの指定はたいてい「*」で事足りる。プログラマの私でも、正規表現を書いているときはなんとなく人間性を消費しているような気分になるものだ。

今後の開発

これからも、「厳密かつ柔軟にフィルタを作れる」という基本機能は維持しつつ、できるだけ楽な気持ちで使えるように改良していくつもり。

また、複数のデバイスの間でのフィルタの共有をもっと楽にできるようにする予定。今まではインポート/エクスポート機能でそれを実現していたけれど、Chrome拡張APIのクラウド同期機能を利用し、その手間を省くようにしたい。

何を考えてCustomBlockerを開発しているか

$
0
0

Chrome拡張機能 “CustomBlocker” のアップデートにあたり、今までどう考えてこれを開発してきたか、今後どうするかについて書いておく。

はじめての方へ

CustomBlockerを知らない方のためにちょっと説明。そもそもユーザがそんなに多いとはいえないのでほとんどがはじめての方かも。

CustomBlockerは私の開発しているGoogle Chrome用拡張機能で、「あらゆるサイト上で、そのサイトの構造に合ったNGワードフィルタを作れる」というもの。

Chrome Web Store – CustomBlocker 

メジャーなサイトの例なら、Twitterなら「ハッシュタグによるフィルタ」「NGワードによるフィルタ」が作れるし、Facebookなら「◯◯という言葉を含んだページ経由でシェアされた投稿は非表示」「◯◯という言葉を含んだアプリは全部非表示」というのができる。Googleなどの検索サービスで特定のドメインをフィルタするのにも使えるし、もっともっとマイナーなサイトでもそのサイトにぴったりなNGワードフィルタを作成し、利用することができる。

嫌なら見るな・嫌だから見せるな・嫌だから見ない

Webでは、暴言に心を傷めることもあれば、いいかげんな情報を垂れ流すサイトの記事を見かけて「またか」と呆れることもある。そもそも、あらゆる表現には、誰かが嫌がる可能性がある。そういう物に対して「嫌だから見せるな」「嫌なら見るな」の問答が今日もどこかで繰り広げられている。

その場合、おそらく「嫌だから見せるな」よりも「嫌なら見るな」のほうが正しい。他人に表現をやめさせてはならない。

そうすると、見る側は「嫌だから見せるな」ではなく「嫌だけど我慢する」もしくは「嫌だから見ない」を選択すべきということになる。
その「嫌だから見ない」を実現するため、さまざまな形のフィルタソフトが存在している。しかしどうしても満足がいかず、CustomBlockerを作った。

「嫌だから見ない」はどれだけ現実的か?

「嫌だから見ない」を実行しようとしたとして、それがどれくらい現実的であるかが問題になる。「嫌だから見ない」という選択のために払う犠牲が大きすぎれば、それは非現実すぎて、結局「嫌なら見るな」に対して「嫌だから見せるな」か「嫌だけど我慢する」しかなくなってしまう。

たとえば自分が気に入っているサイトがじわじわと荒れてきて、どうしても嫌なものが目に入るようになった場合。「我慢する」か? それとも「サイトの利用をやめる」か? それは究極の選択に近い。「嫌だから見ない」の代償が大きすぎる。
「特定のキーワードに反応してページ全体が非表示になる」という仕組みも、やはり辛い。

だから、サイトの構造にあわせて「最小単位」で非表示にし、「嫌だから見ない」物の「巻き添え」で見えなくなってしまうものが最小限になるような仕組みが必要なのである。

 特定サイト用のフィルタリングツールはよくあるけれど

有名サイト用のフィルタリングツールはたくさんある。多くのTwitterクライアントや2ちゃんねる専用ブラウザには、「NGワード機能」がついている。また、専用クライアントという形ではなくとも、特定のサイトのためのブラウザ拡張機能やユーザスクリプト、ユーザスタイルシートが多数開発されている。

また、大手サイトほど、自前のフィルタ機能が充実している。ニコニコ動画にはコメントNG機能があるし、Twitterはユーザをブロックできるし、はてなブックマークもユーザ単位でのフィルタ機能を提供している。Facebookはフィルタ機能が豊富すぎ、使いこなせていない人のための記事がユーザ達によってたくさん書かれている。

だから、自発的にフィルタを作ってくれるようなユーザが少なかったり、フィルタ機能を充実させる余裕がない、あるいはその必要を感じていないマイナーサイトこそサポートしなければならない。そのために、そのサイト上で、そのサイトにぴったりのフィルタを、「一人で」簡単に作れる仕組みが必要である。

一人で使う

一人で使うことを想定している。誰かが作ったフィルタを共有するような機能は設けない。

それは「何かを『嫌う』という行為は日陰て一人ジメジメと行うものである」という考えがあってのことで、また、「ワンクリックで広告フィルタを共有できるようなソフトウェア」にするつもりもないからである。多くの広告は、CSSやXPathで指定すれば消せる。

また、ちょっとひねったXPathやCSSセレクタを共有するだけで「大勢の人が嫌っているユーザを非表示にするフィルタ」「大多数がうざいと思っているサイトを視界から消すフィルタ」ができてしまったりする。そういう使い方をするソフトじゃないんだよと開発者が主張したところで、共有機能を設けたりしたらあまり幸せな使い方はされないと思う。

やるとしたら、せいぜい「お手本」として、twitterのハッシュタグフィルタやFacebook用のコメントフィルタなどをプリセットとして入れておく程度にする。

要件

ここまでで決まる要件は

  • 特定のサイトで特定の箇所を非表示にできる。どこを非表示にするかはユーザ個人が指定する
  • NGワード機能がある
  • 「巻き添え」で消される部分を最小限にするため、非表示にする最小単位 (コメント、タグ、ツイート) を任意に決定できる
  • さらに、「その要素の中のどの部分にNGワードが含まれていたら発動」という条件まで指定できるようにしたい。それができないと、「誤爆」による非表示が多発してしまう
  • フィルタはすべてユーザが自力で作る

誰でも使えるように

この要件を実現しようとすると、どうしてもXPathやらCSSセレクタやらを使い、各サイトに合わせたフィルタを作らなければならない。
XPathやCSSセレクタを直書きして使うようなツールは、ユーザスクリプトやユーザスタイルシートとしていくつか見かけたが、どうしてもコンピュータギーク向けになってしまう。

CustomBlockerを開発・メンテナンスするにあたっては、フィルタ作成のためのユーザインターフェイスや、サイトの構造を解析してセレクタの候補を提案するアルゴリズムなどを作るのにほとんどの時間を使っている。

これから

今後は、Chrome Extensionのクラウド同期APIを使って、複数デバイスでのフィルタの共有ができるようにする予定。開発当初にsqliteを使ってデータを保存するという選択をしてしまったため、クラウド同期APIへの対応は若干面倒なことになりそうだが、地道に開発する。

ユーザインターフェイスも、まだまだ簡単にする余地があると思う。まだまだ一部のユーザには「難しい」「マニア向け」と言われる。もっと簡単にしたい。


初めての人にも優しいCustomBlocker 2.5をリリース

$
0
0

CustomBlocker 2.5をリリースした。今回のアップデートは、既存のユーザの方にはあまり影響がなく、専ら新規ユーザや「インストールしたまま放置」という休眠ユーザ向けの更新となっている。

「汎用性・カスタマイズ性の高いフィルタリング拡張」としてこのソフトウェアを開発してきたのだが、そういう方向性を目指した場合にハマりがちな「何でもできすぎて、何をしたらいいのかがわからない」という罠にハマってしまった。

Analyticsを入れてみたところ、けっこうな割合で、「フィルタを1個も作らず使い続けている」「フィルタを1個も作らずそのままアンインストール」という残念なことになっていることが判明した。初期と比べるとUIもかなり親切になったのだが、「何をしたらいいのかわからない」というユーザは未だ多いようで、これではせっかくインストールしてくれたのに申し訳ない。

この状況をどうにかするために、メジャーなサイトで使えるようなフィルタをこちらで用意した。たとえばTwitterなら、多くの人が欲しがるであろう「ハッシュタグフィルタ」「本文中のURLによるフィルタ」「ツイート本文によるフィルタ」などを用意した。

インストール時は、これらのフィルタの中から好きなものを選んで追加することができる。

また、フィルタを1個も作っていない状態で設定ページを開いた場合も、フィルタインストールページへのリンクが現れる。
フィルタをインストールしたら、あとは対象サイトでNGワードを登録するだけで使える。

用意したフィルタは50ほど。英語と日本語、ロケールによって対象サイトが一部異なっている。サイト数は今後のアップデートで少しずつ増やしていく予定。

インストールはこちらから。

  

CustomBlockerアップデート! おすすめルールをいつでも追加可能

$
0
0

Google Chrome用万能フィルタリング拡張機能CustomBlockerをアップデートした。前回のアップデートで「おすすめルール」をインストールできるようにしたら (2013年10月6日の記事 初めての人にも優しいCustomBlocker 2.5をリリース) 、初めてインストールしたという方にもけっこう好評だった。

しかし、この機能は「はじめてインストールした時」と「1個もルールを作成していない状態」でしか使えなかった。今まで使ってきたけれどさらにおすすめルールをインストールしたい! というニーズもあるようなので、いつでもできるようにした。

設定画面に「おすすめルールをインストールする」というリンクがある。

これを押すと、おすすめルール一覧の画面が表示されるので、使いたいルールを選べばOK。

インストール済のものは選べないようになっている。

CustomBlockerのインストールはこちらから。

 

 

初めての人にも優しいCustomBlocker 2.5をリリース

$
0
0

CustomBlocker 2.5をリリースした。今回のアップデートは、既存のユーザの方にはあまり影響がなく、専ら新規ユーザや「インストールしたまま放置」という休眠ユーザ向けの更新となっている。

「汎用性・カスタマイズ性の高いフィルタリング拡張」としてこのソフトウェアを開発してきたのだが、そういう方向性を目指した場合にハマりがちな「何でもできすぎて、何をしたらいいのかがわからない」という罠にハマってしまった。

Analyticsを入れてみたところ、けっこうな割合で、「フィルタを1個も作らず使い続けている」「フィルタを1個も作らずそのままアンインストール」という残念なことになっていることが判明した。初期と比べるとUIもかなり親切になったのだが、「何をしたらいいのかわからない」というユーザは未だ多いようで、これではせっかくインストールしてくれたのに申し訳ない。

この状況をどうにかするために、メジャーなサイトで使えるようなフィルタをこちらで用意した。たとえばTwitterなら、多くの人が欲しがるであろう「ハッシュタグフィルタ」「本文中のURLによるフィルタ」「ツイート本文によるフィルタ」などを用意した。

インストール時は、これらのフィルタの中から好きなものを選んで追加することができる。

customblocker_presets

 

また、フィルタを1個も作っていない状態で設定ページを開いた場合も、フィルタインストールページへのリンクが現れる。
フィルタをインストールしたら、あとは対象サイトでNGワードを登録するだけで使える。

用意したフィルタは50ほど。英語と日本語、ロケールによって対象サイトが一部異なっている。サイト数は今後のアップデートで少しずつ増やしていく予定。

インストールはこちらから。

CustomBlockerアップデート! おすすめルールをいつでも追加可能

$
0
0

Google Chrome用万能フィルタリング拡張機能CustomBlockerをアップデートした。前回のアップデートで「おすすめルール」をインストールできるようにしたら (2013年10月6日の記事 初めての人にも優しいCustomBlocker 2.5をリリース) 、初めてインストールしたという方にもけっこう好評だった。

しかし、この機能は「はじめてインストールした時」と「1個もルールを作成していない状態」でしか使えなかった。今まで使ってきたけれどさらにおすすめルールをインストールしたい! というニーズもあるようなので、いつでもできるようにした。

設定画面に「おすすめルールをインストールする」というリンクがある。

install_preset_link

 

これを押すと、おすすめルール一覧の画面が表示されるので、使いたいルールを選べばOK。

install_preset_check

インストール済のものは選べないようになっている。

CustomBlockerのインストールはこちらから。

CustomBlockerが「完全一致」キーワードを使えるようになりました

$
0
0

CustomBlockerでキーワードを『完全一致』の場合だけ適用できるようにしてほしい」というご要望が寄せられていたので実現しました。今までも正規表現を使って “^” と “$” をつけるという技はあったのですが、そのへんは知識のある人しかわからないことなので、新たな機能として実装しました。

キーワード追加時に、「完全一致」にチェックを入れると、検索範囲のテキストがキーワードと完全に一致した場合だけフィルタが発動します。「完全一致」を選ばなかった場合は、従来どおり、テキストの一部にキーワードが含まれているだけでもフィルタが発動します。

たとえば、こんな感じの猫の掲示板で「たま」というユーザだけをNGしたい……というケースを想定してみます。
catbbs_orig

「完全一致」にチェックを入れないと、「たま」だけでなく「たまにゃん」も巻き添えで非表示になってしまいました。
normal_keyword
catbbs_normal

チェックを入れれば、ユーザ名の箇所が「たま」と完全に一致した場合だけ非表示になり、「たまにゃん」は表示されます。
comp_match_keyword
catbbs_complete

バージョン2.5.3から使えるようになっていたのですが、このアップデートの時にかなり深刻なバグが入ってしまったため修正、2.5.4以降で安定して使えるようになっています。

 

 

Viewing all 13 articles
Browse latest View live