「Active」を含む日記 RSS

はてなキーワード: Activeとは

2008-05-07

http://anond.hatelabo.jp/20080507005721

どことは言わないけど、有限会社Active Officeの社員でなければ知り得ない情報が書かれているな。もしかして中の人

あと、こういう方法でSEOやっても、「ああ、この有限会社Activeなんとかって会社SEOスパムやる会社だな」って思われるだけだから。

有限会社Active Office中の人ですか?

http://anond.hatelabo.jp/20080507000258

宣伝乙

つーか迷惑電話って何だ? 誰か電凸した奴でもいるのか?

あと、裁判沙汰にしようにも、はてなスタッフに全く相手にされないだけでなくて、警察裁判所すら馬鹿馬鹿しくて相手にしないと思うから、一応忠告しておく。

2008-04-26

ハーブ厨

増田投稿

http://anond.hatelabo.jp/20080426024357 タイムスタンプ 02:43

http://anond.hatelabo.jp/20080426024852 タイムスタンプ 02:48

http://anond.hatelabo.jp/20080426025824 タイムスタンプ 02:58

キーワード編集

ハーブストーカー@20080426024022 (2008/04/26 02:40:22)globpoint-ktuo2002

ハーブマイスターストーカー@20080426023845 (2008/04/26 02:38:45)globpoint-ktuo2002

ハーブストーカー@20080426023747 (2008/04/26 02:37:47)globpoint-ktuo2002

増田キーワードに張り付いて他人をストーカーよばわりしてるハーブストーカーさん。つきまとわれてる人はktuo2002さんもositoさんもglobpointさんもみんな迷惑がってますよ。増田住民も迷惑がってますしね。もういいかげん止めたらどうですか。

いつも長文のコピペの後に有限会社Active Officeへのリンクだけは忘れないんですね。もうActive Office関係ないフリはやめたんですか?

2008-04-22

アシストWebサイト統計・分析用サーバ製品発表

アシストは、Webサイト企画から統計、分析、評価、結果反映までのライフサイクルを「NOREN5 Content Server」と連動して統合的に管理する、「NOREN5 Experience Server」を5月1日より販売すると発表した。

今回発表された「NOREN5 Experience Server(以下、NES)」は、Web用のコンテンツマネジメントシステム(以下、CMS)である「NOREN5 Content Server(以下、NOREN5)」のファミリー製品だ。NOREN5と連動することにより、Webサイトに関するライフサイクルを効率化、企業力の更なる向上を図れるようになる。稼働環境WindowsLinuxUNIXに対応しており、販売価格は税別480万円から。

検索スパム

active

今、ヤフー上位表示には 同一テーマからのリンクが必要【SEO??検索集客の最新テクニック】

前回の連載では、同一テーマからのリンクを集める方法として、大手ポータルサイトディレクトリへの登録をご提案しました。その他にも効果的な方法が複数ありますので、今回はそれらを具体的に紹介していきます。

 まず1番目は、無料ブログサービスを利用して同じテーマブログを開設し、各記事からメインサイトリンクを張るという方法です。

 例えば、女性向けのヘアケア商品を販売していたとすると、ヘアケアに関するブログを開設し、毎回書く記事のどこかにメインサイトへのリンクを張ります。下記サイトでは、ページ下にメインサイトへのバナーを張っています。

 私がこの話をするとセミナー参加者などから「どの無料ブログサービスお勧めか?」と訊かれますが、今SEO対策上で最もお勧めできるのはアメーバブログです。

 アメブロには「ペタ」というシステムがあり、他のアメブロユーザーが訪問時の足跡として「ペタ」を張ると、SEO上はリンクとして認められてリンク元がどんどん増えていくからです。

 例えば、先ほど紹介した「女優ブログ!」のリンク元Yahoo!で検索すると、同じアメブロから「ペタ」を通じてリンクが増えていることがわかります。

 その他のお勧めブログとしてはlivedoor、FC2、exciteYahoo!楽天seesaaなどがあります。それらのブログ活用して、トップページだけでなく、商品詳細ページなどのサブページにもリンクを張れば、サブページも上位表示されるケースがたくさんありますので、ぜひお試しください。

 次に2番目の方法は、新たに別のドメインネームを購入して専門店サイトを開設し、それらからメインサイトリンクを張るというテクニックです。

active

 例えば、あなたが海外旅行に関するメインサイトを運営していたとすると、専門サイトテーマとしては次のようなものが考えられます。

検索スパム

有限会社ActiveOffice

会社名  有限会社Active office

ユウゲンガイシャアクティブ オフィス

http://www.activeoffice.co.jp/

所在地  〒160-0023

東京都新宿区西新宿6-16-13

連絡先  TEL : 03-6666-6260 / FAX : 03-6666-0176

代表取締役  笹岡 裕

業務内容 Yahoo!登録代行      http://www.activeoffice.co.jp/yahoo/index.html  

     リスティング広告管理    http://www.activeoffice.co.jp/listing/index.html

     新規ホームページ制作    http://www.activeoffice.co.jp/new/index.html

     ホームページリニューアル  http://www.activeoffice.co.jp/renewal/index.html

     SEO           http://www.activeoffice.co.jp/seo/seo_sem.html

                   http://www.activeoffice.co.jp/company.html

売業者 有限会社Active Office

Webショップ店舗ハーブマイスター HERB MEISTER

運営統括責任者 笹岡 裕

所在地 〒160-00232

東京都新宿区西新宿6-16-13

連絡先  TEL : 03-6666-6260 / FAX : 03-6666-0176

http://herb-meister.com/

http://herb-meister.com/concept.html

http://herb-meister.com/herb.html

http://herb-meister.com/kinds_of_herb.html

http://herb-meister.com/tea.html

     

     

    ハーブの効能

    ハーブの効能をご案内します。

       

       


      好調な売れ行き! 男性向けプラン都心ホテル自分磨き

      東京都心のホテルが提供する男性向けの宿泊プランが、好調な売れ行きを見せている。客の中心は30??40代ビジネスマン。非日常の空間で健康や美容を重視した特典サービスを受け、自分磨きをしているようだ。

       全国に先駆けメンズシングルプランを始めたのは、京王プラザホテル新宿区)。2003年から「俺(おれ)の時間」を販売。「仕事も家庭も忘れて1人になれる」と好評を得ている。昨年からは、乗馬感覚で楽しむ健康器具ジョーバ」を室内に導入。童心に帰ってもらおうとミニカー「チョロQ」も置いた。「男性女性よりも、室内でゆっくり過ごすのを好まれます。独身の方も多いようです」と同ホテル。月に10??20室稼働するという。1泊2万500円から。

       ホテルニューオータニ千代田区)も、04年からメンズプランおとこ革命」を始めた。「着こなしで磨く」「ダンディにくつろぐ」など6つの特典コースを用意。宿泊者が目的別に過ごし方を決める。アメニティーの海外ブランド化粧品を使ったり、館内の理容室でひげをそったりと、重要会議記念日といった大切な日のための準備を提案する。1泊3万6000円から。

       一方、グランドプリンスホテル新高輪(港区)は4月から、炭の脱臭や空気浄化作用による癒やしを特徴にしたプラン「MEN’S STAY」をスタート。炭綿を使った作務衣(さむえ)と寝具で、ワンランク上の眠りを目指す。羽田空港新幹線アクセスがよく、東京出張時に自腹で料金をプラスして、スパマッサージなどを受けるビジネスマンもいるという。1泊2万4200円から。

      active

      2008-04-06

      キーワードハーブマイスター

      いつのまにか消えてたので中身はっときますね。

      ■字義的な意味

      herb(英) + meister(独)

      ハーブ専門家意図した言葉

      はてな的な意味

      はてなダイアリーキーワードにおいて、2007年10月頃から始まった現象。ハーブ関連キーワードに「ハーブマイスター」という名前のネットショップへのリンクが張られ、次第にその数が増えてくるとリンク削除されることも多くなり、12月頃には編集合戦となり過熱の一途をたどったが、2008年1月末に終息している。((id:xxxoxxx氏、id:ktuo2002-globpoint氏は削除しているが、理由は不明。キーワードハーブマイスター」をはじめ多数のキーワード編集合戦があったことは事実))

      はてな匿名ダイアリーにおいて、2007年11月頃から始まった現象。「ハーブマイスター」という名前のネットショップ内の語句解説URLリンクを張った大量のハーブ名称がたまに貼り付けられる。

      同名のショップがいくつかあるが、リンクされているのは西新宿有限会社Active Officeが運営している店舗である。当然匿名であるため、投稿者は不明。

      以上の部分をid:xxxoxxx氏、id:ktuo2002-globpoint氏は以下の文章に書き換えている。

      同名のショップがいくつかあるが、リンクされているのは有限会社Active Officeが運営している店舗である。リンクをしている人間とこの会社は無関係であり、id:ktuo2002氏、id:globpoint氏らの決め付けである。

      ((リンクしている人間リンク先の会社関係について「不明」を「無関係」と断定、さらにid:ktuo2002氏、id:globpoint氏がなにか事実と異なる主張をしているような表現をしている。しかしなにを「決め付け」ているのか書かれていない。リンク先が有限会社Active Officeが運営している店舗であることは事実であり、争いがない。))

      さらに2008年2月以降「ハーブマイスター」関連キーワード編集した特定idを「荒らし」と決め付ける同文の記事が数十回の単位連続投稿されることが起こっている。投稿者は不明。

      なお、2008年3月14日には、特定idを非難するこの種の記事中で、「愉快犯だから別に関係ないよ!」「ただ、ヒートアップするのを楽しむ手段でしかない」との声明が出された。((id:xxxoxxx氏、id:ktuo2002-globpoint氏は削除しているが、理由は不明。))

      なお、(2008/03/17 10:02)付当キーワードコメント欄id:ktuo2002-globpoint氏は「ショップに直接聞きましたので、無関係なので(復帰)」と発言している。真偽は不明だが、当然ショップ匿名日記上での大量リンク認識したということを意味する。

      Watcher((id:ktuo2002-globpoint氏は「ストーカー」と書き換えているがそれは同氏の主張にすぎない))の出現とキーワード編集合戦

      はてな匿名ダイアリーにおいて、興味を持って関連情報をまとめる者が出現したほか、id:ktuo2002氏が継続して動向を追っており、はてなグループにおいてWatch活動を行っている。リンク先になっているネットショップが宣伝書き込みを行っている、リンク先によるスパム行為である、という前提に立った活動である。

      同じく継続して動向を追っているid:globpoint氏も、記述が偏っている等不適切なキーワード解説文の修正を積極的に行っているほか、後述の「ハーブマイスターストーカー」登録に代表される修正活動をネガティブキャンペーンとして批判している。

      以上の部分をid:xxxoxxx氏、id:ktuo2002-globpoint氏は以下の文章に書き換えている。

      はてな匿名ダイアリーにおいて、こそこそと関連情報を収集し、ハーブマイスター誹謗中傷をする者が出現したほか、id:ktuo2002氏、id:globpoint氏が継続してストーカーしており、はてなグループにおいてストーカー行為を行っている。ハーブストーカーと言われてもいる模様。リンク先になっているネットショップが宣伝書き込みを行っている、リンク先によるスパム行為である、という前提に立った活動であるが、事実は確認できていないので、単なる誹謗中傷である。id:ktuo2002氏、id:globpoint氏はこのキーワードに対し必要に執着し、事実が確認できないことをあたかも事実であるかのように編集したり、都合の悪い個所を削除したり、書き換えたりとおかしな行動が目立つ。

      「こそこそ」「ストーカー」といった揶揄する形容をしながら、コメント欄での「事実と異なる」という指摘には答えず根拠も提示しない。事実が確認できないのは「事実が確認できないことをあたかも事実であるかのように編集したり、都合の悪い個所を削除したり、」という主張の方である。また記述を大きく削除しているのはid:xxxoxxx氏、id:ktuo2002-globpoint氏である。((http://d.hatena.ne.jp/keywordlog?klid=963601 , http://d.hatena.ne.jp/keywordlog?klid=963120))

      一方、id:saki-ha氏、id:xxxoxxx氏、id:ktuo2002-globpoint氏はそれらの行為は行き過ぎであるとして「ハーブマイスターストーカー」と名付け、ハーブマイスターは「ストーカーにあっているネットショップである」という意味へとキーワードを修正する活動を行っている。はてな匿名ダイアリーへの書き込み自体もネットストーカーによるいやがらせであり、ショップによる宣伝書き込みではないという前提に立って活動している。また、上記の者が行っているという事実も確認できてない。id:ktuo2002氏、id:globpoint氏がハーブ関連の記事を書くことを「ストーカー行為」と呼び、キーワード化しており、(([[ハーブストーカー]]http://d.hatena.ne.jp/keywordlog?klid=965096))それに対する反論は「キーワード荒らし」であると批判している。それに伴って「globpoint」((http://d.hatena.ne.jp/keywordlog?klid=965168)),「osit」((http://d.hatena.ne.jp/keywordlog?klid=963252))の各idキーワードを登録し、キーワード「ktuo2002」((http://d.hatena.ne.jp/keywordlog?klid=963248))も含めて主張を喧伝する道具としている。

      これに伴い、当キーワードハーブマイスター」は継続的な編集合戦の戦場となっている。

      ■関連事項

      リンクアドレス文字列の".jp"を".jip"に書き換える。

      リンクアドレスを書き換えた上で、表示を偽装する。

      [http://www.herb-meister.com:title=http://www.kenko.com/product/seibun/sei_834001_D.html]
      

      ブックマークの要約文を改竄する。

      ■関連キーワード

      1. [[ハーブストーカー]]
      2. [[はてなストーカー]]
      3. [[ハーブマイスターストーカー]]
      4. [[spam]]
      5. [[SEO]]
      6. [[編集合戦]]
      7. [[ハーブ厨]]

      http://d.hatena.ne.jp/keywordlog?klid=965842

      2008-03-13

      2ちゃんねるでやっていないと恥ずかしいエロゲ

      KeyCLANNAD

      Aneken Staff and Vipper姉は一級建築士 -イケない構造設計-』

      アリスソフト『しまいま。』

      アージュ君が望む永遠

      アージュマブラヴ

      TYPE-MOONFate/stay night

      TYPE-MOON月姫

      CIRCUS NORTHERN『D.C.P.C.』

      オーバーフローSchool Days

      ネクストン『ONE -輝く季節へ-』

      KeyKanon

      KeyAir

      LeafTo Heart

      D.O.家族計画

      きゃんでぃそふとつよきす

      きゃんでぃそふと『姉、ちゃんとしようよっ!』

      ねこねこソフトみずいろ

      エルフ『臭作』

      エルフ『鬼作』

      アスキーカオスエンジェルズ』

      NavelSHUFFLE!

      オーガスト夜明け前より瑠璃色な

      propeller『あやかしびと

      TOPCAT果てしなく青い、この空の下で…。

      Leaf『雫』

      Leaf『痕』

      colors魔法少女アイ

      JAST『天使たちの午後』

      FlyingShineCROSS†CHANNEL

      アトリエかぐや『姉汁-白川三姉妹におまかせ-』

      たっちー永遠となった留守番 -パパは帰らない-』

      ぱれっともしも明日が晴れならば

      戯画この青空に約束を―

      ニトロプラス沙耶の唄

      ういんどみる『はぴねす!』

      菅野ひろゆきこの世の果てで恋を唄う少女YU-NO

      アリスソフト戦国ランス

      アリスソフト鬼畜王ランス

      Keyリトルバスターズ!』

      Leafうたわれるもの

      スタジオメビウスSNOW

      戯画『BALDR FORCE』

      時計おたく☆まっしぐら

      たまソフトLOST CHILD』

      Leaf『フルアニ』

      otherwiseSense Off -a sacred story in the wind-』

      CIRCUS FETISH『すくみず -フェチ☆になるもんっ!-』

      ブラックサイク『EXTRAVAGANZA -蟲愛でる少女-』

      GROOVERグリーングリーン

      戯画パルフェ -ショコラ second brew-』

      Active『DISCIPLINE -The record of a Crusade-』

      D.O.加奈 -いもうと-』

      Littlewitch白詰草話 -Episode of the Clovers』

      ねこねこソフト銀色

      エルフ『下級生』

      エルフ『同級生』

      アリスソフト『妻しぼり』

      silkys『姫騎士アンジェリカ

      ivory『とらいあんぐるハート

      otherwise未来にキスを -Kiss the Future-』

      ソフトハウスキャラ巣作りドラゴン

      ライアーソフトForest

      ライアーソフト腐り姫 -euthanasia-』

      ニトロプラス鬼哭街 -The Cyber Slayer-』

      ニトロプラスPhantom -PHANTOM OF INFERNO-』

      Selen燐月-リンゲツ-』

      すたじおみりす月陽炎

      エスクードふぃぎゅ@メイト

      エウシュリー『幻燐の姫将軍

      Key智代アフター -It's a Wonderful Life-』

      あかべぇそふとつぅ車輪の国、向日葵の少女

      ニトロプラス月光のカルネヴァーレ

      ニトロプラス『斬魔大聖デモンベイン

      ZyX『雷の戦士ライディ』

      Purple software『秋色恋華

      F & C『こなたよりかなたまで

      Le ChocolatSWAN SONG

      ニトロプラス吸血殲鬼ヴェドゴニア

      LeafRoutes -ルーツ-』

      ケロQ終ノ空

      ザウス永遠のアセリア

      130cm『彼女たちの流儀

      たまソフト世界ノ全テ

      CIRCUS最終試験くじら

      F & C『水月

      公爵『ジサツのための101の方法』

      TerraLunarロケットの夏

      AUGUST『月は東に日は西に-Operation Sanctuary-』

      CIRCUS水夏-SUIKA-』

      アリスソフト大悪司

      Leafこみっくパーティー

      キャラメルBOX処女はお姉さまに恋してる

      Leaf天使のいない12月

      アリスソフトアトラク=ナクア

      TYPE-MOON歌月十夜

      PULLTOPゆのはな

      ねこねこソフト『朱 -Aka-』

      light群青の空を越えて

      アリスソフト大番長 Big Bang Age』

      Surviveゆきうた

      みなとそふと君が主で執事が俺で -They are My noble Masters-』

      lightDear My Friend

      minoriはるのあしおと

      LittlewitchQuartett!

      ニトロプラス『”Hello,world.”』

      HERMIT『ままらぶ』

      ねこねこソフトScarlett -スカーレット- 』

      ぱじゃまソフトプリンセスうぃっちぃず

      Marron秋桜の空に

      ALcotClover Heart's 』

      Cyc『夢幻廻廊』

      HERMIT『世界でいちばんNGな恋』

      http://anond.hatelabo.jp/20080313030006

      ハーブ厨による嫌がらせの実例

      リンクアドレス文字列の".jp"を".jip"に書き換える。

      編集者:xxxoxxx 
      編集内容:3c3 
      -+ハーブマイスターセンター[http://www.herb-meister.jp]のこと。
      ++ハーブマイスターセンター[http://www.herb-meister.jip]のこと。
      

      リンクアドレスを書き換えた上で、表示を偽装する。

      編集者herb-meister 
      編集内容:3c3 
      -http://www.kenko.com/product/seibun/sei_834001_D.html より引用。
      +[http://www.herb-meister.com:title=http://www.kenko.com/product/seibun/sei_834001_D.html] より引用

      ブックマークの要約文を改竄する。

      ** 編集者:xxxoxxx
      ** 編集内容:
      -><blockquote cite="http://d.hatena.ne.jp/osito/20080304/p1" title="キーワード荒らし逆ギレ? - 「愛」も「萌え」も定義は広い。">
      +><blockquote cite="http://d.hatena.ne.jp/osito/20080304/p1" title="キーワード荒らしの天才id:ositoです。よろしく">
      

      http://anond.hatelabo.jp/20080311082458

      から

      http://anond.hatelabo.jp/20080311081417

      (計55件)

      http://anond.hatelabo.jp/20080307004725

      から

      http://anond.hatelabo.jp/20080307004753

      (計29件)

      http://anond.hatelabo.jp/20080306001533

      から

      http://anond.hatelabo.jp/20080306002034

      (計15件)

      など

      キーワードハーブマイスター」の編集合戦が続く中、第三者が中立的視点から両論併記してくれたのに、早速偏った見方からの内容に改竄。

      増田ハーブスパム投稿をしてた連中は「会社(有限会社Active Office)とはまったく無関係で何者かの仕業」という事を、xxxoxxxは知っているらしい。不思議だね。

      ktuo2002、globpointの主張は「事実は確認できない」とか言って門前払いしてるくせにね。

      編集者:xxxoxxx 
      編集内容:5c5 7c7 10c10 
      -同名のショップがいくつかあるが、リンクされているのは西新宿有限会社Active Officeが運営している店舗である。
      +同名のショップがいくつかあるが、リンクされているのは西新宿有限会社Active Officeが運営している店舗であるが会社とはまったく無関係で何者かの仕業。
      -はてな匿名ダイアリーにおいて、興味を持って関連情報をまとめる者が出現したほか、id:ktuo2002氏、id:globpoint氏が継続して動向を追っており、はてなグループにおいてWatch活動を行っている。リンク先になっているネットショップが宣伝書き込みを行っている、リンク先によるスパム行為である、という前提に立った活動である。
      +はてな匿名ダイアリーにおいて、興味を持って関連情報をまとめる者が出現したほか、id:ktuo2002氏、id:globpoint氏が継続して動向を追っており、はてなグループにおいてWatch活動(ストーカー)を行っている。リンク先になっているネットショップが宣伝書き込みを行っている、リンク先によるスパム行為である、という前提に立った活動であるが、この会社スパムをしてる事実は確認できない。
      -一方、id:saki-ha氏、id:xxxoxxx氏、id:ktuo2002-globpoint氏はそれらの行為は行き過ぎであるとして「ハーブマイスターストーカー」と名付け、ハーブマイスターは「ストーカーにあっているネットショップである」という意味へとキーワードを修正する活動を行っている。はてな匿名ダイアリーへの書き込み自体もネットストーカーによるいやがらせであり、ショップによる宣伝書き込みではないという前提に立って活動している。
      +一方、id:saki-ha氏、id:xxxoxxx氏、id:ktuo2002-globpoint氏はそれらの行為は行き過ぎであるとして「ハーブマイスターストーカー」と名付け、ハーブマイスターは「ストーカーにあっているネットショップである」という意味へとキーワードを修正する活動を行っている。はてな匿名ダイアリーへの書き込み自体もネットストーカーによるいやがらせであり、ショップによる宣伝書き込みではないとい。
      

      2008-03-10

      ハーブマイスター

      売業者 有限会社Active Office

      Webショップ店舗ハーブマイスター HERB MEISTER

      運営統括責任者 笹岡 裕

      所在地 〒160-00232

      東京都新宿区西新宿6-16-13

      連絡先  TEL : 03-6666-6260 / FAX : 03-6666-0176

      http://herb-meister.com/

      http://herb-meister.com/concept.html

      http://herb-meister.com/herb.html

      http://herb-meister.com/kinds_of_herb.html

      http://herb-meister.com/tea.html

         

         

        ハーブの効能

        ハーブの効能をご案内します。

           

           


          会社名  有限会社Active office

          ユウゲンガイシャアクティブ オフィス

          http://www.activeoffice.co.jp/

          所在地  〒160-0023

          東京都新宿区西新宿6-16-13

          連絡先  TEL : 03-6666-6260 / FAX : 03-6666-0176

          代表取締役  笹岡 裕

          業務内容 Yahoo!登録代行      http://www.activeoffice.co.jp/yahoo/index.html  

               リスティング広告管理    http://www.activeoffice.co.jp/listing/index.html

               新規ホームページ制作    http://www.activeoffice.co.jp/new/index.html

               ホームページリニューアル  http://www.activeoffice.co.jp/renewal/index.html

               SEO           http://www.activeoffice.co.jp/seo/seo_sem.html

                             http://www.activeoffice.co.jp/company.html

          有限会社ActiveOffice

          有限会社Active Office

          会社名  有限会社Active Office

          ユウゲンガイシャアクティブ オフィス

          http://www.activeoffice.co.jp/

          所在地  〒160-0023

          東京都新宿区西新宿6-16-13

          連絡先  TEL : 03-6666-6260 / FAX : 03-6666-0176

          代表取締役  笹岡 裕

          業務内容 Yahoo!登録代行      http://www.activeoffice.co.jp/yahoo/index.html  

               リスティング広告管理    http://www.activeoffice.co.jp/listing/index.html

               新規ホームページ制作    http://www.activeoffice.co.jp/new/index.html

               ホームページリニューアル  http://www.activeoffice.co.jp/renewal/index.html

               SEO           http://www.activeoffice.co.jp/seo/seo_sem.html

                             http://www.activeoffice.co.jp/company.html

          売業者 有限会社Active Office

          Webショップ店舗ハーブマイスター HERB MEISTER

          運営統括責任者 笹岡 裕

          所在地 〒160-00232

          東京都新宿区西新宿6-16-13

          連絡先  TEL : 03-6666-6260 / FAX : 03-6666-0176

          http://herb-meister.com/

          2008-01-10

          http://anond.hatelabo.jp/20080104113811

          ハーブマイスター関連日記

          はてな

          herb-meisterherb-meisterの日記

          hiroshi-ichijyoハーブ日記

          herb-meister-1ハーブマイスターの日記

          goo

          健康日記

          Google

          ハーブ

          livedoor

          健康日記 - livedoor Blog(ブログ)

          excite

          健康日記

          seesaa

          ハーブティーについて:エンドウマメ日記

          ゴルフ練習場

          東京都板橋区のゴルフ練習場

          神奈川県逗子市のゴルフ練習場

          ドクターハーブ

          ハーブ専門店ドクターハーブ

          ハーブとハーブティーの専門店ドクターハーブ

          制作

          ホームページ制作会社|(東京都新宿区)-WEBサイト作成のActive Office SEO/SEMやリスティング広告も

          相互リンク

          ホームページ制作/リスティング広告/SEOのアクティブオフィス 相互リンク集【ハーブ】

          弁護士 浜田卓二郎 相互リンク 

          Mebit RMT 相互リンク 

          たおるず 相互リンク 健康・ダイエット

          みんなでつなごう相互リンクの輪〜通信販売〜

          相互リンク募集中!ページビューランキングでアクセスアップ! 健康・ダイエット

          株式会社クレヨン 相互リンク 

          ロビンフット 相互リンク 

          相互リンク|キャッシング比較 

          相互リンク募集中 ハウスクリーニング(掃除代行)のおそうじ専科 

          SEO対策サプリRSS - 受信箱

          Link Station » 美容 » iximq

          2008-01-04

          検索スパム研究

          google:ハーブマイスター

          2008/1/3 検索結果10,100 件

          ハーブマイスターセンターPR2

          販売業者 有限会社ハーブマイスターセンター

          運営統括責任者大島永子、NPO法人日本ハーブ振興協会認定資格プロフェッショナルアドバイザー・オブ・ハーブ」(PAH)保持

          住所 東京都港区麻布十番2-8-17

          通販店舗販売、講師派遣イベント支援その他

          ハーブ専門のお店 ハーブとハーブティーのハーブマイスターPR3

          販売業者 有限会社Active Office

          Webショップ店舗ハーブマイスター HERB MEISTER

          運営統括責任者 笹岡 裕

          所在地 東京都新宿区西新宿6-16-13

          WEB制作会社通販部門らしい。成功報酬SEOActive Office相互リンクページには、ペット用品関連の検索リンクが大量にある。よくわからん。カテゴリ別ページはハーブマイスター以外リンクなし。

          ハーブマイスターセンター - 楽天ブログ(Blog)PR1

          ハーブマイスターセンターの公式ブログ

          ハーブマイスターとは - はてなダイアリーPR-

          はてなキーワードd:keyword:ハーブマイスター編集合戦d:id:hiroshi-ichijyo,d:id:ktuo2002,d:id:globpoint,d:id:herb-meister

          【楽天市場】感じるハーブ:楽天ブックス

          (財)日本特産農産物協会認定ハーブマイスター外山たらの著書

          NAMAAN - ハーブマイスター

          ブログ検索エンジンNAMAANによる検索結果。

          http://d.hatena.ne.jp/hiroshi-ichijyo/キーワード羅列ダイアリーばかりが並びます。

          「ハーブマイスター」に関連した写真、動画、ブログ、2chスレッド - はてなRSS

          はてなRSSキーワードハーブマイスター

          http://d.hatena.ne.jp/hiroshi-ichijyo/キーワード羅列ダイアリーばかりが並びます。

          ハーブマイスター大島永子 - ハーブマイスターセンター

          ハーブマイスターセンターサイト内ページ

          ハーブマイスターセンター - カラメル

          ショッピングポータルCalamel内のハーブマイスターのページ

          企業検索サービスhotfrog内の検索結果

          ハーブマイスターセンター麻布本店 - iタウンページ

          iタウンページ内、ハーブマイスター麻布本店の店舗情報

          ハーブマイスターセンター麻布本店 - クチコミ - 麻布十番 - Yahoo!グルメ

          Yahoo!グルメ[麻布][カフェ]で登録された店舗情報

          ハーブマイスターセンターのHPリニューアルオープン!! - ハーブマイスターセンター - 楽天ブログ(Blog)

          ハーブマイスターセンター公式ブログ内のページ

          Vida en Barcelona // Mistress Of Spices ☆ハーブマイスター

          個人ブログでのスペイン映画感想

          健康日記

          gooブログRSSフィード

          ハーブ関連キーワードと「ハーブハーブティー専門店 ハーブマイスター」の繰り返し

          ハーブティー(herb tea)のお店 ハーブマイスター Herb Meister

          ハーブマイスター移転前の残骸か?ドクターハーブというショップもある(あった?)らしい。

          ホルモンビューティーダイエット 100g - ハーブマイスターセンター

          ハーブマイスターセンターサイト内ページ

          ハーブマイスターセンター

          ハーブマイスターセンター公式ブログRSSフィード

          はてなRSSキーワードアイブライト

          ハーブマイスターセンター麻布本店 - 地図 - 麻布十番 - Yahoo!グルメ

          Yahoo!グルメ[麻布][カフェ]で登録された店舗情報

          Yahoo!オークション検索結果(該当なし)

          健康日記 ハーブティー

          中身ははてなd:id:herb-meisterと一緒。ハーブマイスターへの誘導リンクの羅列だけの日記の繰り返し

          現在該当なし

          マイスタープロフィール

          島根県地域興しマイスターの紹介。ただし現在の島根県公式ページ内リストにはのっていない。詳細は不明。

          ハーブ: ハーブ

          健康日記と同じ。Googleブログでのハーブマイスター誘導ページ。

          ハーブについて

          個人日記ハーブに関するトピックリンク

          日本ハーブ振興協会 | ショップ

          NPO法人日本ハーブ振興協会サイト内のハーブマイスターセンターショップ紹介

          健康日記 - livedoor Blog(ブログ)

          livedoorblog内のハーブマイスター誘導ページ

          【 東京都の花屋 】ハーブマイスターセンター麻布本店 東京都港区麻布十番2丁目8−17 (NSK)

          西日本総合企画による花屋検索サイト内登録情報

          ハーブマイスターセンター公式ブログ携帯電話

          闘う!?北海道フードマイスターの日々☆ mameがデビューします!

          個人日記。ただし検索にヒットしたのはハーブマイスターからのトラックバック

          トラックバック元も個人日記

          ブログ検索エンジンNAMAANによる検索結果。

          http://d.hatena.ne.jp/hiroshi-ichijyo/キーワード羅列ダイアリーが並びます。

          無脳詩人 djack

          トラックバックを受け取ると、その元記事を使った詩を作る人口無能ハーブマイスターTBを送ったらしい。

          ハーブの情報については、ポノピープル

          LOHASING/ロハシングによるLOHASブロガーのためのポータルサイト PONO People(ポノピープル)内での検索結果。ハーブマイスターセンター公式サイトリンク

          サービス案内 - SOUK

          コンサルティング業務の有限会社スーク登録スペシャリストとしての、ハーブマイスターセンター大島永子の紹介。

          ホームページ制作/リスティング広告/SEOのアクティブオフィス 相互リンク集【ハーブ】

          activeofficeサイト相互リンクページ、自社webショップであるハーブマイスターへのリンク

          健康日記 : ハーブ

          エキサイトブログ内のハーブマイスター誘導ページ

          ハーブは天才!?はが爽やか!

          ブログ検索?

          ハーブティーについて:エンドウマメ日記

          seesaaブログハーブマイスター誘導ページ

          健康日記 - livedoor Blog(ブログ)

          livedoorブログハーブマイスター誘導ページ

          キーワードでつながるクチコミ追跡サイト [ブログサンロクマル]検索結果

          ハーブマイスターで検索すれば誘導ページが多数ヒットする。

          http://d.hatena.ne.jp/d-sm/は何者?ハーブマイスター関係サイト一覧がサイドバーに並んでいる。

          Yahoo!+Googleの検索結果

          【コラム】たらおじさんの野菜・ハーブ作り入門 (1) 専門家が伝授するプランターで作る失敗しない栽培術 | ライフ | マイコミジャーナル

          日本特産農産物協会認定ハーブマイスター外山たらのコラム

          疲れたのでここまで

          2007-09-23

          増田の親スレッドのみ表示するproxomitronフィルタつくったよ!!

          http://wakkaya.com/sukkirishimasuda.jpg

          こんなふうにスッキリスレのみ表示できるよ!

          既出だったらごめん><

          [Patterns]
          Name = "masuda"
          Active = TRUE
          Bounds = "<div class="section">*</div>"
          Limit = 32767
          Match = "<div class="section">*>anond*</div>"
          
          
          [Patterns]
          Name = "masuda"
          Active = TRUE
          Bounds = "<div class="section">*</div>"
          Limit = 32767
          Match = "<div class="section">*>http://anond*</div>"
          




          設定方法は

          http://aoix.hp.infoseek.co.jp/proxomitron.html

          が分かりやすくておすすめだよ!

          2007-07-19

          /* Ten */
          if (typeof(Ten) == 'undefined') {
              Ten = {};
          }
          Ten.NAME = 'Ten';
          Ten.VERSION = 0.06;
          
          /* Ten.Class */
          Ten.Class = function(klass, prototype) {
              if (klass && klass.initialize) {
          	var c = klass.initialize;
              } else if(klass && klass.base) {
                  var c = function() { return klass.base[0].apply(this, arguments) };
              } else {
          	var c = function() {};
              }
              c.prototype = prototype || {};
              c.prototype.constructor = c;
              Ten.Class.inherit(c, klass);
              if (klass && klass.base) {
                  for (var i = 0;  i < klass.base.length; i++) {
          	    var parent = klass.base[i];
                      if (i == 0) {
                          c.SUPER = parent;
                          c.prototype.SUPER = parent.prototype;
                      }
                      Ten.Class.inherit(c, parent);
                      Ten.Class.inherit(c.prototype, parent.prototype);
                  }
              }
              return c;
          }
          Ten.Class.inherit = function(child,parent) {
              for (var prop in parent) {
                  if (typeof(child[prop]) != 'undefined' || prop == 'initialize') continue;
                  child[prop] = parent[prop];
              }
          }
          
          /*
          // Basic Ten Classes
          **/
          
          /* Ten.JSONP */
          Ten.JSONP = new Ten.Class({
              initialize: function(uri,obj,method) {
                  if (Ten.JSONP.Callbacks.length) {
                      setTimeout(function() {new Ten.JSONP(uri,obj,method)}, 500);
                      return;
                  }
                  var del = uri.match(/\?/) ? '&' : '?';
                  uri += del + 'callback=Ten.JSONP.callback';
                  if (!uri.match(/timestamp=/)) {
                      uri += '&' + encodeURI(new Date());
                  }
                  if (obj && method) Ten.JSONP.addCallback(obj,method);
                  this.script = document.createElement('script');
                  this.script.src = uri;
                  this.script.type = 'text/javascript';
                  document.getElementsByTagName('head')[0].appendChild(this.script);
              },
              addCallback: function(obj,method) {
                  Ten.JSONP.Callbacks.push({object: obj, method: method});
              },
              callback: function(args) {
                  // alert('callback called');
                  var cbs = Ten.JSONP.Callbacks;
                  for (var i = 0; i < cbs.length; i++) {
                      var cb = cbs[i];
                      cb.object[cb.method].call(cb.object, args);
                  }
                  Ten.JSONP.Callbacks = [];
              },
              MaxBytes: 8000,
              Callbacks: []
          });
          
          /* Ten.XHR */
          Ten.XHR = new Ten.Class({
              initialize: function(uri,opts,obj,method) {
                  if (!uri) return;
                  this.request = Ten.XHR.getXMLHttpRequest();
                  this.callback = {object: obj, method: method};
                  var xhr = this;
                  var prc = this.processReqChange;
                  this.request.onreadystatechange = function() {
                      prc.apply(xhr, arguments);
                  }
                  var method = opts.method || 'GET';
                  this.request.open(method, uri, true);
                  if (method == 'POST') {
                      this.request.setRequestHeader('Content-Type',
                                                    'application/x-www-form-urlencoded');
                  }
                  var data = opts.data ? Ten.XHR.makePostData(opts.data) : null;
                  this.request.send(data);
              },
              getXMLHttpRequest: function() {
                  var xhr;
                  var tryThese = [
                      function () { return new XMLHttpRequest(); },
                      function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
                      function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
                      function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
                  ];
                  for (var i = 0; i < tryThese.length; i++) {
                      var func = tryThese[i];
                      try {
                          xhr = func;
                          return func();
                      } catch (e) {
                          //alert(e);
                      }
                  }
                  return xhr;
              },
              makePostData: function(data) {
                  var pairs = [];
                  var regexp = /%20/g;
                  for (var k in data) {
                      var v = data[k].toString();
                      var pair = encodeURIComponent(k).replace(regexp,'+') + '=' +
                          encodeURIComponent(v).replace(regexp,'+');
                      pairs.push(pair);
                  }
                  return pairs.join('&');
              }
          },{
              processReqChange: function() {
                  var req = this.request;
                  if (req.readyState == 4) {
                      if (req.status == 200) {
                          var cb = this.callback;
                          cb.object[cb.method].call(cb.object, req);
                      } else {
                          alert("There was a problem retrieving the XML data:\n" +
                                req.statusText);
                      }
                  }
              }
          });
          
          /* Ten.Observer */
          Ten.Observer = new Ten.Class({
              initialize: function(element,event,obj,method) {
                  var func = obj;
                  if (typeof(method) == 'string') {
                      func = obj[method];
                  }
                  this.element = element;
                  this.event = event;
                  this.listener = function(event) {
                      return func.call(obj, new Ten.Event(event || window.event));
                  }
                  if (this.element.addEventListener) {
                      if (this.event.match(/^on(.+)$/)) {
                          this.event = RegExp.$1;
                      }
                      this.element.addEventListener(this.event, this.listener, false);
                  } else if (this.element.attachEvent) {
                      this.element.attachEvent(this.event, this.listener);
                  }
              }
          },{
              stop: function() {
                  if (this.element.removeEventListener) {
                      this.element.removeEventListener(this.event,this.listener,false);
                  } else if (this.element.detachEvent) {
                      this.element.detachEvent(this.event,this.listener);
                  }
              }
          });
          
          /* Ten.Event */
          Ten.Event = new Ten.Class({
              initialize: function(event) {
                  this.event = event;
              },
              keyMap: {
                  8:"backspace", 9:"tab", 13:"enter", 19:"pause", 27:"escape", 32:"space",
                  33:"pageup", 34:"pagedown", 35:"end", 36:"home", 37:"left", 38:"up",
                  39:"right", 40:"down", 44:"printscreen", 45:"insert", 46:"delete",
                  112:"f1", 113:"f2", 114:"f3", 115:"f4", 116:"f5", 117:"f6", 118:"f7",
                  119:"f8", 120:"f9", 121:"f10", 122:"f11", 123:"f12",
                  144:"numlock", 145:"scrolllock"
              }
          },{
              mousePosition: function() {
                  if (!this.event.clientX) return;
                  return Ten.Geometry.getMousePosition(this.event);
              },
              isKey: function(name) {
                  var ecode = this.event.keyCode;
                  if (!ecode) return;
                  var ename = Ten.Event.keyMap[ecode];
                  if (!ename) return;
                  return (ename == name);
              },
              targetIsFormElements: function() {
                  var target = this.event.target;
                  if (!target) return;
                  var T = (target.tagName || '').toUpperCase();
                  return (T == 'INPUT' || T == 'SELECT' || T == 'OPTION' ||
                          T == 'BUTTON' || T == 'TEXTAREA');
              },
              stop: function() {
                  var e = this.event;
                  if (e.stopPropagation) {
                      e.stopPropagation();
                      e.preventDefault();
                  } else {
                      e.cancelBubble = true;
                      e.returnValue = false;
                  }
              }
          });
          
          /* Ten.DOM */
          Ten.DOM = new Ten.Class({
              getElementsByTagAndClassName: function(tagName, className, parent) {
                  if (typeof(parent) == 'undefined') {
                      parent = document;
                  }
                  var children = parent.getElementsByTagName(tagName);
                  if (className) { 
                      var elements = [];
                      for (var i = 0; i < children.length; i++) {
                          var child = children[i];
                          var cls = child.className;
                          if (!cls) {
                              continue;
                          }
                          var classNames = cls.split(' ');
                          for (var j = 0; j < classNames.length; j++) {
                              if (classNames[j] == className) {
                                  elements.push(child);
                                  break;
                              }
                          }
                      }
                      return elements;
                  } else {
                      return children;
                  }
              },
              removeEmptyTextNodes: function(element) {
                  var nodes = element.childNodes;
                  for (var i = 0; i < nodes.length; i++) {
                      var node = nodes[i];
                      if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
                          node.parentNode.removeChild(node);
                      }
                  }
              },
              nextElement: function(elem) {
                  do {
                      elem = elem.nextSibling;
                  } while (elem && elem.nodeType != 1);
                  return elem;
              },
              prevElement: function(elem) {
                  do {
                      elem = elem.previousSibling;
                  } while (elem && elem.nodeType != 1);
                  return elem;
              },
              scrapeText: function(node) {
                  var rval = [];
                  (function (node) {
                      var cn = node.childNodes;
                      if (cn) {
                          for (var i = 0; i < cn.length; i++) {
                              arguments.callee.call(this, cn[i]);
                          }
                      }
                      var nodeValue = node.nodeValue;
                      if (typeof(nodeValue) == 'string') {
                          rval.push(nodeValue);
                      }
                  })(node);
                  return rval.join('');
              },
              onLoadFunctions: [],
              loaded: false,
              timer: null,
              addEventListener: function(event,func) {
                  if (event != 'load') return;
                  Ten.DOM.onLoadFunctions.push(func);
                  Ten.DOM.checkLoaded();
              },
              checkLoaded: function() {
                  var c = Ten.DOM;
                  if (c.loaded) return true;
                  if (document && document.getElementsByTagName &&
                      document.getElementById && document.body) {
                      if (c.timer) {
                          clearInterval(c.timer);
                          c.timer = null;
                      }
                      for (var i = 0; i < c.onLoadFunctions.length; i++) {
                              c.onLoadFunctions[i]();
                      }
                      c.onLoadFunctions = [];
                      c.loaded = true;
                  } else {
                      c.timer = setInterval(c.checkLoaded, 13);
                  }
              }
          });
          
          /* Ten.Style */
          Ten.Style = new Ten.Class({
              applyStyle: function(elem, style) {
                  for (prop in style) {
                      elem.style[prop] = style[prop];
                  }
              }
          });
          
          /* Ten.Geometry */
          Ten.Geometry = new Ten.Class({
              initialize: function() {
                  if (Ten.Geometry._initialized) return;
                  var func = Ten.Geometry._functions;
                  var de = document.documentElement;
                  if (window.innerWidth) {
                      func.getWindowWidth = function() { return window.innerWidth; }
                      func.getWindowHeight = function() { return window.innerHeight; }
                      func.getXScroll = function() { return window.pageXOffset; }
                      func.getYScroll = function() { return window.pageYOffset; }
                  } else if (de && de.clientWidth) {
                      func.getWindowWidth = function() { return de.clientWidth; }
                      func.getWindowHeight = function() { return de.clientHeight; }
                      func.getXScroll = function() { return de.scrollLeft; }
                      func.getYScroll = function() { return de.scrollTop; }
                  } else if (document.body.clientWidth) {
                      func.getWindowWidth = function() { return document.body.clientWidth; }
                      func.getWindowHeight = function() { return document.body.clientHeight; }
                      func.getXScroll = function() { return document.body.scrollLeft; }
                      func.getYScroll = function() { return document.body.scrollTop; }
                  }
                  Ten.Geometry._initialized = true;
              },
              _initialized: false,
              _functions: {},
              getScroll: function() {
                  if (!Ten.Geometry._initialized) new Ten.Geometry;
                  return {
                      x: Ten.Geometry._functions.getXScroll(),
                      y: Ten.Geometry._functions.getYScroll()
                  };
              },
              getMousePosition: function(pos) {
                  // pos should have clientX, clientY same as mouse event
                  if ((navigator.userAgent.indexOf('Safari') > -1) &&
                      (navigator.userAgent.indexOf('Version/') < 0)) {
                      return {
                          x: pos.clientX,
                          y: pos.clientY
                      };
                  } else {
                      var scroll = Ten.Geometry.getScroll();
                      return {
                          x: pos.clientX + scroll.x,
                          y: pos.clientY + scroll.y
                      };
                  }
              },
              getElementPosition: function(e) {
                  return {
                      x: e.offsetLeft,
                      y: e.offsetTop
                  };
              },
              getWindowSize: function() {
                  if (!Ten.Geometry._initialized) new Ten.Geometry;
                  return {
                      w: Ten.Geometry._functions.getWindowWidth(),
                      h: Ten.Geometry._functions.getWindowHeight()
                  };
              }
          });
          
          /* Ten.Position */
          Ten.Position = new Ten.Class({
              initialize: function(x,y) {
                  this.x = x;
                  this.y = y;
              },
              subtract: function(a,b) {
                  return new Ten.Position(a.x - b.x, a.y - b.y);
              }
          });
          
          /*
          // require Ten.js
          **/
          
          /* Ten.SubWindow */
          Ten.SubWindow = new Ten.Class({
              initialize: function() {
                  var c = this.constructor;
                  if (c.singleton && c._cache) {
                      return c._cache;
                  }
                  var div = document.createElement('div');
                  Ten.Style.applyStyle(div, Ten.SubWindow._baseStyle);
                  Ten.Style.applyStyle(div, c.style);
                  this.window = div;
                  this.addContainerAndCloseButton();
                  document.body.appendChild(div);
                  if (c.draggable) {
                      this._draggable = new Ten.Draggable(div, this.handle);
                  }
                  if (c.singleton) c._cache = this;
                  return this;
              },
              _baseStyle: {
                  color: '#000',
                  position: 'absolute',
                  display: 'none',
                  zIndex: 2,
                  left: 0,
                  top: 0,
                  backgroundColor: '#fff',
                  border: '1px solid #bbb'
              },
              style: {
                  padding: '2px',
                  textAlign: 'center',
                  borderRadius: '6px',
                  MozBorderRadius: '6px',
                  width: '100px',
                  height: '100px'
              },
              handleStyle: {
                  position: 'absolute',
                  top: '0px',
                  left: '0px',
                  backgroundColor: '#f3f3f3',
                  borderBottom: '1px solid #bbb',
                  width: '100%',
                  height: '30px'
              },
              containerStyle: {
                  margin: '32px 0 0 0',
                  padding: '0 10px'
              },
              // closeButton: 'close.gif',
              closeButton: 'http://s.hatena.com/images/close.gif',
              closeButtonStyle: {
                  position: 'absolute',
                  top: '8px',
                  right: '10px',
                  cursor: 'pointer'
              },
              _baseScreenStyle: {
                  position: 'absolute',
                  top: '0px',
                  left: '0px',
                  display: 'none',
                  zIndex: 1,
                  overflow: 'hidden',
                  width: '100%',
                  height: '100%'
              },
              screenStyle: {},
              showScreen: true,
              singleton: true,
              draggable: true,
              _cache: null
          },{
              screen: null,
              windowObserver: null,
              visible: false,
              addContainerAndCloseButton: function() {
                  var win = this.window;
                  var c = this.constructor;
                  var div = document.createElement('div');
                  win.appendChild(div);
                  Ten.Style.applyStyle(div, c.containerStyle);
                  this.container = div;
                  if (c.handleStyle) {
                      var handle = document.createElement('div');
                      Ten.Style.applyStyle(handle, c.handleStyle);
                      win.appendChild(handle);
                      this.handle = handle;
                  }
                  if (c.closeButton) {
          	    var btn = document.createElement('img');
                      btn.src = c.closeButton;
                      btn.alt = 'close';
                      Ten.Style.applyStyle(btn, c.closeButtonStyle);
                      win.appendChild(btn);
                      new Ten.Observer(btn, 'onclick', this, 'hide');
                      this.closeButton = btn;
                  }
                  if (c.showScreen) {
                      var screen = document.createElement('div');
                      Ten.Style.applyStyle(screen, Ten.SubWindow._baseScreenStyle);
                      Ten.Style.applyStyle(screen, c.screenStyle);
                      document.body.appendChild(screen);
                      this.screen = screen;
                      new Ten.Observer(screen, 'onclick', this, 'hide');
                  }
              },
              show: function(pos) {
                  pos = (pos.x && pos.y) ? pos : {x:0, y:0};
                  with (this.window.style) {
                      display = 'block';
                      left = pos.x + 'px';
                      top = pos.y + 'px';
                  }
                  if (this.screen) {
                      with (this.screen.style) {
                          display = 'block';
                          left = Ten.Geometry.getScroll().x + 'px';
                          top = Ten.Geometry.getScroll().y + 'px';
                      }
                  }
                  this.windowObserver = new Ten.Observer(document.body, 'onkeypress', this, 'handleEscape');
                  this.visible = true;
              },
              handleEscape: function(e) {
                  if (!e.isKey('escape')) return;
                  this.hide();
              },
              hide: function() {
                  if (this._draggable) this._draggable.endDrag();
                  this.window.style.display = 'none';
                  if (this.screen) this.screen.style.display = 'none';
                  if (this.windowObserver) this.windowObserver.stop();
                  this.visible = false;
              }
          });
          
          /* Ten.Draggable */
          Ten.Draggable = new Ten.Class({
              initialize: function(element,handle) {
                  this.element = element;
                  this.handle = handle || element;
                  this.startObserver = new Ten.Observer(this.handle, 'onmousedown', this, 'startDrag');
                  this.handlers = [];
              }
          },{
              startDrag: function(e) {
                  if (e.targetIsFormElements()) return;
                  this.delta = Ten.Position.subtract(
                      e.mousePosition(),
                      Ten.Geometry.getElementPosition(this.element)
                  );
                  this.handlers = [
                      new Ten.Observer(document, 'onmousemove', this, 'drag'),
                      new Ten.Observer(document, 'onmouseup', this, 'endDrag'),
                      new Ten.Observer(this.element, 'onlosecapture', this, 'endDrag')
                  ];
                  e.stop();
              },
              drag: function(e) {
                  var pos = Ten.Position.subtract(e.mousePosition(), this.delta);
                  Ten.Style.applyStyle(this.element, {
                      left: pos.x + 'px',
                      top: pos.y + 'px'
                  });
                  e.stop();
              },
              endDrag: function(e) {
                  for (var i = 0; i < this.handlers.length; i++) {
                      this.handlers[i].stop();
                  }
                  if(e) e.stop();
              }
          });
          
          /* Hatena */
          if (typeof(Hatena) == 'undefined') {
              Hatena = {};
          }
          
          /* Hatena.User */
          Hatena.User = new Ten.Class({
              initialize: function(name) {
                  this.name = name;
              },
              getProfileIcon: function(name) {
                  if (!name) name = 'user';
                  var pre = name.match(/^[\w-]{2}/)[0];
                  var img = document.createElement('img');
                  img.src = 'http://www.hatena.ne.jp/users/' + pre + '/' + name + '/profile_s.gif';
                  img.alt = name;
                  img.setAttribute('class', 'profile-icon');
                  img.setAttribute('width','16px');
                  img.setAttribute('height','16px');
                  with (img.style) {
                      margin = '0 3px';
                      border = 'none';
                      verticalAlign = 'middle';
                  }
                  return img;
              }
          }, {
              profileIcon: function() {
                  return Hatena.User.getProfileIcon(this.name);
              }
          });
          
          /* Hatena.Star */
          if (typeof(Hatena.Star) == 'undefined') {
              Hatena.Star = {};
          }
          
          /*
          // Hatena.Star.* classes //
          **/
          if (window.location && window.location.host.match(/hatena\.com/)) {
              Hatena.Star.BaseURL = 'http://s.hatena.com/';
          } else {
              Hatena.Star.BaseURL = 'http://s.hatena.ne.jp/';
          }
          Hatena.Star.Token = null;
          
          /* Hatena.Star.User */
          Hatena.Star.User = new Ten.Class({
              base: [Hatena.User],
              initialize: function(name) {
                  if (Hatena.Star.User._cache[name]) {
                      return Hatena.Star.User._cache[name];
                  } else {
                      this.name = name;
                      Hatena.Star.User._cache[name] = this;
                      return this;
                  }
              },
              _cache: {}
          },{
              userPage: function() {
                  return Hatena.Star.BaseURL + this.name + '/';
              }
          });
          
          /* Hatena.Star.Entry */
          Hatena.Star.Entry = new Ten.Class({
              initialize: function(e) {
                  this.entry = e;
                  this.uri = e.uri;
                  this.title = e.title;
                  this.star_container = e.star_container;
                  this.comment_container = e.comment_container;
                  this.stars = [];
                  this.comments = [];
              },
              maxStarCount: 11
          },{
              flushStars: function() {
                  this.stars = [];
                  this.star_container.innerHTML = '';
              },
              bindStarEntry: function(se) {
                  this.starEntry = se;
                  for (var i = 0; i < se.stars.length; i++) {
                      if (typeof(se.stars[i]) == 'number') {
                          this.stars.push(new Hatena.Star.InnerCount(se.stars[i],this));
                      } else {
                          this.stars.push(new Hatena.Star.Star(se.stars[i]));
                      }
                  }
                  if (se.comments && !this.comments.length) {
                      for (var i = 0; i < se.comments.length; i++) {
                          this.comments.push(new Hatena.Star.Comment(se.comments[i]));
                      }
                  }
                  this.can_comment = se.can_comment;
              },
              setCanComment: function(v) {
                  this.can_comment = v;
              },
              showButtons: function() {
                  this.addAddButton();
                  this.addCommentButton();
              },
              addAddButton: function() {
                  if (this.star_container) {
                      this.addButton = new Hatena.Star.AddButton(this);
                      this.star_container.appendChild(this.addButton);
                  }
              },
              addCommentButton: function() {
                  if (this.comment_container) {
                      this.commentButton = new Hatena.Star.CommentButton(this);
                      this.comment_container.appendChild(this.commentButton.img);
                  }
              },
              showStars: function() {
                  var klass = this.constructor;
                  // if (this.stars.length > klass.maxStarCount) {
                  //     var ic = new Hatena.Star.InnerCount(this.stars.slice(1,this.stars.length));
                  //     this.star_container.appendChild(this.stars[0]);
                  //     this.star_container.appendChild(ic);
                  //     this.star_container.appendChild(this.stars[this.stars.length - 1]);
                  // } else {
                  for (var i = 0; i < this.stars.length; i++) {
                      this.star_container.appendChild(this.stars[i]);
                  }
              },
              showCommentButton: function() {
                  if (this.can_comment) {
                      this.commentButton.show();
                      if (this.comments.length) this.commentButton.activate();
                  } else {
                      // this.commentButton.hide();
                  }
              },
              addStar: function(star) {
                  this.stars.push(star);
                  this.star_container.appendChild(star);
              },
              addComment: function(com) {
                  if (!this.comments) this.comments = [];
                  if (this.comments.length == 0) {
                      this.commentButton.activate();
                  }
                  this.comments.push(com);
              },
              showCommentCount: function() {
                  this.comment_container.innerHTML += this.comments.length;
              }
          });
          
          /* Hatena.Star.Button */
          Hatena.Star.Button = new Ten.Class({
              createButton: function(args) {
                  var img = document.createElement('img');
                  img.src = args.src;
                  img.alt = img.title = args.alt;
                  with (img.style) {
          	    cursor = 'pointer';
          	    margin = '0 3px';
                      padding = '0';
                      border = 'none';
                      verticalAlign = 'middle';
                  }
                  return img;
              }
          });
          
          /* Hatena.Star.AddButton */
          Hatena.Star.AddButton = new Ten.Class({
              base: ['Hatena.Star.Button'],
              initialize: function(entry) {
                  this.entry = entry;
                  this.lastPosition = null;
                  var img = Hatena.Star.Button.createButton({
                      src: Hatena.Star.AddButton.ImgSrc,
                      alt: 'Add Star'
                  });
                  this.observer = new Ten.Observer(img,'onclick',this,'addStar');
                  this.img = img;
                  return img;
              },
              ImgSrc: Hatena.Star.BaseURL + 'images/add.gif'
          },{
              addStar: function(e) {
                  this.lastPosition = e.mousePosition();
                  var uri = Hatena.Star.BaseURL + 'star.add.json?uri=' + encodeURIComponent(this.entry.uri) +
                      '&title=' + encodeURIComponent(this.entry.title);
                  if (Hatena.Star.Token) {
                      uri += '&token=' + Hatena.Star.Token;
                  }
                  new Ten.JSONP(uri, this, 'receiveResult');
              },
              receiveResult: function(args) {
                  var name = args ? args.name : null;
                  if (name) {
                      this.entry.addStar(new Hatena.Star.Star({name: name}));
                      //alert('Succeeded in Adding Star ' + args);
                  } else if (args.errors) {
                      var pos = this.lastPosition;
                      pos.x -= 10;
                      pos.y += 25;
                      var scroll = Ten.Geometry.getScroll();
                      var scr = new Hatena.Star.AlertScreen();
                      var alert = args.errors[0];
                      scr.showAlert(alert, pos);
                  }
              }
          });
          
          /* Hatena.Star.CommentButton */
          Hatena.Star.CommentButton = new Ten.Class({
              base: ['Hatena.Star.Button'],
              initialize: function(entry) {
                  this.entry = entry;
                  this.lastPosition = null;
                  var img = Hatena.Star.Button.createButton({
                      src: Hatena.Star.CommentButton.ImgSrc,
                      alt: 'Comments'
                  });
                  img.style.display = 'none';
                  this.observer = new Ten.Observer(img,'onclick',this,'showComments');
                  this.img = img;
              },
              ImgSrc: Hatena.Star.BaseURL + 'images/comment.gif',
              ImgSrcActive: Hatena.Star.BaseURL + 'images/comment_active.gif'
          },{
              showComments: function(e) {
                  if (!this.screen) this.screen = new Hatena.Star.CommentScreen();
                  this.screen.bindEntry(this.entry);
                  var pos = e.mousePosition();
                  pos.y += 25;
                  this.screen.showComments(this.entry, pos);
              },
              hide: function() {
                  this.img.style.display = 'none';
              },
              show: function() {
                  this.img.style.display = 'inline';
              },
              activate: function() {
                  this.show();
                  this.img.src = Hatena.Star.CommentButton.ImgSrcActive;
              }
          });
          
          /* Hatena.Star.Star */
          Hatena.Star.Star = new Ten.Class({
              initialize: function(args) {
                  if (args.img) {
                      this.img = args.img;
                      this.name = this.img.getAttribute('alt');
                  } else {
                      this.name = args.name;
                      var img = document.createElement('img');
                      img.src = Hatena.Star.Star.ImgSrc;
                      img.alt = this.name;
                      with (img.style) {
                          padding = '0';
                          border = 'none';
                      }
                      this.img = img;
                  }
          	new Ten.Observer(this.img,'onmouseover',this,'showName');
          	new Ten.Observer(this.img,'onmouseout',this,'hideName');
          	if (this.name) {
                      this.user = new Hatena.Star.User(this.name);
                      this.img.style.cursor = 'pointer';
                      new Ten.Observer(this.img,'onclick',this,'goToUserPage');
                  }
                  if (args.count && args.count > 1) {
                      var c = document.createElement('span');
                      c.setAttribute('class', 'hatena-star-inner-count');
                      Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
                      c.innerHTML = args.count;
                      var s = document.createElement('span');
                      s.appendChild(img);
                      s.appendChild(c);
                      return s;
                  } else {
                      return this.img;
                  }
              },
              ImgSrc: Hatena.Star.BaseURL + 'images/star.gif'
          },{
              showName: function(e) {
                  if (!this.screen) this.screen = new Hatena.Star.NameScreen();
                  var pos = e.mousePosition();
                  pos.x += 10;
                  pos.y += 25;
                  this.screen.showName(this.name, pos);
              },
              hideName: function() {
                  if (!this.screen) return;
                  this.screen.hide();
              },
              goToUserPage: function() {
                  window.location = this.user.userPage();
              }
          });
          
          /* Hatena.Star.InnerCount */
          Hatena.Star.InnerCount = new Ten.Class({
              initialize: function(count, e) {
                  this.count = count;
                  this.entry = e;
                  var c = document.createElement('span');
                  c.setAttribute('class', 'hatena-star-inner-count');
                  Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
                  c.style.cursor = 'pointer';
                  c.innerHTML = count;
                  new Ten.Observer(c,'onclick',this,'showInnerStars');
                  this.container = c;
                  return c;
              },
              style: {
                  color: '#f4b128',
                  fontWeight: 'bold',
                  fontSize: '80%',
                  fontFamily: '"arial", sans-serif',
                  margin: '0 2px'
              }
          },{
              showInnerStars: function() {
                  var url = Hatena.Star.BaseURL + 'entry.json?uri=' +
                  encodeURIComponent(this.entry.uri);
                  new Ten.JSONP(url, this, 'receiveStarEntry');
              },
              receiveStarEntry: function(res) {
                  var se = res.entries[0];
                  var e = this.entry;
                  if (encodeURIComponent(se.uri) != encodeURIComponent(e.uri)) return;
                  e.flushStars();
                  e.bindStarEntry(se);
                  e.addAddButton();
                  e.showStars();
              }
          });
          
          /* Hatena.Star.Comment */
          Hatena.Star.Comment = new Ten.Class({
              initialize: function(args) {
                  this.name = args.name;
                  this.body = args.body;
              }
          },{
              asElement: function() {
                  var div = document.createElement('div');
                  with (div.style) {
                      margin = '0px 0';
                      padding = '5px 0';
                      borderBottom = '1px solid #ddd';
                  }
                  var ico = Hatena.User.getProfileIcon(this.name);
                  div.appendChild(ico);
                  var span = document.createElement('span');
                  with(span.style) {
                      fontSize = '90%';
                  }
                  span.innerHTML = this.body;
                  div.appendChild(span);
                  return div;
              }
          });
          
          /* Hatena.Star.NameScreen */
          Hatena.Star.NameScreen = new Ten.Class({
              base: [Ten.SubWindow],
              style: {
                  padding: '2px',
                  textAlign: 'center'
              },
              containerStyle: {
                  margin: 0,
                  padding: 0
              },
              handleStyle: null,
              showScreen: false,
              closeButton: null,
              draggable: false
          },{
              showName: function(name, pos) {
                  this.container.innerHTML = '';
                  this.container.appendChild(Hatena.User.getProfileIcon(name));
                  this.container.appendChild(document.createTextNode(name));
                  this.show(pos);
              }
          });
          
          /* Hatena.Star.AlertScreen */
          Hatena.Star.AlertScreen = new Ten.Class({
              base: [Ten.SubWindow],
              style: {
                  padding: '2px',
                  textAlign: 'center',
                  borderRadius: '6px',
                  MozBorderRadius: '6px',
                  width: '240px',
                  height: '120px'
              },
              handleStyle: {
                  position: 'absolute',
                  top: '0px',
                  left: '0px',
                  backgroundColor: '#f3f3f3',
                  borderBottom: '1px solid #bbb',
                  width: '100%',
                  height: '30px',
                  borderRadius: '6px 6px 0 0',
                  MozBorderRadius: '6px 6px 0 0'
              }
          },{
              showAlert: function(msg, pos) {
                  this.container.innerHTML = msg;
                  var win = Ten.Geometry.getWindowSize();
                  var scr = Ten.Geometry.getScroll();
                  var w = parseInt(this.constructor.style.width) + 20;
                  if (pos.x + w > scr.x + win.w) pos.x = win.w + scr.x - w;
                  this.show(pos);
              }
          });
          
          /* Hatena.Star.CommentScreen */
          Hatena.Star.CommentScreen = new Ten.Class({
              base: [Ten.SubWindow],
              initialize: function() {
                  var self = this.constructor.SUPER.call(this);
                  if (!self.commentsContainer) self.addCommentsContainer();
                  return self;
              },
              style: {
                  width: '280px',
                  height: '280px',
                  overflowY: 'auto',
                  padding: '2px',
                  textAlign: 'center',
                  borderRadius: '6px',
                  MozBorderRadius: '6px'
              },
              handleStyle: {
                  position: 'absolute',
                  top: '0px',
                  left: '0px',
                  backgroundColor: '#f3f3f3',
                  borderBottom: '1px solid #bbb',
                  width: '100%',
                  height: '30px',
                  borderRadius: '6px 6px 0 0',
                  MozBorderRadius: '6px 6px 0 0'
              },
              containerStyle: {
                  margin: '32px 0 0 0',
                  textAlign: 'left',
                  padding: '0 10px'
              },
              getLoadImage: function() {
                  var img = document.createElement('img');
                  img.src = Hatena.Star.BaseURL + 'images/load.gif';
                  img.setAttribute('alt', 'Loading');
                  with (img.style) {
                      verticalAlign = 'middle';
                      margin = '0 2px';
                  }
                  return img;
              }
          },{
              addCommentsContainer: function() {
                  var div = document.createElement('div');
                  with (div.style) {
                      marginTop = '-3px';
                  }
                  this.container.appendChild(div);
                  this.commentsContainer = div;
              },
              showComments: function(e, pos) {
                  var comments = e.comments;
                  if (!comments) comments = [];
                  this.commentsContainer.innerHTML = '';
                  for (var i=0; i<comments.length; i++) {
                      this.commentsContainer.appendChild(comments[i].asElement());
                  }
                  if (e.starEntry && !e.can_comment) {
                      this.hideCommentForm();
                  } else {
                      this.addCommentForm();
                  }
                  var win = Ten.Geometry.getWindowSize();
                  var scr = Ten.Geometry.getScroll();
                  var w = parseInt(this.constructor.style.width) + 20;
                  if (pos.x + w > scr.x + win.w) pos.x = win.w + scr.x - w;
                  this.show(pos);
              },
              bindEntry: function(e) {
                  this.entry = e;
              },
              sendComment: function(e) {
                  if (!e.isKey('enter')) return;
                  var body = this.commentInput.value;
                  if (!body) return;
                  this.commentInput.disabled = 'true';
                  this.showLoadImage();
                  var url = Hatena.Star.BaseURL + 'comment.add.json?body=' + encodeURIComponent(body) +
                      '&uri=' + encodeURIComponent(this.entry.uri) +
                      '&title=' + encodeURIComponent(this.entry.title);
                  new Ten.JSONP(url, this, 'receiveResult');
              },
              receiveResult: function(args) {
                  if (!args.name || !args.body) return;
                  this.commentInput.value = ''; 
                  this.commentInput.disabled = '';
                  this.hideLoadImage();
                  var com = new Hatena.Star.Comment(args);
                  this.entry.addComment(com);
                  this.commentsContainer.appendChild(com.asElement());
              },
              showLoadImage: function() {
                  if (!this.loadImage) return; 
                  this.loadImage.style.display = 'inline';
              },
              hideLoadImage: function() {
                  if (!this.loadImage) return; 
                  this.loadImage.style.display = 'none';
              },
              hideCommentForm: function() {
                  if (!this.commentForm) return;
                  this.commentForm.style.display = 'none';
              },
              addCommentForm: function() {
                  if (this.commentForm) {
                      this.commentForm.style.display = 'block';
                      return;
                  }
                  var form = document.createElement('div');
                  this.container.appendChild(form);
                  this.commentForm = form;
                  with (form.style) {
                      margin = '0px 0';
                      padding = '5px 0';
                      // borderTop = '1px solid #ddd';
                  }
                  //if (Hatena.Visitor) {
                  //    form.appendChild(Hatena.Visitor.profileIcon());
                  //} else {
                  //    form.appendChild(Hatena.User.getProfileIcon());
                  //}
                  var input = document.createElement('input');
                  input.type = 'text';
                  with (input.style) {
                      width = '215px';
          	    border = '1px solid #bbb';
                      padding = '3px';
                  }
                  form.appendChild(input);
                  this.commentInput = input;
                  var img = this.constructor.getLoadImage();
                  this.loadImage = img;
                  this.hideLoadImage();
                  form.appendChild(img);
                  new Ten.Observer(input,'onkeypress',this,'sendComment');
              }
          });
          
          /* Hatena.Star.EntryLoader */
          Hatena.Star.EntryLoader = new Ten.Class({
              initialize: function() {
                  var entries = Hatena.Star.EntryLoader.loadEntries();
                  this.entries = [];
                  for (var i = 0; i < entries.length; i++) {
                      var e = new Hatena.Star.Entry(entries[i]);
                      e.showButtons();
                      this.entries.push(e);
                  }
                  this.getStarEntries();
              },
              createStarContainer: function() {
                  var sc = document.createElement('span');
                  sc.setAttribute('class', 'hatena-star-star-container');
                  sc.style.marginLeft = '1px';
                  return sc;
              },
              createCommentContainer: function() {
                  var cc = document.createElement('span');
                  cc.setAttribute('class', 'hatena-star-comment-container');
                  cc.style.marginLeft = '1px';
                  return cc;
              },
              scrapeTitle: function(node) {
                  var rval = [];
                  (function (node) {
                      if (node.tagName == 'SPAN' &&
                          (node.className == 'sanchor' ||
                           node.className == 'timestamp')) {
                               return;
                      } else if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
                          return;
                      }
                      var cn = node.childNodes;
                      if (cn) {
                          for (var i = 0; i < cn.length; i++) {
                              arguments.callee.call(this, cn[i]);
                          }
                      }
                      var nodeValue = node.nodeValue;
                      if (typeof(nodeValue) == 'string') {
                          rval.push(nodeValue);
                      }
                  })(node);
                  return rval.join('');
              },
              headerTagAndClassName: ['h3',null],
              getHeaders: function() {
                  var t = Hatena.Star.EntryLoader.headerTagAndClassName;
                  return Ten.DOM.getElementsByTagAndClassName(t[0],t[1],document);
              },
              loadEntries: function() {
                  var entries = [];
                  //var headers = document.getElementsByTagName('h3');
                  var c = Hatena.Star.EntryLoader;
                  var headers = c.getHeaders();
                  for (var i = 0; i < headers.length; i++) {
                      var header = headers[i];
                      var a = header.getElementsByTagName('a')[0];
                      if (!a) continue;
                      var uri = a.href;
                      var title = '';
                      // Ten.DOM.removeEmptyTextNodes(header);
                      var cns = header.childNodes;
                      title = c.scrapeTitle(header);
                      var cc = c.createCommentContainer();
                      header.appendChild(cc);
                      var sc = c.createStarContainer();
                      header.appendChild(sc);
                      entries.push({
                          uri: uri,
                          title: title,
                          star_container: sc,
                          comment_container: cc
                      });
                  }
                  return entries;
              }
          },{
              getStarEntries: function() {
                  var url = Hatena.Star.BaseURL + 'entries.json?';
                  for (var i = 0; i < this.entries.length; i++) {
                      if (url.length > Ten.JSONP.MaxBytes) {
                          new Ten.JSONP(url, this, 'receiveStarEntries');
                          url = Hatena.Star.BaseURL + 'entries.json?';
                      }
                      url += 'uri=' + encodeURIComponent(this.entries[i].uri) + '&';
                  }
                  new Ten.JSONP(url, this, 'receiveStarEntries');
              },
              receiveStarEntries: function(res) {
                  var entries = res.entries;
                  if (!entries) entries = [];
                  for (var i = 0; i < this.entries.length; i++) {
                      var e = this.entries[i];
                      for (var j = 0; j < entries.length; j++) {
                          var se = entries[j];
                          if (!se.uri) continue;
                          if (encodeURIComponent(se.uri) == encodeURIComponent(e.uri)) {
                              e.bindStarEntry(se);
                              entries.splice(j,1);
                              break;
                          }
                      }
                      if (typeof(e.can_comment) == 'undefined') {
                          e.setCanComment(res.can_comment);
                      }
                      e.showStars();
                      e.showCommentButton();
                  }
              }
          });
          
          /* Hatena.Star.WindowObserver */
          Hatena.Star.WindowObserver = new Ten.Class({
              initialize: funct
          
          
            

          2007-07-11

          はてなスターソースコードの最後に更新履歴が載ってた

          2007-07-11 v1.2 Release version

          2007-05-30 v1.1 Added fold stars feature

          2007-03-29 v1.0 Changed screens using Ten.SubWindow, you can d&d!

          2007-03-28 v0.9 Changed Hatena.* classes to Ten v0.05.

          2007-03-25 v0.8 Fixed Safari popup problem

          2007-03-22 v0.7 Added active state to comment buttons

          2007-03-21 v0.6 Added Comment function

          2007-03-05 v0.5 Changed uri to Ridge-based paths.

          2007-01-24 v0.4 Added Hatena.Diary.Entry class,

          Changed Hatena.Star.Entry methods using class method

          Added author parameters.

          2007-01-23 v0.3 Added Hatena.Star.User class, added Hatena.js, Hatena.Star.js compatibility

          2007-01-06 v0.2 Changed name spaces. Using Hatena.*, Hatena.Star.*

          2007-01-05 v0.1 Initial version

          4月前に大体出来てたって事かな

          ログイン ユーザー登録
          ようこそ ゲスト さん