はてなキーワード: CBとは
基本的に出会い系はほぼ全て登録して色々と試しているオレだが、今回は海外からビッグタイトルが上陸、という触れ込みに興奮、すぐに登録してみた。
まあなんというか、サクラ臭しかしない上にBBAばかりという立ち上げ直後というのを差し引いてもちょっと厳しい雰囲気。
出会い系で写真晒してる奴の殆どは業者(闇デリ)という実情を考えると、これは手を出してはいけない臭いがプンプンする。
あと、入会してすぐに有料チャットに誘われる、というのも非常に萎える。CB目当ての女性(もしくはネカマ)がウヨウヨいますよ、というのをカミングアウトしているようなものではないか。
不倫専門と書こうが書くまいが既に出会い系はそんなヤツで溢れてるわけだから、特に意味はない。
増田「半額で購入後、1日経ったイクラ丼のおかげでピッチコンディションはスリッピーな状態でした。また相手の消化物選手の判断が早く、すぐに下痢選手へいいスルーパスを送る事が出来ていましたね。対してこちらは前半からコンディション不良で、特に小腸・大腸選手の両CBのコンディションが悪かったですね。気温や湿度、仕事のストレスの関係もあったかと思います。ただこの最終ラインはGKの肛門選手を中心に粘り強く守れました。ヨーグルト選手、リポD選手の両ボランチのカバーリングも巧みで、前半は何とか守り切れたのかなと思います。」
増田「咀嚼物選手からのロングフィードから消化物選手がボールを受けたところで、小腸・大腸選手が管ウォッチャーになってしまい、アナルティエリアで下痢選手がフリーでした。消化物選手が見逃すはずもなく、消化管をスルーパスからダイレクトボレー。やはり世界で恐れられる選手ですね。」
-どういう気持ちでしたか?
増田「神様に祈ってたのが半分と、やっぱり出たなっていうのがもう半分です。笑 それぐらいの選手だと思います。前を向いたら誰にも止められません。」
-その後すぐにヨーグルト選手に代えてビオフェルミン選手、リポD選手に代えて漢方薬選手、トップ下の正露丸選手に代えて抗生物質選手を投入されました。交代の意図としては?
増田「やはりコンディション不良を考慮しても第二の脳みそである小腸・大腸選手は替えのきかない選手です。下痢選手にいいようにやられていたのは、中盤の寄せが甘いところにも原因があり、守備を固めていきたい旨を近所の病院で医師に相談して決めました。今回スタメンは市販薬組中心でしたが、下痢選手が躍動する時間が長引くようでは、コンディション不良の両CB及び肛門選手に負担がかかる事は明白でしたので、こうして主力を投入せざるを得ませんでした。」
-中盤の交代策が功を奏した結果、下痢選手は本来のパフォーマンスからは程遠くなります。イライラが募った下痢選手は、漢方薬選手、抗生物質選手に対して立て続けのイエローで退場しました。
増田「下痢選手は非常に攻撃的な選手です。両ボランチがバイタルを埋めることで、その先のアナルティエリア内で好きに仕事が出来なくなれば、イライラする事は容易に想像出来ました。ズキズキしなくなればいいかなぐらいに思っていましたが、退場は幸運でした。」
-終盤、職場からの電話選手の強烈なミドルシュートで同点になり、1対1で引き分け。健康への道筋がついた訳ではないですが、見切り発車で出社しました。
増田「職場からの電話選手についてはノーコメントです。私がとやかく言うとか、そういうレベルの選手ではありませんので。問答無用で試合を決定づける一発はさすがですね。凄すぎてイラッとしますね。」
日本のサッカー代表はたまにベスト16に行くことがあっても基本的に南米や欧州の列強に追い付くことはできません。追いつくためには日本の教育制度、スポーツの学校依存、究極的には日本の社会制度までにメスを入れなければならないからです。
現在の代表でも、半数以上はサッカーエリートであるクラブ出身ではなく部活サッカー出身だ。普通の感覚ならどれだけ「自分はやれる」とおもっても並の高校に行った時点でプロをあきらめてしまうの。とくに偏差値の高い学校にはいった競技者はプロを目指すのはよっぽどのかわりものだろう。
学校の部活動は短期間、具体的には2年または2年半で結果を求められる。求めるなというのが無理なのだ。競技者、および指導者(学校の教員)の双方にとってそれがメリットだからだ。2年で結果を出せばまた名門サッカー高校に進学できる。また2年半で結果を出せばJリーグ以外では最もメジャーなサッカー大会である。「高校サッカー選手権」にでられる。普通の高い才能であればこの大会にピークを持ってくることが目標なのだ。
南米、欧州ではもちろんちがう、クラブのユースではある意味子どもたちは商品なのだ、名門クラブであればそのトップチームに上げることが目標となる。そうでなくとも名門に売れれば大きな金が入る。日本の部活のように自分勝手な猛練習はしない。体が壊れたら誰も得をしないのだ。ユースでもジュニアユースでも週に4-5回、一日2-3時間の練習と週に1回の試合。日本のように年間練習試合をふくめ100試合もやるようなことはない(中堅校でもこのくらいやるところは少なくない)
逆に公式戦はリーグ戦が主体で多く、リーグなので絶対的な勝利にこだわることもない。指導者も競技者も目指すのはその先なので、個人の技術の向上、戦術理解が優先される。
また日本ではユース世代は競技者のサッカーレベルでチーム分けがされない基本的に「競技者の学力」でチーム分けがされる。高校の部活動なのだから当然だが、これがどれだけ異常なことかおわかりだろうか?
また日本では必ずしもサッカー経験者もしくは指導を志す者がサッカーを指導するわけではない、これまた異常なことなのだが事実だ、ジュニアユース時代に技術的なことを指導されなければどれだけ才能があっても伸び悩む。さらにユース時代も確率的には少ないが必ずしも専門家が指導するわけではない。(例えばわたしは長らく高校サッカー部の顧問をしていたが、なった理由は校務分掌上、若い男性であいているものが私しかその学校にいなかったという理由。当時全くサッカーには興味関心がなかった。)学力別に分けられた競技者がたまたま良い指導者、環境に当たればよいが、絶対にそうなるとは限らない。学力が関係なければ、後に日本代表になる可能性がないではないが、学力が高ければ指導者と関係なくその学力の高校(チーム)にいく。そして高い才能があろうとサッカー選手になる道はほぼなくなるのだ。
ここで「日本でも、今言ったように、学力と関係ない名門高校があるんだから、そこで注目されるのでは?」とおもうだろう。もちろんそういう選手も多いが、ここで現代表の来歴をみてみる。
日本代表CBの3人の来歴は非常に異色だ、田中はブラジル人を留学生としてとっているサッカーが盛んな新興名門進学校「渋幕」に留学した。その後、Jリーグに入り帰化した。これは前代表のアレックスやサッカーでないが朝青龍もそうだ。
中沢はサッカーエリートとは関係のない道をあゆみ、強豪でない三郷工技の部活動からブラジルのクラブに入り、帰ってきて三郷工技で練習していて練習試合でヴェルディとやったあとに練習生としてヴェルディに入った。
岩政は普通の地方進学校から数学の教師になるため東京学芸大に入り、ユニバーシアードなどで活躍して注目され鹿島に入った。
後者2人は本人のサッカーへの強い意志と偶然により、Jリーグに入り代表になったことになる。偶然がなければこのWカップのメンバーは違う人が入っていたということになる。ということはこの人たち以外にも日本代表に入れる才能を持ちながら途中でなんらかの事情で断念している多くの競技者が、掬いあげられずに、一サッカーファンとしてWカップを見ているはずなのだ。普通のフットボールネイションであれば代表に入るような才能であれば小さいころから注目され少なくともプロになる選択を与えられるのは必然でなければならない。
普通のフットボールネイションで岩政のような選択は非常に不可解に感じるだろう。代表になれるような才能があれば、16-7歳でプロ契約するのが普通。サッカーの能力が非常に高くかつ数学の教師になりたいのであれば、大学はサッカーのプロキャリアを終えたあとに行けばいいわけで、なにも、大好きであるサッカー競技者を断念して教師になる必要はない。岩政の選択は日本では非常に特殊で普通なら数学の教師になりサッカー部の顧問になる(もしくは校務分掌の事情でなれない)のが普通だろう。高校で普通の進学高にいった時点でプロサッカー選手になるという選択はない。冷静な頭で考えればリスクとリターンが合わないからだ。
日本ではあるレールからはずれると修正がきかないとおもわれている。サッカー選手を選択して失敗したら大学目指そうとかそういう選択は普通しないのだ、就職に一番有利なのは何の瑕疵もなく22年で大学を卒業した者であり、30歳くらいでサッカーのプロ経験者であってもいわゆる一流企業の正社員になるのは難しいだろう。であれば高い学力があってサッカーの高い才能がある場合、リスクをとってサッカー選手になるという選択は普通なくなる。このようなリスクテイカーに冷たい社会ではサッカー選手になるというのはなかなか決断しにくいのだ。岩政は非常にリスクの高いことをやって成功したことになる。
他にも多くの理由があるが、スポーツの学校依存、リスクテイカーに冷たい日本の社会制度を変えない限り野球のようなマイナースポーツで一番になることはあってもサッカー大国になることはないだろう。
部活動の問題についてはまたの機会に書きたいと思います。
http://d.hatena.ne.jp/keyword/%C2%E7%C0%EE%CE%B4%CB%A1?kid=296274
* e-231kon 2010/05/29 19:48 重複しています。
* herecy8 2010/05/31 02:48 既にhttp://d.hatena.ne.jp/keyword/%C2%E7%C0%EE %CE%B4%CB%A1?kid=187790が登録されており、同じ項目が重複しています。後から登録された方を削除します。
* hikarinobosatu 2010/06/07 06:36 最新の情報です。
* hikarinobosatu 2010/06/07 06:37 最新の情報です。
* viron 2010/06/07 14:05 重複項目を理由に再三削除されているが、削除理由とは全く関係ない説明で復帰されている。
* hikarinobosatu 2010/06/08 08:01 後から登録したものの方が、より詳しいから。
* e-231kon 2010/06/08 19:05 重複。
* kobomaru 2010/06/09 10:58 何故、そんなにムキになって削除したがるのでしょうか?
* viron 2010/06/09 11:12 同一項目を重複登録する理由がない。
* kobomaru 2010/06/09 14:41 重複していても、より詳しいから。
* 大川隆法@20100609144107 (2010/06/09 14:41:07)kobomarukobomaru change category to 一般 CommentsAdd Star
* 大川隆法@20100609111221 (2010/06/09 11:12:21)vironviron change category to 削除予定キーワード CommentsAdd Star
* 大川隆法@20100609105801 (2010/06/09 10:58:01)kobomarukobomaru change category to 一般 CommentsAdd Star
* 大川隆法@20100608190535 (2010/06/08 19:05:35)e-231kone-231kon change category to 削除予定キーワード CommentsAdd Star
* 大川隆法@20100608080120 (2010/06/08 08:01:20)hikarinobosatuhikarinobosatu change category to 一般 CommentsAdd Star
* 大川隆法@20100607140530 (2010/06/07 14:05:30)vironviron change category to 削除予定キーワード CommentsAdd Star
* 大川隆法@20100607063754 (2010/06/07 06:37:54)hikarinobosatuhikarinobosatu change category to 一般 CommentsAdd Star
* 大川隆法@20100531024851 (2010/05/31 02:48:51)herecy8herecy8 change category to 削除予定キーワード CommentsAdd Star
* 大川隆法@20100531024209 (2010/05/31 02:42:09)kobomarukobomaru change category to 一般 CommentsAdd Star
* 大川隆法@20100529194812 (2010/05/29 19:48:12)e-231kone-231kon change category to 削除予定キーワード CommentsAdd Star
* 大川隆法@20100529090856 (2010/05/29 09:08:56)hikarinobosatuhikarinobosatu upload image CommentsAdd Star
* 大川隆法@20100529084943 (2010/05/29 08:49:43)hikarinobosatuhikarinobosatu upload image CommentsAdd Star
* 大川隆法@20100529084826 (2010/05/29 08:48:26)hikarinobosatuhikarinobosatu editCommentsAdd Star
* 大川隆法@20100529084759 (2010/05/29 08:47:59)hikarinobosatuhikarinobosatu editCommentsAdd Star
* 大川隆法@20100529084409 (2010/05/29 08:44:09)hikarinobosatuhikarinobosatu appendCommentsAdd Star
大川隆法総裁 http://d.hatena.ne.jp/keyword/%C2%E7%C0%EE%CE%B4%CB%A1%C1%ED%BA%DB
大川隆法総裁先生 http://d.hatena.ne.jp/keyword/%C2%E7%C0%EE%CE%B4%CB%A1%C1%ED%BA%DB%C0%E8%C0%B8
エル・カンターレ http://d.hatena.ne.jp/keyword/%A5%A8%A5%EB%A1%A6%A5%AB%A5%F3%A5%BF%A1%BC%A5%EC
主エル・カンターレ http://d.hatena.ne.jp/keyword/%BC%E7%A5%A8%A5%EB%A1%A6%A5%AB%A5%F3%A5%BF%A1%BC%A5%EC
とか、無意味に登録を増やすことに邁進しています。
法身 http://d.hatena.ne.jp/keyword/%CB%A1%BF%C8
これも重複登録かな。
腐女子やヲタク向けにエロパロ発行してることは知ってたし、当時はふゅーじょんだけが特出してたけど、
だから、なに?って感じだ。
良いものは良いだろうし、マーケットがあるなら、それがヲタク向けだろうが、アングラだろうが、サブカルだろうが、入り込んでやれ、って商魂たくましいのがふゅーじょんだろうと思ってる。
それぞれのファンがそれぞれを認識して、理解しあう必要なんてどこにあるの?
ガロとかのファンが、腐女子マーケットを理解して、どうするの?
どっちも爆発的にマーケットに乗るような物じゃないのに、持ち上げた事で今の地位を得てると思ってる。
少なくとも、ガロ読者とかは、”恐ろしく漫画やアニメの知識が偏って”るだろうに。
その偏りをちゃんと理解してるはずだ。(だから、ガロは特殊な分野でいられる)
そして、偏りにたいして、公平にしようなんて思ってもいないだろう。
===============================
===============================
Ba級 北海道 神戸 お茶の水 筑波 横国 上智 ICU 阪市 同志社
Bb級 千葉 金沢 東京農工 京都工繊 豊田工業 阪府 岡山 広島 阪外語 首都 東京理科
Bc級 名工業 横市 熊本 明治 中央 東学芸 立教 立命館 学習院 津田
=============================== ========
Ca級 電通 九工 帯広畜産 名古屋市立 京都府 奈良女 青学 関学
Cb級 埼玉 新潟 静岡 小樽 滋賀 信州 法政 関大 三重 成蹊 南山
================================== ========
Da級 西南 日女 高崎経済 岩手 群馬 岐阜 徳島 長崎 東京海洋 鹿児島 東京女子
Db級 山形 福島 茨城 宇都宮 山梨 富山 鳥取 山口 愛媛 大分 宮崎 兵庫県立
=============================== ================
Ea級 北教育 室工 弘前 福井 香川 高知 佐賀 日大 東洋 駒沢 専修 京都産業 近大 甲南 龍谷
=============================== ================
以下多数
出典 5000万アクセスの超有名サイト http://gakureki.nobody.jp/
ランキングで本編が載ることはあっても、MADは載るのが少ない。本編としては今日あたりは「みなみけ」がランクに入っていたし、他の日なら「ひぐらし」や「バンブーブレード」がランクインする。しかしMADは少ない。最近知ってるのはガンダム00の「武力介入できないCB」ぐらい。調べてみるとMAD自体はあるんだが、あまり見られてない。本編の人気とこうしたMADを含めた同人活動は正比例しているから、MADへの注目が少ないってことはやっぱり人気がないってことなんだろう。
それかニコニコ動画で見てる人はファンというよりは暇つぶしで見る人たちなんだろうな。ファンだったらいちいち画面の小さいニコニコ動画で見る意味ないしね。
ごめん、変な乗り換えが発生してた。
料金 980円
料金 1,240円
いずれにしろ初乗りより高い。
http://taisa.tm.land.to/tensei.php?a=%C1%E1%B0%F0%C5%C4%C2%E7%B3%D8&b=%B7%C4%B1%FE%C2%E7%B3%D8&c=%C1%E1%B0%F0%C5%C4%C2%E7%B3%D8%A4%CF%A5%B9%A5%DD%A1%BC%A5%C4%A1%A2%CA%D9%B3%D8%A4%C8%A4%E2%A4%CB%CD%A5%BD%A8%A4%C7%A4%A2%A4%EB%A4%C8%BC%E7%C4%A5&d=%C1%E1%B0%F0%C5%C4%C2%E7%B3%D8%A4%CF%A5%B9%A5%DD%A1%BC%A5%C4%A4%F2%A4%B9%A4%EB%B3%D8%C0%B8%A4%CF%CA%D9%B3%D8%A4%CF%A4%BB%A4%BA%A1%A2%CA%D9%B3%D8%A4%F2%A4%B9%A4%EB%B3%D8%C0%B8%A4%CF%A5%B9%A5%DD%A1%BC%A5%C4%A4%CF%A4%B7%A4%CA%A4%A4%A4%C8%BC%E7%C4%A5&e=%C6%FE%B3%D8%BC%D4%A4%CE%A5%EC%A5%D9%A5%EB%A4%AC%C4%E3%A4%A4&f=%C6%FE%B3%D8%A4%B9%A4%EB%A4%B3%A4%C8%A4%AC%C6%F1%A4%B7%A4%A4:早稲田大学と慶応大学]をやってみた。
ちょっと文のつながりがへんなところあるけど、ちょっと楽しかった。
作ってみた
朝日新聞は11万人と主張している。しかしちょっと待って欲しい。11万人と主張するには早計に過ぎないか。
朝日新聞の真摯な姿勢が、今ひとつ伝わってこない。
このような声に朝日新聞は謙虚に耳を傾けるべきではないか▲
思い出してほしい、過去にも何度も朝日新聞は2chの叫びを無視している。
朝日新聞は2chの捏造だという主張を間違いであるかのような発言をして、批判を浴びた。
確かに2chにはアベするという問題もある。だが、心配のしすぎではないか▲
朝日新聞の主張は一見一理あるように聞こえる。
しかし、だからといって本当に朝日新聞は11万人と主張できるのであろうか?
それはいかがなものか。的はずれというほかない▲
事の本質はそうではではない。その前にすべきことがあるのではないか。
朝日新聞は、未来を担う一員として責任があることを忘れてはならない。
朝日新聞の主張には危険なにおいがする。各方面の声に耳を傾けてほしい。▲
朝日新聞に疑問を抱くのは私達だけだろうか。
11万人と主張したことに対しては2chの反発が予想される。捏造だという主張を支持する声も聞かれなくもない▲
朝日新聞もそれは望んでいないはず。しかし朝日新聞はアサヒるである。
11万人と主張する事はあまりに乱暴だ。朝日新聞は再考すべきだろう。
朝日新聞の11万人と主張したことは波紋を広げそうだ。今こそ冷静な議論が求められる。
2ちゃんねる ソーシャルネット板より 【通報しても無駄】mixiから業者が減らない理由
1 :練乳:2007/08/22(水) 17:32:57 ID:a/3is8Cg 今まで何度通報しても消えてない業者の副垢が多数ある件、 運営が業者撲滅コミュを強制削除しようとしている件、 業者と運営の間になにか特別な関係があるとしか思えません。 これを見つけてしまったので、納得しました。 ▼スポンサーサイト mixiで月93万円の不労所得 www.hkys.com 石田和善のmixiで月93万円の 不労所得を得た男はこちらから! http://mixi.jp/search_diary.pl?submit=search&keyword=%B7%EE93%CB%FC ▼スポンサーサイト ミククエ2で豪華特典をゲット mixiquest.com ミククエ2を購入すると今だけ 豪華特典ゲットミククエで100万 http://mixi.jp/search_diary.pl?submit=search&type=dia&keyword=%A5%DF%A5%AF%A5%AF%A5%A8 ねずみ講も巡回ツールもスポンサーサイトでお世話になってねって ことですか。 業者の商用利用はミクシィでは公認ってことですか? 通報しても無駄なわけですね^^
実際にグルかどうかは不明だけど、これで18歳未満に開放して大丈夫なのか
/* 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
友人と軽く討論になったので改めて書いてみる
きっかけはこんな会話から
友「じゃあ来週の日曜ね」
俺「おk・・・って来週?」
友「そう17日」
俺「それは今週末じゃないのか?」
友「ええーカレンダーだと・・・」
曰く、大概のカレンダーは日曜から始まって土曜で折り返り
次の段へ行くので一週間の区切りは「日曜から土曜」らしい。
おいおい「月曜から日曜」だろ常識的に考えて・・・・。
念のため調べてみた。
http://dictionary.goo.ne.jp/search.php?MT=%BD%B5%CB%F6&kind=jn&mode=0&base=1&row=0>
http://dic.yahoo.co.jp/dsearch?dtype=2&p=%BD%B5%CB%F6
> 金・土曜から日曜日にかけてのころ
日曜日は『週末』ですか?『週始め』ですか?日曜日から始まるカレンダーもあるし
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1010421490
「月曜から日曜」優勢ながらも
「日曜から土曜」もアリ、
というか元々は「日曜から土曜」だったらしい
結論としては
http://www.nhk.or.jp/bunken/research/kotoba/kotoba_qq_04040101.html
>「週末」は、指す範囲があいまいです。放送では、なるべく「今度の土曜日・○日」などと
> 具体的に「曜日」や「日にち」を示したほうがよいでしょう。
このあたりが適切か。
秋葉原へ行く約束が一週間延びるところだったぜ。
あ、かがみは俺の嫁。
4バック(DFが4人いるフォーメーション)と3バック(DFが3人いるフォーメーション)はどちらが攻撃的か?と訊ねられたら、サッカーをよく知らない人は「4バックはDFが4人いるんだから、そちらの方が守備的なんじゃないの?」と答えると思う。でも「3バックは攻撃的」「4バックは守備的」とは一概には言えない。
サイドバック(=SB)……あー、SBってのは4バックの外側に位置するポジションなんだけど。
図にすると↓
● ○ ○ ●
黒丸がSBで、白丸がセンターバック(=CB)。現代サッカーのSBは、ガンガン攻め上がっていくことが多い。敵陣までオーバーラップしていっては、また自陣まで戻って守備をする、みたいなね。SBの基本位置がセンターライン付近ってこともざらで、両SBが攻撃的な場合は、システム上は4バックでも実質2バック状態ということもありうる。つまり、4バックは3バックよりも攻撃的だ、と言えることになる。
・・・という話を、「見た目の数字に騙されちゃダメだぞ」的な話として使えないだろうか。
もちろん4バックの全員が守備的な役目を担っているということもありうるし、逆に3バックでもCBがガンガンにオーバーラップしていくチームもある。さらに言うと、守備の堅さというのは、たぶんCBとボランチの数なんだと思う。3バックで3センターだったりすると中央は鉄壁だろうし、4バックでワンボランチだったりするとボランチは過労で死ぬ。それだけでなく、いまはFWにも前線からプレスをかけていくことが求められている。だから攻撃的とか守備的とかをDFの数で判断すること自体がナンセンスなんだろうな。