「FFF」を含む日記 RSS

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

2019-01-10

強そうな言葉を遣うなよ

墾田永年私財法

 

…あまり記事を今頃伸ばすなよ

タイトル誤字恥ずかしいぞ

2018-10-17

日本テレビ番組あるある

なかでも過剰だと思うところを挙げていく

・過剰な笑い声

誰かがなんか面白げなこと言ったらワハハ

面白くなくてもワハハ

とりあえず笑い声を入れておけの精神

効果音でもいいから賑やかそうの精神

・過剰な字幕

いわゆるテロップ

常に画面内に存在する

出演者のどうでもいいコメントもでっかく表示される

色分けや強調もしてフォントも変えて演出にもこだわるの精神

YouTubeでもみんなテレビみたいな字幕入れててうんざり

でも耳が遠いおばあちゃんは字がでかくて助かるわといっていたので

高齢者聴覚障害者にとっては必須かもしれない

・過剰な小窓

いわゆるワイプ

常に画面内に存在する

出演者のどうでもいいリアクションをしっかり見せてくれる

別にそんなもん映さなくていいしいちいちワイプ用の顔作んなくていいよ

これも字幕と合わせてYouTuberにしっかり継承されている

日守秋星

・過剰な情報量

色んな情報が常に画面に詰め込まれている

朝の情報番組とか特にすごい

時間、天気、番組名、放送局名、コーナー名、ワイプ字幕、その他もろもろ

まさに情報番組

・過剰な背景セット

出演者の背景にあって出演者より目立つこと多数

空いたスペースは寂しいので物で埋めておこうの精神によって

わけのわからん謎のオブジェクトや小物が隅々まで配置されている

番組ジャンル放送局関係なくこれは共通しており

どのチャンネルに合わせても背景はだいたいゴチャゴチャしている

シンプルな背景の番組希少種

バラエテイ番組ではキラキラギラギラした素材のやつと小さい電球が必ず登場する

・過剰な人員

背景と同じく画面が人で埋まってりゃ映えるの精神によって

とりあえず各方面から人が集められ配置される

そして金をかけた番組ほどひな祭りになる

そうでない番組でも横一列にズラッと人を並ばせる

テレビ局の偉い人間はとにかく人を並ばせるのが好き

朝のニュース番組ですら例外ではない

なんでなんだよ

・過剰なまでにお馴染みの面々

どのチャンネル吉本ジャニーズ秋元康あたりで回っている

こいつらばっかりも退屈なんで他勢力がぶち壊してほしい

そして同じ歴史を繰り返してほしい

がんばれ孫権

・過剰なリアクション

出川哲朗

・過剰に煽るナレーション

立木文彦

・過剰な日本賛美

外国人日本のここがすごいと言わせる系のアレ

褒められて気持ちよくなるための自慰番組

今はもうだいぶ下火になったが何年も続いた人気コンテンツ

あるとき親父がアレをみてニヤついてて寒気がした

ハバネロボスの頃ですらアレだと思っていたのに

ネットの後追いでテレビでも段々やるようになって

各局横並びでそういうのばかりになってしまった

悪い意味でいくとこまでいってしまった例

・過剰な非現実感

ドラマ吹き替えを見ていると演技や台詞回しが

日常で見ているものと全く違って見えるという怪奇現象がよく起きる

現実にはありえないような口調で喋る人間大勢出てくる

・過剰な番組

とりあえず番組を増やして賑やかそう儲けようの精神によって

朝早くから夜遅くまで放送したり三ヶ月で大量の番組を入れ替えたりしている

そんなだからブラックなんだろテレビ局はもっと休めよと言いたい

そしてドラマもっと数減らして予算かけていいもの作れんのかと

アイアムアヒーローは長期ドラマやれんのかと言いたい

映画版が良かっただけにウォーキングデッドだわ

あとアニメも毎期毎期なんやかんやで作り過ぎなんだわ

ここまで挙げてみて意外と自分テレビ見てんのなと思った

あとちんこは言っていいけどまんこ絶対言っちゃダメ感も過剰だと思った

2018-05-24

非表示IDじゃなくて、何をお気に入りに入れているかで語ってみる。

jkondo katoyuu hotsuma lovelovedog yhlee otsune korumono fujipon rAdio REV maturi kaien FTTH ruku kokorosha nkoz yoppymodel cider_kondo wetfootdog

hyuki mujin koseki hagex DocSeri kanose Fuetaro nobody morutan mhatta ekken pha nofrills NATROM toshi20 atoh ozric miruna shinimai hokusyu rotemeister

orangestar asakura-t vid mattn kaeru-no-tsura kiyohero kaionji NOV1975 lastline ululun hokuto-hei grindrocker maname mae-9 kamezo Guro toronei

finalvent Nean hidea blacksorcery kensuu oyatata kana-kana_ceo nisemono_san ueyamakzk misomico johanne AFCP kana0355 Windfola morimori_68 moli kmiura

e-domon matsunaga bigburn mahal TakamoriTarou lalha sivad mkusunok exhalatio Tariki reima contractio atoz blackdragon izumino hyakuhyaku TomoMachi Miya

sakuracon hirata_yasuyuki n-styles eveneko tei_wa1421 Asay karatte rna tokuriki skasuga Louis tetsutalow nuryouguda vndn castle hhasegawa jack_o_lantan

b4takashi throwS mame-tanuki cho45 mickn Show gryphon toled takaaki110 guldeen iori_t fk_2000 inamem9999 takerunba ch1248 yuiseki nekora umeten synonymous

unyounyo kuborie BUNTEN neogratche activecute Nachbar mobanama laiso Marin_MTB FFF goldhead physician nitino ono_matope JSK thir Harnoncourt lever_building

t-tanaka shimaguniyamato zzteralin ssig33 asahiko watto sakichan JSF zaikabou kechack bulldra Erlkonig simulacre machida77 meme-o washburn1975 hmmm antonian

plummet z0rac Baatarism tamaiyuya came8244 FUKAMACHI blackshadow sonox soylent_green K416 j3672 comzo Sucker Dullahan gyogyo6 Okky kyoumoe Parsley naohaq temtan

testa_kitchen kash06 apesnotmonkeys Tez tomozo3 kumicit jun-jun1965 str017 gnt okra2 pal-9999 brainparasite atolsha bn2islander kanimaster UDONCHAN sharou

dankogai moondriver rgfx Midas enemyoffreedom t_utsumi orange-strange aukusoe AKIT zu2 oguogu uturi watapoco inumash Ez-style myogab pollyanna nennpa D_Amon

fromdusktildawn super_haka kgotolibrary TakahashiMasaki hirokyun kurokuragawa rag_en Yasuyuki-Iida white_rose opemu torin p_shirokuma ROYGB ks1234_1234 abfly

nekoruri itotto amachang BigHopeClasic setofuumi kskmeuk mgkiller crowserpent Hamachiya2 yamtom todesking rosaline raurublock KoshianX okemos ore_de_work

chintaro3 dlit jt_noSke azumi_s Mikagura a1101501j tailtame riko makaronisan peketamin white_cake ext3 wackunnpapa feather_angel ryo_zin Zephyrus kazuhooku

sisya yachimon death6coin gallu y-mat2006 sk-44 Assume T_Tachibana kamm qtamaki tkfire xevra raitu tsugo-tsugo SIVAPROD tail_y takanofumio lakehill MermaidSong

WAFL kiku-chan snakefinger good2nd Apeman stand_up1973 aox posmoda DrPooh ockeghem tokoroten999 Cai0407 lylyco Gl17 ohnosakiko kowyoshi kaitoster jtsutsui

molice geekpage ageha0 alphabate satromi albertus napsucks katzchang fjsk AntiSeptic okadaic petem SMATSU mk16 dadabreton CrowClaw Delete_All naskin murashit

fuka_fuka lets_skeptic rakusupu t-murachi moondoldo t-sat ohira-y HolyGrail hyaknihyak font-da ruletheworld Blue-Period flagburner Mochimasa kyo_ju knj4484

srpglove enoki0123 F-name sky-graph AKIMOTO yarukimedesu the-world-is-yours gimonfu_usr Prodigal_Son geopolitics shi3z pika1976 mobile_neko hanapeko wideangle

yu-kubo Fromdusktildawn Lobotomy GEGE atawi natsutan anigoka sabacurry ottyanko complex_cat contrapunct Nagise raf00 cild tasogare30 lp008962 yukitanuki F-SQUARE

noiehoie You-me RPM harutabe showgotch azure-frogs K-Ono EoH-GS sin20xx blueboy tikani_nemuru_M morita_non silvermoai WinterMute junshoku-159 mala anzenchan

koumet xr0038 cloq Amerikan llil pokute8 big_song_bird ya--mada md2tak iteau fs001493 jura03 comzoo evezoo aureliano norton3rd AcidReflex chochonmage islecape

mame-tanuki999 acealpha kagekiti jou2 angmar klim0824 ublftbo SYntax_1987 festerfester musinju73 lisagasu laislanopira magician-of-posthuman Serious X-key

masumizaru change_k iaskell Mukke serio komamix shimomurayoshiko Iori_Nishizawa electrica666 kndrych Narr CIA1942 kananaka OSATO kujirax type-100 steel_eel

genovese33 plutan T-3don doramao amanoiwato silverscythe feita fut573 uruloki prettycure A-WING Shin-JPN endlessdoor kujoo ketudan ISLECAPE nanoha3 kobeni_08

triggerhappysundaymorning tyokorata Islecape vanillableep1618 zhao4 a-yamada kangiren cheapcode neco22b teajay tsuki-rs inunosinsitb ikkiii agricola inukorori

twintails_info mizchi K1tten zroff kiyo_hiko masudamaster TM2501 Stan_wojenny Naruhodius r7kamura DG-Law sillyfish himajin774 kyokucho1989 AQM bsiyo achickcanary

omega314 quix_que tesserac Nihonjin candidus namelesscult yamagatamyclus tomo31415926563 Poisonous_Radio hitouban Cunliffe kondoyuko VodkaDrive border-dweller

YANA1945 gebonasu30km sakuramacaron flatfisher oxon salmo PAGZIN nekomask semi_colon ysync rasiel9713 ChieOsanai Outfielder agrisearch sora-papa ginnang7 tappyon

yam3104 hi_kmd agathon nt46 masatokinugawa kazutaka_ueyama hietaro ando_ryoko yuruihito han_org the_sun_also_rises conisshow haruhiwai18 katsura_1 typex2 elve

satis daybeforeyesterday gin0606 oka_mailer banzaic aoi_tomoyuki pulusha fusanosuke2 rockfes Stealth02 Hige2323 vlxst1224 sophizm Fondriest mornig89 yamodoki

shigak19 brassica-rapa rappappaneko himomen iwannabethep Mihoko_Nojiri munioka303 siyo77 ERnanchan s_kuroi mainichijpedit bt-shouichi reiharuki kagobon aikoku_sensei

tatsubo3 KingCrimson96 tantarotaro spacefrontier mementm0ri j_whiskey uduki_45 powerbreathing kimayuri otakky miyadai454 daisya fusanosuke_n barubari2955

rohtoalguard1 sys-arts mas4bookmark horikawad okujas zeromoon0 yamanka00 ente04 ochamecool fafasiba daizu1977 TanTanKyuKyu medeko houyhnhm fashiongarment tama_see

domestorm kusohagetaro yashiga2 m_sakunyan Hiro0138 che-hiroshi fiblio tk2to FEFE tikuwa_ore superpuma haruka_nyaa allezvous locust0138 gogokotoe yamane2 Yuru_Moe

omi_k usausajam aLa hungchang hyodo2000 widerstand paradisecircus69 dogear1988 amd64x64 aapoak megtan00 hidamari1993 Panthera_uncia0106 yasugoro_2012 dokai3

RabbitBit ikihaji_kun ProgrammingMono lolitaseeker minougun tmura3 lightgauge a1ot TM2502 topisyu osharenana aflat_1000dai4 chillpoyo sadship U_TA223 torowaru

ggrcs0228 muryan_tap3 murogami mebius_ring QJV97FCr Chibimomo waltham70 stnpwuq mini_big_foo frothmouth yukatantan tanaka_yuuma whitehackerz nemuibayashi

strbrsh nightlights dyoshiguy2 ponako10 zuiji_zuisho KanamoriTeru yonezawagyu91 kouas1100 ricenoodles OjamSakura hikaru233391 FrenetSerret dummy1 IkaMaru

chuunenh katabiragawa hondarial renos meerkat00 SndOp htnmiki hatekun_b vaginally black_grass neo2184 masara092 metroq sny22015 cardmics backnet kuniharu_k

rothousand10 c_shiika keisolutions bkyo Nettouochi augsUK whkr nobujirou martaka moko_chan kantei3 foresight1958 government_japanese JIBURi kurahito4

believemeimakurahito pseudomeme ringopie ispapan hitode99 m-tenshi sds-page sthya quick_past PowerEdge potex Re-KAm warorince msdbkm bettychang netcraft3

toulezure srgy

なお、現在活動されてない人、亡くなられた人も含む。

当落は時の運だと思ってほしい。今もう追加出来ないのよ。なので後からの人が特に漏れてる。

2014-05-03

http://anond.hatelabo.jp/20140503095216

みんな少ないね。おれは前はかなり非表示に入れてたよ(下を見てね)。気にいらない記事をブクマしてるやつらは全員非表示にしてた。これだけ非表示にしてもたいして見える景色は変わらない。いまは元に戻したけど。うぜえと思ったらどんどん非表示にするといいよ。(*追記 なんか改行しないせいか途中で切れてたので、ところどころ改行してみた)(*追記2 文字数制限でもあるのか全部入らないので別記事にする→http://anond.hatelabo.jp/20140504105600http://anond.hatelabo.jp/20140504110458

angmar|ryokusai|activecute|mamasan84|hurdle91_4|TakahashiMasaki|tajimaboard|hatake|metalbabble|xevra|ftype|zaikabou|atoh|zenibuta|IGA-OS|waccher|susahadeth52623|FukayaAruto|Hana56|rfg5ks|ys0000|CavalleriaRusticana|solidstatesociety|cheapcode|Yagokoro|tanakadaishi|Cichla|y2_naranja|nagaichi|www6|ain_ed|anticipate|yurutena|akkakka|jtw|konkon1986|frsatti|rag_en|aenea|junshoku-159|skeleton-lair|fusionstar|n_pikarin7|edr|tirol28|ttlweb|mintpafe|almondcrisp|by-the-A|sagonohashi|papaopao|kingworld|Southend|phe|babanshika|mujisoshina|koubemise|telmine|kawatuka|mi2maru|honeybe|pumpkinphilicity|rika-rikarin|WinterMute|rz1h931f4c|snipesnaps|hamatsu|aminisi|faintmemory|Carbon12|narita_seiki|yuki-endo|syuu1228|Kou_RYU|ult100|h_tksn|DrFaust|imai78|momonger|Iridium|deadcatbounce|tender_apricot|Louis|ore_de_work|ranobe|ask11|aont|m_uchino|citron_908|orenonihongogayabai|temtex|raf00|barnout|raizon_detre|wartanenemon|HirokiJpn|chochonmage|jaikel|sulraw|MersA|ululun|hokuto-hei|ketudan|runeharst|k_gobo|n-styles|tomitake_flash|ta|takey107|pulp_literature|shibuyan730|vierger|karpa|feita|Serious|isshoku|hisamura75|quwachy|chuck_41|timetrain|kurai|icchan0000|vid|F-SQUARE|saebou|zz_sexy|me5655|md2tak|vitamin_G|konekonekoneko|false_alarm|kawacho|harumomo2006|tannsuikujira|diveintounlimit|mainichigomi|Irris|what_a_dude|konstantinos|koinobori|dlit|Sinraptor|ghostbass|sor_a|AmanoJack|kono1|Pokopon|genovese33|iwasi8107|Tamemaru|kirarapoo|goldwell|furukatsu|inadatomoaki|xufeiknm|mohno|north_god|mk-biz|zu2|kurostocking|shikinami|kahusi|Harnoncourt|rzio|mappy0x1e|tohky|delphinus35|imoguratan|hidenob|kirishima2813|tikani_nemuru_M|bsiyo|nanoha3|abtendon|hal9009|ChieOsanai|brimley3|gigi-net|no45|yajicco|sakage001|jituzon|Amerikan|wackunnpapa|ruletheworld|monaken|kimuratoshifumi|yuka_taso|kensir0u|mushi_cake|naok1991|irigium|goodhome2|lightningraft|lv-99|mashiroinc|wasara|mobanama|funaki_naoto|arktks00|tutomutti|MagnesiumRibbon|Snail|a1101501j|kowyoshi|snobsnog|rAdio|oskimura|soylent_green|Inuneco|nakakzs|Naotoh|paulownia|malark|itotto|law|key_motar|ryankigz|DG-Law|BEW|gyaam|sekiryo|noitseuq|HMCO-409|miruna|masa2501|rosa_nera|schnja|raitu|hiroyukiegami|gerling|hihi01|tappyon|kanimaster|omega314|CrowClaw|masaru_al|tezawaly|tester000|a2de|fazz0611|m-matsuoka|y-shift|Ri-fie|motorunder|cubick|gilugilu|oldriver|ueda2|k_ueda|TiMaria|thesecret3|nuke|sdsdsdd|whiteness|sunoho|riu3o|copipegetter|sugowwww|PSV|jay926|SiroKuro|tonapa|mfrider|inet_malic|kmyken1|passy_no_okan|mats3003|kamisetsu|h108|zonia|jollymolly|sajiwo|Junpecon|pompom20|qma5|netnotora|machida77|kyoumoe|sinx|simulacre|Geroro|nekoaruki|on_your_mark|chihhi1105|matsuda0111|repunit|t_ommy|utd_sn3781|seenone|iguchitakekazu|boke-boke|ymScott|gure3333|saurel|acchonburike|chocolate-choko|more_white|migurin|ID_u1nje3rh|install_maido|Memeo|kumonopanya|solaris_almagest|labeneko|Ilovenoel|junya_asa|don_ashill|laislanopira|serizawawawa|yachimon|ZeroFour|atoz|chi_to|isikasa|AKIYOSHI|n_euler666|namasutenohito|k_wizard|onanieCEO|minorito0411|kazuichi85|waferwader|gogatsu26|takanofumio|SerpentiNaga|kaworry|rjbook|baatmui|deadcalm|Scatterbrain|htktyo|medicineman|jun8|kaos2009|curln|sika2|TKK8637F|hvc-001|temtan|Dersu|Nowhereman|death6coin|himajin774|yutamoty|atsushifx|worris|halfstory|sasahira|noraneko|suzu_hiro_8823|dreamplan2004|u-chan|u_eichi|fuuumi_jp|reima|siso3|mrmt|RocRoc36|oreimo|Cliche|f_e_ita|Ratty|O_C_T|nunnnunn|y883p2|HitTheSupportersBull|mansour|chintaro3|wacking|erohi69|tareishi|www_taca|meganemegane103|hiro-rock|headstream|vanish_l2|dark_dove|kadukimoon|na23|lbuki|KANIBUCHI|gokino|CelestialFire|kaerudayo|remsleepless|jimihendrix0418|tsumiyama|coffee_and_tv|shinobu11|complex_cat|mightyflapper|yamanone44|harpy|yoghurt|teren|yamigome|joruri|napsucks|sagittaro|buripig|TsumuRi|setoFuumi|klaftwerk|zakima4|noma-n|wassy_5|corgi_corgi|mizkiyo|makoponpon|mayu_boooon|Clock0311|f-nyoro|wawawaw73|planetes|wands_ace0|amajam|Soraneko|kurokuragawa|karatte|nakamurabashi|goodbadnotevil-syamo|arakawakumiko|hamanako|API|WereIm|Cunliffe|gasemato|smartbear|rikopapa|skintight|pop23|sbr_m|shipayon|giant-killing|Gesaku_G|rxjun|KIM625|Mist|masatanz|hatesenID|murderboy|boom-boom-boom|hanaseleb|MHz0129|sooe|iMomonga|amamiya1224|zakshin|kimamaxx|high-d|moshimoshimo812|miryu2008|erogazo2|ks1234_1234|knagayama|uporeke|kuborie|welpherd|perfectspell|neogratche|sakurasuisan|maru-herzen|idiOt|yukatti|bohemianway|takaharu07|y-mat2006|hidematu|gensouyugi|weissorvice|aereal|wazurai|pokkurishibou|nashitomo|izumino|steel_eel|heal106|okakao|amamako|gapao|kisaragisan|waumao|okemos|sillyfish|kzhvsonic|manndora|sa_tie|Nakano_Hitsuji|tenku65820|tsunami246|kikujidou|SIVAPROD|tano13|tunaguinfo|Francesco3|coldbrain|koutyalemon|hiruhikoando|Rings_of_Saturn|guldeen|aotake16|besvna|mackey13|mikemaneki|a_dogs|wideangle|shinpei0213|mg69|sichimin|cubed-l|CIA1942|turu_crane|yetanother|Nachbar|kamikami3594|takobue|ext3|yahen|KoshianX|Cujo|goma108|Mikagura|an111|matagashi|Fou|ritsuca_ms|kagiya|mizunotori|feinyao|karin0712|nasuhiko|setopero|one-night|memoclip|kits|taninsw|maturi|ezk|dal|toaruR|sugi-cho|appletriangle|orchid_888|sisya|karekomi|shibudqn|takari27|hshinoda|pikayan|yukisatoshi|kozai|qxpi|yamifuu|hisaichi5518|ryukawasa|kangiren|tora_17|karuran|CGA|takeishi|shimomurayoshiko|enemyoffreedom|shijuushi|xr0038|nmit1939|anbul-441-x|snow113|misias|asami81|tekitouotoko|kussun|rs6000moe|yasumo|pycol|Mash|fm7743|fs001493|fogshadow|inumash|blue456|feilung|yuiseki|northlight|denken|ringo304|briers|sutara_lumpur|nippondanji|azumi_s|katow|SHMT|Tomato-360|sadadad54|iluka18|morriedes|lostman6|kurano|ken47|SasakiTakahiro|dododod|shortcut3|shin1830|T_Tachibana|kwhm|akawi|mizukemuri|kmagami|wander1985|mangakoji|shby_sht|skymkt|mahal|wanderingdj|ocura|sirocco|hyperkick|neojin|yokomichisizuka|spring-ephemeral|undo0530|aklaswad|takhasegawa|nogikusan|inoken0315|b00512177|unigame|multiplex00|manFromTomorrow|chinu48cm|mi0115619|seabose|hasetaq|miulunch|rxh|caz-spatial|zakkie|camel_neck|donncherrrryy|suift|kakkunpakkun|takadayararetayo|Assume|bsumoru|redfang396|hatoken|ysync|kyorakuan|taro-r|qpwo1|bioweb|wdnsdy|Domino-R|gifumaster|aitanisan|mycrabhands|juner|zatpek|tyuke|fumysan|tailtame|mikkemac|osakana110|KH_suecat|lucy5485|GEGE|jeswear|yamada_si|ryosukeoi|shoot_c_na|ak9|makaronisan|magaz11|umiusi45|ricto|dp643|crazy_pumpkin|FAEB|iaskell|anigoka|linden|llil|hbkm|kurahito|niccoro|dsl|escape_artist|azurun|asitanoyamasita|meme-o|atolsha|highcampus|frivolousman|yaoki_dokidoki|GiGir|kaitoster|p_shirokuma|genesis|zuzusea|ddd01|there_and_here|torinanban|ardarim|mashori|scoops|yspmymt|aoasagi|nzai|sota344|yu14f|tukinoha|Run2|y_arim|hazardlamp0855|alshine5|measure0315|fukken|sander|kathew|bigburn|darry129|yukikeiichi|chlono|Erlkonig|sontyo|Real_Great|youichirou|s_atom11|Santamaria_morishi|te2u|FFF|nextworker|yuaaa|top-poi|shaphere939|damepon|ka_ko_com|noreply|fuba|uxoru|harax|marvelarrows|omosoku|evertex|testa_kitchen|noritak|sin_cos|kashmir108|Philos|acqua_alta|nicovideoch|cloverleaf24|uduki_45|momo_suke|naru0504|o_mega|sotokichi|plutan|A410|hanazappa|crescent398|habanero02|bluesunday|Phys|donkey145|momomubi|hyougen|toocheapjp|fontedeagua|yteppei|came8244|bb_river|shimazoom|gebugebu|kybernetes|type-m-c|instance0119|smtp|shimada65536|SoraNyasukE|mfigure|ten_ad|air25|cutxout|yukky2000|jingi469|SZKAKTK|mil-memory|tama_no|nrke|ritsuch|kossie89|reve_rainforce|rinrinbell|poccopen|asiamoth|tow-mas|panparade|urarai|ten7132|a6u|kusaret|perucho|REV|paraselene|rdcs|dekijp|yasunori|Dic|t-rio|anoncom|John_Kawanishi|hyaknihyak|honyapen|koyhoge|uasi|arajin|lancys|ukdata|rairai16|hiroomi|angelica4ro|kidego|hakodama|unnmo|yukipo2008|ermine_twitter|imo758|shinpson|Naruhodius|Pz-4|sadn|pinoem|noname_lab|Usaku|babelap|hirali|yamakozawa|ocha39|whiteball22|sezitak9|necolaus|hannover|Barak|ahya365|EurekaEureka|suimon|Pasta-K|zoidstown|silvermoai|love-peanut|nekozea|toronei|haru-s|deeplove|TEtra|nkoz|GilCrows|nasunori|asmblr|dodorugefu|ueday|gogo0721|plustica|kobayasiikumi|howaito_denkyu|mst66|rsh|howdying|spade9970|TOKOROTEN|shinagaki|hidesuke|lovelovedog|siromado|d_pressure|coldcup|amesuke|kenzyarai|termin2|hitohitohitto|y-kawaz|jnanukom|hashimoto0226|takeyamaken1989|zorio|otsune|tatsuzawa|nemiko0324|R_Goines|kubodee|pulltop-birth|impuritynot|loliniichan69|cazukit61|tuds7280|pochi-p|Xenophias|zeki|akumasyougun|sucrose|chopapapa|takashi1970|manaten|TYK|suzunami1001|Jinmen|rin51|qnighy|gikazigo|kir_royal|ohmomo|yamada55|halt_haru|prodakuto|kousuke425|hazime2914|keyxxyz|kuroneko15|doraman|kobo454|Shimataroh|Sumitomo|nicoyou|jingi2525|kimottamakimo|cheva|era1978|bovis|kaipu|worcel_0910|wakabatan|tenkoma|u-ichi|anpo-sumeragi|neco22b|bobcoffee|u-c-h-i|choco-holic|akishin999|takuwz|torish|dnsystem|Aiffet|yuhsuke19_hg|solailo|kensk714|farfromforest|type-100|cupnude|NOKIA|a96neko|Lif|benriman|mesowest|makimura_amane|rna|quesera2|chihaya_72|gggsck|yukkie_strike|frog78|geromi|ku4ro|perisy|mk16|deep_one|hiyamad|a_matsumoto|sai-coro|mock_on|smicho|kameniwa|kokogiko|keiseiryoku|ktasaka|sophizm|unterwelt|mate-ra|ashitamad22|kamayan|panpanpanda728|hiromi163|tekipaki_work|ramyana|very_high_energy|Misapon07|Keee|softnet|est-ferelith|SizSiz|mk_chap|boukoku_db|plopea|tabyy|Hakase|gajumaro|kskb|outalaw|dita_69|kurean|netto_mk|tk18|eagletmt|vimp_fun|Magicant|junboo28|textmarch|yamakaz|amemorandum|nekoluna|da-yoshi|rikokis|muhimebiko|Makkon810501|karimikarimi|pushol_imas|crimson00|c430c|yhmt|ago_kyo|hotnot|kuronaga|goroyung|sikii_j|Bottoms_at_Narashino|elve|bunbun56|tanemurarisa|kamizyousan|KAOLY|KatmanZ|hidex7777|DocSeri|gauqui|hiby|zekky_f|natsu_san|toratorazero|tigertissue|takanorikido|stick01|rerofumi|t_sabaku|latemder|gogorou|masterknight|clworld|thvenr|pacchii|rikuo|keta_chop|kasuyarou|hu-ya|kura-kura|aka-ari|domenetwork|ken3884|BRITAN|harasyo865|sea_side|MAXjeep|aria_corp|kotamania_00|yutta125|agni|jalapeno78|nobby81|secondary9999|whirl|rxv15051|dudley_ty|lain1394|pugiemonn|arlu|mits_00|Heron|pega2s|cosmetick|tokigami|p_ny|thrthrsvn|fellows|ikemo10|hase0831|hexol|decimal|xzglrete|bookmarkjp|atawi|nugget|takayuki666|dokumizu|unyuunyuho|tzt|humid|himitsudesu|hildo|s-tomo|joyjoyjo|Coolions|kudokann|seaview_p35|totttte|sorshi|tricksterchaos|ikoekoe2|irhutnyui|brax|kasuga-k|sekiyado|porimern|silverscythe|pccs15|rutenworks|oka_Elizabeth|beaux25|kenny_green|osankuma|dirtjapan|plumsyrup|haru-mutsuki|Rikerike|modahand|fujeans|Netalacy|kazoo_oo|itouhiro|fright|crea555|samepa|kana-kana_ceo|multi12|b4takashi|nnh|FeZn|richard_raw|qinmu|neko73|takisok|rumbaba|shinchu|ya--mada|rk22|fabu0405|someinu|haruka-izumi|taqpan|Cetus|candy296|cubeon|reds_akaki|MERIHARIBOY|hidekkytsuji|TiTo|gomis|arien_nu|pogemutaBN|AmaiSaeta|masarusanjp|Nihonjin|SL230|mikage014|jackbartlett_mhp3|gui1|a-mutter|aegis09|FTTH|kusigahama|dame_40|sakurasakuras|laiso|mumu3|sank0n|shimanp|hush_in|ekwosbooks|yuumi09|lifespiel|geppey|wancyope|Mukke|kugyuemon|shmras|caliburn|oppekepei|t-tanaka|lepton9|lemon_tea906|madhatter08|weeklydennpagraph|orbis|posinega|damekana|inaco175|sasaplus1|waribashi|Eis|sik308|sigege|mustang1234|iitripod|Muke|solunaris149|sumoa|munetc|egpehcbd|junmyk|kk_solanet|shiba-710|Bifuteki|t-murachi|kommunity|asagiazure|erog|myoukabi|neko0_neko0|SimonMajin|McCammon|racec|funekaz|eo64air|watchcat|kabutch|Gelsy|kitayama|nvs|AnonyPre|masudamaster|usamyu56|hamusoku3|jojo0312|oreimo1234|braverobo|Outfielder|FEFE|radu|T_da|hatebu_test2|ksaitou|fuga_maito|wata300|k-noto3|tomo31415926563|tencube|vanacoral|kogarasumaru|min2-fly|negi_a|kagioo2uma|ippai_attena|mizuki-yu|ncc1701|gimonfu_usr|holidays1976|appbank|abiruy|pasokonta|sleepyuzura|asakura-t|seachikin|atsk|bewzew762|revanya|flasher_of_thought|yasugoro_2010|rainbowsazaki|kagurakanon|repulse|idoyesido|terata|orosi02|Chlocha|takhino|mu025rara284|yamanka00|ninntai|sak1ta|Sion96|dai_original|hoshiyo|kujoo|nj0831|funiuni|egys3|Briareos|warriorking|bzb05445|juyenmaru|tanakara_botamochi|joenaha|riksdybednmtuk|dokaisha|vdsayere|TakamoriTarou|home1986|isaisstillalive|muramasa0717|lqgq|tinsep19|cad-san|katryo|garage-kid|Yamakatsu|Okky|emiladamas|suesh32|cotton6|maromii|kasajei|gabuchan|tukasa55|ryuzi_kambe|kaz5555|STARFLEET|okra2|mythm|repon|shields-pikes|kari-ko|cha-cha-ki|Sucker|takeodon|houyhnhm|takimo|tamakoshidada|kash06|kasaraku1|onavi|hanatarekozo3|kyotoeye|mornig89|cormorantcraft|seiyuDB|waman|benrista|nishiokamakoto|dora_rash|mkzk|twisted0517|y_ryuzan|takc923|HSIN|omi_k|sumida|vanishatea|detteyouchi|junkbots|segawa-y|thun2|delusion_epk|birthday66|tsfmysd|str017|mike_neko|k-p_aoikuma|sakura-hayabusa|sasaq|yakitori-siro|childdoc|komamix|U1and0|sasaboushi|ShangriLa|genpi|iww|as62|Gustav13|

2011-10-21

はてブ認定村人リスト2011年10月21日9時現在

http://childs.squares.net/murahatebu/village_peopleより。

記録の意味コピペしておく。

## 村長(むらおさ)

kanose

Asay

Blue-Period

FTTH

Hamachiya2

HolyGrail

Masao_hate

NATROM

NOV1975

REV

RPM

SeiSaguru

TakahashiMasaki

TsumuRi

activecute

angmar

## 要注意(要注意)

anigoka

aozora21

brainparasite

ch1248

complex_cat

ekken

feather_angel

feita

fromdusktildawn

fut573

gnt

guldeen

hatayasan

inumash

jt_noSke

kanimaster

katoyuu

kobeni_08

ks1234_1234

kyo_ju

laddertothemoon

lakehill

lastline

letterdust

mame-tanuki

mereco

mgkiller

mizukik

mkusunok

n-styles

nekora

nitino

ones-inch

ooo0_temaki_0ooo

otsune

p_shirokuma

rAdio

raf00

rgfx

rikuo

ruku

shibata616

surumeno13

tomo-moon

torin

torly

toya

triggerhappysundaymorning

tsugo-tsugo

tt_clown

ululun

umeten

watapoco

wetfootdog

white_rose

wideangle

yamifuu

ymScott

ymrl

yuiseki

zaikabou

zu2

## 以上 2011/10/12

houyhnhm

fellows

mongrelP

Midas

setofuumi

anzenchan

fk_2000

repon

mind

citron_908

laiso

## 以上 2011/10/13 済

nkoz

blackdragon

tari-G

pollyanna

FFF

finalvent

hiro_y

junkMA

kashmir108

matakimika

Lhankor_Mhy

yugui

mosshm

yukitanuki

atawi

another

nisemono_san

WinterMute

f-shin

CrowClaw

enemyoffreedom

cloverleaf24

kananaka

mobanama

lisagasu

suVene

sionsuzukaze

## 以上 2011/10/18 済

kana-kana_ceo

lovecall

kotorikotoriko

kowyoshi

dododod

hebomegane_sun

Louis

## 以上 2011/10/19 済

bigburn

Delete_All

Lobotomy

wanderingdj

tuya

Mu_KuP

yokomichisizuka

tailtame

r_kurain

hyaknihyak

rakusupu

highcampus

steel_eel

hexol

## 偉そうなユーザーシリーズ決定版より

zakinco

sorano_k

raitu

fladdict

Mamipeko

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

yteppei

nakamurabashi

koizuka

HiromitsuTakagi

ockeghem

elm200

kawango

pc_nagomu

k_wizard

parallel-world

retlet

Naruhodius

buhikun

machida77

flagburner

nadegata

mashori

keiseiryoku

keishut725

ak9

kaeru-no-tsura

TakamoriTarou

kagioo2uma

A410

YAK

K-Ono

## う~ん

maname

hkn

kiku-chan

T-3don

mattn

tyage

mae-9

tetzl

yudai214

doramao

beautymaquia

kubohashi

nasunori

kalmalogy

dal

wacking

shibuyan730

rikzen

yuhka-uno

yu-kubo

toshi20

westerndog

kusigahama

akiyan

nagaichi

kaitoster

## 以上 2011/10/20

## あとで入れる二軍(笑い)の人たち

## temtan

## jingi469

## logi

## Nihonjin

## Mash

## s-tomo

## Islecape

## sabro

## kash06

## nagayan111

## Okaz

## ezk

## border-dweller

## junta1999

## era1978

## meme-o

## yuyol

## garamani1983

## iru35711

## ketudan

## Griffin

## emiladamas

## harumomo2006

## w03wwww

## crosscrow

## mesotaro

## sucrose

## kakei

## yoshi1207

## microgravity

## airj12

## tomnyanko

## hatanaoki

## ysync

## superpuma

## MINi

## aoiro_moon

## catha

## otchy210

## spade9970

## touhousintyaku

## tuisumi

## migiri

## pQrs

## kokoronoyami

## dagama

## phallusia

## rindenlab

## nyoron0128

## T_Tachibana

## mitukiii

## takobue

## moerrari

## gan2

## sakura-sakasuyo

## niryo0113

## komatzy

## 入れない(入れたくない)

## Francesco3

## xevra

## hiroyukiegami

## ブックマーク内容見たらセルクマばっかりじゃねーか

## Chikirin

## yaneurao

2009-07-30

アンタッチャブル山崎は全盛期のビートたけしより凄い

ロンドンハーツ実名アンケート! 芸人リアル好感度調査」(前編,後編)は今が旬のブラマヨアンタッチャブル山崎が活躍して非常に面白かった。

番組はこんな感じ : http://www.tv-asahi.co.jp/londonhearts/contents/backnumber/cur/img/1_6.JPG

カメラは「アメトーーク」と同じロケ手法を使ったのかな。同じテレ朝の加持さんの番組だし。芸人のガヤや動きが漏らさず収められているので、実力のある芸人にとっては非常にやりやすそうだった。

その中で山崎がすっごいカブせまくってて、、すごい、もの凄い才能があるわ。。

まず他の芸人カブせ方はいろいろあって、こんな感じ。

ダウンタウン明石家、紳助

AAA → BBB、って何でやねん」 (やや乗り突っ込み気味)


とんねるず

AAAでBBB、みたいな」 (バブル期は「AAA、みたいな」のみ)


ホリケン

(前に出てくる)「AAA! → BBB! → CCC! → DDD! → EEE!」(後ろに下がる)


ビートたけしの全盛期

AAA → BBB → CCCだ、この野郎!(肩をヒクっとさせる) / DDD → EEE → FFFだって、ふざけんな馬鹿!(肩をヒクっとさせる)/


■今回のロンハーでのアンタッチャブル山崎

AAA(笑) → BBB(爆笑) → CCC(淳振る) → DDD(笑) → EEE(DDDの被せ) → FFF(笑) → GGGHHH(爆笑) → III → JJJ(笑) → KKK(笑) → LLL(笑) → MMM(LLLの被せ)(笑)


司会のロンブー淳がCCC以降に絡みながら話を引き出していく感じ。(笑)は笑いが起こり、(爆笑)は爆笑が起こった地点。

全盛期のたけしでも/の部分で一息入れてる感じがあるんだけど、山崎は「ブルドーザーみたいに持ってっちゃう(by東野)」。

東野は「さんまさんタイプ」って言ってたけど、こういうカブせ方を見てるとたけしタイプなのかも。

最近までのレッドカーペット的な短いお笑い流行りが終わった今このタイミング山崎に注目が集まってるってのが非常に面白い。そんでそれを迷わずすくい上げて放送してくれる番組もありがたい。

2009-05-19

レイプレイ騒動】希望現実正論戦略は、分けて考えよう。

ブコメへのレス

http://anond.hatelabo.jp/20090518131333

 

steam_heart Googleでセーフサーチ使って下さい!ぐらいしか策がないなあ・・・・・・

FFFGoogleセーフサーチとかキッズgoo/といいたいところだけど、そういう手間をしないで健全に見れるwebが良いと言う方が一定数いるんだろうなー

kadotanimitsuru そうだねGoogleのような危険サイト規制しないと

いやぁ言葉足らずですんません。

何を言いたかったのかというと、「サイト管理自重したほうがいいんじゃない?」ってこと。

同人サイトだけじゃなく、2chまとめサイトとか、年齢制限無しでエロ画像見れる、ありとあらゆるサイトについてね。

自重してますアピール大事だと思う。理由は次で述べる。

私自身はエロ画像見えてもあんまり気にしない。自分から見に行くこともあるよ。

 

Meat_eating_orchid BL 問題とは全然違う。なにが違うって BL の場合法律規制しろなんて無茶なこと言う人がいないこと。ところがエロゲでは五万といる。政治家が言ってたりする。

堺市図書館BL図書規制騒動知ってる? あれ政治家も絡んできてたよ。

その時は、図書館の自由に関する宣言と有害図書指定の基準などから、堺市図書館の対応に非があったということで、BL側の勝利だった。

BL界隈に対する風当たりが弱い理由は色々あって、その1つとして、腐女子自重する傾向にあるからだと思う。

見たくない人には見せないことそのものも大事だけど、見たくない人に見せないように努力しているという「アピール」は大事だと思う。

そのアピールさえ普段からしていれば、今回のようなことがあっても、

「まぁうっかりしてたんだろうな。次から気をつけろよ(´・ω・`)

で済む可能性はある。

一般人に理解してもらうには、普段は見たくない人に気を使っているアピールをしておいて、理不尽規制にはきちんとした根拠を示して反論することだと思う。いっそ一般人と共闘できる雰囲気に持ち込めると更に良い。

あと、「嫌なら見なければいい」というのは、「自分は見たくないけど、そういうのが好きなら、自分の見てないところでこっそりと楽しんでもらう分には別に構わない」という層まで敵に回してしまうんだよね。そしたら100か0か論になって、少数派は一気に叩き潰されるよ。戦略的にもあまり良いとは言えないと思う。

http://anond.hatelabo.jp/20080323015945

もう1つの理由としては、直接的な性犯罪性差別には繋がりにくい・現に繋がっていないと世間から「見なされていること(ここ大事)」。

現実に繋がっているかどうかも大事だけど、規制されないようにするには、繋がっているんじゃないかと「見なされないようにすること」が重要だと思うよ。

今回の騒動も、ここがポイントだったんだよね↓

実際に性犯罪が増えるか減るかは(あまり)問題じゃないんだってば

http://d.hatena.ne.jp/yuuboku/20090508/1241809239

自分がどう見られているかには注意を払ったほうがいいよね(若干改)

http://d.hatena.ne.jp/yuuboku/20090509/1241856965

暴力表現と規制

http://d.hatena.ne.jp/good2nd/20090514/1242334288

 

rag_en 理解されなきゃ規制されても仕方がないよってのはなんなんだろうなーと思う。

「理解されなきゃ規制されても仕方がないよ」って言ってるんじゃない。

「理解されなきゃ規制されてしまうよ!」って言ってる。

規制賛成派が世間の理解を勝ち取ってしまえば規制されてしまうんだから、規制されたくないんだったら世間の理解を勝ち取る努力をしないと。

こういうのは理解されたもん勝ちなんだよ。理不尽でもそれが現実

なんでここがわからないかなー。

 

誤解の無いように繰り返し言うけど、私はエロゲ抹殺反対派。

ただ、「嫌なら見なければいい」「ネットはそういうとこ」というのは、エロゲへの反発を更に招いてしまい逆効果なので、もっと一般人に受け入れてもらいやすいポーズを取ったほうがいいという話。

日本レイプ少ないし、レイプ多い国の場合でも、フィクションのせいにしてないで現実をなんとかしろよと思うけど、「自分は『正しいこと』を主張しているんだから、きっと受け入れられる」と思うのは、はっきり言って脳内お花畑だと思う。

それは、現実に即していない希望や願望であって、たとえ正論であっても戦略が無ければ負けるよ。

2008-05-30

増田のヘッダ部分を常に表示するようにしてみた

firefoxユーザースタイルシート機能を使って、増田のヘッダ部分をスクロールしても常に表示するようにしてみた。

変なところがあったら指摘頼む

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("anond.hatelabo.jp") {

div#globalheader {

position: fixed !important;

display: block !important;

visibility: visible !important;

background:#fff;

top:0% !important;

z-index:2;

}

div.hatena-body{

position:relative !important;

top:50px;

z-index:1;

}

}

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


  
  
 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん