「Click」を含む日記 RSS

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

2011-09-17

Google Reader+Firefoxはてなブックマークを快適に使う方法

やりたいこと

以下を全てGoogle Reader上で行いたい。

  1. フィードを登録する。
  2. リスト表示で記事タイトルを眺める。
  3. 気に入った記事をクリックして全文読む。
  4. 気に入った記事へはてなスターを付ける。
  5. はてブコメントを見る。
  6. ブコメはてなスターを付ける。
  7. はてブコメントを登録する。

まず、やったこと

以下をインストール
Google Reader Full Feed Modの設定変更

タイトルクリックしたら自動的に全文を取得して表示して欲しい。以下の設定を行うと出来る。

  1. Google Reader右上のギアマーククリック→「Full Feed Mod設定」をクリック→「Auto Load」をクリック
  2. 自動的に全文表示するアイテム」を「すべて」に変更
  3. 「OK」をクリック
Google Reader plus Hatenaの改造

ブコメが表示されないので、これを直したい。

id:northappleさんが「googleリーダー内ではてなブックマークのコメントを参照したいで.. - 人力検索はてな」という質問の回答及びコメント欄でこれを直す方法を教えてくれている。よって、その通りに変更すると直る。2ヶ所置換が必要。

不満な点

  1. Google Readerからワンクリックで「はてなブックマークFirefox拡張」の「ブックマークを追加」ウィンドウを開いて欲しい。
  2. ブコメには作成年月日だけではなく、時分も表示して欲しい。
  3. 記事を開いたら自動ブコメをロードして欲しい。
  4. Google Reader上で記事へはてなスターを付けたい。
  5. Google Reader上でブコメはてなスターを付けたい。
  6. タイトルが長いとブクマ数が隠れてしまうので、それを見えるようにしたい。

改造方法

以下、Google Reader plus Hatenaの変更点です。変更するには、Firefoxの右上にある猿(Greasemonkey)のアイコンの右にある下矢印をクリック→「ユーザスクリプト管理」をクリック→「Google Reader plus Hatena」の「設定」をクリック→「このユーザスクリプト編集します」をクリックするとエディタで「Google Reader plus Hatena」のスクリプトが表示されるのでそれを編集する。

1. Google Readerからワンクリックで「はてなブックマークFirefox拡張」の「ブックマークを追加」ウィンドウを開く。

62行目

mySpan.innerHTML = '<a href="http://b.hatena.ne.jp/entry/'+url+'" onClick="window.open(this.href,\'\',\'status=yes,scrollbars=yes,directories=yes,menubar=yes,resizable=yes,toolbar=yes\'); return false;" ><img src="'+ BookmarkImageURL +'" /></a>';

を、

mySpan.innerHTML = '<a href="http://b.hatena.ne.jp/my/add.confirm?url='+url+'"><img src="'+ BookmarkImageURL +'" /></a>';

に変更。これで「○○ users」をクリックすると、目的ウィンドウが開くようになる。

2. ブコメには作成年月日だけではなく、時分も表示する。

147行目

var t = bookmark.timestamp.split(" ")[0].split("/");

を、

var t = bookmark.timestamp;

に変更。

156行目、

html += "<li><span class=\"__hatena_bookmark_anywhere_timestamp\">"+escapeHTML(t[0])+"年"+escapeHTML(t[1])+"月"+escapeHTML(t[2])+"日</span><img src=\"http://www.hatena.ne.jp/users/"+escapeHTML(bookmark.user.substring(0,2))+"/"+bookmark.user+"/profile_s.gif\" width=\"16\" height=\"16\"><a href=\"http://b.hatena.ne.jp/"+escapeHTML(bookmark.user)+"/"+escapeHTML(t.join(""))+"\" class=\"hatena_bookmark_anywhere_user\">"+escapeHTML(bookmark.user)+"</a><span class=\"hatena_bookmark_anywhere_tags\">"+tags.join(", ")+"</span>"+escapeHTML(bookmark.comment)+"</li>";

を、

html += "<li><span class=\"__hatena_bookmark_anywhere_timestamp\">"+escapeHTML(t.slice(2,-3))+"</span><img src=\"http://www.hatena.ne.jp/users/"+escapeHTML(bookmark.user.substring(0,2))+"/"+bookmark.user+"/profile_s.gif\" width=\"16\" height=\"16\"><a href=\"http://b.hatena.ne.jp/"+escapeHTML(bookmark.user)+"/"+escapeHTML(t.split(" ")[0].split("/").join(""))+"#bookmark-"+escapeHTML(json.eid)+"\" class=\"hatena_bookmark_anywhere_user\">"+escapeHTML(bookmark.user)+"</a><span class=\"hatena_bookmark_anywhere_tags\">"+tags.join(", ")+"</span>"+escapeHTML(bookmark.comment)+"</li>";

に変更。

# ブコメはてなスターを取得しやすいように、ブコメリンクブコメパーマリンクへ変更してあります

3. 記事を開いたら自動ブコメをロードする。

300行目(インデントしか無い空行)


を、


var evt = document.createEvent( "MouseEvents" );
evt.initEvent( "click", false, true );
createSpan.dispatchEvent( evt );

に変更。(「 JavaScriptの動かないコード (中級編) clickイベントを強制的に発生させたい (fireEvent/createEventの使い方) - 主に言語とシステム開発に関して」を参考にさせて頂きました。)

4-5.

出来た。けど、めちゃくちゃソースが汚いので、差分として公開するのが難しい。ごめんなさい。

# どーやるのがベストプラクティスなのか分からない・・・

6.

どなたかご教示してくださると嬉しいです _ _

書いた人

id:al001

人力検索はてなで質問しました:人力検索はてな

2011-08-14

ダルい

何をするのもダルい

ダルい

そういえば外に出ていない。何日目だろう。ダルい

こないだ自転車乗ってるとき、「首つり用ロープって通販で売ってるんだよなあ」とぼんやり考えていた。

太陽の下でその思考はもうダメなのかもしれない。

1-Click死にたい

2011-06-29

〜頭の悪いブコメ

hk2mr_hu 社会 サッカーボールを避け転倒→足を骨折認知症になる→食べ物を気管につまらせ死亡。これでどうして死亡責任まで問われるかが理解できない。しかも問われるとしたら少年責任ではなく、学校管理責任だろう。 2011/06/28

から学校管理過失よりもより直接的な原因があるだろうがよ。

frsatti 司法, 事故, 裁判, 不法行為 国賠訴訟かと思いきや、どうしてこうなった。 2011/06/286 clicks

国賠に行くほうが例外。管理過失なんてのは、直接の加害者にゼニが無いとき代替手段だ。

shoji-no 事故, 裁判 高校野球バッターに「打ち方によってはファールボールスタンドの観客に当たることが予想できる」と言ってるようなもの。 2011/06/288 clicks

その場合は観客にファールボールが来ることについて同意がある。楽天砂かぶり席での事故について裁判があった。

mkusunok 風が吹けば桶屋が儲かる的な判決。ちょっと信じ難いのだが。学校管理責任を問わない理由も気になるところ 2011/06/28166 clicks

答えは簡単。原告学校被告にしなかったから。被告でもないのに責任問われたらおかしいだろ。

tdam 桂充弘弁護士の"やや酷な印象"との指摘以上に、老人にはありうる"認知症の症状""誤嚥(ごえん)性肺炎"までサッカー少年責任にするのはいくらなんでも因果関係過大評価だ。控訴審で覆ると信じたい。 2011/06/28

「老人にはありうる」などという一般論で、個別具体的な事件を判断してるなよ。被害者認知症じゃなかったんだから、「この」老人には「ありえ」なかった事故

kubomi 俺みたいにあらぬ方向へボールを蹴る可能性のある奴はもっと人殺しの顔をしろってことですか 2011/06/28

人を殺さないように気をつけろ。

bioweb 普通に学校管理責任じゃないの?なんでちがうの? 2011/06/289 clicks

管理責任のほうが例外的。それと学校被告になってない。

mrkn law, これはひどい "日本の"ではなくて"大阪の"司法が腐ってるんだろう。こういうのは最高裁で覆る気がしているんだが、そうならなければ結局日本司法が腐ってるという事になるね。 2011/06/2850 clicks

なんでいきなり最高裁なのかと思ったら、そうか、「大阪」だから高裁も腐ってるって言ってるのか。だがそうだとしたら、法律審たる最高裁で覆えすのは比較的難しい。

Nou せめて施設の問題やろ。。しかジジイて。。 2011/06/286 clicks

いや、蹴った奴が第一義的な問題だ。

muipla 社会, これはひどい じいさんに向けて蹴ったわけじゃないのに、どうして学校管理責任(ゴールの位置が適正だったとか)問われないんだよ。それに転倒して死亡したのではなく誤嚥性肺炎て…朝日タイトル直せ。 2011/06/286 clicks

道路ボール出すな。学校管理責任原告が問わなかったから。

Tora1014 無罪というわけにはいかないが1500万円なんて払えるのだろうか 2011/06/28

なんだよ「無罪」って。いつ「有罪」になったんだよ。民事と刑事の区別くらいつけろ。さもなきゃ黙れ。

oguogu 848事故, 560判決 判決内容に納得できないのは当然としても、どうして一審判決が出るまで6年も掛かっているのが気になる。事故愛媛なのに裁判大阪というところも。 2011/06/287 clicks

こいつ前にもいなかったか?管轄が気になるなら民訴法読め。管轄についてはかなり手前の位置にあるからすぐ見つかるだろ。

T_Tachibana これはひどい, 司法, 事故 たとえ子供がふざけて蹴り出したとしても校内活動中の事であれば問われるべきは学校側の管理責任では?ちなみに歳をとれば嚥下機能は低下するので認知症でなくても誤嚥性肺炎を起こす可能性は十分ある 2011/06/28

こいつ特に酷いな。もし子どもがふざけて蹴り出したんなら、断じて学校側の管理責任なんかじゃねーよ。なんでも学校のせいにしてんな。てめぇみたいなのが教育を滅ぼすんだよ。

touchmee 事故に合われた方には申し訳ないですが、このケースで子供の親に賠償責任があるというのは無理があるような気がしますけど。 2011/06/287 clicks

んじゃ子ども自身に賠償責任(709条)負わせてみるか?どっちが外道だよ。

kalmalogy これはひどい, 司法, 社会 "足を骨折。その後に認知症の症状が出るようになり"ここの因果関係証明とか無理だろ 2011/06/286 clicks

因果関係」が事実因果関係であれば、そこの因果関係は認めるべき。ひっじょーによくあるケース。

p_shirokuma 娑婆世界 子どもは「管理せよ」という公式見解。こういう判例が出るようだと、ますます子どもは育てづらくなるなー。 2011/06/2827 clicks

いや、子供管理しろよ。つか管理しろってのは100年以上も維持されてきた法的義務だ。

goshi_goshi これはひどい, 社会, 事故, 裁判, 司法, news, ニュース, 生活, education, sports これはどうなんだろう。フリーキック違法性なんて限りなくないと思うんだが… 2011/06/2811 clicks

公道ボールが出る危険を知りながら、何ら対策もせずにボール蹴ってたんだったら違法性あるだろ。

Moodykajigaya 最初少年が蹴ったボールで死亡したのかとおもった。素直に解釈すれば、「若者は余計な事を何もするな」。こんな酷い判決が出てしまう時点で「日本老害天国」と思う/ こういう訴訟こそ裁判員制度使うべき 2011/06/281 click

ばーか。民事に裁判員制度ってキチガイもいいとこ。

idiot-i 小5児童は校庭の中でサッカーをしていたのにこの判決? 2011/06/28

ボールも校庭の中に留まってたら良かったのにな。

tyatya_moon 最悪の想定ですべて動くと何も行動できなくなるんだが・・・本当に地裁とかとんでもない判決下すのが多いけどいらないんじゃないのか?こういう裁判こそ裁判員制度を導入すればいいのに・・・ 2011/06/28

最悪の想定でもいろいろ出来るだろ。お前の最悪の想定は「天が崩れ落ちてきたらどうしよう」ってやつだ。

koega これはひどい プロでも外すフリーキック。小五が一発外しただけで1,500万円の損害賠償。どうやったらこんな判決が出てくるのか。ぜひ最高裁まで戦ってほしい。 2011/06/28129 clicks

プロでも外すから、遊ぶ場所と角度は選べっつー事だよ。

hiroyukiest 裁判 これは酷だな。介護で生活が一変したってのはわかるけど、事故当時80歳前後のじいさんの余生に小5の少年(とその家族)の人生を変えるだけの価値があるのか疑問。まぁただの感情論だけど。 2011/06/284 clicks

あぁ。ただの感情論だ。「生活が一変」の中には介護費用もある。]

tawafu 小学生に大人なみの注意力を要求するとは!高齢者優遇社会(悪い意味で)。これでは、老人を敬う社会にはならないだろう。年長者(裁判官含む)への敬う心は廃れる。年長者だからこそ丸くおさめられないのか? 2011/06/28

大人並みの注意力なんざ要求してない。5年生に必要な注意力を基準にすれば、公道ボール出さないよう気をつけるべき。

linden 社会, 事故, これはこわい これは酷な判決だな。この記事を読む限り、少年よりむしろ学校側の管理責任が問われるべきだろう。 2011/06/287 clicks

むしろとか関係ない。なぜなら裁判所原告の訴えについてのみ判断するから

ahahasasa 87で1500万円って逸失利益の算出方法おかしすぎる・・・ 2011/06/28

逸失利益の算出方法おかしすぎる」と思うなら、なぜ損害額が逸失利益だと思うんだ?

imo758 これはひどい 校庭から飛び出さないようになんて特に子供に対しては大人が監督してもどだい無理。責任社会全体で負うべき。記事からの印象通りなら判決反社会的馬鹿。 2011/06/28

子供」の理解の決めが粗すぎる。「無理」だから放置するのか?何歳まで放置するつもりだ?

tihoujiti 訴訟 なんともいえない判決学校管理責任は問題ないのか、という観点もある気が 2011/06/28

その観点は訴訟では問題になってない。

kk6 「蹴り方によっては道路に出ることを予測できた」これが通るなら球技が行われるであろう校庭をもつ学校という施設を設置した自治体責任を問えちゃうよね 2011/06/289 clicks

自治体責任を問えるからと言って直接の加害者責任を問えなくなるわけではない。

yamasita3 社会 有罪はしょうがない気もするが、1500万か・・・。高齢者が増えてきたら、同じような事件が増えかねないし、なんらかの対策が必要だなあ・・・。 2011/06/286 clicks

有罪じゃねーよ。民事だっつーの。勝手犯罪者にすんな糞が。

filinion これはひどい, 司法, 学校 これは、学校(=市が)両親を全面的に支援して控訴すべき。こんなのが確定したら学校も大変なことになる。 2011/06/28

これは正しい。なぜ「学校も大変なことになる」かというと、両親から求償されるから民訴法上は補助参加を行うことになろう。

yoshi1ym 避けようとしたということは、前方にボールが飛んできたわけ。仮に飛び出してきたのが子供なら避けるのは当たり前、よけれるスピードで当たり前。牽いたら前方不注意じゃないですか?しかも脳の持病って運転に耐える 2011/06/281 click

轢かないで転倒したんだろ。子どもの飛び出しを避けようとして転倒し、子供には全く触れず、それで運転手に損害が発生したら、子供側に賠償責任あるだろ。

REV 後期高齢者の安全を担保した校舎設計学校運営が必要という判決だが、その金の出処が気になる。 2011/06/289 clicks

そんなことどこにも書いてない。せいぜい「子供にはボール公道に出さないようにしつけろ」。

z0rac それを云うなら、自力で立ってられない二輪車に乗ってることが事故を招いたとも云えないか? 2011/06/28

言えないだろ。だいたい二輪車は自走するし。

rz1h931f4c 裁判 そもそも87歳が運転するバイクなんて「事故が起こる危険性を予想できた」だろ。立法行政司法は何をやっとるんだ 2011/06/28

どういう事故だよ具体的に言ってみろよ。今回の事故はその「予見」した事故か?

chintaro3 これで有罪なら、東電はどこまで賠償することになるんだろう。 2011/06/284 clicks

有罪じゃねーよ。

 

つーわけで、頭の悪いブクマが多すぎる。

参考までに一応、基本的な処理を書いておく。

 

まず過失の有無。

行為の良し悪しを判断する能力があれば、故意・過失は認められる。例えば小学生でも人殺しは悪いことだと分かるんだから小学生による殺人には不法行為が成立する(3才児なら成立しないだろう)。で、この行為の良し悪しを判断する能力は、同じ年令でも、行為の種類によって変わってくる。例えば7才児にインサイダー取引の良し悪しを判断する能力はないから、この場合不法行為責任は発生しない。

しかるに「サッカーをする場合ボール公道に出してはいけない」という点については、小学5年生ともなれば判断できる。つまり小学5年生はボール公道に出さないように気をつけて遊ばなければならない。

とすると、そのような注意を怠ったんだから過失は認められるだろう。

 

そしてその過失によって公道に出たボールを避けようとしてバイクの運転手が転倒した。少なくともこの段階についてまでは、因果関係を肯定できる。因果関係をどこまで肯定できるかについては後述する。

そうすると、少なくとも一定の範囲で少年不法行為が成立する。

もっとも、5年生というと、ボール公道に出したことによる(法的)責任についてまでは、判断能力が追いつかないかもしれない。というわけで、子供への優しさを持って、この少年には責任弁識能力(712条)が認められないとする。そうであれば、この少年自身は不法行為に基づく損害賠償責任を負わない。

もっともそのような場合「その責任無能力者を監督する法定の義務を負う者」が賠償責任を負う(714条1項)。すなわち両親だ。行為当時直接に子供監督していたか否かは問題とならない。子供勝手にどっかに行って不法行為を行ったときに、被害者泣き寝入りになっては困るからな。

というわけで、晴れて両親に賠償を命じた判決の正当性が説明できた。

 

ところで少なくないブコメが言う「学校側の管理責任」とやらは何なのか。

普通は、損害賠償請求は直接の加害者に対して行う。しかし、加害者が一私人だと損害賠償に足るだけの金を持ってないかもしれない。そこで、絶対に取りっぱぐれない相手に請求しようと考える。

ここでふと考えてみたときに、もし学校に「管理責任」が認められれば、その管理責任違反因果関係のある損害について賠償請求できる(国家賠償法1条,2条)。

そういうわけで、もし学校側と戦っても勝てそうであれば、より確実に金を回収できる学校を相手取って戦うわけだ。

さて、学校と直接の加害者(少年)のいずれにも損害賠償責任がある場合にはどうなるか。両者は共同不法行為を行ったと言うことができるから、両者の損害賠償責任は不真正連帯債務となる。つまり学校少年側、いずれに対しても、損害の全額を賠償請求できる(2賠の額を請求できるわけではない。一方から全額の支払いを受ければ、債権が消滅して他方には請求できなくなる)。

そして、学校側と少年側の間で、それぞれの責任の割合に応じて、被害者に支払った額について折半される。例えば責任の割合が(少年学校側=6:4)だとして、少年側が全額(10割)を支払ったならば、学校側に、そのうちの4割について少年側に支払うように請求(求償)する。

というわけで、学校側の責任というのはあくまで加害者同士でやり取りする問題に過ぎない。

あと、裁判所は訴えのないことについて勝手に判断してはいけないから、原告少年側だけを被告としているならば、学校管理責任について判断してはならない。

 

で、本件の判決で問題となるのは、むしろその損害賠償の範囲だ。

実務に従えば不法行為と「相当因果関係」のある損害について、賠償責任が認められる。相当因果関係の有無は、簡単にいえば予見可能性で画定される。

公道ボールが出たら車両事故るかもしれない。車両事故れば骨折くらいはするだろう。だから常識の範囲内で考えれば、少なくとも骨折については損害賠償が認められる。問題はその先だ。

骨折から認知症認知症から誤嚥、誤嚥から窒息死という各段階は、少なくとも事実因果関係としては、いずれも肯定しうる。骨折ボケが関係ないと言ってる奴は常識がないだけのこと。

しかし、だからといってそれが過失行為との相当因果関係を肯定しうるような予見可能性のあるものとは、必ずしも言い難いところがある。特に骨折から認知症というプロセスは、被害者が高齢老人であるという被害者側の素因を加味して初めて予見可能であり、そうであれば予見可能性を否定するか、あるいは被害者側の訴因について損害の公平な分担の見地から過失相殺類推するべきだと思う(私見)。もっとも、飛び出したボールによる事故が予見できるならば、その被害者若者だと信じるほうがおかしいとして、高齢者の可能性も予見できる以上、認知症もまた予見可能だと、そういう見解が全く突拍子も無いとまでは言えない。

サッカーボール避け転倒死亡 蹴った少年の親に賠償命令 についた頭

技術系では自分素人だという自覚があってだんまりの人も、なぜか法律系は自分素人だという自覚が無くなるようで。

はてなブックマーク - asahi.com(朝日新聞社):サッカーボール避け転倒死亡 蹴った少年の親に賠償命令 - 社会

tama_lion 「ボール道路に出て事故が起こる危険性を予想できた」えええーだったらゴール置いた学校責任じゃないの?つーか87歳なんて...いややめとこ 2011/06/2826 clicks

「予想できた」のはサッカーボールを蹴った人。なので責任は一義的にはサッカーボールを蹴った人にある。id:tama_lionは、自分の敷地内で遊んでる人間が他人に怪我を負わせたら、その責任が真っ先に自分に振りかかると思っているんだろうか?

napsucks 87って・・・もう寿命じゃんw 社会的生産性もないし命の残存価値など皆無だろw それに1500万って・・・頭おかしいわ 2011/06/284 clicks 40

1500万円も逸失利益があるわけ無いと思いながら、1500万円が逸失利益だと思っているという。ばーか

solt-nappa ため息, 社会 うかうかサッカーの練習もできないよのなかになるな。イヤダイヤダ。 2011/06/28 18

半分正解。だがうかうかにも程がある。例えば公道を挟んでキャッチボールしたら「うかうか」じゃ済まされない。程度問題であり、遊ぶ側としては公道ボールを出さないべきだろう。

akawi フリーキックホームランしたら人殺し呼ばわりされた挙句1500万? どう考えてもおかしいだろ 2011/06/2816 clicks

「どう考えても」の「どう」は空集合。「フリーキックホームランした」というから悪くないように見えるが、「公道サッカーボールを出したら交通事故が起きた」場合に何も悪く無いと思うのだろうか?

AKIT こういう判決が出るから裁判官常識がない」と言われるんだよな。 2011/06/28 78

判決読んでから言え。

nextworker 普通、こういうとき学校管理責任を訴えると思うんだけど、遺族はどうして少年被告にしたんだろう。少年の両親が金持ってたのかな。 2011/06/28 56

それは「普通」じゃない。少なくとも民法の原則から言えば、責任追及は一義的には過失行為を行った者に対して行う。それが少年であるがために714条で両親に追求したわけだ。過失行為の主体ではない学校管理責任を問うのが寧ろ裏道であり、学校市町村からは取りっぱぐれないからという、まさに金のために殴る相手を広げる例。

しかも「少年被告にし」てもいない。記事を見ろよ。「両親に」支払いを命じたって書いてあるだろうがよ。

こんな何一つ正しくないコメに☆が大量についているのはまさに集合恥。

kiria25 裁判 これはちょっとおかしくない?少年の過失は限りなく0に近いと思うんだが。 2011/06/28

お前は公園で遊ぶとき公道ボールを出すなと教わらなかったのか?

過失はある。そして、「ある」ならば、1だろうが100だろうが、損害賠償責任を負う。被害者に過失がない以上、過失相殺はされない。

toronei news, 社会, soccer, sports これ少年側の責任なの? むしろ学校側の安全責任が問われるべき例じゃないの? これではもう子ども球技なんて親は怖くてさせられないよなあ。 2011/06/28

少年側の責任だろ。少年側に過失がなかったらどうして学校側に責任があるんだよ。

学校側に責任があるとしても、それは少年との共同不法行為ということになるから少年側の損害賠償責任はびた一文免れない。

Kou_RYU 社会, 裁判, ため息 東電原発事故でも助け舟がでるのに、19歳がボールを蹴ったら1500万円支払えと言われる国ニッポン。年寄りを狙って蹴ったわけじゃないんでしょ? 2011/06/28

年寄りを狙ってないから過失が無いと?ってかボール蹴ったの19歳じゃねーよ。19歳だったら両親じゃなくてガキに直接請求だっつーの。

sasurai7 裁判, 事故 裁判を起こすのなら、サッカーやってた少年より、学校の施設管理責任ゴール裏ボール飛び出し防止用のネットを張る必要があったか等)が問われるものでは? 2011/06/28

前述の通り。つーか、加害者より加害者が利用してた施設っていうその発想が馬鹿

kz78 自分ちの庭で壁打ちでもやってたのかと思ったら、校庭でゴールに向かってボール蹴ったのか。それで賠償責任が発生するのはきつくないか。 2011/06/2813 clicks

自分ちの庭と校庭で何が違うんだよ。

ssig33 これ事故と死因全然関係ねえだろ 2011/06/28

相当因果関係の認定は微妙ではある(後述)。が、全然関係なくはないだろ。

Cai0407 これはひどい なんでボール蹴った少年責任が問われるの?学校管理責任のほうが大きいと思うんだが。しかボール避けて転倒→骨折認知症発症→誤嚥性肺炎で死亡→1500万賠償とつなぐのは無理じゃね? 2011/06/2838 clicks

「のほうが大きい」とか言ってる時点で馬鹿。共同不法行為から学校少年の両者が全額の損害賠償責任を負う。つまりどっちが大きいとか関係ない。

mobanama 社会 不幸な事例だが、これ施設管理の問題じゃないのか?なんか色々と狂ってる。 2011/06/28

施設管理「も」問題になりうるに過ぎない。

bbk0524 これはひどい 87歳が街中でバイク乗り回すことの社会的責任は一切問われないのかよ。老人のゴネ得社会だなこの国は。 2011/06/28 67

なんで87歳(86歳だがな)が街中でバイク乗っちゃいけないんだ?

redfox2667 87歳で認知症になったのが子供のせいか? 因果関係が怪し過ぎ。 2011/06/2833 clicks

あとで書こうと思ったが、ここで書いてしまおう。今回の件と関係なく、しゃっきりしてた老人が骨折して歩けなくなった途端に認知症を発症するというのは、かなり頻繁に見られる症例だ。そうすると「認知症になったのは骨折のせい」とは言いうる。そして今回の骨折少年のせいだから事実因果関係は肯定できる。

ただし87歳ともなればもともとボケやすい状態にあったといえる。それゆえ「被害者の素因」によって722条2項の趣旨に照らして損害額を減じたのだろう。記事にそれらしき言及がある。

himomen これ記事だけ見る限り絶対おかしいな、何か報道されない何かが隠れてるんだろうな 2011/06/28

絶対おかしいとまでは言えない。もちろん報道鵜呑みにしない姿勢は良いのだが、存在しない情報を求めるだけでなく、報道意味を正しく咀嚼することも必要だ。

benriman 事故, 社会 この記事だけでは、因果関係おかしい。事故予測できないだろ。 2011/06/28

いやいや、(ボケ→窒息はともかく)事故ぐらいは予測しろよ。公道ボール出したら事故ぐらい起きるわ。「ゴールに向かって蹴ったボールが外れるわけがない」ってか?日本代表になれよ。

hatomaguro これはひどい 転倒→骨折入院認知症進行→誤嚥性肺炎→死亡の流れはよくある話。"学校"側が転倒までの責任を負うなら判るけど。。。 2011/06/28

なぜ加害者をおいて真っ先に学校側になるんだよ。その方がわかんねーよ。

chi-bit これ重いよなぁ。これじゃ外で遊べなくなる可能性があるし、それを言うなら小学校側の責任は? 2011/06/28

前述のとおり。あるとしても共同不法行為

okgwa 酷なようだが、87でバイクに乗るリスク過小評価してた遺族側の過失のほうがよほど大きいと思う。しかしこの判事事故認知症との因果関係をよく認めたなあ。司法常識ではあり得ないという印象。 2011/06/2813 clicks 67

87でバイクに乗ることが「過失」だって?んなわけねーだろ。「司法常識」とかいうんなら参酌できる「過失」の意味を理解しとけよ。

ERnanchan これって、賠償命令ひどくねえ? 少なくとも記事の文面だけからみれば。トンデモ判決かどうかの第三者評価が必要そうな第一印象。 2011/06/28137 clicks

賠償「命令」?少なくともお前に「第三者評価」は無理だな。

pwiser これで1500万円はヒド過ぎで加害者不可抗力学校で練習中にボールが外に出たってことなんだから払うのもどうかと思うわ。それ以前に87歳でバイク運転してた爺さん側が一番落ち度あるから被害者側屑過ぎて笑えない。 2011/06/28

不可抗力意味を調べて出なおせ。1500万円「は」ヒド過ぎっていうんなら1万円なら良いんか?それなら不可抗力じゃねーよな?

つか何で「学校で練習中にボールが外に出たってことなんだから払うのもどうかと思う」んだよ。練習無罪ってか?

spoichi 社会, 司法 せめてワクの中に蹴れという司法からメッセージか。 2011/06/28

ちげーよ。本田だってしまくってんだろーが。「せめて公道ボール出すな」だ。

suyntory_junnama jiken p なんて判決だ!! 少年の行為より、87歳でバイクに乗って出かける行為の方が問われるべき。何故家族バイクに乗る事を止めさせなかったのか、何時か他人を巻き込む事故につながると予測しなかったのか。其方の方 2011/06/2810 clicks

何を「問われる」ってんだよ。他人を巻き込む事故?他人に巻き込まれたんだよ真逆じゃねーか。

shukaido170 asahi, education 子「ママサッカー行ってくる」母「サッカーなんかして誰かに怪我させたら大変だからDSやってなさい!」な世の中になるんだね…。 2011/06/2813 clicks

ボール道路に出さないように気をつけなさい」でいいだろ。

nippondanji さっぱり理解できない。入院生活が認知症に悪影響を及ぼしたのなら病院を訴えるべきだろ。老人が入院したら認知症になるなら誰も入院出来なくなるだろ。 2011/06/28143 clicks

記事を読め。いつから入院したんだ。

ftype パソコンニートになったのでパソコン会社を訴える、オンラインゲーム人生失ったので運営を訴える、2ch人生棒に降ったのでひろゆきを訴えることもできるようになりますか? 2011/06/28 19

ぜんっぜん関係ないじゃん。

BRITAN 極論、校庭から出るのを防げなかった学校の柵が悪いんじゃないの?飛ぶ方向制御なんてプロでないと無理だよw 2011/06/2821 clicks

そう思うんならそんな場所でサッカーするなってことだ。学校が悪くて少年は毫も悪くないってか?ばーか

TakamoriTarou 社会, 事故 訴えるなら子どもじゃ無くてネットを張ってなかった学校側なんじゃないかな。子どもが蹴ると超える事が予想できるような状況なら、学校側がそういう状況を予想できるはずだし回避義務があるような気がする。 2011/06/28

から学校けが悪いのかよ?

rakko74 普通に考えれば学校責任となるはずだが、どうしてこんな判決になるのかよくわからん。 2011/06/28

普通に考えたらボールを蹴った奴の責任。施設管理者はおまけ。

mmsshhrr これはひどい 「蹴り方によっては道路に出ることを予測できた」( ゚д゚)ポカーン 2011/06/2814 clicks

お前は予想できないのか?

hi_kmd これがアリなら傷害事件も殺人事件に出来そうな気がするぞ。 2011/06/28

しねーよばーか。民事だし過失だし、何一つ記事と関係ないだろ。

naga_sawa そもそもボール存在する以上、道路ボールが出る可能性は0にはならない/すなわち、急いで全国の学校・家庭・販売店etcからサッカーボールを撤去しろ!間に合わなくなっても知らんぞー!! 2011/06/28

いや0になるだろ。

You-me 事故, 司法 これはもし事故責任を問うなら、損害の公平な分担を求めるなら両親じゃなく施設管理者じゃないかなぁ/老人の歩けなくなるような事故痴呆の関係は割と認められてたような気がしなくもないけどどーだったろ 2011/06/28

から施設管理者はせいぜい共同不法行為責任被告になってないなら不真正連帯債務から施設管理者なんて出てこない。「損害の公平な分担」「施設管理者」なんて言葉を使ってみても、民法知らないのな。

API 社会, バイク 認知症の老人が普通に死亡しただけちゃうの。 2011/06/28

記事読め。被害者認知症じゃなかった。

ysync 社会, 裁判, これはひどい どんなに厳しく見たって、骨折治療費までだろ… 2011/06/28

「どんなに」は空集合

shinkichi1986 記事まとめ このガキに罪があるわけ無いだろ、しかも当時小学生だぜ?むしろ学校側の不十分な安全対策が原因だな。だいたい運動場ではボールで遊んでる生徒が多いのに学校の囲いの金網って低いんだよなぁ。しかも外は通勤道路。 2011/06/28

お前は自分子どもに、公道ボール出すなと教えないのか?

10歳ともなれば、ボール遊びについて、責任を弁識する能力は書くとしても、事理を弁識する能力はある。

kaeru333 これはひどい, 裁判 裁判官世界がどんな感じで見えてんだろ・・・ それにしても、なぜ遺族は少年を訴えたんだろ。 2011/06/2845 clicks

被告少年じゃなくて両親な。そしてそれは極めて当たり前の話だ。加害者少年なんだから

ze-ki news 色々おかしい。だいたいバイクの87歳男性、足骨折しただけなのになんで認知症と結び付けられてるのか分からん。どういうロジックだよ。 2011/06/2864 clicks

お前は認知症をどれだけ知ってるんだ?前述のとおり、骨折から認知症発症はかなりよくあるパターンだ。

weekly_utaran なぜ学校側の施設管理責任ではないのか、そもそもこの年齢でバイクに乗ることによる事故危険性は?高裁で逆転判決が出て欲しい、そうしないと全国の学校の校庭でサッカー禁止になる 2011/06/28112 clicks

原告少年過失責任を問うたから。問われてないことについて裁判所は答えてはいけない。被告でもないのに急に賠償責任負わせられたらおかしいと思うだろ?

W53SA これはひどい判決は『蹴り方によっては道路に出ることを予測できた』と指摘」裁判官常識のなさに危機感を覚える。学校ではなく親を責める遺族側の発想を是認するのもおかしい。 2011/06/2814 clicks

いや、ボール遊びするとき公道ボール出さないように気をつけるのが「常識」だろ。お前の常識のほうが実害付きで危険だよ。

そして学校ではなく親を責めるのが民法の原則。なんで場所貸してただけで、蹴り出した張本人(の代位責任)を負うのか、そっちの方が例外的な考え方だ。

kumakuma1967 わからん, 児童権利侵害 100%少年責任がないとこの額は出ない気がするが、ボールから死亡まで予期できる裁判長ニュータイプか?事故愛媛なのになぜ大阪地裁田中裁判長名でググる信楽事故トンデモ判決も出てきた。http://goo.gl/AVqzd 2011/06/28

100%じゃなかったって記事に書いてあるだろ。

つーか裁判所の管轄について疑義を呈してる時点でテメーのほうがよっぽどトンデモだよ。管轄は民訴法で細かく定められているが、今回はおそらく不法行為の結果(死亡)発生地だろう。不法行為においてはできるだけ被害者に都合よく管轄を認めるのが民訴法の立場で、その立場はまったくもって正当だ。

as62 民事は、一方の主張に対して他方が否定主張をせずにほっとくと事実認定されてしまから、単に少年側の法廷戦略が下手すぎなだけなような。常識的に負けるわけねえと弁護士つけてなかったとか、あるんじゃないか? 2011/06/28

7年もかかってるのに弁論主義で処理ってのは無いだろ。まして本人訴訟なら求釈明する。

toaruR 少年や両親に過失があるなら、爺さんとその家族にもありそうなもんだけど。せめて、学校のせいだろ……地裁にしても酷い 2011/06/28

なんでそこで「せめて、学校のせい」がボール蹴り出した奴より先に来るんだよ。

X-key こういう事故こそ裁判員制度を使えばいいと思うのだが。 2011/06/28

「使えばいい」って、使えねーだろ。まさか民事に裁判員制度導入しろってか?悪夢もいいとこだ。

iwamototuka 裁判, 事故 そこまで小学生(当時)個人に責任持たせるのかよ。うかつに校庭でサッカーもできないな 2011/06/289 clicks

責任の主体は親、な。

nobuharasawa バイクでこけて死んだのかと思ったら、足を折っただけ。それで1500万円はあり得ん RT@ 2011/06/2810 clicks

「足を折っただけ」なら「1500万円はあり得ん」のに、なんで「足を折っただけ」で「1500万円」の判決が出たと思うんだ?

yukimi1977 これはひどい ボールが原因で死亡事故を起こしたわけじゃないのに。もしそうでも学校の過失で少年じゃない。ぐぐったらこの裁判官、別の判決でも因果関係が?な過失を認めてる。 2011/06/28

少年じゃないって理屈おかしい。過失がなくってボール公道に出るかっつーの。そんなんで責任負わされてたら校庭でボール遊び禁止だろ。

Sophitia 「蹴り方によっては道路に出ることを予想できた」のは、ボールを蹴った本人じゃなくて、そんな環境下で蹴ることを許した学校側の責任でしょ。その辺りを取り違ったおバカ判決。絶対控訴すべき! 2011/06/28

いや、本人だろ。なんで本人が予想できないと思うんだ?

zorio こういうのこそ裁判員制度の対象になって欲しい気がする。 2011/06/2817 clicks

また馬鹿か。

gebonasu30km この理屈で行くと結構な人が東電から賠償金もらえそうだな 2011/06/28

これはその通りで、結構な人が東電から賠償もらえるんだよ。東電のせいで倒産とか自殺とか、ちゃんと賠償請求できるってことをアナウンスしてたらもっと減ってるはず。

daisuk-com *その他, 裁判 どう考えてもこれはひどい。施設管理学校じゃなくて子供側を訴えたのかわからん。 2011/06/2812 clicks

「どう」は空集合。請求先は子供側が通常。

suzuki_kuzilla 東京電力原発放置したせいで就職活動が長引き巨額の交通費支払いと長期にわたって授業を受けられないという損害を受けました。って訴訟する? / asahi.com朝日新聞社):サッカーボール避け転倒死亡 蹴った少年の親 2011/06/28

これはちょっと無理筋かも、と思う。

snowdrop386 司法 おかし判決だ。事故と死因の相当因果関係がなく、さらに学校管理下での行為によるものなのに保護責任を親と安易に決めている点が特におかしい。 2011/06/28

いや、保護責任じゃなくて714だから親なんだろ。子どもの居場所ごとに714の主体が変わるとでも?

Marin_MTB 事故, 裁判, これはひどい これ認めちゃダメでしょう。校外にボールが飛び出さないような校庭をつくるしかないじゃん。 2011/06/2811 clicks

程度問題ではあるが、そういう校庭が普通だろ。ゴールの方向に出口があるわけじゃなければ、出口方向に転がったボールは大して勢いは無く、外に出る前に走って追いつく。

NOV1975 司法 これは検察と弁護側とどっちの質が悪いの?司法と併せて三冠王か? 2011/06/2868 clicks

ちょwwww 検察てwwww 馬鹿すぎる。

hk2mr_hu 社会 サッカーボールを避け転倒→足を骨折認知症になる→食べ物を気管につまらせ死亡。これでどうして死亡責任まで問われるかが理解できない。しかも問われるとしたら少年責任ではなく、学校管理責任だろう。 2011/06/28

からPermalink | トラックバック(1) | 00:19

2011-05-03

http://anond.hatelabo.jp/20110502110332

サイトを作った者です

アドバイスありがとうございます



>とりあえず、メッセージウィンドウ送りの下三角エンタキーを$.clickと$.keyupでフックするんだ。

>それで使いやすくなると思われ。



フック……? 曲げる? 引っ掛ける? フックボタン?

もうホンマにすみません。こういう基礎用語も分からないのです

「フックする」の検索wikipediaとかヒットしたけど、いまいち分かりません……。

でも、「メッセージウィンドウ送りの下三角」をクリックして進んだりすると、使いやすいかもしれませんね!

あ、でも下三角は隠れているところがあるので、メッセージ枠のどこかをクリックで移動させてみます



メッセージ枠を クリックすると

  「進む」クリックと同じことをする」

ってな感じで、ほぼコピーでいけました



で、keyupですが……これは何か、キーを押して離したら動くみたいですね。

ですが、検索をかけて出てくる解説を見ても全然からない。

というわけで、必殺技行きます

「必殺! 手当たりしだい検索して解説コードを見つけてコピペする!!」

したらありました

JavaScript + Ajax 実践サンプル集 - jQuery 1.4.1のanimate()の使い方



$(function() {

$(document).keyup(function(event) {

if (event.keyCode == 13) { // enter key



こんな感じで書くんでしょうかね?

モノマネして書いたら、なんか動いたのでたぶんOKだと思われます

……いつもながらヒドイ方法です

あと、ifの中にifとか入るのかな……と、気になったんで、実験してみたら動きますね。おー、面白い



というわけで、ドラクエサイトは、エンタキーを押せば以下の動きをするようになりました

1・最初の表紙が出ているなら、表紙が消える

2・そうでないなら、「すすむ」クリックと同じ動きをする



おお、なんかパワーアップ!

てか、エンタキーとか、そういうのでもjQueryって動くんですね。

矢印キーとか組み合わせれば、なんかゲームっぽいのも作れそうな……。

やっぱjQueryはすごいですね。



ただ、分かりやすいとはいえ、まだまだ奥は深いです

実は、新しい機能でエラーが発生しました

「もどる」を押した後にエンターで進もうとすると謎の動きをするんです

もう一度「すすむ」などで移動すると、またリターンの移動ができるのですが、なんでしょうね。

いろいろ調べてみたんですが分かりません。またゆっくり勉強して解決策を探してみます

なので、「エンターで進む」は隠しコマンドみたいな感じにして、このエラーもふくめて残しておきます



アドバイス、どうもありがとうございました!!

2011-05-02

http://anond.hatelabo.jp/20110502041801

とりあえず、メッセージウィンドウ送りの下三角エンタキーを$.clickと$.keyupでフックするんだ。

それで使いやすくなると思われ。

2011-05-01

転載

誤字脱字は勘弁な。

I was at home the other night inth middle of my dinner when the phone rang.


ME:Hello.

AT&T:Yes, thie is AT&T...


ME:Thie is AT&T,

AT&T:Yes, this is AT&T.


ME:Is this AT&T.?

AT&T:Yes! This is AT&T, may I speak to Mr.Byron, please?


ME:May I ask who is calling?

AT&T:This is AT&T.


ME:OK, hold on.


At this point I put the phone down for a solid 5 minutes thinking that, surely, this person would have hung up the phone. I ate my salad. Much to my surprise, when I picked up the receiver, they were still waiting,


ME:Hello?

AT&T:Is this Mr.Byron?


ME:May I ask who is calling, please?

AT&T:Yes, this is AT&T...


ME:This is AT&T?

AT&T:Yes, this is AT&T...


ME:The phone company.

AT&T:Yes, sir.


ME:I thought you said this was AT&T.

AT&T:Yes, sir, we are phone company.


ME:I already have a phone.

AT&T:We aren't selling phones today, Mr.Byron. We world like to offer you 10 cents a minute, 24 hours a day, 7 days a week, 365 days a year.


ME:Now, that's 10 cents a minute, 24 hours a day?

AT&T:(getting a little excited at this point by my interest) Yes, sir, that's right! 24 hours a day!


ME:7 days a week?

AT&T:That's right.


ME:I am definitely interested in that! Wow!! That's amazing!

AT&T:We think so!


ME:That's quite a sum of money!

AT&TYes, sir, it's amazing how it adds up.


ME:OK, so will you send me checks weekly, monthly or just one big one at the end of the year for the full $52,560; and if you send an annual check, can I get a cash advance?

AT&T:Excuse me?


ME:You know, the 10 cents a minute.

AT&T:What are you talking about?


ME:You said you'd give me 10 cents a minute, 24 horus a day, 7 days a week, 365 days a year. Thats comes to $144 per day, $1008 per week and $52,560 per year, I'm just interested in knowing how you will be making payment.

AT&T:Oh, no sir. I didn't mean we'd be peying you, You pay us 10 cents a minute.


ME:Wait a minutes. how do you figure that by saying that you'll give me 10 cents a minute, that I'll give YOU 10 cents a minute? Is this some kind of subliminal telemarketing scheme? I've read about things like this in the Enquirer, you know.


AT&T:No, sur, we are offering 10 cents a minute for


ME:THERE YOU GO AGAIN! Can I speak to supervisor please?

AT&T:Sir, I don't think that necessary.


ME:I insist on speaking to supervisor!

AT&T:Yes, Mr.Byron. Pleas hold.


At this point, I begin trying to finish my dinner.


SUPERVISOR:Mr.Byron?

ME:Yeah.


SUPERVISOR:I understand you are not quite understanding our 10 cents a minute program.

ME:is This AT&T?


SUPERVISOR:Yes, sir, it sure is.

ME:(I had to swallow before I choked on my food, It was all I could do to suppress my laughter and I had to be Careful not to produce a snort.) No, actually, I was just waiting for someone to get back to me so that I could sign up fo the plan.


SUPERVISOR:Ok, no problem, I'll transfer you back to the person who was helping you.

ME:Thank you.


I was on hold once again and managed a few more monthfuls. I need to end this conversation. Suddenly, there was an aggravated but polite voice at the other end of the phone.


AT&T:Hello, Mr.Byron, I understand that you are interested in sighning up for our plan?


ME:No, but I was wondering - do you have that "Friend and Family" thing because I'm an only child and I'd really like to have a little brother...


AT&T:click.........

2011-04-02

play on tumblr 動いてる?

via http://coderepos.org/share/browser/lang/javascript/userscripts/playontumblr.user.js?rev=38679 | text post image open : http://gyazo.com/0722c749cb50c704d4e9923bdd6b6fce.png -> http://gyazo.com/e8f082af69a038e0ea58775c2cec7ad5.png — Gist

最新はこれでいいんですか?

誰も話題にしてないので俺だけかな

reblogcount しか動いてなかったので自力で直そうと頑張ってみたが、

よくわからないのでぐっちゃぐちゃになってしまった

プログラミング素人ですすみません

一応動画再生画像の拡大2種の3つに関しては動くようにできた

likeは使ってないのでとくに見てませんすみません

ここがわからない
if (img[n].style.display != 'none') {
  click($X('./a', img[n])[0]);
  return stdin;
}
else{
  click($X('./preceding-sibling::a[1]', img[n])[0]);
  return stdin;
}

および

if (mov[n].style.display != 'none') {
  click($X('.//a', mov[n])[0]);
  return stdin;
}

これは何をしてるんでしょうか?

したままだとどうもうまくいかなかったので丸ごと削ってしまった

クリックすべき要素を直接XPath指定、にしたんだけどマズイ?

以下patchです

@include に www.tumblr.com/queue* も勝手に足してしまいました

どなたかまともにしてくださいm(__)m

--- 20101127_play_on_tumblr.user.js
+++ 20110402_play_on_tumblr.user.js
@@ -6,6 +6,7 @@
 // @include        http://www.tumblr.com/show/*
 // @include        http://www.tumblr.com/tumblelog/*
 // @include        http://www.tumblr.com/tagged/*
+// @include        http://www.tumblr.com/queue*
 // ==/UserScript==
 
 (function() {
@@ -43,25 +44,15 @@
         command: function(stdin) {
           try {
             if (!stdin.length) stdin = execute('current-node');
-            var img = $X('.//div[starts-with(@id, "highres_photo")]', stdin[0]);
+            var img = $X('.//img[contains(@id, "thumbnail_photo_")]', stdin[0]);
             for (var n = 0; n < img.length; n++) {
-              if (img[n].style.display != 'none') {
-                click($X('./a', img[n])[0]);
-                return stdin;
+                click(img[n]);
               }
-              else{
-                click($X('./preceding-sibling::a[1]', img[n])[0]);
-                return stdin;
-              }
-            }
-            var mov = $X('.//div[contains(@id,"watch_") and .//a]', stdin[0]);
+            var mov = $X('.//img[contains(@id,"video_thumbnail_")]', stdin[0]);
             for (var n = 0; n < mov.length; n++) {
-              if (mov[n].style.display != 'none') {
-                click($X('.//a', mov[n])[0]);
-                return stdin;
+                click(mov[n]);
               }
-            }
-            var timg = $X('.//img[contains(@src,"tumblr.com/tumblr_")]|.//img[@class="inline_external_image"]', stdin[0]);
+            var timg = $X('.//img[contains(@class, "inline_external_image")]', stdin[0]);
             for (var n = 0; n < timg.length; n++) {
               click(timg[n]);
             }

2010-03-09

Evernote広告×ボタンに思う

最近話題のEvernote

私も少し前から無料アカウントで使っているのですがちょっと気になったことがあります。

それは表示される広告の右上に×ボタンがあってそれをクリックすると「広告を消したければ有料アカウントアップグレードしてください」的なメッセージが出ること。

どうなんでしょうこれ。

広告を表示すること自体ではなく広告は消せないのにわざわざ×ボタンを表示してクリック誘導するやり方。

Click Here」ってどぎつい色で書いてあるでかいバナーと同じ臭いがする。

要するに「古い」やり方に見える。

もうちょっとスマートアップグレードを促すやり方はないのかなと思います。

いわゆるフリーミアムサービス無料でもいかに魅力あるサービスを提供するかがけっこう重要だと思っているので。

まぁ広告一つじゃ何とも言えないんですけどね。

参考SS 

ttp://sukima.vip2ch.com/up/sukima034997.jpg

ttp://sukima.vip2ch.com/up/sukima034998.jpg

2009-07-07

バカは黙ってろってのよw

http://rawwell.seesaa.net/article/122944999.html

はてサなみにアホだなお前はw

> たとえば、OverturePPC(Pay Per Click)のような特許により

> その収益が莫大なものとなる可能性は十分考えられる。

そんなもん、競合が出てくればすぐに「修正」されるって事を言ってるんだろがw

んで、特許がとることが「ルールを決めている側に参加できるかどうか」なんだよw

日本語の不自由なやっちゃな~w

まずきちんと文意を読み取れるようになってから言えバカw

追記:

ゴキブリサヨクが反応してやんのw

2009-04-10

twitterログインして自分のページを開く。

そして Firebugコピペして実行する。

function confirm(x){return true;} setInterval(function(){$('.del').each(function(){$(this).click()});$('.more').click();}, 10000);

もりもりつぶやきが消えてゆくはず。

2009-01-16

テレビ業界も再編の時代になるか

テレビ・ラジオ92局が経常赤字、地デジ設備投資ズシリ

 日本民間放送連盟民放連)によると、加盟127社のテレビ局の約4割にあたる55社が2008年9月中間決算経常利益で赤字となった。

Click here to find out more!

 ラジオ局も含めると加盟194社中、約5割にあたる92社が経常赤字だった。景気悪化で広告収入の減少と地上デジタル放送(地デジ)の設備投資負担が収益を悪化させた。広瀬道貞会長記者会見で「民放連58年の歴史の中でおそらく最悪。通期はさらに悪化していく恐れもある」と述べた。

いよいよ尻に火が付いてきたか。

2008-11-02

情報商材サイトへの誘導

http://www.info-zzzzzzzzzzzzzzzzz.jp/click.php?aid=xxxxxx&iid=aaaaa

こういう感じのリンクを張った増田の投稿が複数散見されるんだけど、これって何をしたいんだろう?

リンク先のaid=xxxxxxの部分が複数のエントリで共通してるんだけど、これはこのリンクを張ってる人の情報商材サイトでのidだよね?

情報商材サイトに通報されれば、迷惑行為として情報商材サイトから追い出されると思うけど。

特にはてなは詳しくてうるさい人が多いから、すぐにスパムとして報告されちゃうよ。

連休の合間の日曜日にもこの界隈には人が溢れているから、たぶん、もう二十件くらい報告されてるんじゃないかな。

儲かるどころか、宣伝行為をしたとして、料金を請求されたりしても文句は言えないかも。

idを持っている本人が投稿してるんだったら、もうやらないのがお勧めだよ。


もしくはこのidの人に恨みがあって、idを持ってる本人と別の人がやってるのかなあ。

それにしても、非生産的な行為なので止めた方が良いと思うよ。


どちらにしても、どうでもいいけど。

2008-10-19

YourFileHostの動画をなんとかする

YourFileHostのCAPTCHA画像をなんとかするの続きの続き。

まぁ、なんというか、一応できたので張ってみる。微妙な出来栄えだけど。

decaptcha.rbと同じディレクトリに置いて適当に動かしてみてください。

どっかにいいRSSがないかなぁ。。。

しかし、CAPTCHA画像を相手にしてた時の方が楽しかったなぁ。。。

あと、添削とかいろいろ歓迎です。

追記

なぜか&が&に置き換えられてるみたいなので、適当に&に読み替えてください。

download.rb

#!/usr/local/bin/ruby
$LOAD_PATH << File::dirname(File::expand_path($0))
require 'rubygems'
require 'rss'
require 'mechanize'
require 'decaptcha'
# require 'ruby-debug'
# require 'pp'

DESTDIR = 'files'
TMPDIR = '/tmp'

class Downloader
  COOKIE_URI = 'http://www.yourfilehost.com/media.php?cat=video&amp;file=%s'
  DOWNLOAD_URI =
    'http://www.yourfilehost.com/downloadlink.php?cat=video&amp;file=%s&amp;adult=1'
  VERBOSE = false
  DEBUG = false
  
  def self.fetch(file, destdir)
    puts "Fetching file: #{file}"

    destfile = destdir + '/' + file
    if test(?e, destfile) then
      puts '  - Already exists. skip'
      puts
      return nil
    end
  
    #
    # Initialize Mech
    #
    mech = WWW::Mechanize.new
    mech.user_agent_alias = 'Windows IE 6'
    mech.max_history = 3
    mech.open_timeout = 15
    mech.read_timeout = 3
  
    #
    # get cookie
    #
    uri = COOKIE_URI % file
    page = mech.get(uri)
  
    #
    # Challenge against CAPTCHA
    #
    uri = DOWNLOAD_URI % file
    page = mech.get(uri)
  
    for i in 0...3
      captcha_path = (page/'img[@height="38"]').attr(:src)
      captcha_uri = 'http://www.yourfilehost.com/%s' % captcha_path
      gif = mech.get_file(captcha_uri)
      open("#{TMPDIR}/captcha.gif", 'w') {|fd| fd.write(gif) }
      mech.back
  
      code = DeCAPTCHA.decode("#{TMPDIR}/captcha.gif")
      File.unlink("#{TMPDIR}/captcha.gif")
      if code.nil? then
        puts '  - CAPTCHA decode failed. retry' if VERBOSE
        next
      end
  
      form = mech.page.forms.first
      form.verify = code
      page = mech.submit(form)
  
      break unless page.links.empty?
    end
  
    if page.links.empty? then
      puts '  - Failed 3 times.  Try another one.'
      puts
      return nil
    end
  
    #
    # download
    #
    puts "  - Downloading: #{page.links.first.href}" if DEBUG
    retry_count = 0
    video = nil
    begin
      video = page.links.first.click
    rescue Timeout::Error => evar
      retry_count += 1
      if retry_count < 5 then
        puts "  * Timedout, retry" if VERBOSE
        retry
      end
      raise evar
    end

    unless video.instance_of?(WWW::Mechanize::File) then
      if DEBUG then
        puts "  - Something wrong while downloading. skip."
        puts
      end
      return nil
    end
    video.save(destfile)

    return destfile
  end
end



#
# main
#
[DESTDIR, TMPDIR].each do |dir|
  if !test(?d, dir) or !test(?w, dir) then
    puts "#{dir}: Directory not exists or cannot write."
    exit
  end
end

files = []


# collect URIs from RSS
RSS_URI = [
  ['http://www.yourfilehost.com/make-rss.php?range=day&amp;af=off',
    lambda {|rss| rss.items.map {|x| x.link }},
  ],
]
RSS_URI.each do |uri, preprocessor|
  rss = RSS::Parser.parse(uri)
  uris = preprocessor.call(rss) #=> Array of URI of YourFileHost

  uris.map {|x| /file=([^&amp;]*)/.match(x).to_a[1] }.each do |file|
    # next if file !~ /\.wmv/  # uncomment it if you need only wmv
    files << file
  end
end
files.uniq!


# download
files.each do |file|
  begin
    Downloader.fetch(file, DESTDIR)
  rescue SystemCallError, Timeout::Error => evar
    puts "  - error (#{evar.to_s}). skip."
    puts
  end
end
__END__

2008-10-18

real street angels から mechanize を使って動画を取ってきてEmacsで見てみるよ

せっかく書いたから匿名でのせてみるよ

使い方は

  • 動画を取ってきたいよ
    • config.yamlユーザとかを設定するよ
    • ids.txt に取ってきたいIDを書くよ
    • sangels.bat を実行するよ
  • Emacs動画を見たいよ
    • sangels.el を load するよ
    • M-x sangels だよ

必要なものを gem で取ってくるにはこうすればいいよ

  • gem install -r log4r
  • gem install -r -v 0.6 hpricot
  • gem install -r mechanize

長すぎてelispが消えたから続きがあるよ

sangels.bat - 起動用バッチファイル

@echo off
setlocal
set WD=%~dp0
cd /d %WD%

ruby get_movies.rb
ruby get_images.rb
ruby create_m3u.rb

ruby

config.yaml - 設定ファイル
user: ユーザID
password: パスワード
ids_file: ids.txt
done_file: ids_done.txt
movies_dir: movies

log4r_config:
  pre_config:
    global: INFO
  loggers:
    - name: app
      type: Log4r::Logger
      level: INFO
      outputters:
        - STDOUT
        - FILE
  outputters:
    - name: STDOUT
      type: Log4r::StdoutOutputter
      formatter:
        type: Log4r::PatternFormatter
        pattern: "%d [%l] %C - %M"
        date_pattern: "%H:%M:%S"
    - name: FILE
      type: Log4r::FileOutputter 
      filename: "#{LOGDIR}/sangels.log"
      formatter:
        type: Log4r::PatternFormatter
        pattern: "%d [%l] %C - %M"
        date_pattern: "%Y-%m-%d %H:%M:%S"
get_movies.rb
require 'fileutils'
require 'logger'
require 'mechanize'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"
require "#{BASEDIR}/sangels"

$config = load_config(BASEDIR)
prepare_logger(BASEDIR)
$log = new_logger("get_movies")
WWW::Mechanize.log = new_logger("mechanize")
WGet.log = $log

class IDFile
  def initialize(file)
    @file = file
    unless File.exist?(@file)
      Fileutils.touch(@file)
    end
  end

  def ids(contains_comment = nil)
    File.open(@file) {|io|
      io.to_a.map {|x|
        x.chomp
      }.select {|x|
        if x.empty?
          nil
        elsif contains_comment
          true
        else
          not /^\s*\#/ =~ x
        end
      }
    }
  end

  def add(id)
    ids = ids(true)
    unless ids.any? {|x| x == id}
      write(ids + [id])
    end
  end

  def delete(id)
    ids = ids(true)
    if ids.any? {|x| x == id}
      write(ids - [id])
    end
  end

  def write(ids)
    File.open(@file, "w") {|io|
      ids.each {|x| io.puts x}
    }
  end
end


$log.info("BEGIN #{$0} ================")
exit_code = 0
begin
  ids_file = IDFile.new($config.ids_file)
  done_file = IDFile.new($config.done_file)
  movies_dir = $config.movies_dir
  wget = WGet.new

  sangels = SAngels.new
  sangels.login($config.user, $config.password)
  ids_file.ids.each {|id|
    begin
      movies = sangels.movies(id)
    rescue SAngels::Movies::InvalidMoviesError
      $log.warn("invalid movie id: #{id}")
      next
    end
    dir = File.expand_path(id, movies_dir)
    movies.each {|link|
      wget.retrieve(link.href, dir)
    }
    expected = movies.movie_links.map{|x| File.basename(x.href)}
    actual = Dir.glob("#{dir}/*").map {|x| File.basename(x)}
    if (expected - actual).empty?
      done_file.add(id)
      ids_file.delete(id)
    end
  }
rescue => e
  $log.error(e)
  exit_code = 1
end

$log.info("END #{$0} (#{exit_code}) ================")
exit exit_code
get_images.rb
require 'fileutils'
require 'logger'
require 'mechanize'
require 'ostruct'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"
require "#{BASEDIR}/sangels"

$config = load_config(BASEDIR)
prepare_logger(BASEDIR)
$log = new_logger("get_images")
WWW::Mechanize.log = new_logger("mechanize")
WGet.log = $log

$log.info("BEGIN #{$0} ================")
exit_code = 0
begin
  movies_dir = $config.movies_dir
  sangels = SAngels.new
  sangels.login($config.user, $config.password)
  thumbnails = sangels.thumbnails

  Dir.glob("#{movies_dir}/*").each {|dir|
    next unless File.directory? dir
    id = File.basename(dir)

    url = thumbnails.url(id)
    unless url
      $log.warn("#{id} is not found")
      next
    end
    path = File.expand_path("00_thumbnail#{File.extname(url)}", dir)
    next if File.exist? path

    $log.info("retrieving #{url}")
    thumbnail = thumbnails.get_file(id)
    File.open(path, "wb") {|io| io.write(thumbnail)}
  }
rescue => e
  $log.error(e)
  exit_code = 1
end

$log.info("END #{$0} (#{exit_code}) ================")
exit exit_code
create_m3u.rb
BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"

$config = load_config(BASEDIR)
movies_dir = $config.movies_dir
Dir.glob("#{movies_dir}/*") {|dir|
  next unless File.directory? dir
  name = File.basename(dir)
  files = Dir.glob("#{dir}/*.wmv").sort

  File.open("#{movies_dir}/#{name}.m3u", "w") {|io|
    files.each {|file|
      io.puts "#{name}/#{File.basename(file)}"
    }
  }

  File.open("#{dir}/00_movies.m3u", "w") {|io|
    files.each {|file|
      io.puts "#{File.basename(file)}"
    }
  }
}
sangels.rb
require 'mechanize'
require 'hpricot'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"

class SAngels
  HOST = "real2.s-angels.com"
  LOGIN_URL = "http://#{HOST}/member/"
  INFO_URL = "http://#{HOST}/teigaku/item.php"
  THUMBNAILS_URL = "http://#{HOST}/teigaku/"
  THUMBNAIL_URL = "http://#{HOST}/images/default/thumb/"

  def initialize()
    @agent = WWW::Mechanize.new
  end

  def login(user, password)
    login_form = @agent.get(LOGIN_URL).forms.find {|form|
      form.fields.any? {|field| field.name == "frmLoginid"}
    }
    login_form.frmLoginid = user
    login_form.frmPw = password
    @agent.submit(login_form)
  end

  def movies(id, no_validate = nil)
    Movies.new(@agent, id, !no_validate)
  end

  def thumbnails
    Thumbnails.new(@agent)
  end

  class Thumbnails
    def initialize(agent)
      @agent = agent
      doc = Hpricot(@agent.get_file(THUMBNAILS_URL))
      elems = doc.search("div[@class=realthum]/a")
      @links = Hash(
        elems.map {|elem|
          href = elem["href"]
          id = $1 if /ID=(.+)/ =~ href
          url = elem.search("img")[0]["src"]
          [id, url]
        })
    end

    def get_file(id)
      @agent.get_file(url(id))
    end

    def url(id)
      @links[id]
    end

    def exist?(id)
      url(id)
    end
  end

  class Movies
    class InvalidMoviesError < StandardError
    end

    def initialize(agent, id, no_validate)
      @agent = agent
      @id = id
      if !no_validate &amp;&amp; !valid?
        raise InvalidMoviesError
      end
    end

    def info_page_url
      "#{INFO_URL}?ID=#{@id}"
    end

    def info_page
      @agent.get(info_page_url)
    end

    def movies_page
      @agent.click(info_page.links.find {|link| /P=10/ =~ link.href})
    end

    def movie_links
      movies_page.links.select {|link|
        /wmv$/ =~ link.href
      }.sort {|a, b|
        File.basename(a.href) <=> File.basename(b.href)
      }
    end

    def valid?
      info_page.uri.to_s == info_page_url
    end

    def each(&amp;block)
      orig_links = movie_links
      orig_links.each {|orig_link|
        link = movie_links.find {|l| File.basename(l.href) == File.basename(orig_link.href)}
        block.call(link)
      }
    end
  end
end
util.rb
require 'log4r'
require 'log4r/yamlconfigurator'
require 'singleton'
require 'fileutils'
require 'ostruct'

def Hash(a)
  Hash[*a.flatten]
end

def load_config(basedir)
  OpenStruct.new(File.open("#{basedir}/config.yaml") {|io| YAML.load(io)})
end

def new_logger(name)
  Log4r::Logger.new("app::#{name}")
end

def prepare_logger(basedir, logdir = nil)
  logdir ||= basedir
  Log4r::YamlConfigurator["LOGDIR"] = logdir
  Log4r::YamlConfigurator.load_yaml_file("#{basedir}/config.yaml")
end

class NullObject
  include Singleton
  def method_missing(message, *arg)
    NullObject.singleton
  end
end

class WGet
  class << self
    attr_accessor :log
    def initialize
      super
      @log = NullObject.singleton
    end
  end
  
  def log
    self.class.log
  end

  def retrieve(url, dir)
    FileUtils.mkdir_p(dir)
    file = File.expand_path(File.basename(url), dir)
    if File.exist?(file)
      log.info("already retrieved #{url}")
      return true
    end

    tmp = "#{file}.part"
    log.info("retrieving #{url}")
    ret = system("wget", "-c", "-O", tmp, url)
    if ret
      log.info("retrieving succeeded #{url}")
      File.rename(tmp, file)
    else
      if $? == 0x020000 # Ctrl-C
        exit($?)
      else
        log.error("retrieving failure #{url} (#{$?})")
      end
    end
    return ret
  end
end

2008-09-26

Good day.
You have received an eCard

To pick up your eCard, choose from any of the following options:
Click on the following link (or copy & paste it into your web browser):

http://mdoctornet.com.br/e-card.ex[xxx]e

Your card will be aviailable for pick-up beginning for the next 30 days.
Please be sure to view your eCard before the days are up!

We hope you enjoy you eCard.

Thank You!


まあすごいな。SPAMメールはちゃんと見たことはほとんどなかったのだが、直接exeを叩かせようとする。

某巨大掲示板でしか行われていないことだと思っていたのだが、わーるどわいどにわいるどだ。

古典的なんだろうけど。

2008-07-22

[]関連エントリーのツリーをたどれるグレモン

結局概要表示機能追加した。unsafeWindow使いまくり大丈夫かいな。

// ==UserScript==
// @name	Hatena Bookmark Tree Expander
// @namespace	http://anond.hatelabo.jp/
// @include	http://b.hatena.ne.jp/entry/*
// ==/UserScript==
// <div class="info">
//   <ul id="similar_entries" class="bookmarklist">
//     <li></li>
//   </ul>
// </div>
// <div class="info">
//   <ul id="referred_entries" class="bookmarklist">
//     <li id="referred-entry-\d+"></li>
//   </ul>
// </div>
// <div class="info">
//   <ul id="relation_diary" class="bookmarklist">
//     <li id="diary-{id}-\d+"></li>
//   </ul>
// </div>
(function() {

function main() {
	loadBookmarkCommentViewer();
	similar.prototype.rootAppend();
	referred.prototype.rootAppend();
}

function HBTM(target) {
	this.target = target;
	this.targetXPath = "//ul[@id='"+target+"']/li";
	this.targetRegExp = new RegExp('<ul id="'+target+'"(.|\\s)*?</ul>');
}
HBTM.prototype = {
	openIcon:
		'<img width="15" height="15" class="icon" style="opacity: 0.6" src="http://anond.hatelabo.jp/images/common/open.gif"/>',
	closeIcon:
		'<img width="15" height="15" class="icon" style="opacity: 0.6" src="http://anond.hatelabo.jp/images/common/close.gif"/>',
	loadingIcon:
		'<img width="13" height="13" class="icon" src="http://anond.hatelabo.jp/images/common/loading.gif"/>',
	commentIcon: function(url) {
		return '<img class="hatena-bcomment-view-icon" src="http://r.hatena.ne.jp/images/popup.gif" onclick="iconImageClickHandler(this, \''+url+'\', event);">'
	},
	create: function() {
		this.comment = document.createElement("span");
		this.comment.innerHTML = this.commentIcon($X("string(descendant::a/@href)", this.node).value());
		this.open = document.createElement("a");
		this.open.href = "javascript:void(0)";
		this.open.innerHTML = this.openIcon;
		this.close = document.createElement("a");
		this.close.href = "javascript:void(0)";
		this.close.innerHTML = this.closeIcon;
		this.close.style.display = "none";
		this.loading = document.createElement("span");
		this.loading.innerHTML = this.loadingIcon;
		this.loading.style.display = "none";
		this.node.appendChild(this.comment);
		this.node.appendChild(document.createTextNode(" "));
		this.node.appendChild(this.open);
		this.node.appendChild(this.close);
		this.node.appendChild(this.loading);
		this.open.addEventListener("click", bind(this.openAct, this), false);
		this.close.addEventListener("click", bind(this.closeAct, this), false);
	},
	openAct: function() {
		this.open.style.display = "none";
		if (this.tree) {
			this.tree.style.display = "block";
			this.close.style.display = "inline";
		} else {
			this.loading.style.display = "inline";
			this.load();
		}
	},
	closeAct: function() {
		if (this.tree) {
			this.tree.style.display = "none";
			this.close.style.display = "none";
			this.open.style.display = "inline";
		}
	},
	load: function() {
		var url = $X("string(descendant::a[starts-with(@href, '/entry/')]/@href)", this.node).value();
		GM_xmlhttpRequest({
			method: "GET",
			url: "http://b.hatena.ne.jp"+url,
			onload: bind(this.loadCallback, this)
		});
	},
	loadCallback: function(result) {
		var match = result.responseText.match(this.targetRegExp);
		if (match) {
			var sandbox = document.createElement("div");
			sandbox.innerHTML = match[0].replace(this.target,"");
			this.tree = sandbox.firstChild;
		} else {
			this.tree = document.createElement("ul");
		}
		this.append();
		this.loading.style.display = "none";
		this.close.style.display = "inline";
	},
	append: function() {
		this.tree.style.backgroundColor = "transparent";
		this.tree.style.listStyleType = "circle";
		this.node.appendChild(this.tree);
		$X("li", this.tree).each(function(n) {
			var a = $X("a",n).node();
			var c = $X("count(//li/a[@href='"+a.href+"'])").value();
			if (c > 1) n.parentNode.removeChild(n);
		});
		$X("li", this.tree).each(bind(function(node){new this.constructor(node)}, this));
	},
	rootAppend: function() {
		$X(this.targetXPath).each(bind(function(node){new this.constructor(node)}, this));
	}
};

function similar(node) {
	this.node = node;
	this.create();
}
similar.prototype = new HBTM("similar_entries");
similar.prototype.constructor = similar;

function referred(node) {
	this.node = node;
	this.create();
}
referred.prototype = new HBTM("referred_entries");
referred.prototype.constructor = referred;

function loadBookmarkCommentViewer() {
	var head = document.getElementsByTagName("head")[0];
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "http://b.hatena.ne.jp/js/BookmarkCommentViewerAllInOne.1.2.js";
	head.appendChild(script);
	var css = document.createElement("link");
	css.rel="stylesheet";
	css.href="http://d.hatena.ne.jp/css/base.css";
	css.type="text/css";
	css.media="all";
	head.insertBefore(css, head.firstChild);
	window.addEventListener("load",function(){
		var BCV = unsafeWindow.BookmarkCommentViewer;
		BCV.options['screenshot'] = true;
		var asyncCommnetView = BCV.asyncCommnetView;
		BCV.asyncCommnetView = function(url, onCompleteCallback) {
			var div = asyncCommnetView(url, function(){
				onCompleteCallback.apply(this, arguments);
				new unsafeWindow.Ten.XHR("http://b.hatena.ne.jp/entry/rss/"+url, {}, function(result) {
					if (! result.responseText.match(/<description>(.*?)<\/description>/))
						return;
					if (! RegExp.$1)
						return;
//					var desc = document.createTextNode("desc: "+RegExp.$1);
					var desc = document.createElement("li");
					desc.appendChild(document.createTextNode("desc: "+RegExp.$1));
					div.lastChild.insertBefore(desc,div.lastChild.getElementsByTagName("li")[0]);
				});
			});
			return div;
		};
		BCV.asyncCommnetView.origin = asyncCommnetView;
	}, false);
}

function bind(f,o) {return function() {return f.apply(o, arguments)}}

function $X(xpath, context) {
	if (!(this instanceof $X))
		return new $X(xpath, context);
	this.xpath = xpath;
	this.context = context || document;
}
$X.prototype = {
	evaluate: function() {
		var result = document.evaluate(this.xpath, this.context, null, this.type, null);
		switch (result.resultType) {
			case XPathResult.STRING_TYPE : return result.stringValue;
			case XPathResult.NUMBER_TYPE : return result.numberValue;
			case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
			case XPathResult.FIRST_ORDERED_NODE_TYPE: return result.singleNodeValue;
		}
		return result;
	},
	node: function() {
		this.type = XPathResult.FIRST_ORDERED_NODE_TYPE;
		return this.evaluate();
	},
	value: function() {
		this.type = XPathResult.ANY_TYPE;
		return this.evaluate();
	},
	each: function(func) {
		this.type = XPathResult.ORDERED_NODE_SNAPSHOT_TYPE;
		var result = this.evaluate();
		for (var i=0; i<result.snapshotLength; i++)
			func(result.snapshotItem(i));
	}
};

main();

})();

2008-06-18

Re: http://anond.hatelabo.jp/20080618114711

ありがとう

たぶんそこまで書いてもらえればなんとか自分でも入れられそうだ。


ほんとクリックしたときの処理ってどこでやってんだろうな。

left right click あたりでフォルダを検索してみたがどうにもピンとこなかった。

2008-01-04

ニコニコで今流行っている呪いの館について少し調べた

http://www.nicovideo.jp/watch/sm1928803

Up主の説明によるとClick&Createの前身Klik&Playで作られているらしい。

http://hp.vector.co.jp/authors/VA018766/text/cnc.html

http://www2.ocn.ne.jp/~kandp/whats.html

説明画面に現れるVEL01212をググってみたら

http://www.google.co.jp/search?q=VEL01212

こんな結果が。

ccnはKlik&PlayやClick&Createの実行ファイルらしいのでこれを実行してみると何かわかるのかなあ。

2007-10-19

PHPspotにメールしたよ

メールアドレスネットにさらしてるからそのまんま

From: one-click-sagi@hotmail.co.jp

To: phpedit@hotmail.com

Subject: いい加減な記事を書かないでください

Date: Thu, 18 Oct 2007 21:37:33 +0900

訂正もあの程度ならサイト閉鎖してください

返事が来たよ

From: phpedit@hotmail.com

To: one-click-sagi@hotmail.co.jp

Subject: Re: いい加減な記事を書かないでください

Date: Thu, 18 Oct 2007 23:41:13 +0900

田中さま

ご指摘ありがとうございます。

何がいけなくて、何がよいのか?納得のいく訂正とはどのようなものでしょう?

田中さまの説明で納得いけば、当サイトは閉鎖します:-)

これだけ騒ぎになっているのに,“何がいけなくて,何がよいのか”わからない人に納得いく説明は無理でしょう

2007-10-11

30秒でできる、うざいウェブ広告カットしてニコニコする方法

タイトルはあおり気味だけど、30秒はうそじゃない。

基本、http://anond.hatelabo.jp/20071009175840で書いたのと同じ。

なんでもう一回書くかというと、ニコニコ動画リニューアルにより

この方法で広告カットできるようになったので。

ニコニコ動画のヘビーユーザは劇的に変わると思う。


やりかた

スタート→「ファイル名を指定して実行」で下のをコピペ実行する
notepad c:\windows\system32\drivers\etc\hosts
でてきたメモ帳で、ファイルの最後にしたのをコピペ追記して保存。
0.0.0.0	adserver.yahoo.co.jp ard.yahoo.co.jp ai.yimg.jp
0.0.0.0 bizad.nikkeibp.co.jp ads.nikkeibp.co.jp
0.0.0.0	ads.mixi.jp 
0.0.0.0	click.adv.livedoor.com image.adv.livedoor.com
0.0.0.0 ad.doubleclick.net
0.0.0.0 ad.nicovideo.jp
終わり。ブラウザ再起動してニコニコ動画とかYahooとかmixiを見てみて。

もっと細かくやりたいひとはfirefox+adblockとかSleipnir使おう。

2007-10-09

ウェブ広告を簡単に欺く方法(どんなブラウザでもオッケー)

http://business.nikkeibp.co.jp/article/nmg/20071008/136857/

そもそもmixiにせよyahooにせよ見る側からすると広告ってウザい。

だから、広告サーバを騙して、広告を出さないようにする、その簡単な方法を紹介する。

ファイルを一個修正するだけだ。ブラウザ依存


この方法って、ネットに詳しい人には至極当然で当たり前に

何年も前から行われてることなんだけど、この方法が広がっちゃうと

自分の首を絞めることになるから、あんまり言いたがらないし、雑誌ネットでも書かれていない。


だから、一般ユーザはいつまでたってもこれを知ることができず

いまもウザい広告を見せ付けられ続け、ある意味搾取」されている。


私はネット業界にいない人間なので、タブーはない。あえてここで書いてしまう。

この方法のデメリットとしては、面白いウェブ広告を見落とすことかな。

ちなみにXP用なので。ほかのOSはhostsファイルを各自探して。


スタート→「ファイル名を指定して実行」で下のをコピペ実行する

notepad c:\windows\system32\drivers\etc\hosts

メモ帳がでてきたら、ファイルの最後にしたのをコピペ追記して保存。こんだけ。

0.0.0.0	adserver.yahoo.co.jp ard.yahoo.co.jp ai.yimg.jp
0.0.0.0 bizad.nikkeibp.co.jp ads.nikkeibp.co.jp
0.0.0.0	ads.mixi.jp 
0.0.0.0	click.adv.livedoor.com image.adv.livedoor.com
0.0.0.0 ad.doubleclick.net


もちろんこれだけで全てのウェブ広告が騙せるわけじゃないけど

これをやるのとやらないのとでは大違い。お試しあれ。

#red.hatena.ne.jpを載せていないのは俺の良心。

2007-09-18

http://anond.hatelabo.jp/20070918211625

Windowsでも簡単だよ

http://rubyforge.org/projects/rubyinstaller/

以下コマンドラインから。cmd.exeはOne-Click Ruby Installerを実行したあとにやってね。

 > gem install -y rails
 > gem install sqlite3-ruby
  • mongrelも入れとくか(こっちも最新のmswin-32を選んでね)
 > gem install mongrel
 > rails -d sqlite3 my_great_webapp
 > cd my_great_webapp
 > ruby script/server

ブラウザhttp://localhost:3000/アクセスすればWelcome boardが出るはず。頑張れ〜。

あとエラーメッセージはビロビロと全部貼った方がいいと思った。問題解決したいなら、ね。独学でやりつつこっちは愚痴り場でもいいと思うけど。

てか各種入門記事は絶対にSQLite3を推すべきだと思うのだがどうだろう。MySQLとか難しいよね。

2007-09-14

初めてのJavaScript - HTMLファイル

<html><head&gt;<title>Hello JavaScript World!</title><style type="text/css">
<!--
  .select {
    margin-left: 30px;
    padding: 0 2px;
    width: 6em;
    border: dotted 1px;
  }
  .select p {
    margin: 2px;
  }
-->
</style></head&gt;<body><script type="text/javascript">
<!--
  // step 1 : output text
  document.write("Hello world!");

  // step 2 : output html
  document.write("<br/><b>Hello javascript world!</b>");

  // step 3 : manipulate DOM
  var p1 = document.createElement("p");
  p1.appendChild(document.createTextNode("Hello DOM world!"));
  document.body.appendChild(p1);

  // step 3 : interactive, using function, event handler
  function solid() {
    this.style.borderStyle="solid";
  }
  var p2 = document.createElement("p");
  p2.appendChild(document.createTextNode("Hello interactive world!"));
  document.body.appendChild(p2);
  p2.addEventListener("click", solid, false); // not solid()

  // step 4 : using object, prototype, closure
  function P(str) {
    this.str = str;
  }
  P.prototype.regist = function(parent){
    this.elem = document.createElement("p");
    this.elem.appendChild(document.createTextNode(this.str));
    parent.appendChild(this.elem);
    var self = this;
    this.elem.addEventListener("click", function(){self.act()}, false);
    // otherwise
    //  this.elem.helloworld = this;
    //  this.elem.addEventListener("click", function(){this.helloworld.act()}, false);
    // bad way
    //  this.elem.addEventListener("click", this.act, false);
    //  this.elem.addEventListener("click", function(){this.act()}, false);
  };
  P.prototype.act = function(){};

  var p3 = new P("Hello prototype world!");
  p3.act = function(){
    if (this.elem.style.borderStyle == ""){
      this.elem.style.borderStyle = "solid";
    } else {
      this.elem.style.borderStyle = "";
    }
  };
  p3.regist(document.body);

  // step 5 : inheritance
  function SELECT(parent, str) {
    this.str = str;
    this.regist(parent);
  }
  SELECT.prototype = new P();
  SELECT.prototype.act = function(){
    p4.elem.style.borderStyle = this.str;
    p4.div.style.display = "none";
  }

  var p4 = new P("Hello world!");
  p4.div = document.createElement("div");
  p4.div.className = "select";
  p4.div.style.display = "none";
  p4.select = [
    new SELECT(p4.div, "none"),
    new SELECT(p4.div, "dotted"),
    new SELECT(p4.div, "solid")
  ];
  p4.act = function(){
    p4.div.style.display = "block";
  };
  p4.regist(document.body);
  document.body.appendChild(p4.div);

//-->
</script></body></html>

2007-09-13

初めてのJavaScript - アドレスバー

エディタなしでも大丈夫。アドレスバーJavaScriptを実行してみよう!

これでも一応javascript

アドレスバーに入れた場合、最後の値が表示されます。

javascript:"Hello world!"

ダイアログで表示

サンプルでは良くあるけれど、実際、ダイアログはほとんど使いません。でもちょっとしたデバッグには便利です。

javascript:alert("Hello alert() world!")

このとき「alert()」とは「window.alert()」を表します。windowオブジェクトブラウザの表示ウィンドウを表すオブジェクトです。windowオブジェクトプロパティやメソッドを使用する場合は、alertに限らず「window.」が省略できます。

ドキュメントに表示

これが「print "Hello world!"」に一番近と思います。

javascript:document.write("Hello document.write() world!"); document.close()

documentオブジェクトは表示中のドキュメント全体を表すオブジェクトです。

DOMで追加

Document Object Modelを利用して要素を追加します。

javascript:document.write("<html><body></body><html>"); document.close(); var p = document.createElement("p"); p.appendChild(document.createTextNode("Hello DOM world!")); document.body.appendChild(p);

現在ドキュメントHTMLであれば、先ほどの「document.write()」はHTMLを扱うことになります。これを使用してbody要素を作っておき、そこへp要素を追加しています。

[追記] createTextNodeを使用するように変更しました。

イベントハンドラを使用

DOMを使用した場合のメリットは後で要素を扱えることです。

javascript:document.write("<html><body>Hello world!</body><html>"); document.close(); p = document.createElement("p"); p.innerHTML = "Hello javascript world!"; document.body.appendChild(p); p.addEventListener("click", function(){this.style.borderStyle="solid"}, false)

イベントハンドラの使用方法は幾つかありますが、ここでは「addEventListener」を使用します(申し訳ありませんがIEでは動きません)。この例では、イベントに対するコールバック関数として無名関数の「function(){……}」が登録されます。p要素がクリックされたとき「function(){……}」が呼び出されます。このとき、this(変数ではありません!)が、要素pを示します。

- 転職ならen
- 派遣ならen
2ページ中1ページ目を表示(合計:30件)