Hatena::Groupkill

イン殺 RSSフィード

2006-11-02

[]HOW TO USE STANDALONE GROUP「個人の時代だ」 HOW TO USE STANDALONE GROUP「個人の時代だ」 - イン殺 を含むブックマーク はてなブックマーク - HOW TO USE STANDALONE GROUP「個人の時代だ」 - イン殺

個人グループを選んだ理由は言うまでもなくキーワード空間独立のためなんですが、はてなダイアリーとはてなグループのキーワードの構造は正しくモジュール化されていて便利だと思いました。オブジェクト指向的というか、まさに Ruby の Module に似てるんですよね。疑似コードで書くとこんな感じ。」

module HatenaKeyword
end

module HatenaGroupKeyword
  include HatenaKeyword
end

module HatenaDiary
  include HatenaKeyword
end

class HatenaGroup
  include HatenaDiary
end

neo  = HatenaGroup.new
kill = HatenaGroup.new

# g:neo のキーワードへリンク
kill.keyword.include(neo.keyword)

# はてなキーワードはシングルトン、ダイアリーとグループ全てに影響
HatenaKeyword.push("死ねばいいのに")

# グループキーワードは明示的に include しているグループインスタンスに影響
neo.keyword.push("萌理賞")

# include 側がいくら拡張しても被 include 側には影響なし
kill.keyword.push("仏教が人を殺すかあ!")

「個々のインスタンスが Keyword を include するイメージなのは Ruby の仕組みから外れますけど。
あと、グループ間でキーワードがバッティングした場合は自分のグループキーワードが優先されるらしいです。例えば、 g:kill:keyword:ファック文芸部g:neo:keyword:ファック文芸部 がある場合、 g:killファック文芸部と書くと kill の方に行くはず。これが継承関係を持つようになってれば面白かったんですけどね。菱形継承とか。」

「今のところ g:kill は以下のグループのキーワードを取り込む設定にしてます。」

g:deathg:redrum個人グループで、 g:redrum とは相互キーワードリンク状態です。このへんで何か遊べないか検討中。今のところは id:roku666 さんが言及しそうな「虎眼」や「柳生」を定義してる程度です。「肉」をキーワード化してもいいんですが、自分にも誤ヒットするので止めました。うまく抑止力が機能してるなあ。」

(2006-11-04 追記)

id:another さんによると、取り込みグループはダイアリーで 3 つまで、グループ日記だと 2 つまでだそうなので、以下のようにしました。 g:redrum はキーワードを使ってないので。」

「あと g:chaosroute のキーワードは面白いけど言語空間が重ならないので取り込みません。 g:chaosroute:keyword:おれの山田さん がステキ。」

anotheranother2006/11/03 22:10えーと、細かいツッコミで恐縮ですが、グループから他グループのキーワードを取り込むのは、上位2つまでしか有効にならなかったと記憶しております(上の例ではg:neoとg:fragmentsのみ)。なお、ダイアリーなら3つまでいけるのですが、グループだと自グループで枠を1つ消費してしまうらしいのです。

xx-internetxx-internet2006/11/04 00:18ツッコミありがとうございます。確かにヘルプを奥の奥まで読むと書いてありました。
http://d.hatena.ne.jp/keyword/%a4%cf%a4%c6%a4%ca%a5%c0%a5%a4%a5%a2%a5%ea%a1%bc%a5%ac%a5%a4%a5%c9%a1%d6%b4%c9%cd%fd%a5%c4%a1%bc%a5%eb%a4%ce%a4%af%a4%ef%a4%b7%a4%a4%c0%e2%cc%c0%a1%d7#okeyword
それならそれで設定画面に一言書いてくれればいいのに…。

トラックバック - http://kill.g.hatena.ne.jp/xx-internet/20061102