「 more」を含む日記 RSS

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

2008-07-22

出たなMOF増田

http://anond.hatelabo.jp/20080722130207

・・・いや、こんな時間だから官僚じゃないよね。

財務省発表に踊らされる財政再建マンセーニート増田乙。

しかし日本にもインフレが起こる火種があることは確かです。

どこに?原材料・食料品価格の上昇は景気下ぶれ圧力ですよね、明らかに。需要超過によるインフレの芽なんてどこにもありません。

国の財政を考えずに、人気取りだけで消費税を廃止したりすると日本借金はさらに膨らみ、ハイパーインフレしか残された方法がなくなるかもしれません。

経済ブログ論壇のあちこちで既に指摘されてますが、総債務(祖債務?)を純債務と比べるのは明らかな大衆煽動。あんまり簡単にあおられてはいけません。

NY連銀の中の人コロンビア大学エコノミストのセンセイが書いた論文要約を貼っときますね。

元はここ http://www.nber.org/papers/w10988

We analyze fiscal policy and fiscal sustainability in Japan using a variant of the methodology developed in Blanchard (1990). We find that Japan can achieve fiscal sustainability over a 100-year horizon with relatively small changes in the tax-to-GDP ratio. Our analysis differs from more pessimistic analyses in several dimensions. First, since Japanese net debt is only half that of gross debt, we demonstrate that the current debt burden is much lower than is typically reported. This means that monetization of the debt will have little impact on Japan's fiscal sustainability because Japan's problem is the level of future liabilities not current ones. Second, we argue that one obtains very different projections of social security burdens based on the standard assumption that Japan's population is on a trend towards extinction rather than transitioning to a new lower level. Third, we demonstrate that some modest cost containment of the growth rate of real per capita benefits, such as cutting expenditures for shrinking demographic categories, can dramatically lower the necessary tax burden. In sum, no scenario involves Japanese taxes rising above those in Europe today and many result in tax-to-GDP ratios comparable to those in the United States.

2008-06-10

http://anond.hatelabo.jp/20080610042930

http://www.apple.com/pr/library/2008/06/09iphone.html

In the US the new iPhone 3G is priced at a stunning $199 for the 8GB model, and just $299 for the 16GB model.** iPhone 3G will be available in more than 70 countries later this year, beginning with customer availability in 22 countries??Australia, Austria, Belgium, Canada, Denmark, Finland, France, Germany, Hong Kong, Ireland, Italy, Japan, Mexico, Netherlands, New Zealand, Norway, Portugal, Spain, Sweden, Switzerland, UK and the US??on July 11.

日本、入りましたね!

2008-05-27

KATZEベストを選んでみる。

KATZEを知らない人のためにお勧めの曲を選んでCDにぶっこむことにした。

たった4枚のアルバムから選ぶとはいえなかなかこれが骨の折れる作業で。

結局こうなった。

1.STAY FREE

2.SOME DAY

3.LOST BOY

4.HOLD ME

5.LOVE GENERATION

6.90's pain

7.耳をすまして…

8.Destiny

9.Michelle

10.Good Times Bad Times

11.RIOT(OF THE WORLD)

12.STAY OR GO!

13.AGAIN

14.LOVE IS HERE

いや言い訳をしておくと

「DON'T CRY ANY MORE」とか「YOUR SONG」とか

「CLOUDY LATER RAIN」とか「この雨の向こうに…」とか

「SHOCKING PART II」とかも入れたかったんだよ。

でも、導入としてはこっちのほうが入りやすいかと思って選んだ。どうだろう。

これで好きになってくれたらうれしいなあ。

そうしたらアルバム全部貸した上でHEAVEN、さらにソロ塚本晃も聞かせたい。

我が青春KATZEとともに在り。

2008-03-13

ルックスと成功

Hidden camera investigation: Do looks really matter?

http://www.msnbc.msn.com/id/3917414/

このエントリーは、「見た目がいいと、ビジネスに役立つのか?」という内容だが、この記事は、NBCの社員男女2人と、超美形モデルの男女2人が、街を歩いて人々の反応の違いを見る、というもの。(ルックス以外の条件(年齢・人種など)はなるべく同じにしたとのこと)

ということで、書類をばさっと街角で落とした場合、どんな違いがあるか。

1)落としたのがモデル女性の場合

When model Allison drops her file, there seems to be a sudden change in the weather. Is it raining men? A man even uses his cane to stop the pages from flying away.

「急に雨でも降ってきたのか」というくらい、周り中が騒然となり、皆必死に書類を拾ってくれる。杖を付いている男性まで、杖で書類を押さえる。

2)女性社員の場合

NBC staffer Loren is about to be that someone else. She drops the papers and people step by, rather than stop. About a dozen people pass by before, finally, a woman offers help.

10人以上が歩き去ったあと、やっと一人立ち止まって書類を拾ってくれる。女性社員氏は、“I felt embarrassed・・・・You know, wait a second, I think I'm somewhat attractive. Why didn't anyone help me?”

「私だって、割合魅力的だと思うんだけど、どうして誰も止まってくれないの、と恥ずかしかった」とのこと。いや、よーくわかりますなぁ。。。。

3)社員の男性の場合

But that's nothing compared to our other NBC colleague, Anthony. When he drops the folder, the sidewalk literally clears. Even as he spreads out the papers he's supposedly collecting, people just walk on by.

書類が散らばった瞬間、道行く人はくもの子を散らすようにいなくなって、ぽっかり空間が。拾うふりをしながら、敢えて書類を広げるも、誰も手助けしてはくれない。むなしい。

4)モデル男性の場合

Model Anthony wouldn't know how that feels. He drops the folder and immediately an entire family stops to help.

男だから助けてもらえないわけではないのである。美形の男性の場合、即座に通りがかった家族が全員で書類拾いを手伝ってくれる。

これ以外にも、道を聞く、列に割り込んで許してもらう、など、いろいろトライするが、結果は一緒。コメントを求められた専門家いわく

"we are just hard wired to respond more favorably to attractive people. ・・・This is something anthropologically that has existed for as long as history exists,

ということで、「人類学的に見て人間は魅力的な人に優しくするようにできてるんです」という実もフタもない答え。

去年の12月18日号のEconomistには、こんな記事もありました。

Hey, big spender: Men lose their fiscal prudence in the presence of attractive women

http://www.economist.com/displaystory.cfm?story_id=2299980

明日25ドルもらうのと、1年後に100ドルもらうのとどちらがよいか、といった質問をいくつかすると、その人の時間価値がわかる。一般的に男性女性に比べて「将来の大金」より「今の小金」を選ぶ傾向があることは知られている。

さらに、実験として、200人の男女に、12枚の写真を見せる。ある人は、12人の魅力的異性の写真を見る。他の人は、12人の普通の異性、12台のかっこいい車、12台の普通の車の写真を見る。写真を見た後、「今」と「将来」の選び方がどう変わるか。

As predicted, men who had seen pictures of pretty women discounted the future more steeply than they had done before??in other words, they were more likely to take the lesser sum tomorrow.

魅力的異性の写真を見た男性は、「たくさんだが、もらうまでに時間がかかる報酬」よりも、「少なくてもいいから、なるべく近い未来にもらえる報酬」を選ぶようになる。

(I)t was as though a special “I-want-that-now” pathway had been activated in their brains. After all, the money might come in handy immediately. No one else was much affected.

というわけで、魅力的異性を「見る」だけで、男性の選択は刹那的になる、というそういう結果だそうです。

2008-02-14

one more time, one more chance

を朝からずっとリピートで聴いている。

というのも、たまたま偶然に「月とキャベツ」と「秒速5センチメートル」を連投で視聴してしまったのだ。

2008-02-11

時速3キロメートル 小説版

俺は今、ベッドに寝転がりながら自分の手元にある機械を眺めていた。一見ただの黒くて薄っぺらい塊の、その機械iPod touch今日帰り道でたまたま拾ったものだ。多分人並みには道徳心を持ち合わせていない俺は、その機械をもらってしまうつもりで拾って家に持ち帰った。そして今、そいつと顔をつき合わせている。

イヤホンをしてそいつのイヤホンジャック差し込んで、そして前面に一つぽつんとつけられたボタン押してみる。そうしたら、前面のパネルに『ロック解除』と光るスライドボタンが現れた。てっきり本体のボタン押してしまえば音楽が聴けるものだとばっかり思っていた俺は、肩すかしを食らうのと同時に困惑した。一瞬戸惑ったが、そのパネルに表示されたボタンタッチして見た目の通りにスライドさせてみると、今度は電卓の様な画面と一緒に『パスコードを入力』という表示が現れた。

またもや肩すかしを食らった。どうやら曲を聴くには、数字を4つ入力しないとならないらしい。試しに適当な数字を入力してみるが、『パスコードが違います』と赤い表示が出てくる。

こいつでは音楽が聴けないのか?

軽くいらだちながらあれこれといじっているうちに俺は、最初に押したぽつんとしたボタンを2回連続押してみた。すると、ギターを持った山崎まさよし写真と一緒に再生ボタンだと思われる三角が表示された。

俺は当たりを引いたらしいことに軽く興奮し、今度こそと思いながらその三角タッチした。

するとどうだろう、見事にギターのイントロが聞こえてきた。

その曲は、『One more time, One more chance』だった。

俺はもっと他に曲が入っていないか、再生ボタンと同時に現れた早送りボタンや巻き戻しボタン押してみたが、どうにもその曲しか流れない。

やっぱりちゃんと音楽を聴くにはこのパスコードをなんとかしなければならないことに気づいて俺は軽く落ち込んだが、今しばらくはこの山崎まさよしの名曲に聴き入ることにした。

その曲で俺はふと、中坊だった頃の出来事を思い出した…。

その日は俺にとって特別な休日だった。小学校の頃から密かに憧れていたあの子と、一緒に映画を観に行く約束をしていたからだ。しかも、二人きりで。最初はクラスの奴ら5、6人で、みんなで観に行く予定だった。ところが約束の日が近づくにつれ一人抜け、二人抜け、最後には俺とあの子以外のみんなが揃って予定を悪くしてしまった。あれはきっと誰かが気を回してくれた結果だったんだろうと思ってる。要するに、隠していたつもりの俺の気持ちはあいつらには筒抜けだったというわけだ。そのことに多少気恥ずかしさを覚えたが、しかし折角もらえたチャンスを俺はモノにするつもりだった。

薄曇りの寒い冬の日、俺と彼女は昼前に待ち合わせて一緒に電車に乗り映画館のある街へ向かった。

あの日の俺は冴えていたと思う。まずは映画館に向かい午後半ばのいい席のチケットを買ってからファミレスでお昼ご飯を食べて、上映時間になったら再び映画館へ行って映画を観た。そしてその後あの子のウィンドウショッピングにつき合って、あの子が色々と眺めていた小物のうちで俺もいいと思ったものをあの子に気づかれないように気をつけながら内緒で買った。本当にいい手際をしていたと思う。

冬の日、早くに日は暮れはじめ、さあそろそろ帰ろうと、駅で切符を買おうとしていた時だった。

俺はだんだん緊張してきていた。帰りはあの子を家まで送っていって、告白しながらプレゼントを渡すだけ。たったそれだけが俺の完璧な計画に残った最後のシナリオなのに、それを迎える勇気はまだ出来ずにいた。

「あれっ!?」

そんな俺の逡巡を、あの子の短い悲鳴が断ち切った。

俺は驚いて彼女の方を向いた。

「どうしよう?お財布落としちゃったみたい…」

自分でも信じられないといった様子で、彼女は俺に告げた。

シナリオにないそのトラブルに、俺は非常に焦った。動揺しながらも、彼女と一緒に今日立ち寄ったところを、財布を捜して一通りまわってみた。でも、見つからなかった。

駅に再び戻ってきたとき、あの子は泣き出しそうな顔をしていた。俺もどうしようか途方に暮れていた。さっきプレゼントを買ってしまったため、電車賃は自分ひとりの分しか残っていなかった。

だから俺は、あの子に自分の財布を押し付けながらこう言った。

「お前電車に乗って帰れよ。俺は歩いて帰るから」

俺は、トラブルでの動揺ぶりを少しでも挽回したくて、余裕を持った振りをしてこう言った。

「でも、そんな…」

そう答えるあの子に、俺は更に余裕を見せつけるべく、ポケットの中から当時ようやく普及しはじめていたMDウォークマンを取り出し、

「大丈夫だって。これがあるから退屈しないし」

と強がった。

そうしたら彼女は、少し考えた様子で、

「じゃあ一緒にそれ聴きながら歩いて行こう。私もウォークマン聴いてみたいし」

と提案してきた。

俺はなおも彼女電車に乗せようとしたが、彼女の「ウォークマン聴きたい」という意見を退けられず、結局二人して歩いて家まで帰ることになった。

そのウォークマンで流れていた曲が、山崎まさよしの『One more time, One more chance』だった。その日観た映画主題歌だった曲だ。

ほどなくして、雪が降ってきた。

もう日は暮れていて、街灯の明かりにだけひらひらと光る雪が。

俺たちは、ふたりで一つのイヤホンをして線路沿いの道を歩いた。雪の寒さに身をかがめ、黙ったまま歩いた。何度も何度もリピートしてかかる『One more time, One more chance』を聴きながら。

「ねぇ、知ってる?人が歩くスピード。時速3キロメートル

不意にあの子はそうつぶやいた。

「家までずいぶんかかることになっちゃうね」

そして、

「ごめんね」と。

その言葉に俺は、

「何言ってんだよ。老化は足から来るって言うし、俺ら若いもんは歩いて当然なの」

はっきりとは覚えていないが、確かそんな感じのことを答えたと思う。考えてみれば、中学生の発言としては多少ジジ臭かったかもしれない。

そのまままたしばらく、黙ったまま道を歩いた。

だんだんと白くなっていく足下に、並んで、一定のテンポで、黒い跡をつけながら、黙ったまま道を歩いた。

信号待ちで立ち止まった時、俺はふと気づいた。家に電話をして親に迎えにきてもらえば帰れると。なんでこんな簡単なことを今まで思いつかなかったのか、軽く後悔しながらあの子の方を向いて、口を開こうとした。

あの子はただ、まっすぐ前だけを見ていた。

その目元は、なんと表現したらいいのだろうか?はにかむ、というのか、優しげで、切なげで、でも幸せそうな。そんな横顔をしていた。

それを見て俺は言葉を飲み込んでしまった。そして、このまま歩いて帰ろうと心に決めた。

信号が青に変わり、俺たちはまた歩き始めた。

何度あのギターのイントロを聴いた頃だっただろう?結局地元の駅に着いたのは夜の11時過ぎで、駅の前に待ち構えていたお互いの両親にたっぷりと怒られた。俺としてはあの子を家まで送っていくつもりだったけど、そんなことは出来ず、俺たちは別れてそれぞれの親と一緒に駅から家までの短い道のりを帰った。

その短い道のりの中で、俺は両親になんで電話しなかったのか問いつめられた。あの信号で思ったことをそのまま言うことは出来ずに、「別にいいだろ」とぶっきらぼうに答えたのを覚えている。

そして同時に、こう思っていた。

あの子も俺と同じ気持ちで歩くことを選んでくれていたらいいな、と。

あの子との特別な思い出は、それっきりだ。俺たちは違う高校に進学し、疎遠になってしまった。

そんなことを思い出しながら俺は、きまぐれであの子の誕生日パスコードに入力してみた。当然ながら、正しくはない。

「だよな」

そう思いながらそのiPod touchを一旦は机に置いたが、ふともう一つのきまぐれを起こして今度は自分の誕生日パスコードに入力してみた。

そうしたら、ロックが解けた。

俺は一瞬固まってしまった。でもすぐに我に帰り、何かに取り憑かれたかのように、左下に現れたミュージックボタンタッチする。そしてプレイリストアーティスト、曲、アルバム、その他、すべてをチェックした。

そのiPod touchには、山崎まさよしの『One more time, One more chance』しか入っていなかった。

俺はそれを見て、あの結局渡しそびれてしまったプレゼントをどこにやったのか思い出そうとしながら、「また、歩くか」とつぶやいた。

窓の外には、雪が降っていた。

2008-02-10

時速3キロメートル

彼は道を歩いていて、iPod touchを拾った。

早速家に持ち帰ってみて曲を聴いてみようとするが、そのiPod touchにはパスコードがかかっていて曲が聴けない。けれどもいじってみるうちに、ホームボタンダブルクリックすれば今流れている曲を聴くことだけは出来ることに気づく。

そのiPod touchで流れていた曲は、山崎まさよしの『One more time, One more chance』だった。

その曲で彼は中学生の頃好きだった女の子のことを思い出す。

その女の子と初めてのデートに行った時、女の子が財布を落としてしまい、家に帰る電車賃が無くなってしまった。彼も自分の分の電車賃しか持っていなかった。彼は女の子に自分の財布を押し付けて、「お前電車に乗って帰れよ。俺は歩いて帰るから」とカッコ付けようとする。「でも、そんな…」と渋る女の子に、彼は最新型のMDウォークマンを見せながら、「大丈夫だって。これがあるから退屈しないし」となおも強がる。そうしたら女の子が、「じゃあ一緒にそれ聴きながら歩いて行こう」と提案し、結局二人で歩いて家まで帰ることになった。

そのウォークマンで流れていた曲が、山崎まさよしの『One more time, One more chance』だった。

雪が降ってきた冬の道を二人でひとつのイヤホンをして歩いて帰った。

何度も何度もリピートしてかかる『One more time, One more chance』を聴きながら。

「ねぇ、知ってる?人が歩くスピード。時速3キロメートル

女の子はそうつぶやいた。

「家までずいぶんかかることになっちゃうね」と。

途中で彼は、『そうか、家に電話をして親に迎えにきてもらえば帰れる』とさすがに気づく。でもそのことを言おうと女の子の方を見たら、切ない様な、優しい様な女の子の横顔が目に入ってきて、そのまま歩いて帰ることにした。

結局家に着いたのは夜の11時過ぎで、二人して親に思いっきり怒られた。でも、後悔とか罪悪感とかは全く感じず、満たされた気持ちだった。

けれども二人は結局、違う高校に進学したのをきっかけに疎遠になって行ってしまった。

そんなことを思い出しながら彼は、きまぐれでその女の子誕生日パスコードに入力してみる。当然ながら正しくはない。「だよな」とか思いながらそのiPod touchを一旦は机に置いたが、ふともう一つのきまぐれを起こして自分の誕生日パスコードに入力してみた。そうしたら、ロックが解けた。そのiPod touchに入っていたのは、山崎まさよしの『One more time, One more chance』だけだった。

それを見て彼は、「また、歩くか」と一人つぶやいた。

2007-11-15

やっぱオライリーはバカだな

"What Is Web 2.0" Tim O'Reilly 2005/9/30

http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html

Core Competencies of Web 2.0 Companies

In exploring the seven principles above, we've highlighted some of the principal features of Web 2.0. Each of the examples we've explored demonstrates one or more of those key principles, but may miss others. Let's close, therefore, by summarizing what we believe to be the core competencies of Web 2.0 companies:

  • Services, not packaged software, with cost-effective scalability
  • Control over unique, hard-to-recreate data sources that get richer as more people use them
  • Trusting users as co-developers
  • Harnessing collective intelligence
  • Leveraging the long tail through customer self-service
  • Software above the level of a single device
  • Lightweight user interfaces, development models, AND business models

ノイズを除去してまとめれば、要するに相互接続性を確保したWebサービスのことだ。

そしてそう言えばいいのである。

「どんなデータベース資産を蓄積してるんだい?」とかアホと違うか。外部から利用できないならそんなのどうでもいいんだよ。ソフトウェアをそのByte量で評価するのと変わらん。大きいコードにはいっぱい機能が詰まってるはずだみたいな。

結局分かってないから適切な表現ができないのだろう。

それに言ってること微妙に変えてないか、こいつ。

2007-11-13

まだ好きだけど、一回振られてる。友達だって。

一回振られてるけど友達でいたいとか言われたから、よけいにメールも送りにくい。

送ってもおkみたいなことを友達とかに言われたけど、なんて送りゃいいんだよ。

振られてもまだ好きってのはつらいもんだな。there`s plenty more fish in the sea.

i know i know. だけど無理だ〜。きっつい。

2007-07-19

/* Ten */
if (typeof(Ten) == 'undefined') {
    Ten = {};
}
Ten.NAME = 'Ten';
Ten.VERSION = 0.06;

/* Ten.Class */
Ten.Class = function(klass, prototype) {
    if (klass && klass.initialize) {
	var c = klass.initialize;
    } else if(klass && klass.base) {
        var c = function() { return klass.base[0].apply(this, arguments) };
    } else {
	var c = function() {};
    }
    c.prototype = prototype || {};
    c.prototype.constructor = c;
    Ten.Class.inherit(c, klass);
    if (klass && klass.base) {
        for (var i = 0;  i < klass.base.length; i++) {
	    var parent = klass.base[i];
            if (i == 0) {
                c.SUPER = parent;
                c.prototype.SUPER = parent.prototype;
            }
            Ten.Class.inherit(c, parent);
            Ten.Class.inherit(c.prototype, parent.prototype);
        }
    }
    return c;
}
Ten.Class.inherit = function(child,parent) {
    for (var prop in parent) {
        if (typeof(child[prop]) != 'undefined' || prop == 'initialize') continue;
        child[prop] = parent[prop];
    }
}

/*
// Basic Ten Classes
**/

/* Ten.JSONP */
Ten.JSONP = new Ten.Class({
    initialize: function(uri,obj,method) {
        if (Ten.JSONP.Callbacks.length) {
            setTimeout(function() {new Ten.JSONP(uri,obj,method)}, 500);
            return;
        }
        var del = uri.match(/\?/) ? '&' : '?';
        uri += del + 'callback=Ten.JSONP.callback';
        if (!uri.match(/timestamp=/)) {
            uri += '&' + encodeURI(new Date());
        }
        if (obj && method) Ten.JSONP.addCallback(obj,method);
        this.script = document.createElement('script');
        this.script.src = uri;
        this.script.type = 'text/javascript';
        document.getElementsByTagName('head')[0].appendChild(this.script);
    },
    addCallback: function(obj,method) {
        Ten.JSONP.Callbacks.push({object: obj, method: method});
    },
    callback: function(args) {
        // alert('callback called');
        var cbs = Ten.JSONP.Callbacks;
        for (var i = 0; i < cbs.length; i++) {
            var cb = cbs[i];
            cb.object[cb.method].call(cb.object, args);
        }
        Ten.JSONP.Callbacks = [];
    },
    MaxBytes: 8000,
    Callbacks: []
});

/* Ten.XHR */
Ten.XHR = new Ten.Class({
    initialize: function(uri,opts,obj,method) {
        if (!uri) return;
        this.request = Ten.XHR.getXMLHttpRequest();
        this.callback = {object: obj, method: method};
        var xhr = this;
        var prc = this.processReqChange;
        this.request.onreadystatechange = function() {
            prc.apply(xhr, arguments);
        }
        var method = opts.method || 'GET';
        this.request.open(method, uri, true);
        if (method == 'POST') {
            this.request.setRequestHeader('Content-Type',
                                          'application/x-www-form-urlencoded');
        }
        var data = opts.data ? Ten.XHR.makePostData(opts.data) : null;
        this.request.send(data);
    },
    getXMLHttpRequest: function() {
        var xhr;
        var tryThese = [
            function () { return new XMLHttpRequest(); },
            function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
            function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
            function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
        ];
        for (var i = 0; i < tryThese.length; i++) {
            var func = tryThese[i];
            try {
                xhr = func;
                return func();
            } catch (e) {
                //alert(e);
            }
        }
        return xhr;
    },
    makePostData: function(data) {
        var pairs = [];
        var regexp = /%20/g;
        for (var k in data) {
            var v = data[k].toString();
            var pair = encodeURIComponent(k).replace(regexp,'+') + '=' +
                encodeURIComponent(v).replace(regexp,'+');
            pairs.push(pair);
        }
        return pairs.join('&');
    }
},{
    processReqChange: function() {
        var req = this.request;
        if (req.readyState == 4) {
            if (req.status == 200) {
                var cb = this.callback;
                cb.object[cb.method].call(cb.object, req);
            } else {
                alert("There was a problem retrieving the XML data:\n" +
                      req.statusText);
            }
        }
    }
});

/* Ten.Observer */
Ten.Observer = new Ten.Class({
    initialize: function(element,event,obj,method) {
        var func = obj;
        if (typeof(method) == 'string') {
            func = obj[method];
        }
        this.element = element;
        this.event = event;
        this.listener = function(event) {
            return func.call(obj, new Ten.Event(event || window.event));
        }
        if (this.element.addEventListener) {
            if (this.event.match(/^on(.+)$/)) {
                this.event = RegExp.$1;
            }
            this.element.addEventListener(this.event, this.listener, false);
        } else if (this.element.attachEvent) {
            this.element.attachEvent(this.event, this.listener);
        }
    }
},{
    stop: function() {
        if (this.element.removeEventListener) {
            this.element.removeEventListener(this.event,this.listener,false);
        } else if (this.element.detachEvent) {
            this.element.detachEvent(this.event,this.listener);
        }
    }
});

/* Ten.Event */
Ten.Event = new Ten.Class({
    initialize: function(event) {
        this.event = event;
    },
    keyMap: {
        8:"backspace", 9:"tab", 13:"enter", 19:"pause", 27:"escape", 32:"space",
        33:"pageup", 34:"pagedown", 35:"end", 36:"home", 37:"left", 38:"up",
        39:"right", 40:"down", 44:"printscreen", 45:"insert", 46:"delete",
        112:"f1", 113:"f2", 114:"f3", 115:"f4", 116:"f5", 117:"f6", 118:"f7",
        119:"f8", 120:"f9", 121:"f10", 122:"f11", 123:"f12",
        144:"numlock", 145:"scrolllock"
    }
},{
    mousePosition: function() {
        if (!this.event.clientX) return;
        return Ten.Geometry.getMousePosition(this.event);
    },
    isKey: function(name) {
        var ecode = this.event.keyCode;
        if (!ecode) return;
        var ename = Ten.Event.keyMap[ecode];
        if (!ename) return;
        return (ename == name);
    },
    targetIsFormElements: function() {
        var target = this.event.target;
        if (!target) return;
        var T = (target.tagName || '').toUpperCase();
        return (T == 'INPUT' || T == 'SELECT' || T == 'OPTION' ||
                T == 'BUTTON' || T == 'TEXTAREA');
    },
    stop: function() {
        var e = this.event;
        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        } else {
            e.cancelBubble = true;
            e.returnValue = false;
        }
    }
});

/* Ten.DOM */
Ten.DOM = new Ten.Class({
    getElementsByTagAndClassName: function(tagName, className, parent) {
        if (typeof(parent) == 'undefined') {
            parent = document;
        }
        var children = parent.getElementsByTagName(tagName);
        if (className) { 
            var elements = [];
            for (var i = 0; i < children.length; i++) {
                var child = children[i];
                var cls = child.className;
                if (!cls) {
                    continue;
                }
                var classNames = cls.split(' ');
                for (var j = 0; j < classNames.length; j++) {
                    if (classNames[j] == className) {
                        elements.push(child);
                        break;
                    }
                }
            }
            return elements;
        } else {
            return children;
        }
    },
    removeEmptyTextNodes: function(element) {
        var nodes = element.childNodes;
        for (var i = 0; i < nodes.length; i++) {
            var node = nodes[i];
            if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
                node.parentNode.removeChild(node);
            }
        }
    },
    nextElement: function(elem) {
        do {
            elem = elem.nextSibling;
        } while (elem && elem.nodeType != 1);
        return elem;
    },
    prevElement: function(elem) {
        do {
            elem = elem.previousSibling;
        } while (elem && elem.nodeType != 1);
        return elem;
    },
    scrapeText: function(node) {
        var rval = [];
        (function (node) {
            var cn = node.childNodes;
            if (cn) {
                for (var i = 0; i < cn.length; i++) {
                    arguments.callee.call(this, cn[i]);
                }
            }
            var nodeValue = node.nodeValue;
            if (typeof(nodeValue) == 'string') {
                rval.push(nodeValue);
            }
        })(node);
        return rval.join('');
    },
    onLoadFunctions: [],
    loaded: false,
    timer: null,
    addEventListener: function(event,func) {
        if (event != 'load') return;
        Ten.DOM.onLoadFunctions.push(func);
        Ten.DOM.checkLoaded();
    },
    checkLoaded: function() {
        var c = Ten.DOM;
        if (c.loaded) return true;
        if (document && document.getElementsByTagName &&
            document.getElementById && document.body) {
            if (c.timer) {
                clearInterval(c.timer);
                c.timer = null;
            }
            for (var i = 0; i < c.onLoadFunctions.length; i++) {
                    c.onLoadFunctions[i]();
            }
            c.onLoadFunctions = [];
            c.loaded = true;
        } else {
            c.timer = setInterval(c.checkLoaded, 13);
        }
    }
});

/* Ten.Style */
Ten.Style = new Ten.Class({
    applyStyle: function(elem, style) {
        for (prop in style) {
            elem.style[prop] = style[prop];
        }
    }
});

/* Ten.Geometry */
Ten.Geometry = new Ten.Class({
    initialize: function() {
        if (Ten.Geometry._initialized) return;
        var func = Ten.Geometry._functions;
        var de = document.documentElement;
        if (window.innerWidth) {
            func.getWindowWidth = function() { return window.innerWidth; }
            func.getWindowHeight = function() { return window.innerHeight; }
            func.getXScroll = function() { return window.pageXOffset; }
            func.getYScroll = function() { return window.pageYOffset; }
        } else if (de && de.clientWidth) {
            func.getWindowWidth = function() { return de.clientWidth; }
            func.getWindowHeight = function() { return de.clientHeight; }
            func.getXScroll = function() { return de.scrollLeft; }
            func.getYScroll = function() { return de.scrollTop; }
        } else if (document.body.clientWidth) {
            func.getWindowWidth = function() { return document.body.clientWidth; }
            func.getWindowHeight = function() { return document.body.clientHeight; }
            func.getXScroll = function() { return document.body.scrollLeft; }
            func.getYScroll = function() { return document.body.scrollTop; }
        }
        Ten.Geometry._initialized = true;
    },
    _initialized: false,
    _functions: {},
    getScroll: function() {
        if (!Ten.Geometry._initialized) new Ten.Geometry;
        return {
            x: Ten.Geometry._functions.getXScroll(),
            y: Ten.Geometry._functions.getYScroll()
        };
    },
    getMousePosition: function(pos) {
        // pos should have clientX, clientY same as mouse event
        if ((navigator.userAgent.indexOf('Safari') > -1) &&
            (navigator.userAgent.indexOf('Version/') < 0)) {
            return {
                x: pos.clientX,
                y: pos.clientY
            };
        } else {
            var scroll = Ten.Geometry.getScroll();
            return {
                x: pos.clientX + scroll.x,
                y: pos.clientY + scroll.y
            };
        }
    },
    getElementPosition: function(e) {
        return {
            x: e.offsetLeft,
            y: e.offsetTop
        };
    },
    getWindowSize: function() {
        if (!Ten.Geometry._initialized) new Ten.Geometry;
        return {
            w: Ten.Geometry._functions.getWindowWidth(),
            h: Ten.Geometry._functions.getWindowHeight()
        };
    }
});

/* Ten.Position */
Ten.Position = new Ten.Class({
    initialize: function(x,y) {
        this.x = x;
        this.y = y;
    },
    subtract: function(a,b) {
        return new Ten.Position(a.x - b.x, a.y - b.y);
    }
});

/*
// require Ten.js
**/

/* Ten.SubWindow */
Ten.SubWindow = new Ten.Class({
    initialize: function() {
        var c = this.constructor;
        if (c.singleton && c._cache) {
            return c._cache;
        }
        var div = document.createElement('div');
        Ten.Style.applyStyle(div, Ten.SubWindow._baseStyle);
        Ten.Style.applyStyle(div, c.style);
        this.window = div;
        this.addContainerAndCloseButton();
        document.body.appendChild(div);
        if (c.draggable) {
            this._draggable = new Ten.Draggable(div, this.handle);
        }
        if (c.singleton) c._cache = this;
        return this;
    },
    _baseStyle: {
        color: '#000',
        position: 'absolute',
        display: 'none',
        zIndex: 2,
        left: 0,
        top: 0,
        backgroundColor: '#fff',
        border: '1px solid #bbb'
    },
    style: {
        padding: '2px',
        textAlign: 'center',
        borderRadius: '6px',
        MozBorderRadius: '6px',
        width: '100px',
        height: '100px'
    },
    handleStyle: {
        position: 'absolute',
        top: '0px',
        left: '0px',
        backgroundColor: '#f3f3f3',
        borderBottom: '1px solid #bbb',
        width: '100%',
        height: '30px'
    },
    containerStyle: {
        margin: '32px 0 0 0',
        padding: '0 10px'
    },
    // closeButton: 'close.gif',
    closeButton: 'http://s.hatena.com/images/close.gif',
    closeButtonStyle: {
        position: 'absolute',
        top: '8px',
        right: '10px',
        cursor: 'pointer'
    },
    _baseScreenStyle: {
        position: 'absolute',
        top: '0px',
        left: '0px',
        display: 'none',
        zIndex: 1,
        overflow: 'hidden',
        width: '100%',
        height: '100%'
    },
    screenStyle: {},
    showScreen: true,
    singleton: true,
    draggable: true,
    _cache: null
},{
    screen: null,
    windowObserver: null,
    visible: false,
    addContainerAndCloseButton: function() {
        var win = this.window;
        var c = this.constructor;
        var div = document.createElement('div');
        win.appendChild(div);
        Ten.Style.applyStyle(div, c.containerStyle);
        this.container = div;
        if (c.handleStyle) {
            var handle = document.createElement('div');
            Ten.Style.applyStyle(handle, c.handleStyle);
            win.appendChild(handle);
            this.handle = handle;
        }
        if (c.closeButton) {
	    var btn = document.createElement('img');
            btn.src = c.closeButton;
            btn.alt = 'close';
            Ten.Style.applyStyle(btn, c.closeButtonStyle);
            win.appendChild(btn);
            new Ten.Observer(btn, 'onclick', this, 'hide');
            this.closeButton = btn;
        }
        if (c.showScreen) {
            var screen = document.createElement('div');
            Ten.Style.applyStyle(screen, Ten.SubWindow._baseScreenStyle);
            Ten.Style.applyStyle(screen, c.screenStyle);
            document.body.appendChild(screen);
            this.screen = screen;
            new Ten.Observer(screen, 'onclick', this, 'hide');
        }
    },
    show: function(pos) {
        pos = (pos.x && pos.y) ? pos : {x:0, y:0};
        with (this.window.style) {
            display = 'block';
            left = pos.x + 'px';
            top = pos.y + 'px';
        }
        if (this.screen) {
            with (this.screen.style) {
                display = 'block';
                left = Ten.Geometry.getScroll().x + 'px';
                top = Ten.Geometry.getScroll().y + 'px';
            }
        }
        this.windowObserver = new Ten.Observer(document.body, 'onkeypress', this, 'handleEscape');
        this.visible = true;
    },
    handleEscape: function(e) {
        if (!e.isKey('escape')) return;
        this.hide();
    },
    hide: function() {
        if (this._draggable) this._draggable.endDrag();
        this.window.style.display = 'none';
        if (this.screen) this.screen.style.display = 'none';
        if (this.windowObserver) this.windowObserver.stop();
        this.visible = false;
    }
});

/* Ten.Draggable */
Ten.Draggable = new Ten.Class({
    initialize: function(element,handle) {
        this.element = element;
        this.handle = handle || element;
        this.startObserver = new Ten.Observer(this.handle, 'onmousedown', this, 'startDrag');
        this.handlers = [];
    }
},{
    startDrag: function(e) {
        if (e.targetIsFormElements()) return;
        this.delta = Ten.Position.subtract(
            e.mousePosition(),
            Ten.Geometry.getElementPosition(this.element)
        );
        this.handlers = [
            new Ten.Observer(document, 'onmousemove', this, 'drag'),
            new Ten.Observer(document, 'onmouseup', this, 'endDrag'),
            new Ten.Observer(this.element, 'onlosecapture', this, 'endDrag')
        ];
        e.stop();
    },
    drag: function(e) {
        var pos = Ten.Position.subtract(e.mousePosition(), this.delta);
        Ten.Style.applyStyle(this.element, {
            left: pos.x + 'px',
            top: pos.y + 'px'
        });
        e.stop();
    },
    endDrag: function(e) {
        for (var i = 0; i < this.handlers.length; i++) {
            this.handlers[i].stop();
        }
        if(e) e.stop();
    }
});

/* Hatena */
if (typeof(Hatena) == 'undefined') {
    Hatena = {};
}

/* Hatena.User */
Hatena.User = new Ten.Class({
    initialize: function(name) {
        this.name = name;
    },
    getProfileIcon: function(name) {
        if (!name) name = 'user';
        var pre = name.match(/^[\w-]{2}/)[0];
        var img = document.createElement('img');
        img.src = 'http://www.hatena.ne.jp/users/' + pre + '/' + name + '/profile_s.gif';
        img.alt = name;
        img.setAttribute('class', 'profile-icon');
        img.setAttribute('width','16px');
        img.setAttribute('height','16px');
        with (img.style) {
            margin = '0 3px';
            border = 'none';
            verticalAlign = 'middle';
        }
        return img;
    }
}, {
    profileIcon: function() {
        return Hatena.User.getProfileIcon(this.name);
    }
});

/* Hatena.Star */
if (typeof(Hatena.Star) == 'undefined') {
    Hatena.Star = {};
}

/*
// Hatena.Star.* classes //
**/
if (window.location && window.location.host.match(/hatena\.com/)) {
    Hatena.Star.BaseURL = 'http://s.hatena.com/';
} else {
    Hatena.Star.BaseURL = 'http://s.hatena.ne.jp/';
}
Hatena.Star.Token = null;

/* Hatena.Star.User */
Hatena.Star.User = new Ten.Class({
    base: [Hatena.User],
    initialize: function(name) {
        if (Hatena.Star.User._cache[name]) {
            return Hatena.Star.User._cache[name];
        } else {
            this.name = name;
            Hatena.Star.User._cache[name] = this;
            return this;
        }
    },
    _cache: {}
},{
    userPage: function() {
        return Hatena.Star.BaseURL + this.name + '/';
    }
});

/* Hatena.Star.Entry */
Hatena.Star.Entry = new Ten.Class({
    initialize: function(e) {
        this.entry = e;
        this.uri = e.uri;
        this.title = e.title;
        this.star_container = e.star_container;
        this.comment_container = e.comment_container;
        this.stars = [];
        this.comments = [];
    },
    maxStarCount: 11
},{
    flushStars: function() {
        this.stars = [];
        this.star_container.innerHTML = '';
    },
    bindStarEntry: function(se) {
        this.starEntry = se;
        for (var i = 0; i < se.stars.length; i++) {
            if (typeof(se.stars[i]) == 'number') {
                this.stars.push(new Hatena.Star.InnerCount(se.stars[i],this));
            } else {
                this.stars.push(new Hatena.Star.Star(se.stars[i]));
            }
        }
        if (se.comments && !this.comments.length) {
            for (var i = 0; i < se.comments.length; i++) {
                this.comments.push(new Hatena.Star.Comment(se.comments[i]));
            }
        }
        this.can_comment = se.can_comment;
    },
    setCanComment: function(v) {
        this.can_comment = v;
    },
    showButtons: function() {
        this.addAddButton();
        this.addCommentButton();
    },
    addAddButton: function() {
        if (this.star_container) {
            this.addButton = new Hatena.Star.AddButton(this);
            this.star_container.appendChild(this.addButton);
        }
    },
    addCommentButton: function() {
        if (this.comment_container) {
            this.commentButton = new Hatena.Star.CommentButton(this);
            this.comment_container.appendChild(this.commentButton.img);
        }
    },
    showStars: function() {
        var klass = this.constructor;
        // if (this.stars.length > klass.maxStarCount) {
        //     var ic = new Hatena.Star.InnerCount(this.stars.slice(1,this.stars.length));
        //     this.star_container.appendChild(this.stars[0]);
        //     this.star_container.appendChild(ic);
        //     this.star_container.appendChild(this.stars[this.stars.length - 1]);
        // } else {
        for (var i = 0; i < this.stars.length; i++) {
            this.star_container.appendChild(this.stars[i]);
        }
    },
    showCommentButton: function() {
        if (this.can_comment) {
            this.commentButton.show();
            if (this.comments.length) this.commentButton.activate();
        } else {
            // this.commentButton.hide();
        }
    },
    addStar: function(star) {
        this.stars.push(star);
        this.star_container.appendChild(star);
    },
    addComment: function(com) {
        if (!this.comments) this.comments = [];
        if (this.comments.length == 0) {
            this.commentButton.activate();
        }
        this.comments.push(com);
    },
    showCommentCount: function() {
        this.comment_container.innerHTML += this.comments.length;
    }
});

/* Hatena.Star.Button */
Hatena.Star.Button = new Ten.Class({
    createButton: function(args) {
        var img = document.createElement('img');
        img.src = args.src;
        img.alt = img.title = args.alt;
        with (img.style) {
	    cursor = 'pointer';
	    margin = '0 3px';
            padding = '0';
            border = 'none';
            verticalAlign = 'middle';
        }
        return img;
    }
});

/* Hatena.Star.AddButton */
Hatena.Star.AddButton = new Ten.Class({
    base: ['Hatena.Star.Button'],
    initialize: function(entry) {
        this.entry = entry;
        this.lastPosition = null;
        var img = Hatena.Star.Button.createButton({
            src: Hatena.Star.AddButton.ImgSrc,
            alt: 'Add Star'
        });
        this.observer = new Ten.Observer(img,'onclick',this,'addStar');
        this.img = img;
        return img;
    },
    ImgSrc: Hatena.Star.BaseURL + 'images/add.gif'
},{
    addStar: function(e) {
        this.lastPosition = e.mousePosition();
        var uri = Hatena.Star.BaseURL + 'star.add.json?uri=' + encodeURIComponent(this.entry.uri) +
            '&title=' + encodeURIComponent(this.entry.title);
        if (Hatena.Star.Token) {
            uri += '&token=' + Hatena.Star.Token;
        }
        new Ten.JSONP(uri, this, 'receiveResult');
    },
    receiveResult: function(args) {
        var name = args ? args.name : null;
        if (name) {
            this.entry.addStar(new Hatena.Star.Star({name: name}));
            //alert('Succeeded in Adding Star ' + args);
        } else if (args.errors) {
            var pos = this.lastPosition;
            pos.x -= 10;
            pos.y += 25;
            var scroll = Ten.Geometry.getScroll();
            var scr = new Hatena.Star.AlertScreen();
            var alert = args.errors[0];
            scr.showAlert(alert, pos);
        }
    }
});

/* Hatena.Star.CommentButton */
Hatena.Star.CommentButton = new Ten.Class({
    base: ['Hatena.Star.Button'],
    initialize: function(entry) {
        this.entry = entry;
        this.lastPosition = null;
        var img = Hatena.Star.Button.createButton({
            src: Hatena.Star.CommentButton.ImgSrc,
            alt: 'Comments'
        });
        img.style.display = 'none';
        this.observer = new Ten.Observer(img,'onclick',this,'showComments');
        this.img = img;
    },
    ImgSrc: Hatena.Star.BaseURL + 'images/comment.gif',
    ImgSrcActive: Hatena.Star.BaseURL + 'images/comment_active.gif'
},{
    showComments: function(e) {
        if (!this.screen) this.screen = new Hatena.Star.CommentScreen();
        this.screen.bindEntry(this.entry);
        var pos = e.mousePosition();
        pos.y += 25;
        this.screen.showComments(this.entry, pos);
    },
    hide: function() {
        this.img.style.display = 'none';
    },
    show: function() {
        this.img.style.display = 'inline';
    },
    activate: function() {
        this.show();
        this.img.src = Hatena.Star.CommentButton.ImgSrcActive;
    }
});

/* Hatena.Star.Star */
Hatena.Star.Star = new Ten.Class({
    initialize: function(args) {
        if (args.img) {
            this.img = args.img;
            this.name = this.img.getAttribute('alt');
        } else {
            this.name = args.name;
            var img = document.createElement('img');
            img.src = Hatena.Star.Star.ImgSrc;
            img.alt = this.name;
            with (img.style) {
                padding = '0';
                border = 'none';
            }
            this.img = img;
        }
	new Ten.Observer(this.img,'onmouseover',this,'showName');
	new Ten.Observer(this.img,'onmouseout',this,'hideName');
	if (this.name) {
            this.user = new Hatena.Star.User(this.name);
            this.img.style.cursor = 'pointer';
            new Ten.Observer(this.img,'onclick',this,'goToUserPage');
        }
        if (args.count && args.count > 1) {
            var c = document.createElement('span');
            c.setAttribute('class', 'hatena-star-inner-count');
            Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
            c.innerHTML = args.count;
            var s = document.createElement('span');
            s.appendChild(img);
            s.appendChild(c);
            return s;
        } else {
            return this.img;
        }
    },
    ImgSrc: Hatena.Star.BaseURL + 'images/star.gif'
},{
    showName: function(e) {
        if (!this.screen) this.screen = new Hatena.Star.NameScreen();
        var pos = e.mousePosition();
        pos.x += 10;
        pos.y += 25;
        this.screen.showName(this.name, pos);
    },
    hideName: function() {
        if (!this.screen) return;
        this.screen.hide();
    },
    goToUserPage: function() {
        window.location = this.user.userPage();
    }
});

/* Hatena.Star.InnerCount */
Hatena.Star.InnerCount = new Ten.Class({
    initialize: function(count, e) {
        this.count = count;
        this.entry = e;
        var c = document.createElement('span');
        c.setAttribute('class', 'hatena-star-inner-count');
        Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
        c.style.cursor = 'pointer';
        c.innerHTML = count;
        new Ten.Observer(c,'onclick',this,'showInnerStars');
        this.container = c;
        return c;
    },
    style: {
        color: '#f4b128',
        fontWeight: 'bold',
        fontSize: '80%',
        fontFamily: '"arial", sans-serif',
        margin: '0 2px'
    }
},{
    showInnerStars: function() {
        var url = Hatena.Star.BaseURL + 'entry.json?uri=' +
        encodeURIComponent(this.entry.uri);
        new Ten.JSONP(url, this, 'receiveStarEntry');
    },
    receiveStarEntry: function(res) {
        var se = res.entries[0];
        var e = this.entry;
        if (encodeURIComponent(se.uri) != encodeURIComponent(e.uri)) return;
        e.flushStars();
        e.bindStarEntry(se);
        e.addAddButton();
        e.showStars();
    }
});

/* Hatena.Star.Comment */
Hatena.Star.Comment = new Ten.Class({
    initialize: function(args) {
        this.name = args.name;
        this.body = args.body;
    }
},{
    asElement: function() {
        var div = document.createElement('div');
        with (div.style) {
            margin = '0px 0';
            padding = '5px 0';
            borderBottom = '1px solid #ddd';
        }
        var ico = Hatena.User.getProfileIcon(this.name);
        div.appendChild(ico);
        var span = document.createElement('span');
        with(span.style) {
            fontSize = '90%';
        }
        span.innerHTML = this.body;
        div.appendChild(span);
        return div;
    }
});

/* Hatena.Star.NameScreen */
Hatena.Star.NameScreen = new Ten.Class({
    base: [Ten.SubWindow],
    style: {
        padding: '2px',
        textAlign: 'center'
    },
    containerStyle: {
        margin: 0,
        padding: 0
    },
    handleStyle: null,
    showScreen: false,
    closeButton: null,
    draggable: false
},{
    showName: function(name, pos) {
        this.container.innerHTML = '';
        this.container.appendChild(Hatena.User.getProfileIcon(name));
        this.container.appendChild(document.createTextNode(name));
        this.show(pos);
    }
});

/* Hatena.Star.AlertScreen */
Hatena.Star.AlertScreen = new Ten.Class({
    base: [Ten.SubWindow],
    style: {
        padding: '2px',
        textAlign: 'center',
        borderRadius: '6px',
        MozBorderRadius: '6px',
        width: '240px',
        height: '120px'
    },
    handleStyle: {
        position: 'absolute',
        top: '0px',
        left: '0px',
        backgroundColor: '#f3f3f3',
        borderBottom: '1px solid #bbb',
        width: '100%',
        height: '30px',
        borderRadius: '6px 6px 0 0',
        MozBorderRadius: '6px 6px 0 0'
    }
},{
    showAlert: function(msg, pos) {
        this.container.innerHTML = msg;
        var win = Ten.Geometry.getWindowSize();
        var scr = Ten.Geometry.getScroll();
        var w = parseInt(this.constructor.style.width) + 20;
        if (pos.x + w > scr.x + win.w) pos.x = win.w + scr.x - w;
        this.show(pos);
    }
});

/* Hatena.Star.CommentScreen */
Hatena.Star.CommentScreen = new Ten.Class({
    base: [Ten.SubWindow],
    initialize: function() {
        var self = this.constructor.SUPER.call(this);
        if (!self.commentsContainer) self.addCommentsContainer();
        return self;
    },
    style: {
        width: '280px',
        height: '280px',
        overflowY: 'auto',
        padding: '2px',
        textAlign: 'center',
        borderRadius: '6px',
        MozBorderRadius: '6px'
    },
    handleStyle: {
        position: 'absolute',
        top: '0px',
        left: '0px',
        backgroundColor: '#f3f3f3',
        borderBottom: '1px solid #bbb',
        width: '100%',
        height: '30px',
        borderRadius: '6px 6px 0 0',
        MozBorderRadius: '6px 6px 0 0'
    },
    containerStyle: {
        margin: '32px 0 0 0',
        textAlign: 'left',
        padding: '0 10px'
    },
    getLoadImage: function() {
        var img = document.createElement('img');
        img.src = Hatena.Star.BaseURL + 'images/load.gif';
        img.setAttribute('alt', 'Loading');
        with (img.style) {
            verticalAlign = 'middle';
            margin = '0 2px';
        }
        return img;
    }
},{
    addCommentsContainer: function() {
        var div = document.createElement('div');
        with (div.style) {
            marginTop = '-3px';
        }
        this.container.appendChild(div);
        this.commentsContainer = div;
    },
    showComments: function(e, pos) {
        var comments = e.comments;
        if (!comments) comments = [];
        this.commentsContainer.innerHTML = '';
        for (var i=0; i<comments.length; i++) {
            this.commentsContainer.appendChild(comments[i].asElement());
        }
        if (e.starEntry && !e.can_comment) {
            this.hideCommentForm();
        } else {
            this.addCommentForm();
        }
        var win = Ten.Geometry.getWindowSize();
        var scr = Ten.Geometry.getScroll();
        var w = parseInt(this.constructor.style.width) + 20;
        if (pos.x + w > scr.x + win.w) pos.x = win.w + scr.x - w;
        this.show(pos);
    },
    bindEntry: function(e) {
        this.entry = e;
    },
    sendComment: function(e) {
        if (!e.isKey('enter')) return;
        var body = this.commentInput.value;
        if (!body) return;
        this.commentInput.disabled = 'true';
        this.showLoadImage();
        var url = Hatena.Star.BaseURL + 'comment.add.json?body=' + encodeURIComponent(body) +
            '&uri=' + encodeURIComponent(this.entry.uri) +
            '&title=' + encodeURIComponent(this.entry.title);
        new Ten.JSONP(url, this, 'receiveResult');
    },
    receiveResult: function(args) {
        if (!args.name || !args.body) return;
        this.commentInput.value = ''; 
        this.commentInput.disabled = '';
        this.hideLoadImage();
        var com = new Hatena.Star.Comment(args);
        this.entry.addComment(com);
        this.commentsContainer.appendChild(com.asElement());
    },
    showLoadImage: function() {
        if (!this.loadImage) return; 
        this.loadImage.style.display = 'inline';
    },
    hideLoadImage: function() {
        if (!this.loadImage) return; 
        this.loadImage.style.display = 'none';
    },
    hideCommentForm: function() {
        if (!this.commentForm) return;
        this.commentForm.style.display = 'none';
    },
    addCommentForm: function() {
        if (this.commentForm) {
            this.commentForm.style.display = 'block';
            return;
        }
        var form = document.createElement('div');
        this.container.appendChild(form);
        this.commentForm = form;
        with (form.style) {
            margin = '0px 0';
            padding = '5px 0';
            // borderTop = '1px solid #ddd';
        }
        //if (Hatena.Visitor) {
        //    form.appendChild(Hatena.Visitor.profileIcon());
        //} else {
        //    form.appendChild(Hatena.User.getProfileIcon());
        //}
        var input = document.createElement('input');
        input.type = 'text';
        with (input.style) {
            width = '215px';
	    border = '1px solid #bbb';
            padding = '3px';
        }
        form.appendChild(input);
        this.commentInput = input;
        var img = this.constructor.getLoadImage();
        this.loadImage = img;
        this.hideLoadImage();
        form.appendChild(img);
        new Ten.Observer(input,'onkeypress',this,'sendComment');
    }
});

/* Hatena.Star.EntryLoader */
Hatena.Star.EntryLoader = new Ten.Class({
    initialize: function() {
        var entries = Hatena.Star.EntryLoader.loadEntries();
        this.entries = [];
        for (var i = 0; i < entries.length; i++) {
            var e = new Hatena.Star.Entry(entries[i]);
            e.showButtons();
            this.entries.push(e);
        }
        this.getStarEntries();
    },
    createStarContainer: function() {
        var sc = document.createElement('span');
        sc.setAttribute('class', 'hatena-star-star-container');
        sc.style.marginLeft = '1px';
        return sc;
    },
    createCommentContainer: function() {
        var cc = document.createElement('span');
        cc.setAttribute('class', 'hatena-star-comment-container');
        cc.style.marginLeft = '1px';
        return cc;
    },
    scrapeTitle: function(node) {
        var rval = [];
        (function (node) {
            if (node.tagName == 'SPAN' &&
                (node.className == 'sanchor' ||
                 node.className == 'timestamp')) {
                     return;
            } else if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
                return;
            }
            var cn = node.childNodes;
            if (cn) {
                for (var i = 0; i < cn.length; i++) {
                    arguments.callee.call(this, cn[i]);
                }
            }
            var nodeValue = node.nodeValue;
            if (typeof(nodeValue) == 'string') {
                rval.push(nodeValue);
            }
        })(node);
        return rval.join('');
    },
    headerTagAndClassName: ['h3',null],
    getHeaders: function() {
        var t = Hatena.Star.EntryLoader.headerTagAndClassName;
        return Ten.DOM.getElementsByTagAndClassName(t[0],t[1],document);
    },
    loadEntries: function() {
        var entries = [];
        //var headers = document.getElementsByTagName('h3');
        var c = Hatena.Star.EntryLoader;
        var headers = c.getHeaders();
        for (var i = 0; i < headers.length; i++) {
            var header = headers[i];
            var a = header.getElementsByTagName('a')[0];
            if (!a) continue;
            var uri = a.href;
            var title = '';
            // Ten.DOM.removeEmptyTextNodes(header);
            var cns = header.childNodes;
            title = c.scrapeTitle(header);
            var cc = c.createCommentContainer();
            header.appendChild(cc);
            var sc = c.createStarContainer();
            header.appendChild(sc);
            entries.push({
                uri: uri,
                title: title,
                star_container: sc,
                comment_container: cc
            });
        }
        return entries;
    }
},{
    getStarEntries: function() {
        var url = Hatena.Star.BaseURL + 'entries.json?';
        for (var i = 0; i < this.entries.length; i++) {
            if (url.length > Ten.JSONP.MaxBytes) {
                new Ten.JSONP(url, this, 'receiveStarEntries');
                url = Hatena.Star.BaseURL + 'entries.json?';
            }
            url += 'uri=' + encodeURIComponent(this.entries[i].uri) + '&';
        }
        new Ten.JSONP(url, this, 'receiveStarEntries');
    },
    receiveStarEntries: function(res) {
        var entries = res.entries;
        if (!entries) entries = [];
        for (var i = 0; i < this.entries.length; i++) {
            var e = this.entries[i];
            for (var j = 0; j < entries.length; j++) {
                var se = entries[j];
                if (!se.uri) continue;
                if (encodeURIComponent(se.uri) == encodeURIComponent(e.uri)) {
                    e.bindStarEntry(se);
                    entries.splice(j,1);
                    break;
                }
            }
            if (typeof(e.can_comment) == 'undefined') {
                e.setCanComment(res.can_comment);
            }
            e.showStars();
            e.showCommentButton();
        }
    }
});

/* Hatena.Star.WindowObserver */
Hatena.Star.WindowObserver = new Ten.Class({
    initialize: funct


  

2007-07-13

KEREM SHALOM, Israel, July 11 ?? Real life has a way of intruding into the airy absolutes of the Israeli-Palestinian conflict. Each side may deny the other’s historical legitimacy, or plot the other’s demise, but somehow, the gritty business of coexistence marches on.

Skip to next paragraph

Enlarge This Image

Rina Castelnuovo for The New York Times

An Israeli man signaled for a truck to move toward Gaza at Sufa on Wednesday. Commerce continues despite the Hamas takeover.

The New York Times

For the past month, since the Islamic militants of Hamas took over the Gaza Strip, Israel has kept the main commercial crossing point at Karni shuttered, squeezing the life out of the limp Gazan economy. Israel bans contact with Hamas, and Hamas seeks Israel’s destruction, making border crossing etiquette more precarious than elsewhere.

Yet at this small crossing near the Egyptian border on Wednesday, between mortar attacks by Hamas and other militants, about 20 truckloads of milk products, meat, medicines and eggs passed from Israel into Gaza, part of the effort to keep basic commodities reaching the 1.5 million Palestinians of the largely isolated strip. Most of the supplies are not humanitarian relief, but are ordered by Palestinian merchants from Israeli suppliers, relying on contacts built up over years.

The mechanics of the crossover manage to answer Israel’s security needs while avoiding contact with Hamas. At Kerem Shalom, Israeli trucks transfer their goods to what Israeli military officials describe as a “sterile” Palestinian truck. Driven by a carefully vetted Palestinian driver, the truck never leaves the terminal, carrying the goods to the Palestinian side, where they are transferred onto ordinary Palestinian trucks that drive into Gaza.

Kerem Shalom, which means “vineyard of peace,” is surrounded by fences and concrete barriers. It can process only about 20 trucks a day, so it is reserved for products that require refrigeration.

The hardier goods, which make up the bulk of the supplies, go through another crossing, at Sufa, to the north. About 100 Israeli trucks a day come from Israel, swirling up clouds of dust before dumping thousands of tons of dry products, bales of straw and crates of fruit on “the platform,” a fenced-in patch of baked earth. At 3 p.m. the Israeli suppliers leave. Like drug dealers picking up a “drop,” the Gaza merchants send in trucks from a gate on the other side and take the products away.

Other products make their way into Gaza with virtually no human interaction. At the fuel depot at Nahal Oz, Israeli tankers pour diesel, gasoline and cooking gas into Gaza through pipes that run beneath the border. And even at Karni, the main crossing that closed for normal operations on June 12, the Israelis have adapted a 650-foot-long conveyor belt, which was previously used for gravel, to send in grain.

“It is better all around from a security point of view that commodities go in,” said Maj. Peter Lerner of the Coordination and Liaison Administration, the Israeli military agency that deals with the civilian aspects of the Gaza border. “More despair doesn’t serve anyone.”

Israeli officials cite security reasons for having shut Karni, the only crossing equipped to send containers into Gaza, or to handle exports out of the strip. “Karni was based on the concept of two sides operating together,” said Col. Nir Press, the head of the coordination agency.

Colonel Press noted that in April 2006, a vehicle loaded with half a ton of explosives got through three of four checkpoints on the Palestinian side of Karni, and was stopped at the last security position by members of the American-backed Presidential Guard, loyal to the Palestinian president, Mahmoud Abbas of Fatah.

But the Presidential Guard is no longer there, having been routed, along with all other Fatah forces in Gaza, by Hamas.

Instead, the military wing of Hamas and other Palestinian factions have been firing mortar shells at Kerem Shalom. On Tuesday, 10 of them landed in and around the terminal as two trucks of milk were passing. The crossing was closed for the rest of the day. [Another barrage of mortar shells hit areas around Kerem Shalom on Thursday.]

Hamas suspects that Israel wants to use Kerem Shalom to replace the Rafah crossing on the Egypt-Gaza border, which has been closed since June 9. The Palestinians had symbolic control at Rafah. At Kerem Shalom, Israel can better supervise who ?? and what ?? is going in and out of the strip.

“Kerem Shalom is a military post, a place from which Israeli tanks begin their incursions into Gaza,” said Fawzi Barhoum, a Hamas spokesman, justifying the mortar attacks. “How can we consider it a safe and legitimate crossing to replace Rafah?”

But when it comes to food, rather than principle, Hamas is proving itself pragmatic as well. On Sunday, Palestinian merchants, trying to press Israel to reopen Karni, told the Israelis that Hamas had barred the import of Israeli fruit. But by Wednesday, the Israeli fruit was ordered again. “Hamas does not want to lose the private sector,” a Gaza businessman explained.

Tellingly, the exposed Sufa crossing, through which most of the food comes, has not been attacked with mortars so far. Without Karni, however, and with the smaller crossings operating on a one-way basis, Gaza can barely subsist. With hardly any raw materials going in, and no products from Gazan farms, greenhouses and factories so far allowed out, Gaza’s tiny industrial base is on the verge of collapse.

Hamas officials say they want to start negotiations with Israel about reopening the formal crossings. Major Lerner said that Hamas had “a few things to do” first, including recognizing Israel’s right to exist and freeing Gilad Shalit, the Israeli soldier captured and taken to Gaza in a raid more than a year ago.

But the ultimate test of pragmatism may come in September when the Hebrew calendar enters what is known in Jewish law as a “shmita” year. Then the fields of Israel are supposed to lie fallow, and observant Jews seek agricultural products grown elsewhere. Before the Hamas takeover, Israel’s rabbis had reached agreements with Palestinians to import vegetables from Gaza, Major Lerner said. Given the needs of both sides, it may still happen.

2007-06-21

http://www.100shiki.com/archives/2007/06/itunes10get_autobahn.html

8. How does Autobahn work? How is Autobahn technology different from other download accelerators?

For streaming and downloads, Autobahn optimizes your incoming bandwidth, providing faster downloads and more reliable streaming.

Unlike some download applications, Autobahn does not use peer-to-peer transfers and does not use any upstream bandwidth. Instead, in the case of iTunes, Autobahn creates multiple simultaneous connections to the iTunes music store, reducing problems associated with a typical download.

なんか同時接続数増やしてるみたいだけど、サーバへの負荷は無視していいんですかね。

2007-05-16

http://anond.hatelabo.jp/20070516174930

きみがそんな書き込みをするから見に言っちゃったじゃないか。

そして思わず' -- で検索しちゃったじゃないか。

・・・まさか、こんなレベルで。。

Database Results Error
Description: [Microsoft][ODBC dBase Driver] クエリ式 '(タイトル LIKE '%' --%' AND タイトル読 LIKE '%%' AND 記事種別 LIKE '%%') ORDER BY 雑誌ID ASC,開始 ASC' の 構文エラー 
Number: -2147217900 (0x80040E14)
Source: Microsoft OLE DB Provider for ODBC Drivers

One or more form fields were empty. You should provide default values for all form fields that are used in the query. 

しかも日本語ラム名だよ!!

くそテキストがたまに日本語名でやってるのあるけど、ほんとにやりやがった!

やっぱりLike検索なんだろうなとは思ったよ。

しかもソースみたらSQLそのまま乗ってるし。

SELECT * FROM 雑誌 WHERE (タイトル LIKE '%::タイトル::%' AND タイトル読 LIKE '%::タイトル読::%' AND 記事種別 LIKE '%::記事種別::%') ORDER BY 雑誌ID ASC,開始 ASC

入力してない項目にまで検索を掛けているのはどういうわけか。

もちろんindexなんて貼ってるわけないんだろうな。

aspか。なんか懐かしいな。

すげぇ、なんかこのiisパッチも当ててなさそう。

可哀相だからここまでにしておく。これ増田の良心。

おまえらも絶対insertとか流すんじゃないぞ?

2007-04-20

The more we study

The more we study, the more we must study.

It continues forever.

2007-04-08

http://anond.hatelabo.jp/20070408152058

http://www.sitnews.us/HowardDean/060104_dean.html

Electronic Voting - Not Ready For Prime Time

By Howard Dean

June 01, 2004

Tuesday

In December 2000, five Supreme Court justices concluded that a recount in the state of Florida's presidential election was unwarranted. This, despite the desire of the Florida Supreme Court to order a statewide recount in an election that was decided by only 537 votes. In the face of well-documented voting irregularities throughout the state, the U.S.

Supreme Court's decision created enormous cynicism about whether the votes of every American would actually be counted. Although we cannot change what happened in Florida, we have a responsibility to our democracy to prevent a similar situation from happening again.

Some politicians believe a solution to this problem can be found in electronic voting. Recently, the federal government passed legislation encouraging the use of "touch screen" voting machines even though they fail to provide a verifiable record that can be used in a recount. Furthermore, this equipment cannot even verify as to whether a voter did indeed cast a ballot for their intended candidate. Unfortunately, this November, as many as 28% of Americans - 50 million people - will cast ballots using machines that could produce such unreliable and unverifiable results.

Only since 2000 have touch screen voting machines become widely used and yet they have already caused widespread controversy due to their unreliability. For instance, in Wake County, N.C. in 2002, 436 votes were lost as a result of bad software. Hinds County, Miss. had to re-run an election because the machines had so many problems that the will of the voters could not be determined. According to local election officials in Fairfax County, Va., a recent election resulted in one in 100 votes being lost. Many states, such as New Hampshire and most recently Maine, have banned paperless touch screen voting and many more are considering doing so.

Without any accountability or transparency, even if these machines work, we cannot check whether they are in fact working reliably. The American public should not tolerate the use of paperless e-voting machines until at least the 2006 election, allowing time to prevent ongoing errors and failures with the technology. One way or another, every voter should be able to check that an accurate paper record has been made of their vote before it is recorded.

Both Democrats and Republicans have a serious interest in fixing this potentially enormous blow to democracy. A bipartisan bill, sponsored by Rep. Rush Holt (D-N.J.), is one of several paper trail bills in the House and Senate and it should be passed as soon as possible. A grassroots movement for verified voting, led by organizations like VerifiedVoting.org, is gaining momentum nationwide.

There is nothing partisan about the survival of our democracy or its legitimacy. We cannot and must not put the success of one party or another above the good of our entire country and all our people. To the governments of the fifty states, Republican or Democrat, I ask you to put paperless e-voting machines on the shelf until 2006 or until they are reliable and will allow recounts. In a democracy you always count the votes no matter who wins. To abandon that principle is to abandon America.

電子投票---表舞台にはまだ早い」

(Electronic Voting - Not Ready For Prime Time

by ハワードディーン

2000年12月、連邦最高裁の5人の判事は、フロリダ州大統領選挙投票の数えなおしは是認できないと結論するに至った。この決定により、フロリダ州最高裁が州内全ての投票の数えなおしを要求したにもかかわらず、僅か537票差で勝敗を決定する大統領選挙を生み出すことになったのだ。州内での選挙不正に関する明確な情報に直面して、合衆国の最高司法の決定は、全てのアメリカ人投票が実際に数えられるかどうかについて重大な不信感を作り出した。フロリダ州で起こったことを今更ひっくり返すことはできないが、同じ事態が再び起こることを防ぐために、私たちは民主主義に対する責任を負っている。

政治家の中には、この問題を解決する答えは電子投票にあると信じる者もいるようだ。最近連邦政府は、「タッチスクリーン投票機の利用を促進する法案を成立させたが、当の電子投票システムは票集計内容を記録する機能を持たないために、票の再集計ができない。さらに、その電子投票機は、投票者が本当に希望する候補者投票したかどうかを確認する機能すら持たないのだ。あいにく、今年11月には、アメリカ国民の内28%、約5,000万人が、その電子投票システムを利用することになるわけで、信頼できない不確実な投票結果が生じる可能性がある。

2000年に利用されはじめたばかりのタッチスクリーン電子投票システムは、利用が拡大するにつれ、信頼性の欠如による問題を発生させている。例えば、ノースカロライナ州ウェイク郡では、2002年に、ソフト不具合により436票が消失している。ミシシッピー州ハインズ郡では、投票機のトラブルが多すぎて有権者投票できず、選挙そのものをやり直すことになった。ヴァージニア州フェアファックス選挙管理担当者によれば、最近選挙では100人につき1人の票が消失していたそうだ。多くの州では、ニューハンプシャー州メーン州の例のように、紙の記録を残さない(ペーパーレスタッチスクリーン投票機の利用を禁止することになり、他の州でも同様の決定を行う計画であるという。

信頼性も透明性も欠如している状況では、いくら機械が動作しても、正しく動作しているのかどうかを検証することができない。アメリカ国民は、少なくとも進行中の不具合技術的失敗の防止に必要な時間を確保するため、2006年選挙までは、ペーパーレス電子投票機の利用を容認すべきではないのである。なんとしてでも、全ての有権者が、投票が集計される前に、自分の投票内容を、正確な紙の記録を残すことによって確認できるようにすべきであろう。

民主党支持者も共和党支持者も、この民主主義に対する重大な打撃となる可能性を修正することに、真剣に取り組もうとしている。ラッシュ・ホルト議員(ニュージャージ議員/民主党)の提出した超党派の法案は、紙の記録を求める法案のひとつだが、できるだけ早く議会で承認されるべきであろう。VerifiedVoting.orgなどの組織によって活発化している、確認可能な投票システムを支持する草の根活動は、国民全体の機運に適ったものなのである。

私たちの民主主義や分別を存続することは、党派には無関係である。国民国家全体の価値以上に、片方の党派の成功を優先するようなことはできないし、してはならない。50州をまとめる政府として、共和党員・民主党員のどちらに対しても、2006年まで、あるいは充分に信頼できる状態で再集計が可能になる日まで、ペーパーレス電子投票機を箱に収めたままにしておくことをお願いしたい。誰が勝利しようと、民主主義の下では全ての票は数えられるべきなのである。その基本原則を廃止することは、アメリカを捨てることと同じだ。

ブッシュ大統領選挙には以前からイカサマ疑惑ささやかれています。

フロリダ州電子投票機に「ブッシュ票が多すぎる」との疑惑

http://headlines.yahoo.co.jp/hl?a=20041119-00000001-wir-sci

不正が横行するアメリカ大統領選挙

http://tanakanews.com/e1008election.htm

大手メディアが伝えない大統領選挙不正調査

http://hiddennews.cocolog-nifty.com/gloomynews/?06150300

アメリカ正義の国で悪い人は一人もいませんので、私はこんな話は信じませんが、みなさんはどう思いますか?

ブッシュはイカサマ師で、腰巾着小泉氏は国家の恥 250

腰巾着国家の恥ではないが髪型が個人的恥 19

恥ではない。犯罪である。(腰巾着が) 23

恥ではない。犯罪である。(髪型が) 9

どうでもいいけどたかがネットワーカーにこんなことを言われる筋合いはない。 64

黒田さんと東野幸治は別人である。 135

2007-03-21

[][]Aitsu koso ga Tennis no Oujisama

書き起こした。カラオケ用に印刷して使ってくれ。

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

Hせん、お前は、お前は性学の恥なんやで

ザ・SとM ワンセットマッチ 性感サービスプレイ

うげぇっ!!えちっぜーん、お前の役ジェニファー オレ=タティーノ(1869-1997)着せ替えGIRL

ごめん!越前!!なにもう剃れぬ!?お前のクルルなグァッツ!!を店で食え!

そぼろだ!越前!(くそみそでいいの?)稲妻とみま号(ロンドンいくよ)スイスサーブ デルピエロ(米 2007-)

(股ツイストサーブ決まったあぁぁん)

NEET越前!メリモとマラム スピード持つSMAPをびゅちかませぇぇぇ

海鮮炒めじゃないんだよ!!(はああああぁぁぁん)

ツイストサーブを返された!!

ニヤ、アナルツイストサーブは 勃起じゃねぇ わざとおチビな奴 ああ 回線レベルで落ちやがった

ウホッ越前!(アナル零式)多感な海堂です(何なんだこのH電話)新しい技 あやふや(ロンドンいくよ)

オムライス!一膳!!(キモイよ病魔くん!)麒麟じゃないよ(ペド式ドロップをいつの間に)お前に不可能なことはマリモナイーン

しかしナゲットセットが30セントも下がっていたらヴァレヴァレだお 色目は通用しないニャ

あらゆる亀頭を総勃起させる お前のペニスは恥垢の技

お前は性学の恥じ、何アレ? 俺たちのヘイポーを導けえぇぇぇ

ルンダルンダ 日吉レイプテニス

日吉の奴、穴と口のフォームに咥えて 急に伸びてきたYO☆NOW

あいつの実家がボブ術の道場をやってるラッシュ ピヨシートって アナルフォームが自然体位なんや

ファミリーマート店長(42))

相変わらず誰?越前病魔 難易度の高いデブでーす!恥愛を盛り上げる

お前は僕を熱くスルー お前は亀頭惹き付ける

Play☆Station Penis☆Condition 湯浅でーーーーーす!

湯浅☆プリンス☆オブ☆ペニーース

ヴェア(’A`)

マズイよ越前!まんまんですかあいつぅ>< ヤルネ=カレ(独 1700-)

こんなに早く大根下ろしてくるとは・・・豆板醤

マリモZ(ゼータ)ないんですか!?

ニヤッ、日吉和菓子2円 アグレッシブペニス・GUYだ 性格はゲイチンカスで 蟹に流されない 少し神経質な面もあるが 常にマイミクで 腰パンパンと性レギュラーを狙っていたようだ 誕生日は12月いつか 血液型AV型 好きな言葉

猫駆除だ!!

猫駆除だぜ!通☆風☆性 ロシアガールでJOJOマネ お湯かけるのが快感だぜ☆ 追いついてぶっちゅうーしてやるぅ

ぐぇえこぉくぅじょぉぉぉ??てぇ?????? YOU外道! ヴぉれぬぃ??はあ??くぁんけええ??なああいいいいざぁぁ?????? てくぃがつおくれヴぁ??つおぃ??ほどヴぉお''お''?? T▲ITOにぶつかり合うだけ

猫駆除だぜ☆猫駆除だぜ!通☆風☆性 「俺はお嫁に行くよ」

今度は越前くんの反撃 ドMビームでしゅ!!すごいでしゅ両者一歩も譲らないでしゅ

お互いオナラだしまくりだなぁ 「行けっ 越前くん」

僕の木魚をさ!!(怒)越☆前☆病☆魔

マッスル煮詰めたC??1000 フラグここなの?ない??っ!

お前は俺を熱く摺る お前は亀頭引き付ける

Play☆Station Penis☆Condition 湯浅でーーーーーす!

湯浅☆プリンス☆オブ☆ペニーース

カバディー・・・なんか増えてへん?

So, You use it. All my more. 俺ホモだけど・・・

なんとしても彼氏欲しい 俺たちは此処でオナるわけにはいかない!!

シービスケット あと10玄米イケル

ぬーん 俺あと20玄米いけるよ

フェラすぐしろ!

ほい小僧!相手がパンティーをつけはじめたぜ あのときの俺と親父だ さあ、どうする小僧

お前のウッシッシーな態度がー 糠漬くほどだでぇ

しかし太るホモー ウンコキャッスル☆そのオーラガンダム

奴隷人生を考えさせる 強さゆえの日々シーサー

その頭皮の輝きに 人は長崎を忘れる

ペレ臭いほどの 信長に会う お前はまさし君 ペニス王子

湯浅☆プリンス☆オブ☆ペニーース

うぉぉお精液止まんねぇええ!!!

病魔くんしゅごぉおおい><

放火 越前のやつずっと半ケツで みんなの試合みててうっふんが溜まってたんだnow

糞してぇっ! あのペスカ星を目の前で見たんだ いつも以上にテンションが上がって プレイできると思いマスケル

いや、アレガ=フォン=ライロ(伊 1833-1884)彼のBest Penis Showなのかもしれない 

「ねーよwww 後で百均でも寄る?」

Play☆Station(湯浅でーーーーーす)

Penis☆Condition(リンスを手に)

湯浅でーーーーーす!(湯浅)

湯浅☆プリンス☆オブ☆ペニーース

勝ったケロ

ゲイむせる! オッパイ越前 ゲームカウント SEXゲイ夢中ウホッ!!

やっと勃ったぁ やわらかぃ・・・ リョーマ君しゅき・・・><

山椒二杯 官能ゲーム 性学の勝利れす 両チームホモ軽蔑してください

レイプ

アーノルドシュワルツネッガッ

童貞童貞童貞童貞童貞童貞童貞童貞童貞童貞童貞童貞童貞童貞・・・・

desire

there is no more important cause than :-) is being free...

2007-03-13

座右の銘

DRY(Don't Repeat Yourself)よりThere's More Than One Way To Do Itが好き。

それも略さずにフルスペルのやつ。

プログラマが洗練を目指すのは本当に美しいのだけれど、

僕にとってはちょっとしんどい。

そんなへぼでも受け入れてくれるPerlが好き、ということだと思う。

2007-02-27

カーライル→Gerstner

Until I came to IBM, I probably would have told you that culture was just one among several important elements in any organization’s makeup and success??along with vision, strategy, marketing, financials, and the like… I came to see, in my time at IBM, that culture isn't just one aspect of the game, it is the game. In the end, an organization is nothing more than the collective capacity of its people to create value.

Computers are magnificent tools for the realization of our dreams, but no machine can replace the human spark of spirit, compassion, love, and understanding.

Watch the turtle. He only moves forward by sticking his neck out.

. . . [T]urning now to the Government of men. Witenagemote, old Parliament, was a great thing. The affairs of the nation were there deliberated and decided; what we were to do as a nation. But does not, though the name Parliament subsists, the parliamentary debate go on now, everywhere and at all times, in a far more comprehensive way, out of Parliament altogether? Burke said there were Three Estates in Parliament; but, in the Reporters' Gallery yonder, there sat a Fourth Estate more important far than they all. It is not a figure of speech, or a witty saying; it is a literal fact,--very momentous to us in these times. Literature is our Parliament too. Printing, which comes necessarily out of Writing, I say often, is equivalent to Democracy: invent Writing, Democracy is inevitable. Writing brings Printing; brings universal everyday extempore Printing, as we see at present. Whoever can speak, speaking now to the whole nation, becomes a power, a branch of government, with inalienable weight in law-making, in all acts of authority. It matters not what rank he has, what revenues or garnitures. the requisite thing is, that he have a tongue which others will listen to; this and nothing more is requisite. The nation is governed by all that has tongue in the nation: Democracy is virtually there. Add only, that whatsoever power exists will have itself, by and by, organized; working secretly under bandages, obscurations, obstructions, it will never rest till it get to work free, unencumbered, visible to all. Democracy virtually extant will insist on becoming palpably extant. . . .

2007-02-17

節分のあれはPSP

広告β:恵方巻がバレンタインになれない理由

節分と言えば古来すなわち子供のころから豆をぶつけたり豆を食べたり鬼に扮して女子の豆をいじったりする日と決まっていて366日の中でもかなりイベント参入障壁の高い1日なのに、巻き寿司業界がへぼい電通みたいな業者と組んで無理やり闖入してきた印象。ただでさえ楽しい豆デーなのに、One More Thingで年寄り臭い巻き寿司イベントなんてかったるくてやってられない。スーパーコンビニ始め食品を商うところで押しつけがましく寿司を売られて駄目押し。こんなうさんくさいもん受け入れられるわけがない。

なぜ特定の方角を向くのか。それはどう決まるのか。なぜ黙って食うのか。なぜマルカジリか。なぜ太巻きか。関西地方というのは具体的にどのへんか。その風習の起源や逸話はどういったものか。そもそもそんな風習は存在したのか。なぜ俺は2月3日に太巻きを買うべきなのか。1つでも知ってれば上出来だろう。誰も全貌を知らない。ただ或年忽然とやってきて寿司を食えと迫られただけ。なんで美味くもない太巻きなんぞ食わなきゃならんのか。馬鹿らしい。

もちろん繰り返しによる刷り込みは考慮しなければならない。バレンタインクリスマスなどそもそも蓋然性などないに等しいが広く受け入れられている。マンガなどでさんざん反復され増幅された結果だとしても、それらはしかしやはり受け入れられる要素を持っているのだ。黙って寿司を食うだけのイベントに盛り上がる要素など皆無だし、太巻きはチョコケーキと並び称されるほど愛されてない。

それでも寿司業界は言うだろう。それがなんとか巻きの仕様だ。世界でいちばん美しいイベントを発掘した。豆まきはどちらかというとお子ちゃま向け。これは広告ではないと謳う広告。しかしそれらの言説はすべて、ソースはソニーとの但し書きがついた変な人の言葉だ。潤沢な巻き寿司の在庫を見て彼らは何を思うのか。

結論はこうだ。なんとか巻きは寒いだけだからさっさと撤収しろ。

2007-02-09

YouTubeにアップしたビデオ削除された。

Google中の人たちが日本テレビ局と交渉した翌日の出来事。

そんでYouTubeからメールが来てた。折角なんでここに置いておきますね。

差出人名義 <DMCA Complaints> copyright_counternotice@youtube.com

件名    Video Removed: Copyright Infringement

YouTube | Broadcast Yourself™

Dear Member:

This is to notify you that we have removed or disabled access to the following material as a result of a third-party notification by (某民放局), Inc. claiming that this material is infringing:

クリップ名): http://www.youtube.com/watch?v=クリップID

Please Note: Repeat incidents of copyright infringement will result in the deletion of your account and all videos uploaded to that account. In order to avoid future strikes against your account, please delete any videos to which you do not own the rights, and refrain from uploading additional videos that infringe on the copyrights of others. For more information about YouTube's copyright policy, please read the Copyright Tips guide.

If you elect to send us a counter notice, to be effective it must be a written communication provided to our designated agent that includes substantially the following (please consult your legal counsel or see 17 U.S.C. Section 512(g)(3) to confirm these requirements):

A physical or electronic signature of the subscriber.

Identification of the material that has been removed or to which access has been disabled and the location at which the material appeared before it was removed or access to it was disabled.

A statement under penalty of perjury that the subscriber has a good faith belief that the material was removed or disabled as a result of mistake or misidentification of the material to be removed or disabled.

The subscriber's name, address, and telephone number, and a statement that the subscriber consents to the jurisdiction of Federal District Court for the judicial district in which the address is located, or if the subscriberis address is outside of the United States, for any judicial district in which the service provider may be found, and that the subscriber will accept service of process from the person who provided notification under subsection (c)(1)(C) or an agent of such person.

Such written notice should be sent to our designated agent as follows:

DMCA Complaints

YouTube, Inc.

1000 Cherry Ave.

Second Floor

San Bruno, CA 94066

Email: copyright@youtube.com

Please note that under Section 512(f) of the Copyright Act, any person who knowingly materially misrepresents that material or activity was removed or disabled by mistake or misidentification may be subject to liability.

Sincerely,

YouTube, Inc.

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