HatenaUserScriptsというアイデア

たとえば、「HatenaUserScripts」とかなんとかいうclassをつくり、どこかにHatena.user.jsとかいうファイルを一つおき、ユーザーが別個に作って検証できた段階になったjavascriptをそのclassのメソッドとして吸収してどんどんバージョンアップして提供する。


というアイデア


というか、それならhatenabarの方がいいのか。。。


とにかく、http://www.hatena.ne.jp/userscripts みたいなnamespaceも借りる。


できれば、実際にそのスペースに各自が作ったjavascriptを置かせてもらえるようにする、とか。

ただし、各自がはてなに申請し、はてながチェックしてOKがでたものだけが置かれるようにし、そこにあるjavascriptなら?Dや?Gなどで自由に使える、みたいな感じで。


というアイデア


そういう風に、方法はなんでもいいので、javascriptの制限を緩和してほしいなあ。。。というはてなへの要望でもあるのですが。


また、user製scriptだけじゃなくても、たとえば、はてなのヘルプで使っている、タイトル部分で折り畳めるjavascriptや、RSSリーダで使われ始めたAjaxな「もっと読む」機能などなどを実現しているはてな謹製javascriptの利用を開放してくれると、とても便利だと思うのです。

「もっと読む」なんかは、それをhackして?Dや?Gで使えるようにしてくれる人がいるでしょうから、それを使えるように公認だけしてくれてもいいのですが。

「もっと読む」機能を「続きを読む」の代わりに使えたら、みんな泣いて喜ぶんじゃないでしょうか?(みんなって、自分ですが)


scriptタグの制限緩和が難しいなら、moduleで提供して、ヘッダなどにそれを仕込んでおくだけで、本文の「続きを読む」が「もっと読む」に早変り!みたいな。。。

      • -

あと、userscriptsグループなんかを作って、有用そうなscriptsを見付けたらそこで記事にしてキーワードにしておくなどして、情報のハブとして機能するようになるといいなあ。


というアイデアもあるかな。

入力文字数カウンター関連

業務連絡です(笑)→id:wetfootdogさん、id:sendさん、id:tzkさん、こんにちは。


入力文字数カウンターですけど、間違いに気づきました。


?B/?IはUTF-8なので、

(e.value.replace(re,"###").length)/3;

にしないといけないのでした。


ref. はてなブックマーク - コメントの文字数拡張 - はてなアイデア日記 - 機能変更、お知らせなど


ただし、人力はEUC-JPなのでこれまで通りでOKですから、ちょっと面倒になりますね。。。

# 全面的に書き換えた方が速いかも。。。

はてな文字数カウンター


ちょうど作りたいと思っていたところだったので、以下の御二方のエントリーに非常に刺激をうけました。


シナトラ千代子 - はてなブックマーク用コメント文字数カウンター
http://d.hatena.ne.jp/wetfootdog/20050512/p1

bookmarklet

nothing but trouble - はてなブックマーク用コメント文字数カウンター
http://d.hatena.ne.jp/send/20050513/p1


ということで、sendさんのbookmarkletを改造させていただきました。


下記のbookmarkletを作動させると、入力欄の横に現在何文字入力中なのかを(ほぼ)リアルタイムで表示してくれるようになります。


また、はてなブックマークだけじゃなく、はてなアイデアにも対応しました。

はてなブックマーク追加時のコメント欄(全角50文字まで)、はてなアイデアの要望欄(全角85文字まで)および各要望のコメント欄(全角3250文字まで)がある各ページで動作します。


# はてなアイデアでは「全角X文字まで」という表記なので、カウントを全角にあわせてみました。なので、アルファベット(半角)が混じっている場合、4.5/504.33333333/50などといったカウントになります。。。

# アイデアにも対応したせいで、bookmarkletが長くなってしまい、IEでは動かなくなってしまいました。現在、Firefox(1.0.31.0.4)でだけ動作確認しています。

# ma.laさんちの手法を使って外部jsファイル化しようと思ったんですが、とりあえず公開。
http://la.ma.la/blog/diary_200504140039.htm *1


はてな文字数カウンター ←ブックマーク用ダミーリンク

javascript:u=location.href;s=u.charAt(7);l=(s=='b')?50:(u.indexOf('\/idea\/')>0)?50:(s=='i')?85:0;if(l){re=new RegExp("[^ -~%EF%BD%A1-%EF%BE%9F]","g");d=document;f=d.forms[1];e=(l==85)?f.content:f.comment;c=d.getElementById('count');if(!c){p=d.createElement('span');p.innerHTML='<span id=count>0</span>/'+l;if(e.nextSibling){e.parentNode.insertBefore(p,e.nextSibling);}else{e.parentNode.appendChild(p);}c=p.firstChild;}function getN(e){if(!e.value){return 0;}else{return (e.value.replace(re,"###").length)/3;}}function setN(c,n){c.innerHTML=n;}setInterval('setN(c,getN(e))',1000);}undefined;


他にも数えるべきページってあるでしょうか。

はてなアイデアで、はてなへの要望が出されているような気もしますが。。。

正式に実装されるまでのツナギということで。


(追記)FirefoxだとGreasemonkeyにすればもっと楽ですね。今こんなのをエントリーしてる場合か!ってのはありますが。


Firefoxを1.0.4にアップしました。このbookmarklet、動作しました。

はてなBコメントカウンタ Greasemonkey版 beta

拙作はてな文字数カウンターbookmarkletですが、早速、tzkさんが改良してGreasemonkey版を作ってくれました!!


はてなBコメントカウンタ Greasemonkey版 beta
http://d.hatena.ne.jp/tzk/20050515#1116170630


感動しました(T_T) 「勝手に作ってしまってスミマセン。」なんてとんでもないです。


onkeyupを使うなんて思い付かなかったですし、グローバル変数も、まあいいや、どうやっていいかわからないし、ってなことで後回しだったので、とても勉強になりました。


ということで、さっそくインストール!!。。。おお、0/50とか自動ででてるよ!!こりゃ楽チ〜ン


。。。と思ったんですが、ダメでした。いくら打ち込んでも、0/50のままで。


原因は分かりませんが、環境の違いかもとも思ってます。

私の環境は、Firefox 1.0.4 on Mandrake Linux 10.0, gnome 2.4, ja_JP (UTF-8)で、文字入力にはanthy-uimというのを使っています。

まだ何も調べてない段階で、とりあえずの書き散らしで申し訳ないんですが、何かご存知でしたらご連絡いただけると幸いです。>tzkさん

(全然わかってないのにLinuxを使い続けるのに疲れたのでそろそろWinに戻ろうと思ってるところではあるのですが。。。)

同形異義キーワードグループ

その前に、同形異義キーワードグループ(文字面が同じで、違った説明を必要とされるキーワード)みたいなものを作って、どのキーワードのページが重複説明されているかを洗い出し、それぞれのページがどのグループ(カテゴリ)に属せばよいか、「はてなカテゴリ」としてはどういう構成が相応しいか、といったことを検討するするとよいのではないだろうか。

というアイデア


例えば、

  • キーワードを[カテゴリ]記法付きでタイトルとする。
  • [カテゴリ]は、その人が考えたもの&複数カテゴリも可とする。
  • 本文は、はてなダイアリーキーワードへのリンクとする。

みたいな感じでしょうか。


どのくらいの数のキーワードが重複して説明されているかも知りたいところ。。。

同形異義語は、はてなグループ内キーワードで。

説明が複数ある「はてなキーワード」(はてなダイアリーキーワード)のページを、はてなグループ内キーワードへのリンクとし、説明自体ははてなグループ内キーワードであつかったらどうだろう?そして、はてなダイアリーキーワード全体を徐々にゲートウェイ的役割へと移行していけばどうだろうか。

というアイデア


前述した「はてなカテゴリ」への移行ステップとして。
http://d.hatena.ne.jp/facet/20050505/


はてなグループは、作成自由。「はてなカテゴリ」は、ある一定の条件でグループが昇格、みたいな感じでもいいかも。。。

「はてなカテゴリ」アイデアの問題点、階層化とか多次元化とか

以上、思い付くまま書いて見たのだけれど、問題になるのは、カテゴリアイテムの氾濫だろうか。手に終えなくなるのは目に見えている。今のキーワードと同じ程度のアイテム数となるだろうか。もっと多いかな。

専門領域ができるだろうから、それも当然だし、実際、それぐらいのカテゴリ数がないと役に立たないのだから、これを如何にハンドリングしやすくできるか、というところが本当の問題点。その部分をクリアできるかどうかが実現の可否の分かれ目。


まず考えられるのは、カテゴリアイテムの階層化。

キーワードに対してそれをやると辛いが、カテゴリならまだ何とかなるかもしれない。


上位概念カテゴリを明示できると、上位カテゴリのキーワードを継承できたり、オーバーライドしたりできるので、キーワードのハンドリングが楽になる。というか、それに関しては、それしか現実味がないのだけれど。

つまり、windowsエクスプローラーのようなUIで、チェックボックスなどを使って、好きなカテゴリを選ぶ。下位カテゴリのキーワードは、デフォルトではすべてチェックが入り、リンクが張られるようにする。曖昧さが生じた場合、該当カテゴリの一覧へのリンクとする。という感じ。


上位概念は、キーワード説明のページで上位概念を複数指定(リンク)できることが望ましい。unix系のファイルシステムでいうsympolic linkのようなイメージ。それにより、超整理法で言うコウモリ問題をカバーすることができる。

本当は、超整理法のように、時間軸だけでキーワードを簡単に利用できるとよいのかもしれないが、マッチング問題から類推するに、時間軸だけではやはり足りないのだろう。カテゴリへの要望が強いことからもそれが分かる。

最初は、オープンディレクトリの構造などから始めて、シンボリックリンクを加えたり、新しいカテゴリアイテムをどんどん追加して議論したりしていけば、ある程度ダイナミックに運用できるようになるのではないだろうか。
(そういう意味で、議論できる環境も必須かもしれない)


ただ、階層構造は、そもそもが静的なので、どうしても形骸化する傾向が強いのでないかという危惧もある。メンテする意欲のあるユーザが十分集まってくれればいいのだが、それが一番大変なのだろうから、魅力的なサービスである必要もある。

そのためには、利便性を追求するのがいいだろう。便利なら、みんなが使うのだから。


はやりのtagのような、アクティブ率に依存したUI(フォントサイズ可変表示形式(flickr方式)のようなもの)は、やはり結構いいかもしれない。

また、時間別にソートできたり、いろんな切り口の組み合わせで多次元的に絞れるよう*1*2iTunesのようなな感じ)になっていると、いいなあ。

個人的には階層化は不要なんじゃないだろうかとずっと考えているのだが、キーワードの継承を考えると、現実問題、それは必要なのかなとも。。。


その他、運用面では、グループと同様に、カテゴリには管理者を置くようにするのがいいだろうと思う。
*3

荒れたら、はてなが暫定的に管理する。というか、実質は、はてな/ユーザが選んだユーザ元老院みたいなものにアウトソースして判断されるべきだろうか。カテゴリに詳しくないとできないし。たんなる削除合戦になっている場合は、はてな預りとして、しばらく期間をおき、管理者を改めて募る、とか?

上位カテゴリの管理者に委譲される、というのでもいいかも。

で、管理者のいないカテゴリは、リンクされない、みたいな感じで。



まとまらなくなってきたので、以上。*4

*1:なんだっけな、この名称。ファセット分類じゃなくて。。。

*2:インターフェースな人が考えているファイラーみたいなものにも近いだろうか。。。

*3:キーワードにも管理者が必要かもしれない。:最初に作った人か

*4:アウトプット主義、ということでっ