「GIF」を含む日記 RSS

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

2012-01-10

1月9日ニュー速大規模移住事件まとめ

20 名前伝説のアフィブロガー(庭)[sage] 投稿日:2012/01/09(月) 23:57:50.62 ID:x5Ug4pGF0

***************** 

ステマ速報(ニュー速)は

1月8日をもって終了しました

ニュー速嫌儲)板に移住しま

アフィ転載禁止の板

ニュー速(嫌儲)

http://awabi.2ch.net/poverty/

***************** 

本日の発言数 2,787,961 (2012/01/09 21:21:3 現在)

1 news4vip 396,660

2 poverty 162,187    ←嫌儲

3 livejupiter 128,693

4 morningcoffee 126,809

5 news 106,169     ←旧ニュー速

昨日のν速嫌儲

2 news 147,647

20 poverty 28,574

ツイッター民にもわかる2ちゃんねるのしくみ

59 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:31:44.25 ID:x3s6N9hF0

ν速の仕組み

http://www.dotup.org/uploda/www.dotup.org2493157.png

http://brunhild.sakura.ne.jp/up/src/up532000.png


移住である嫌儲での元ニュー速民のレス


17 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:24:11.90 ID:auEV3QXW0 [1/5]

431 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:03:09.42 ID:88IvLDfL0 [3/9]

>>250

241 :番組の途中ですがアフィサイトへの転載は禁止です [] :2012/01/09(月) 22:32:09.76 ID:88IvLDfL0 (2/3) [PC]

今までの旧速は異常だった

ウヨサヨ人種差別ゲハトンキン被曝、民国、ETC・・・

これら煽りまくってたわけだろ?

酷すぎだろ

人間のやることじゃないよ。マジで地獄に堕ちるべきだろブロガーども・・・・(ドン引き


震災被曝さえアクセス増加に利用し煽りまくるブログがそんな好きか?17


129 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:46:02.43 ID:jtUaB1YS0 [1/4]

>>17

オレも完全にこの罠にはまった野郎だった訳だ

しかに何でこんなに毎日罵倒しあっているのか訳わからなくなりつつあったし

あふぃ糞には地獄を見てもらいたい


136 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:48:57.90 ID:4VAWN5mt0 [5/6]

>>17

ほんとに人間の所業じゃないよな

しか現実にはそれが世界レベルで行われてるわけだ

旧来の資本主義社会崩壊

今回の件は決して無縁じゃない


154 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:53:57.49 ID:auEV3QXW0 [5/5]

>>136

最近読んでる本で,「排除型社会」って本があってな

現代社会病理をついてるよ,勿論旧速にもそれが言えた


アフィ糞含め,とにかく他人を貶めないと満たされなくなってたんだな


28 名前番組の途中ですがアフィサイトへの転載は禁止です[sag] 投稿日:2012/01/09(月) 23:25:55.39 ID:VsfTHYS/0

本当に今までの流れは作られたものだったということ

ステマ恐ろしいわ


73 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:35:00.47 ID:pklWoNjm0

ウヨサヨ対立スレが伸びないのがいいわ

ネトウヨとか韓国とかどうでもいいか


85 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:36:31.26 ID:mbSA40wx0 [5/7]

>>73

それ・・今考えるとゾッとするよ・・・

うその文字も見たくない、吐き気がする


86 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:36:54.38 ID:4VAWN5mt0 [3/6]

対立構造が作り出されてる時は

クソ野郎が金儲けを企んでる時ということを

俺たちは身体で学んだのだ

91 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:38:41.45 ID:3Nof+OXQ0

対立がないと臭い展開でスレが伸びないからね

アフィ連がその時々でウザい役を演じて煽ってたわけだ


142 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:50:23.26 ID:HkzObX8K0 [2/3]

変な祭りとかあったけどハム速ってすぐ乗せてたよね

まりそういうことか


155 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:53:58.52 ID:rkBNbiA90 [5/6]

>>142

まぁ、祭り自身もネットウォッチ組に多少の小銭渡して

ネタ掴むから

ν速なら炎上確実・鉄板から



153 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:53:55.80 ID:ukLzDJQz0 [4/4]

やっぱ環境で変わるんだな

ニュー速は煽らせようとする仕組みがすごかった

県別表示に捏造スレタイ、対立スレの乱立


160 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:55:04.91 ID:8ynDL91t0

>>153

捏造スレタイは多すぎたな

ニュースソースそれで潰し過ぎ



224 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/10(火) 00:40:13.75 ID:OE+CnbKI0 [2/2]

在日トンキンスレ自体には必ずその反対を書く人がいたけど、

まとめがそういう意見抜いてまとめはじめて、んでガチでそれを信じきった奴らが殴り合って、

んでまた燃料投下されて・・・こんなん健全でもなんでもない。しかもそれで儲けてた奴らがいるとか

16 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:32:37.51 ID:mbSA40wx0 [1/8]

韓国関係は本当に酷かった

正直もう二度とあの対立に巻き込まれたくない

人格おかしくなる


435 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:58:36.45 ID:IrFGBjnV0

>>16

コレに尽きる

ちょっとでもマジレスしようもんなら、在日認定ネトウヨ認定‥‥

もうね、病気かよとw


979 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/10(火) 00:40:10.89 ID:JH5oRO0I0

>>16

アレなんだったろうな。

嫌儲来てからトンと見なくなったな。


36 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:34:02.33 ID:YybQtSLS0 [1/5]

・県表示がない

ゲハ臭くない

ネトウヨ/チョンなどという言葉も見かけない

天国


45 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:34:39.62 ID:Y/TKr/Y10 [1/2]

>>36

これは素晴らしいよな

本当に普通のことなんだけど素晴らしい

64 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:35:51.82 ID:zFNNkWKH0

>>36

俺の言いたいことは全部書かれた

87 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:37:11.55 ID:k3yijoTp0

>>36

> ・ゲハ臭くない

何でああい雰囲気があったのか…


528 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/10(火) 00:05:16.73 ID:prTTlAbA0

>>36

これに限る 特にネトウヨチョンの言葉がないだけで十分だわ もううんざり


642 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/10(火) 00:13:30.33 ID:J6h3owTS0 [1/5]

>>36

ここは天国だわ

857 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/10(火) 00:03:49.42 ID:F8B0L2IIO [6/6]

馬鹿ッターとかブログやらかし一般人への粘着ストーカーもなくなるの?

870 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/10(火) 00:05:25.25 ID:4VAWN5mt0 [6/6]

>>857

あんな愚行はもうない

飲酒晒しあげとか基地外みたいだったな


874 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/10(火) 00:05:44.18 ID:A+jBR/Fq0 [7/7]

>>857

そんなの祭りにするほどじゃなくね、その人に非はないだろ・・・

っていう、見てて気分が悪くなるような★スレは無くなってほしいわ

最近のはやり過ぎだったよねあれは。DQN叩くのは大いに構わんが


57 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:31:04.23 ID:becWHeG80

移民が来てから煽りだらけになっちゃったと感じるが

これで煽りが少なく感じるって旧速はどんだけ修羅の国だったんだよ


61 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:32:00.07 ID:auEV3QXW0 [3/5]

>>57

後半はコロシアムになってたからな

主催者はもちろんアフィ連合運用家族


67 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:33:35.93 ID:RAVBlHdx0

>>57

ここはいいところだな、旧速はゴミ溜めだ。


71 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:34:37.73 ID:Ay9QXklE0 [2/2]

>>57

これでも多いのかw

旧速はマジで酷いぞ


72 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:34:41.65 ID:pEtkdSLg0

>>57

東京で何かあったらトンキンww

大阪で何かあったら民国ww

女が何かしたらこれだから女・・・

未成年が何かしたらこれだからゆとりは・・・

毎日すごかったよ本当にここはいい板だ

76 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:35:33.13 ID:bmXaYKWb0 [1/2]

>>57

アフィが引き戻しの為にわざと煽ってるレスもたくさんある

81 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:36:00.66 ID:qDWIkdJ+0 [1/2]

>>57

本当ここは天国だわ

俺らが来たせいで原住民トロピカル板に移住したんだって

マジで申し訳ない何とか共存できんもんかね


92 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:38:46.34 ID:PxJpzM3W0 [1/2]

>>57見てワロタ

ここはどんだけ平和なんだよ


132 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/09(月) 23:48:00.26 ID:rkBNbiA90 [3/6]

>>57

あそこは北斗の拳より酷い世紀末板だった

カネのために、人を利用し、対立構造確立して儲けたんだ

万死に値する


144 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:50:57.63 ID:jtUaB1YS0 [2/4]

>>57

そうだよな

きっとオレの感覚が異常になってたんだろうな

旧速は掃溜め以下だったのかもしれないな

643 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:19:41.35 ID:1nll9WQ90 [3/3]

>>431

そういや最近異様に派遣フリーターvs正社員スレが立っていたのはおかしいと思っていた


689 名前番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/09(月) 23:24:21.70 ID:louh2GGq0

>>643

あれ本当に気分暗くなるからやめてほしかったんだよ

そりゃ俺は負け組側だけどニュー速って昔はこんなにえげつねえあおりをするもんだったっけなって疑問だった

そしたらそれが仕組まれたもんだったらしいと来たらそりゃアフィカス氏ねとも思うわ


時を同じくして、VIPPERも反アフィの姿勢を表明し、「天国板」に移動を開始


【祝】移住祝賀会場はこちら【天国

1 名前田中[] 投稿日:2012/01/10(火) 00:00:25.09 ID:cIBaz4Ot0

おめでとう

2 名前田中[] 投稿日:2012/01/10(火) 00:00:34.92 ID:Lwx9eY2W0 [1/2]

おめっとさん

3 名前田中[] 投稿日:2012/01/10(火) 00:00:39.97 ID:u5rFWmL80

そして

4 名前田中[] 投稿日:2012/01/10(火) 00:00:42.52 ID:m9pJ2Rzn0

おめでとう

5 名前田中[] 投稿日:2012/01/10(火) 00:00:45.05 ID:sOj4jwoK0

やった

6 名前田中[] 投稿日:2012/01/10(火) 00:00:48.47 ID:yegXd2os0

おめでとう

7 名前田中[] 投稿日:2012/01/10(火) 00:00:52.72 ID:GRyPcB100 [1/2]

おめ

8 名前田中[] 投稿日:2012/01/10(火) 00:00:54.19 ID:SdFESZ+J0 [1/2]

おめでとう

9 名前田中[] 投稿日:2012/01/10(火) 00:00:54.76 ID:uppjyNRT0 [1/2]

あけおめ

10 名前田中[] 投稿日:2012/01/10(火) 00:00:58.88 ID:ZLgpnl2e0

きたで

VIPPER天国を満喫中

天国板の住民はなんてよぶの?VIPvipperだけど

1 名前田中[] 投稿日:2012/01/09(月) 22:56:34.23 ID:LFvqbNTS0

テンゴッカー?

2 名前田中[] 投稿日:2012/01/09(月) 22:57:10.89 ID:F7kcWXvH0

パラダイサー

3 名前田中[sage] 投稿日:2012/01/09(月) 22:57:14.43 ID:bd2OQMNF0

天使

4 名前田中[sage] 投稿日:2012/01/09(月) 22:57:22.72 ID:nYot0YLD0

天使ちゃん

5 名前田中[sage] 投稿日:2012/01/09(月) 22:57:40.13 ID:ViSps0vR0

Temper

6 名前田中[] 投稿日:2012/01/09(月) 22:57:47.64 ID:7o+omQcd0

田中

7 名前田中[] 投稿日:2012/01/09(月) 22:57:57.88 ID:ZxDviub40 [1/3]

天使

8 名前田中[] 投稿日:2012/01/09(月) 22:58:09.09 ID:AtHcs5hv0

tanaker

9 名前田中[] 投稿日:2012/01/09(月) 22:58:32.22 ID:ZxDviub40 [2/3]

angel

10 名前田中[] 投稿日:2012/01/09(月) 22:58:33.19 ID:ZQYqYPWM0

天パーだろ

そしてついに、天国板が2ch全板中2位にまで急上昇


天国板、さっそく書き込み数2位へ

1 名前番組の途中ですがアフィサイトへの転載は禁止です[] 投稿日:2012/01/10(火) 00:12:26.41 ID:6uaEqfYC0● ?PLT(24456) ポイント特典

sssp://img.2ch.net/ico/miyabi.gif

1 news4vip 7,916 186,985 186,985 hayabusa ○

2 heaven4vip 3,803 89,831 276,816 anago ○

3 poverty 1,913 45,187 322,003 awabi ○

ネット宇宙に散らばる幾多のブログSNS糞スレ・・・

すべての星々を焼き払い、負けを知ることのなかった最強ニュー速民。

しかし、己の星に隠された支配構造を知ったとき、己の星をも一夜で焼き尽くした。

最強ニュー速最後の敵はニュー速自身だった。



                           ○

                            //\        ニュー速(嫌儲)

                         _.//  |    http://awabi.2ch.net/poverty/

                __/  //  .|

               __/    、  //   |

           /    ┌┐ .∨∧..   |

           \ ├、 ├┘(∃i \___|┌‐─┐    /|

               |  | l └ //\ \   )l___|_   // /9 

             |     //  \ \/(ん`  )    // (∃i  

    /|        /     ` __/ ̄\  \.〉  (_   /==o.//⌒ヽ

.   //´      |__/ ̄ ̄     \        \ /// /――‐⊃

   //___     ヘ               |      | |/ // | ^ν^)_

.  //人__\   /  \           〉    / ./ / |      \

 //{: ´┴`}/_/__/          /     \E ) \    |ヽ \_

|⌒j/     ̄\( ^ν^) ̄  /9     |   _   \.    |    | \| \

| |    

2011-09-28

これは、頭がおかしい人のページに見えますか?   反応が知りたい

http://sky.geocities.jp/nanami061106/

中を見てくれないかもしれないか


調停 http://sky.geocities.jp/nanami061106/choutei.html



事情 http://sky.geocities.jp/nanami061106/jijyou.html



アパート破壊画像 http://sky.geocities.jp/nanami061106/gazou.html

ある市議へのメールとその返事(再加工するまでちょっと停止中)

法律には違反しないけど、無料のじゃなく告発サイトおkな所でやった方が良いかと思って




アパート競売物件ではありません。元の大家負債を抱えて、債権者お金を返せなくて競売にかけられてしまった場合賃借人の居住権が認められなくなる事もあるらしいです

競売物件ではありません。

から、家主にはこの物件家賃を受け取る権利しかありません。



7/26追記

この判例を先に書いておくべきだった。と昨日書きかけたら、間違えてタブを閉じてしまい、保存してなかったので消えてしまった

何を書いてたか具体的には細かいところは忘れた。この判例リンクは載せた気がする。わざわざ太字にしようとしたりしてた。。。

ええと、この判例はこれも偶然京都なんですが、借家を人が住んでる状態で追い出そうとして壁ギリギリまで壊して、訴訟に発展したという例です

何を書いてたか思い出した!! 名古屋にはこの訴訟案件を応援した団体はありません><

できかけてはいるそうです。まちbbsで教えて貰いました。し・か・し・・・ ある政党の関連なので、ある政党の交渉しかしたくなく老朽化が認められるかもなんて前例が見当たらず法的根拠に乏しい事(今日見つけたここのリンクでもそういう解釈)を言う弁護士と先に接触し、辞任されてしまったので、その系列の弁は全滅><

名古屋にはありませんが、他の都市には賃借人権利を守る団体があります。上の判例の文字はリンクになってますが、その判例訴訟を応援したのはその団体です

しかし、私は「○○党がそんな事言うわけない!!」(サイトは点滅GIF画像が貼ってある。今2011/10/09までコピペできてない事に気付いてなかった。今訂正した)と言われてしまいましたが アハハ八八ノヽノヽノヽ

弁護士非行を指摘するブログの方も、そこの系列弁護士に付いては色々と語ってらっしゃいますが、わかる人にしかからない事なんでしょう。

あぁ、それに、自分リンク頁に参考に載せた千葉の不当に分限処分になり教職を追われ、それでも頑張って不登校の生徒を集めるなどしてやっていたが

映画を作るためマンションを売って引っ越したら・・・ 続きはここで(居住権の会ゲートのページ)ここにもある系列弁護士の人との意見の違いから袂を分けた事が書かれてます






まだ続きはあります



前に、親の事知恵遅れに相談して(正しい知識が欲しいと言うより、一般の反応が見れるとか、実際の病院情報とか そういうものが欲しかった) 親の状態を喩えると、代理ミュンヒハウゼン症候群みたいな、何の利得も無いところで、変な事をする異常な人の心理に近いのではないか?  どこかで代理ミュンヒを扱っているような病院を知らないか?と質問したら

親のEAXも異常だが、はっきり申し上げてあなたにも同じ異常さを感じる、と書かれ、やたら病院を勧めるのだが、具体的な病院名は無し

補足でもまた、「はっきり申し上げて~」を枕詞にちっとも明瞭じゃない言い方で言って来てた。<<

はっきり言うなら、どこがどうなのかを明確にせよ、と言いたい!言いたいので最近くだらないなと思いつつ質問を新たに建てた。そいつ向けに。




過去質問

代理ミュンヒハウゼン症候群を扱っているような病院医師をご存知ないですか?(避難するように離れて長く暮らしてましたが、居場所が親に知られた状態なので怖いのです。)

奈良で確かこれで逮捕された医療関係者母親というのがいたと思うのです

こういうややこしい人格障害のようなものまで、ちゃんと見てくれて気がついて診察や治療までしてくれる専門家が、日本にいるのでしょうか?

読み物として本で読んだり、ドラマ小説のように思っていたり、外国の珍しい事例だと、全く関係ない世界の話のように思っているのは、一般の人だけでなく専門家も同じのような気がします。

代理ミュンヒハウゼン症候群 http://ja.wikipedia.org/wiki/%E4%BB%A3%E7%90%86%E3%83%9F%E3%83%A5%E...

これは果たして医療関係者にだけある異常心理異常人格なのでしょうか?

教師の親にもこれの変形のようなものがあるとは考えられないでしょうか?

ミュンヒハウゼン症候群は、仮病で人の気を引くかまってちゃんのような病気らしいですが、医療関係者がこれをやるのはまたちょっと捩れていて、自分の子を使って自分が褒められたいみたいな気持ちらしです医療行為を認めてもらいたいとか他にも色々複雑怪奇ものを含んでると思いますが。まあ、これも広義なかまってちゃんですが。。。

広義な意味でと言っても、ちょっとしたかまってちゃんとはその害や迷惑の甚大さが違いすぎますが。。。

教師の場合の類似な異常までは行かなくても異様な心理として、学校への提出物に手を入れたがってきて、子供がやったものの方が評価が良いと機嫌が悪くなるとか、子供自分でやるのを邪魔するとか、

単純に良い成績を取らせたいという目的でやっているとも思えない行為をする場合もあったりするのは、親がやった提出物が評価されるのが気持ちよいという心理があるからではないかと推測されるわけで・・・

こういうのって、限りなく代理ミュンヒハウゼン症候群に近い心理のような気がするのですが・・

どうなんでしょう?

たまたま医療関係者ミュンヒハウゼン症候群がわかる人がいたのと、同じ医療専門家から医療行為的に不審な部分に気が付けたりしたから、代理ミュンヒは医療関係者に多いという事になったけど

他の業界の親の中にも、形を変えて同種の心理状態に陥っている人は、ごく僅かにしても存在していてもおかしくないなと。



からの気持ち悪いFAX http://sky.geocities.jp/nanami061106/oyanokimotiwarui.fax.html

あ、それに母親医療関係者でもある。転職

補足

やんばるさん

保健所精神衛生相談精神科医は、親のFAXを見て「こんな変な人、今は誰も相手にしないだろう」とか言って何もシマセン


養護教諭だった母は前に住んでた所に来た時"転職して精神病院で働いてる"というメモをオイテイキ

隣の部屋の人に実は精神病院に入れましたがどんなですか?ト質問。私ノサイトニハ人格ニ問題アル家族入院サセラレタ人ノ話もアリ。保健所デコノ話モシタ(これは文字数の関係でこうしただけです)

違反報告

質問日時:2011/7/29 04:32:50

解決日時:2011/8/5 01:20:49

回答数:1

お礼:知恵コイン50枚

閲覧数:125

ソーシャルブックマーク投稿

Yahoo!ブックマーク投稿

はてなブックマーク投稿

ソーシャルブックマークとは)

ベストアンサーに選ばれた回答

yambaru0917さん

この投稿から、Webサイトを拝見しましたがお母様の行動には問題があるように思います

ただ、あなたもお疲れのようです

はっきり申し上げますと、あなたの文章からもお母様のFAXと同じような異常さを感じます

代理ミュンヒハウゼン症候群は有名ですから普通精神病院でも通じると思います

一度相談に乗ってもらってはどうでしょう

<以下2011/08/01追記>

お返事の補足ありがとうございます

補足の文章だけ拝見しましても、ご本人かなりお疲れのご様子です

このような掲示板相談するのではなく、専門の精神病院

相談に乗ってもらうべきと思います

はっきり申し上げますと、あなたの言動は文章能力や周囲の方の問題

別にして、異常さを感じる状態です

違反報告

編集日時:2011/8/1 20:30:04回答日時:2011/7/29 08:21:11

質問した人からコメント

消えるのも何なんで選びました。

補足にもサイトにも書いてます相談に行っても保健所対応してくれてない状態ですが。被害者側が医療機関が必要という事もあるでしょうけどそれが同じ状態というのはどうかと。同じというとこちらが嘘や詐病になり親が代理ミュンヒというのも嘘になり親がそれでないかと言っている主張を認めるのも矛盾する事になりますが?

コメント日時:2011/8/5 01:20:49

この質問・回答は役に立ちましたか

役に立った!

お役立ち度:0人が役に立つと評価しています。<<



最近の質問

どこがどう異常か説明して下さいよ!そこまで言うのなら説明できますよね?はっきり申し上げればを枕詞にすれば何を言っても良い訳ではありません。それに代理ミュンヒハウゼン症候群を扱ってる医師を知ってるんです

(前の代理ミュンヒの質問リンク) これはひどい

サイトで、教えてGOOで2,3、質問して判断するわけでもなく、いきなり「勝手にお薬を減らしてませんか?」とか主治医の話なんて書いてないのに、この質問をプリントして医師に見せて下さいと書かれたので、アパート半壊画像を載せて、この画像だけでも私の頭の中にだけある映像ではない事がわかってもらえると思います、と書いたら謝罪はおろか一切返事がなかったと言う話を書いたら

>その答えを書いた人が「薬を飲まなかったことがあった」んだろうし、「主治医を信じなかった」ことがあったんだろ。自分のことに絡められそうな話題にレスしているだけで、話題そのものもろくに読んでないんだよ。

>つまり「質問に答える」という形で「自分語り」をしているに過ぎない。書かなかったこと(行間)が読めるすごい人もいるけど、たいがいは妄想大人。無視するよろし

と書かれました。あなたもそうなんじゃないですか?

根拠も無く異常異常って、はっきり言ってあなた主観しかないじゃないですか?根拠を述べたって、実際合って心理テストをしたわけでも医師が診断したわけでもないので、文面からの印象でしかないわけです

そんな客観的に判断できる材料が少ない状況で、そこまで決め付けるあなたの方が行動に問題があると思います

だいたい精神科というところは、昔から家畜経営と言われてきた歴史もありますhttp://blog.livedoor.jp/mizikanamondai/archives/2011-02.html

知恵袋過去回答でも良心的なものではこう言っている人もいますhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1271342947

過去質問でも精神科被害の質問もあります

そういうところなので慎重にならざるを得ない面もあるじゃないです!!!

それを、病院名を指定もせず、どこの病院でも代理ミュンヒハウゼン症候群は扱っているとか!!!!!!

症例報告少ないってここにもhttp://munchausen.seesaa.net/

研究としてあって医者なら知識として知ってるかもしれないが、その症状の人がごろごろしてるわけじゃあるまいし。

親は代理ミュンヒとも言ってない、変形のような心理ではないか?と聞いていた。利益がない事をする意味不明な人もいるという例で出しただけなのに。

あなたがした事は悪質なラベリング

通院しても無茶な人がのうのうと回答してるのに。私への最近の回答欄参照

補足

知恵遅れ内ラベリング検索http://goo.gl/CPQ9a 良回答http://goo.gl/XcyQ5wikipediaコピペのような気もするけどまあいいや)

謝罪以外の回答は要りません。<<

<<

しかしたら、親を悪くゆってる~とお花畑な頭で考えたのかもしれない。

2011-09-21

http://anond.hatelabo.jp/20110921193044

Yahooなら全ページに巨大バナー貼って誘導かけてくるよ。

確かに、Yahooとかならやりそう。

考えてみれば、たった一枚のgif(?)アニメーションの追加だし、まさに

無意識ハードル上げすぎ

だな。反省

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-27

メモ:「作画を語るスレ」のある歴史

553 名無しさん名無しさん 2011/02/08(火) 14:40:19

そもそも何で今水池がネットの作画オタクの代表みたいに崇められてるのか理解できない

史観的に振り返るとインターネットではじめてまともに作画を語ったのはもう10年以上前

漫画家の悠里愛が自身のHPで現行のアニメ過去の作品において熱心に語り始めたのが最初だった

俺が知る中でまともな作画語り(というか素人然としていない作画語りみたいなもの、まぁ悠里は畑違いのプロではあるが)

をやったのはあれが最初

それとは別の文脈で沓名健一が出てくる

当時のくーさんの語りは今の作画スレの遥か下のにわかレベルであったが、小黒はじめ業界人がそのgifアニメ凄さに目をつけ掲示板業界人巣窟となる

そこでくーさんはヘッドハンティングされ今のweb系のスカウトの流れが出来上がるわけだが(最近はそれを狙ってHPで志望者がgif等を掲載するのが当たり前になっている)

その沓名HPの盛り上がりが、沓名がオサムの作品に呼ばれてセミプロになったあたりで多くの素人にも目をつけられ業界人自重し始め一段落するわけだ

作画スレが出来上がったのはその直後だった(それまでは簡易的に巧いアニメータースレ情報交換はなされていたものの、メインは完全に沓名の掲示板だったんだ)

そしてここまでの流れを水面下でROMって知識を吸収した第一世代ネット作豚が水池屋であり、まっつねであり、たけしとであり、電源を切ってくださいになるんだよ

554 名無しさん名無しさん 2011/02/08(火) 14:48:01

そして作画スレの2桁代まではまさにその作豚第一世代、業界人アニメーター志望者、にわかROMが仲良く同居した幸せな作画語りを築いた黄金期!

ちょうどぬるぽの初期話数がすごいすごい、松本憲生はすごいみたいな流れがネットの作画的な常識になる礎を築いたのもこの頃だ

当時の作画スレに関してはおそらく相当数の業界人お墨付きが出ており、橋本敬史も烏のコメンタリー

「このパートは、今2ちゃんねるの作画を語るスレで大人気の松田宗一郎君のパート・・・」みたいな今じゃ有り得ない友好的なことも言っている

そしてそのネットでの作画語りの盛り上がりに後押しされる形で、前々からミュウミュウ等でお騒がせだった石野はじめとするへらすたの掲示板が出来上がる!

それは明らかにガイキング反響要請に乗じて作られた掲示板だったということが重要なのだ

555 名無しさん名無しさん 2011/02/08(火) 14:53:38

そしてここが作画語りの分岐点になる

へらすた掲示板の嵐による閉鎖だ

にわかROM達がついに芽吹いて書き込むようになったということだ!

ここで初めて「作画オタクの=他のネットユーザーとは違う礼節を持った常識人」

という認識が崩れる

ここで作豚のアイデンティティ崩壊してしまうわけだね

それから今に至るまで連綿と続くなが~い暗黒期に入るんだよ

ハルヒグレンコイルなど確かに作画アニメの放映による盛り上がりはあることはあった

でも具体的に作画が語られることはなくなってしまったんだ

アニメーターおたくみたいなテロップ厨という連中がいるということをテンプレに起こしてしまったのもこの頃で、今になって思えばそれもまずかったのだね

自虐的な作画を語れない作画オタク(前述したROM第一世代)が書き込むようになってしまって、もうぐちゃぐちゃになっちゃった

2011-07-09

WebコミックUI

ただの個人的メモ


http://anond.hatelabo.jp/20110709223841

ラスタ画像自動リサイズは画質劣化に繋がってうざい場合がある

見開き前提の漫画は見開きで読みたいし、1ページごと前提の漫画は1ページごとに読みたい

次のページ/前のページにどんどん遷移したいこともある(印刷物のパラパラめくり、あるいはDVD再生の「サーチ」みたいな)

現在何ページ中の何ページ目なのか(全体のどのあたりなのか)を知りたい(印刷物では残りページ数が厚みでだいたい分かる)

参考にしよう。


http://anond.hatelabo.jp/20110709234137

巻(章)の最終ページからの通常遷移(メージめくりで飛ぶ場所)は次巻(次章)の最初のページだとサクサク読めて嬉しい。

最終ページからの通常遷移が巻(章)の並んでる目次ページの場合がたまにあってそれだとすぐに続けて読めないし、

「あれ?次は何巻(何章)だったっけ?どこまで読んだっけ?」と(章も多いとスクロールして下の方を探さなきゃいけなかったりして)ちょっとイラっとする。

俺が想定しているWebコミックというのは、

こんな感じなので、そういった不満は出ないように考えてる。

2010-11-02

WindowsXP画像ビューアの妙な仕様

発見の経緯

画像表示プログラムの習作としてWindowsXP標準の「Windows FAX画像ビューア」を模倣中に発見

概要

WindowsXPにおいて画像ファイル(JPEGGIFなど)に関連づけられている「Windows FAX画像ビューア(以下『画像ビューア』)」は、ファイル名昇順で画像連続表示すると思われているが、別にそういうわけではなかった

発生環境

WindowsXP HomeEdition SP3(おそらくProffessionalも同様と思われる)

他のバージョン(Vista以降)では未確認。

再現方法(1)

  1. 何でも良いのでJPEG画像ファイルを一つ用意する。
  2. それらを任意のフォルダに複数複製し、以下のようにリネームする。
  3. 上記から任意のファイル画像ビューアで開き「次のイメージ(→)」ボタンや「前のイメージ(←)」ボタンを押して、番号順に画像が開かれる事を確認する。
  4. 画像ビューアを終了する。
  5. 「2.jpg」を「5.jpg」にリネームする。その際、画像が格納されてあるフォルダの表示は更新しない事。
  6. この時点でフォルダ内の画像ファイルの並びが「1.jpg」「5.jpg」「3.jpg」「4.jpg」となっている事を確認する。
  7. 再び1.jpgをビューアで開く。
  8. 「次のイメージ(→)」ボタンを順次押していく。
  9. 何故か「5.jpg」が開かれ、次に「3.jpg」が開かれる。
  10. 画像ビューアを終了する。
  11. フォルダ更新する。
  12. この時点でフォルダ内の画像ファイルの並びが「1.jpg」「3.jpg」「4.jpg」「5.jpg」となっている事を確認する。
  13. 再び「1.jpg」をビューアで開く。
  14. 「次のイメージ(→)」ボタンを順次押していく。
  15. 画像が開かれる順番が「1.jpg」「3.jpg」「4.jpg」「5.jpg」なっている事を確認する。

再現方法(2)

  1. WindowsXP標準の「ペイント」を開く
  2. 何でも良いので絵を描く。面倒ならば何も描かなくて良い。
  3. 任意のフォルダに「1.bmp」として保存する。
  4. 変更を加えず同じフォルダに「2.bmp」として保存する。
  5. 変更を加えず同じフォルダに「3.bmp」として保存する。
  6. 変更を加えず同じフォルダに「4.bmp」として保存する。
  7. 画像が保存されているフォルダを開き、「1.bmp」を画像ビューアで開く。
  8. 「次のイメージ(→)」ボタンを順次押して、ファイル名順に画像が開かれる事を確認する。
  9. 画像が保存されているフォルダ内で右クリックし、「アイコンの整列」から「更新日時」を選択を二回繰り返す。
  10. フォルダ内で、更新日時降順、つまり「4.bmp」「3.bmp」「2.bmp」「1.bmp」でファイルが並んでいる事を確認する。
  11. 「4.bmp」を画像ビューアで開く。
  12. 「次のイメージ(→)」ボタンを順次押していく。
  13. 「3.bmp」「2.bmp」「1.bmp」「4.bmp」の順番で画像が開かれる事を確認する。

推測

Windows FAX画像ビューア」の画像を開く順番は、フォルダ上の表示形式に依存しているようだ。何でまたこんなややこしい仕様にしたんだろう。

(追記)画像ビューアのヘルプを確認してみた

ツールバーの概要のページの「次のイメージ(→)」「前のイメージ(←)」の説明には、それぞれ「同じフォルダの次のイメージに進みます。」「同じフォルダの前のイメージに戻ります。」と記載されており、ファイル名順に進むとは記されていない

2010-05-08

http://anond.hatelabo.jp/20100508093218

いくらでもあるでしょ。

HTMLでもいいし、JPEGGIFPNGMPEGWMVMP3Javaアプレットと、表現手段はいくらでもある。

それよりもFlashが優れているのは単にAdobe(Macromedia)の努力の賜であって、寡占状態は別に不当な結果じゃないでしょ。

もしユーザー不利益な行動を取るようになったら、さっさとFlashから別の規格に乗り換えればいい。

2010-02-13

なんか、「慰安婦20万人説」が事実として独り歩きしてる模様

ttp://aresoku.blog42.fc2.com/blog-entry-1558.html

1 名前: 漁網(東京都)[] 投稿日:2010/02/11(木) 18:18:09.56dH3oS8Vo BE:7367832-PLT(13001) ポイント特典

sssp://img.2ch.net/ico/anime_monar02.gif

岡田外相の謝罪についてCNN報道



日本岡田克也外務大臣は、日本が30年以上韓国を統治した期間について、「悲劇的な事柄」と言う表現で、韓国に謝罪しました。

韓国の国営メディアは、岡田外相はユ・ミョンファン外相との共同会見で稀な謝罪をした、と伝えました。

(中略)

日本1910年から1945年まで韓国を支配し、 その間、主に韓国中国から日本軍が約20万人の女性を強制的に性奴隷として奉仕させたとして批判されています。

彼女たちは「慰安婦」として大日本帝国の兵士に知られていました。

(後略)



ttp://edition.cnn.com/2010/WORLD/asiapcf/02/11/japan.korea.apology/index.html



28 名前鉛筆(広島県)[] 投稿日:2010/02/11(木) 18:23:35.87ZheNWZWJ

嘘も100回言えば真実になる



41 名前ラジオメーター(神奈川県)[] 投稿日:2010/02/11(木) 18:25:55.03RutJi3HM

そら日本の政治家が頭下げて回ってるんだからわざわざ外野が否定する理由がない。

自業自得すぎる。



67 名前: 漁網(東京都)[] 投稿日:2010/02/11(木) 18:29:19.16dH3oS8Vo BE:60167677-PLT(13001)

sssp://img.2ch.net/ico/anime_monar02.gif

これ、記事を読むと、岡田慰安婦についてなんか一切発言してないのよね。

韓国側ですら、今回は発言してない。



岡田外相は「この悲劇的な事柄が、韓国国民の国と自尊心を奪ったと認識している」と聯合ニュースに語った。

>彼は「こうした犠牲を忘れてはならない」と付け加えました



っつーだけ。

問題は、長年の積み重ねによって「日本慰安婦20万人を強制連行した」というのが

日帝支配時代」の事実として流布されてしまっている点でして…



105 名前蛍光ペン(アラバマ州)[] 投稿日:2010/02/11(木) 18:44:58.95btVkGZXn

»1

正確には



中国政府中国人慰安婦30万人いたと主張

韓国政府韓国人慰安婦30万と主張

中韓慰安婦よりはるかに多くの日本人慰安婦がいたわけだから

日本は戦時、数百万の慰安婦を動員してたことになるw

兵士1人に1人の慰安婦ぐらいw



229 名前ホッチキス(鳥取県)[sage] 投稿日:2010/02/12(金) 11:20:18.74q9mJ5mhb

もう一回やって戦争に勝つしかないな

2010-02-11

勝谷誠彦さん 「小沢先生からカネを貰って何が悪いボランティアで講演をやれというのか!」

ttp://finalfantasy35.blog45.fc2.com/blog-entry-1716.html

1 名前三脚(鹿児島県)[] 投稿日:2010/02/10(水) 20:57:36.29 ID:hEGme+pY ?PLT(15000) ポイント特典

sssp://img.2ch.net/ico/3na.gif



●これまでの流れ



勝谷誠彦が命名した株式会社世論社」の取締役に勝谷本人が就任

主に国会議員公式サイト製作収益を稼いでいるが、その国会議員のほとんどが民主党所属

    ↓

民主党公約の一つがネット選挙解禁であることから、世論社と民主党との

黒い繋がりが指摘される

    ↓

世論社長高橋茂さんがTwitter子供じみた反論

ttp://blog.livedoor.jp/manguhsai/archives/1214812.html

    ↓

総務省が公表した政治資金収支報告書において、勝谷などワイドショーコメンテーター十数人が小沢一郎氏の講演会に出席し謝礼を貰っていた事実が発覚

ttp://74.125.153.132/search?q=cache:N76C6vbe7VQJ:tsushima.2ch.net/test/read.cgi/news/1265019162/+http://tsushima.2ch.net/test/read.cgi/news/1265019162/&cd=1&hl=en&ct=clnk 

   ↓

勝谷、自身の有料配信日記2010年2月5日)で「これのどこが問題なんだ」などと苦しい言い訳に終始するも、同志である高橋茂さんが自身のTwitterアカウントを削除して逃亡

完全に八方塞 【← 今ここ】



> 私が小沢さんの会で講演してお金をもらったということをわあわあ騒いでいる人たちは、

> では貰うなというのだろうか。「いえいえ、タダでいいです」などと言うほど本当の意味

> 媚びへつらう行為はないだろう。それとも小沢さんの講演は受けるなと言いたいのか。極めて

> 危険な考え方だが、そういうタコツボに住んでいる人たちが増えているのかもしれない。

> よほどのことがない限り、私は出かけていく。そんな機会ででもないと出会うことがないかも

> しれないし、私を呼んでみようという気概にも敬意を表するからである。

ttp://blog.livedoor.jp/manguhsai/archives/1242577.html

世論社公式Twitter(削除済)

ttp://twitter.com/voicejapan



10 名前: 平天(関西地方)[] 投稿日:2010/02/10(水) 20:59:21.07 ID:fKpDFEHR



悪くはないが、それやって小沢をとことん擁護じゃ、

何言っても説得力はなくなる。



75 名前: しらたき(鳥取県)[sage] 投稿日:2010/02/10(水) 21:06:08.86 ID:QyLr91Bq

»10で結論出てた




163 名前: ハンドニブラ(沖縄県)[sage] 投稿日:2010/02/10(水) 21:14:42.24 ID:psF2G6w7

»10

勝谷見てるか?これに答えろ

2010-02-10

2/10 【今日国会】 日本日本国民は居ない

ttp://nihon9999.blog77.fc2.com/blog-entry-4257.html

1 名前昆布(dion軍)[sage] 投稿日:2010/02/09(火) 17:04:26.19 ID:p9YhVy0I ?PLT(12501) ポイント特典

sssp://img.2ch.net/ico/mamono.gif

国会中継実況Tweetより。



鳩山氏「(外国人参政権により)国益につながる議論もある」



高市氏「地方であっても国益に関係ある。では何故地方参政権は良い?」



鳩山氏「だから議論をすべき」高市氏「既に地方でも国益に関する例がある。原発の誘致など」



高市氏「中国からの多大な移民があり、中国国防の影響下にある。日本の防衛に対する影響は?」



北沢氏 「 衆 院 選 で 民 団 の 方 と 話 し た が、危 険 性 は な い」



高市氏「防衛大臣がそれでは国防不安だ。」



ttp://twitter.com/keiko000/status/8846049619

ソース

ttp://www.shugiintv.go.jp/jp/




関連スレニュース

外国人参政権法案「錦の御旗(略称錦旗、別名菊章旗)として今国会で実現」 民団新年会民主・山岡氏

ttp://sankei.jp.msn.com/politics/situation/100112/stt1001121327004-n1.htm



鳩山首相違憲?重要だから議論」「外国人参政権を錦の御旗(菊章旗)として今国会で実現」と言うだけあるな

ttp://tsushima.2ch.net/test/read.cgi/news/1265702276/







4 名前: 鋸(アラバマ州)[] 投稿日:2010/02/09(火) 17:05:28.23 ID:NwrRwNRz

対馬後援会長の帰化韓国人がスパイ。妻は民潭。

ttp://society6.2ch.net/test/read.cgi/jsdf/1244515722/



210 名前石綿金網(東京都)[] 投稿日:2010/02/09(火) 23:24:56.64 ID:4+zr0fIt

»4

有名な事件っていうか事案だよな、それ。

自衛隊員の防諜意識って、無きに等しいんだな。





14 名前: れんげ(dion軍)[sage] 投稿日:2010/02/09(火) 17:09:42.12 ID:SjlSttv9

民団の前に、国民と話そうよ。。。




16 名前時計皿(岡山県)[sage] 投稿日:2010/02/09(火) 17:10:41.27 ID:+v3/kDJK

え?日本国についての重要な議論なのに

なんで外人集団の民団が出てくるの?

2010-01-18

民主党投票した、メディアリテラシー皆無のバカ愚民さん 何か言ってみて

ttp://aresoku.blog42.fc2.com/blog-entry-1527.html

37 名前: ハンドニブラ(東京都)[sage] 投稿日:2010/01/15(金) 23:11:39.235U9VH1sn BE:39949733-2BP(2224)

sssp://img.2ch.net/ico/onigirimona.gif

»33

そういや、自給1,000円は完全な釣りだったな。



39 名前: れんげ(新潟県)[] 投稿日:2010/01/15(金) 23:12:18.74gKu0ExlE

»1

馬鹿だから民主投票したんだろ

小沢なんて元々真っ黒じゃねえかよ

国民の為の政治じゃなくて小沢の為だけの政治じゃねえか



50 名前アルバム(奈良県)[] 投稿日:2010/01/15(金) 23:16:30.3252TGM8pA BE:927299366-PLT(12000)

sssp://img.2ch.net/ico/kyu.gif

»37

電車の中で高校生すら言ってたからなぁ

「次の選挙民主党が勝ったらバイトの時給1000円に上がるらしいぜ」

マジで?俺、親に民主党投票するように言うわ」

こんな会話聞いて、暗澹たる気分になったわ。。



»39

今の20代は、自民党経世会時代の、まさに土建金権政治権化だった

小沢を知らないからなあ。

自民党の中の一番汚い連中を、自浄作用で自民党から追い出したら、出来た

政党民主党だって言うのに。



64 名前: 輪ゴム(神奈川県)[sage] 投稿日:2010/01/15(金) 23:26:39.66HmYKe3Js

»50

55年体制とか知らないんだろうな

まさに経世会社会党系列ってまさに民主党そのものなのだが



政権交代望んだら80年代に戻ったでござるの巻



46 名前: 輪ゴム(千葉県)[] 投稿日:2010/01/15(金) 23:15:31.36GHi6ShoT

自民党が嫌だって投票した先が

自民党のチンカスを凝集した小沢ファシズム政党って

2009-12-30

ttp://tsushima.2ch.net/test/read.cgi/news/1262163210/

1 名前: リービッヒ冷却器(静岡県)[] 投稿日:2009/12/30(水) 17:53:30.46 ID:fk9GKj+n ?PLT(12000) ポイント特典

sssp://img.2ch.net/ico/snow.gif

出かけていて帰宅しました。多くの誤解を生んでしまって申し訳ありません。

息子と話したのですが、彼が言っていたのはプロアクションリプレイ付属

PCアプリケーションダウンロードした攻略コードのことで、ゲームソフト

チートしたいので、その方法を知りたいとのことでした。



17分前 web

renho_sha



ttp://twitter.com/renho_sha/status/7190521896



137 名前: 目打ち(長屋)[] 投稿日:2009/12/30(水) 18:09:18.71 ID:ZfiQysML

やたら専門用語つかって多弁になってるのは

入れ知恵された証拠w



469 名前: 目打ち(長屋)[] 投稿日:2009/12/30(水) 19:10:59.42 ID:ZfiQysML

さすが脱税総理民主党

議員は一家総出で犯罪やりたい放題なんだあ!



607 名前魚群探知機(関東甲信越)[] 投稿日:2009/12/30(水) 20:14:19.80 ID:cobTLK+Z

( `∀´)「DSイナズマイレブン2』の改造コードの入れ方をどなたかご存知ですか? 私にはさっぱり…」

( `∀´) プロアクションリプレイの件でご懸念を抱かせてしまいました。

PARって「改造コードを入れる」必要ないんだよね。(´ι_` )

お金MAX

LV最大

とかメニューから選択するだけ。

「改造コードを入れて」改造するのはマジコン

ttp://tsushima.2ch.net/test/read.cgi/news/1262162359/330

ttp://www.datel-japan.co.jp/lineup/japanese/par/max2/index.html#product-how

(´Д` )←R4 (´Д` )←R4に入れ知恵して文章書かせた奴



「改造コードの入れ方」を質問するのはおかしい。その矛盾点。

ttp://tsushima.2ch.net/test/read.cgi/newsplus/1262163389/291

ttp://tsushima.2ch.net/test/read.cgi/newsplus/1262163389/647

2009-12-26

鳩山「正直に話してるのに国民が理解してくれないw」 NHKは会見放送を辞め まさかのニコニコ動画大勝利

ttp://ichisureichi.blog67.fc2.com/blog-entry-1436.html

1 まな板(東日本)[sage] 2009/12/24(木) 18:37:48.61 ID:/CrXStPL● BE:92088432-PLT(12000) ポイント特典

sssp://img.2ch.net/ico/anime_shii03.gif

ソーステレビ



ちなみにNHKやらTV各局は会見放送せず ニコニコ動画が独占中継する始末(中継は終了済み)



399 巾着(東京都)[sage] 2009/12/24(木) 18:56:03.66 ID:Cv5KHgbV

誰か「選挙前に散々言ってた記者クラブ改革はどうなった?国民に「また鳩山さんが嘘をついてる」と言われると思うがどうよ?」




鳩「過去の発言について言い訳をするつもりはない。記者クラブ改革は来年する。どうせ信じて貰えないだろうが(←マジで言った)」

2009-11-25

1 : ◆PENGUINqqM @お元気で!φ ★:2009/11/24(火) 22:21:24 ID:???0



 このところ東京市場の一人負けが鮮明になってきた。海外市場株価が相次いで今年の最高値

更新しつつある中で、東京市場だけは下落基調から抜け出せない。



首相「Trust me」に市場は無反応

 大はしゃぎをしたのは鳩山さんだけ。国民の多くはただ白けただけのオバマ大統領の訪日も終わり、

沖縄など大きな宿題だけはきっちりと残された。



 鳩山さんは彼に「Trust me」(私を信じてほしい)と直接言ってあるから何も問題はないと考えて

いるようだが、市場はまったく反対の反応しかしていないのは大いに気になる。



 その後のオバマ大統領の日程を見ても一目瞭然だが、明らかにこれからも米債を確実に買ってくれる

中国と、勝手東アジアをまとめたがっている日本とではアメリカがどちらのウエイトを高くするかは

素人にも分かる。



 そんな情勢を反映してこのところ東京市場の一人負けが鮮明になってきた。海外市場株価が相次いで

今年の最高値更新しつつある中で、東京市場だけは下落基調から抜け出せず、NY市場が上げても上海

上げても、「そんなの関係ない」といったまったく気合の見られない腑抜け市場になってしまった。



 かねてから東京市場無気力ぶりに警告を発してきてはいたが、それも程度問題でここまで無気力

なると、ことは重大である。しかも東京市場低迷の原因のひとつ大企業による大型増資だそうだから、

本来資本調達の場であるべき市場が調達を嫌気して下げるという、何ともおかしな現象になっているのは

大いに気になる。

(»2以降に続く)



画像:日米首脳会談で「私を信頼して」とオバマ大統領に訴えた鳩山首相

ttp://moneyzine.jp/static/images/article/181574/premiere.gif

▽MONEYzine

ttp://moneyzine.jp/article/detail/181590/

スレ ★1が立った日時 2009/11/23(月) 14:57:49

ttp://tsushima.2ch.net/test/read.cgi/newsplus/1258967504/




3 : ◆PENGUINqqM @お元気で!φ ★:2009/11/24(火) 22:21:34 ID:???0

(»1の続き)



 米国リーマンショック以来大型増資を重ねてきたが、経営陣の頑張りや株主の応援が功を奏したの

だろう、GEGSなど株価は見事な回復を見せている姿とはまったく対照的である。



 JALなどまさに日本資本主義の典型であり、まるで非上場中小企業が金繰りのために増資を繰り返す

ようなことばかりやっていれば、本来歓迎されるべき増資が忌避されても仕方があるまい。



 金融機関もそうだ。本来普通株式自己資本の充実を図るべきときに劣後債優先株BIS基準を保って

いたので、今回利益自己資本を重視するように基準が変わってくるとなると、利益目標が立たないまま

増資をしなければならなくなる。



 既存の株主にしてみれば、その分だけ希釈化され1株あたりの価値が下がるのではとっても持っては

いられないと、ぶんなげたくなるのはあたりまえだろう。



GDPの事前漏洩を笑ってごまかす直嶋経産相

 かくして本来の市場の機能が大きく低下しているところに、円高や経済成長にはまったく無関心な

友愛内閣」が出てきたのだから、株などおっかなくて持ってはいられないとなるのは人情だろう。



 本当の意味友愛はそんなに資本が足りなくてお困りなら出してあげましょうか、となるはずなのだが

この友愛はどうやらばら撒きという意味らしいから、市場にとって優しいものになる友愛ではないことは

覚悟しておくべきだろう。



 閣僚の市場に対する態度も酷いものだ。前原国交相など不用意にJALの法的整理の可能性を口走り、

あっという間にJALが急落してしまい、この損害を投資家泣き寝入りしなければならないなら、これは

自己責任以前の大きな問題である。



 直嶋経産相のGDPの事前漏洩も酷い。インサイダーの塊のような大事な数字をケロッと喋って反省

どころか薄笑いでごまかす始末。きちんちとルールを守っているエコノミスト諸氏は猛然とクレーム

つけ大臣の座から引きずり降ろすべきではないのだろうか。



(»3に続く)



4 : ◆PENGUINqqM @お元気で!φ ★:2009/11/24(火) 22:21:49 ID:???0

(»2の続き)



日本は酷い国になりそうだ

 また事業仕分けもある種国民のあく抜きのための人民裁判みたいなもので、こんな衆愚に阿るような

国の株など、あの人民裁判をさんざん経験した中国人ならまず買ってはこないだろう。ましてや他の国の

投資家に魅力的に見えるはずも無い。



 かくして有り余る金を持ちながら東京市場の低迷は長期化をよぎなくされるだろう。いま注目する

のなら資源国か、環境などテーマ性のあるグローバル企業押し目買いしかあるまい。それにしても

酷い国になりそうである。



-おわり-

2009-10-17

1 名前ノイズe(関西地方)[sage] 投稿日:2009/10/11(日) 23:06:47.47fb7Nmm2f BE:1077245748-PLT(12073) ポイント特典

sssp://img.2ch.net/ico/anime_iyahoo.gif

成型肉だけじゃない! こんなにいっぱいある「○○風食品

2009年10月11日12時00分 / 提供:サイゾーウーマン

タラのすり身のエビフライ

スケトウダラや鶏のすり身にエビの風味をつける添加物エビパウダー)を加え、

小ぶりのエビの周りに結着させていくと......特大エビのできあがり! 

大豆で作るチキンナゲット

チキンナゲットと名乗る以上、チキンの肉だけで作られているものと思いきや、さにあらず。

少量の鶏のクズ肉に、でんぷん大豆タンパク、スケトウダラのすり身でかさを増やし、

大豆タンパクを加工して作った繊維を加えて固めると鶏肉モドキが完成。

赤身マーガリンネギトロ

格安で売られているネギトロには、マグロ赤身

植物性油脂(味のついていないマーガリンのようなもの)や添加物を加えたシロモノも多いのだとか。

●代用品を使った格安寿司

ロコ貝はアワビ、スギはカンパチの代替食材として

用いられる。格安店で「エンガワ」とあったら、ヒラメではなくオヒョウという魚を使っていることが多いのだとか。

牛乳も卵も入っていないアイス

牛乳バニラエッセンス、卵黄、砂糖生クリームなどを加え、かき混ぜながら冷やす。

これが、一般的にイメージするアイスクリームの作り方。しかし、市販の多くのアイスクリームは、

卵黄の代わりにレシチンなどの大豆由来成分、牛乳の代わりに植物性油脂を使っているらしい。

添加物の配合で味が決まるラーメン

塩、醤油とんこつ、シーフード。各社さまざまな味が発売されているインスタントラーメン

スープの味は、塩化ナトリウムや風味パウダーなど、数十種類の添加物の配合比だけで

作り分けられている。味の安定やコスト考慮し、これらの添加物を使って調味している

チェーン系ラーメン店もあるというから驚きだ。

http://news.livedoor.com/article/detail/4390612/

2009-06-26

PVの水増し以前の問題

今年に入ってPVの水増し問題が大人気!というわけで記憶に残っているうちに書いておくよ。

3年くらい前だったと思う。

とある会社からWeb制作を依頼され、普通サイトを構築。

そして商品説明の動画などを追加して納品することにした。

もともとサイトは持っていたので、ドメインなどはそのまま流用。

いわゆるリニューアル扱いだ。

ここまではよくある話。

で、その担当が納品間際にSEO対策をして欲しいと言い出した。

今日頼まれて明日実現するようなものじゃないことを説明したが、他社ならYahoo!検索で1番にしてくれるところもあると言ってきかない。

そもそもSEOオーバーチュア勘違いしているようだったが、聞く耳を持たない相手に説明するのもだんだんと面倒になってきた。

話は平行線を辿り、結局そのまま納品することになった。

そして数ヶ月たったある日、突然その会社サイトリニューアルされた。

どうやら、その優秀な他社に再度Web制作を依頼したらしい。

そして翌週になり、当社へ連絡があった。

「1日数百件しかカウンターが回ってなかったけど、他社に依頼したら1日に50万人のアクセスが出るようになった。お前の会社技術が足りない」と嫌味っぽく文句を言われた。

しばらく呆然と立ち尽くしてしまった。

お前は何を言っているんだ?

初めに設置していたカウンタートップページのUUをカウントするものだ。

それに対して、まずその50万人という単位は何なのだ。

gif画像へのアクセスとかもカウントしているんじゃないのか?

それにしても多すぎる。F5アタックをしたとしても多すぎる。

ロリポの共用レンサバで1日50万人も来たら追い出されるぞ?

どんなレポートを見て電話してきたのか知りたい気持ちもあったが、まともなレポートじゃないのは間違いないので、「それはよかったですね」とさわやかに電話を切った。

2009-03-24

名付け方

ギークではないし、どちらかといえば下手なのですが。

http://anond.hatelabo.jp/20090324005857



  1. インスタンス名をどうするか
  2. 生成したインスタンスを格納する配列名前をどうするか
    • その集合を現す名前があるはず。

例えば、サムネイルを作る makeThumbnails という関数なら、

result = array.new()
while(src = gets())
    result.add(Thumbnail.new(src))
end
return result

かもしれないし、例えばサムネイルを一覧表示時のアイコンに使うなら、index_iconsとか、gif化してアニメーションするならframesとかつけるかも。

ちなみに、perlなら $frame = shift @frame だ。

whileの内側だけで使う一時変数なら名前は短く一文字とか、他にも処理があるならtmbとか、thumbとかにするかも。

2009-02-18

[] <日本語> にほんご

[Resources] リンク集 Useful Link Resources

学習に役立つリンクを集めた言語学総合サイトなど。

  1. Jim Breen's Japanese Page
  2. Tae Kim’s Blog » Links
  3. Keiko Schneider's Bookmarks
  4. Japanese language learning tools on Web
  5. Learn Japanese - Japanese Language
  6. 授業で使えるWebサイト効果的な使い方
  7. オンライン小説情報リンク集オリジナル・一般向〜
  8. 日本語教材図書館*JLPT日本語能力試験対策と「みんなの日本語」教材データ
  9. Resources for Japanese Students and Educators (The Association of Teachers of Japanese)

[English/Japanese] 英語日本語を学ぶ Learning Japanese by English

  1. Jim Breen's Japanese Page
  2. Japanese language learning tools on Web
  3. Charles Kelly's Online Japanese Language Study Materials
  4. Japanese Idioms
  5. All Japanese All The Time Dot Com: How to learn Japanese. On your own, having fun and to fluency. » About
  6. Tae Kim's Japanese guide to Japanese grammar
  7. YASUKO'S NIHONGO HOUSE
  8. The Daily Yo-ji
  9. JGram - The Japanese Grammar database
  10. JPLANG | LOGIN
  11. Japanese: Vocabulary Guide | 日本語: ボキャブラリーガイド
  12. Learn Japanese - Japanese Language
  13. Nihongojouzu
  14. Yahoo! 360° - Japanese for you Everyday♪ - writing a letter 2
  15. Expressions used in Japanese Letters - How to write Japanese letters
  16. My Furusato: Home of Everything Japanese from History to Culture Through Humor and Art and now the Fountain of Youth to fantastic health and less disease.
  17. Japanese Language School - MLC Meguro Language Center(in Tokyo,Japan)

[Japanese/Japanese] 日本語日本語を学ぶ Learning Japanese by Japanese

  1. Learn Japanese--北嶋千鶴子日本語教室 Let's play in Japanese
  2. ひらがなタイムズ/サイトマップ
  3. 日本語勉強 - Japan Forum
  4. 日本語Q&A:スペースアルク
  5. 日本語Q&A
  6. 初級日本語 げんき オンライン:げんきな自習室
  7. nihon5ch.net::::TOP::::日本語言葉日本語の文法を考えるための素材とツールを提供するサイト
  8. 日本語教師の教案 みんなの日本語ハンドアウト
  9. 寺村誤用例集データベース
[Hiragana] ひらがな
  1. U-biq
  2. Kana Sensei
  3. オンライン日本語学習 (Online Japanese Practice)
  4. ローマ字表 (Chart for Romaji to Hiragana)
  5. POINTひらがなローマ字表|ぴよタイピング
  6. pc_roma.gif (GIF Image, 745x900 pixels)
  7. ひらがな
  8. あいうえお表でひらがなを覚えましょう!
  9. Romaji
[Kanji] 漢字
  1. Read The Kanji | Learn how to read japanese kanji!
  2. 学習ページ(岡山大学 Okayama Univ.)
  3. Learn Japanese Kanji Online : WebCMJ (名古屋大学 Nagoya Univ.)
  4. 初級日本語 げんき オンライン:げんきな自習室
  5. Most Frequent 1000 Kanji of the Japanese Language | Japanese Language Lessons: Let's Learn Japanese!
  6. 漢字の正しい書き順(筆順)のメニュー
  7. 漢字で学ぶ日本語
  8. Happy Rice ~ 漢字勉強しながら寄付をしよう! ~
[Grammer] 文法
  1. Tae Kim's Japanese guide to Japanese grammar
  2. JGram - The Japanese Grammar database
  3. NationMaster - Encyclopedia: Japanese grammar
  4. 日本語の文法のリスト - 一級
  5. ●ことばと文字にかかわるおぼえがき——「クルミノ コーボー」
  6. みんなの日本語 練習
  7. Learn Japanese Grammar Online : WebCMJ
  8. 外国人のための日本語学習について-J-Life
  9. Chopsticks New York
  10. JReK - Japanese Sentence Search

[Dictionary] オンライン辞書 Online Dictionaries

  1. WWWJDIC: Word Search
  2. 英辞郎(eijiro) on the WEB
  3. English to Japanese, Japanese to English On line Dictionary
  4. kanji romaji hiragana convert
  5. Japanese Dictionary Tangorin.com
  6. 漢和辞典 漢字辞書 漢和辞書 [無料]
  7. Wiktionary
  8. 時代日本語類語辞典 類語玉手箱 -- 類語辞典シソーラス

[Translation] 翻訳サイト Free Online Translation Sites

  1. WWWJDIC: Text/Word Translation
  2. Nice Translator - The fast, easy to use online translator

[Tool] 学習ツール Helpful Tools for Learning Language

  1. rikaichan | polarcloud.com
  2. Reading Tutor - チュウ太の道具箱
  3. フナハシ学習塾 ためになる?ページ

[Portal] 学習言語圏のポータルサイトテキストソース Portal Sites of Learning Language / Text Sources

学習言語ポータルサイトなど。

(For Beginners)

  1. Hiragana Times
  2. Yahoo!きっずニュース
  3. 学研キッズネット
  4. キッズ@nifty
  5. キッズgoo

[RSS] RSS feeds

ツールやリンクアップデート更新中の教材紹介記事など。

[Podcast] ポッドキャストリスニング教材 Podcasts / Listening Resources

  1. Learn Japanese Pod
  2. Nippon VoiceBlog
  3. Learn Japanese @ Japancast.net
  4. S-J-P Study Japanese Podcast
  5. PodcastDirectory - Japanese Podcast Search Results

[Youtube] 動画学習 Movie Resources

  1. YouTube - Let's Learn Japanese Basic 1: "I'm Yan" [Episode 1, Part A]
  2. Namasennsei's Japanese lessons - YouTube

[Culture] 文化マナー・生活習慣 Culture / Manner / Life Style

冠婚葬祭言語圏生活で必要な情報など

  1. OK World - Abundant Living Information for foreign residents in Japan
  2. Cultural News
  3. Japan Reference
  4. Web Japan : Top Page
  5. メニュー - 知っておこう 暮らしマナー
  6. Japan With Kids - The interactive online community for English speaking parents in Japan!
  7. みんなの知識【ちょっと便利帳】

[Set up] タイピング基礎、言語入力システムインストール Set up Instructions for the Absolute Beginners.

  1. Japanese Input | Japanese Language Lessons: Let's Learn Japanese!
  2. Google 日本語入力 - ダウンロード

(For Windows)

  1. Installing East Asian Language Support under Windows 2000 Professional
  2. How to set up the Japanese input system
  3. YouTube - learn how to install japanese input support for windows

(For Mac)

  1. macosxhints.com - More Kotoeri (Japanese input) tips

(In case you are using shared computer)

  1. Using Japanese font and IME at Internet Cafe 海外インターネットカフェ日本語を使う (フォント日本語変換IME
  2. Type in Japanese - Google Transliteration

[Vocabulary] ボキャブラリー、語彙習得

  1. 日本語の文法のリスト - 一級

[News] ニュースソース

  1. くらべる一面 : 新s あらたにす日経朝日読売

[Extensive Reading] 読み物(小説ブログなど) Novels / Blogs

  1. 青空文庫 Aozora Bunko
  2. The Baker Street Bakery > 音声化された青空文庫リンク集
  3. 青空文庫サウンドブックス
  4. 1000文字小説 [1000moji.com]
  5. 翻訳

[Search Word] 検索ワード Words and Sites for Searching Resources

  1. 日本語
  2. 学習
  3. 勉強
  4. 教育
  5. 方法
  6. 教材
  7. 翻訳
  8. 辞書
  9. 便利
  10. 役立つ
  11. 文法
  12. 練習

[Tips] お役立ち記事など

  1. Learn Japanese with Twitter | Jayhan Loves Design & Japan
  2. Beginning to learn Japanese
  3. 日本語文法 - Google ブックス

[Just For Fun] おまけ Bonus Materials

  1. Free Japanese Kanji Translation * JapaName *
  2. Rum and Monkey: The Name Generator Generator
  3. 日本語学マンガ
  4. Nihongo
  5. 感覚!「楽しむ漢字」の辞典
  6. ことわざデータバンク
  7. ユーモア誤用
  8. Funny Japanese mistakes - Japan Forums
  9. 擬音語擬態語 - 日本語を楽しもう! -
  10. Japanese: Vocabulary Guide | 日本語: ボキャブラリーガイド

[Unedited] 未編集備忘録 Transient stock/ Memorandum

  1. NHK高校講座 | ライブラリー
  2. JapanSoc - #1 Social Bookmarking Site for Japan
  3. 小説の書き方・リンク集
  4. 日本語俗語辞書 - 若者言葉新語死語流行語
  5. わかりやすい技術文章の書き方

(Information)

  1. Learning Japanese - Japan Forums
  2. The Japanese Page | TheJapanesePage.com
  3. How to write Japanese precisely

語学学習サイト個人的リンクメモ / Lists of Language Learning Links)

http://anond.hatelabo.jp/20090101193230

2009-02-01

こんな明らかな不具合をいつまでも残しているはてなはいったい何なの

プロフィール画像の設定画面にはこんな事が書いてある

アップロードできる画像の種類はjpg , png , gifです。

しかし実際にpng形式の画像アップロードしてみると

アップロードできる画像の種類は jpg, png, gif, bmp です。

などというおかしなメッセージが出てアップロードに失敗する(IEの場合)

ちなみにこの不具合はちゃんとはてなアイデアに提出済みだ

http://i.hatena.ne.jp/idea/15946

しかし、上場から一年も経っているのにはてなは検討すらしていない

明記してある画像形式と実際に使える画像形式が違うなんて明らかな不具合をいつまでも残しているなんて、はてなはいったい何を考えているのだろうか。

はてな馬鹿になっているというのも頷ける事例だ

2008-12-12

「お前なんか はてブのお気に入りに入れてやる!」攻撃を受けたよ

id:f_iryo1です。

はてブのお気にいられアイコンを非表示にしてほしいで、自分ブックマークページに自分意図しないアイコンが表示されるのは嫌だよ、と書きました。多くの反応をいただき、「やっぱりアイデアに書くより増田に書いたほうが。。。」などと思いました。(はてなアイデアの分かりにくさは本当に問題だと思うんですけど、その話はいまはいいです)

今回の件で一番残念だったのは、id:y_arimさんを怒らせてしまったことです。いろいろと反感を買いやすい人だとは思いますが、私はid:y_arimさんのファンですので、、、。


さて、おそらく昨夜のことだと思うのですが、立て続けに不思議アイコンの方から「お気に入り」に追加されました。

http://b.hatena.ne.jp/taltal2/

http://b.hatena.ne.jp/kenkoukenkou/

http://b.hatena.ne.jp/rekurel/

おもしろいことに、みなさんアイコンが裸の女性の絵で、よく動きます。また、みなさんブックマーク件数がゼロか非常に少なく、「お気に入り」に追加しているのもid:f_iryo1のみとなっています。

これは明らかに私に対する嫌がらせでしょう。

私は、先日の記事で「萌え絵」を否定するつもりはないと明記したはずです(誤読・読み飛ばしをされた方も多かったのですが。。)。

おそらく、id:taltal2さん、id:kenkoukenkouさん、id:rakurelさんは同一人物だと思うのですが、このような誤読をし、短絡的に「お前が嫌がることをしてやるぜ!」とばかりエロアイコンで「お気に入り」に追加してくること、また記事が話題になって1週間たってからの反応というスピードの遅さなどから考えると、この人は中学生、せいぜい高校1年生くらいではないかと思われます。

id:rakurelさんが中学生であるとすると、これは大変な問題です。中学生GIFアイコンを作れるのは不思議ではないでしょうが、中学生がこのアイコンのような、性行為をしている女性の絵を入手できることは非常に問題であると思われます。中学生のうちからそんな簡単にエロ画像を収集していたら、ろくな大人になりません。

インターネット規制に関する法律についていろいろと議論されているようですが、諸々の問題はさておき、中学生自分アイコンエロ画像採用するような世界は、あるべきではないと思うのです。

2008-12-07

はてブのお気にいられアイコンを非表示にしてほしい

id:f_iryo1です。

はてなアイデアに書いたところで誰の目にも留まらないだろうから、匿名ダイアリーに。


すでに要望としては上がっているようなんだけど、はてなブックマークのお気にいられアイコンは表示・非表示の切り替えはできないんだろうか。

これが私のブックマークページ。

http://b.hatena.ne.jp/f_iryo1/

左側に、id:f_iryo1を「お気に入り」に入れているアカウントアイコンが表示されている。一番左には、いわゆる「萌え絵」が表示されている。これを非表示にしたい。


id:ashitano244さんに対して、特別な感情は一切ない。ashitano244さんがどういうタイプマンガアニメが好きなのかは知らないし、自分が好きな絵をアイコンにすることはまったく問題ないことだと思う((著作権のことは知らない))。ashitano244さんに「私をお気に入りから外してください」というつもりも、「アイコンを変えてください」というつもりもない。

私は、「萌え絵」があまり好きではない。また、他人から「萌え」が好きであると誤解されたくない。

自分はてなブックマークページは、自分サイトのひとつだと思っている。もちろんダイアリーのほうがメインだが、ブックマークページやアンテナも同じアカウントを使っている以上、自分の庭のようなものだと思っている。

自分サイトに、自分が好まないものが常時表示されていることのデメリットは2種類ある。ひとつは、自分自身がそれをみて不愉快になること。これについては、非表示にするGreasemonkeyでも書けばいいのだろう。もうひとつのデメリットは、他人から「この人はこういうのが好きなんだな」と誤解される恐れがあること。この問題は、現時点では解決できない。

「f_iryo1」でGoogle検索すると、4番目に http://b.hatena.ne.jp/f_iryo1/ がでてくる。私に興味を持った人がこのブックマークページを見たとき、「萌え絵アイコンが表示されているのを見て、「f_iryo1という人はこういう絵が好きなのか」と誤解する可能性は十分にある。


重ねて書くが、id:ashitano244さんにアイコンを変えてほしいとかお気に入りから外してほしいとか言いたいわけではない。

私の場合は現時点ではashitano244さんの「萌え絵アイコンだけだから、まだ全然ましだ。これが、id:anigokaさんの乳揺れGIFアイコンだったり ( http://b.hatena.ne.jp/anigoka/ )、id:akoginaさんの蝿がたかるウンコGIFアイコン( http://b.hatena.ne.jp/akogina/ )だったりしたら、なんだかもうものすごくがっかりである。こういうことを書くと捕捉されて「お気に入り」されそうな気がするけどまあ仕方ない。


自分が選んだ人(お気に入り)を表に出すのは理解できるけれど、(頼んでもいないのに)(勝手に)自分を選んだ人(お気にいられ)が前に出てくるのは、あまり普通じゃないんじゃないかなあと思う。Twitterの個人ページに表示されるのは自分のFollowingだし。

だったらプライベートモードにしろよって言うかもしれないけど、それはしたくないんだよなあ。

というわけで、よろしくお願いしたいところです。

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-17

http://anond.hatelabo.jp/20081006220009

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

その後、適当にいじったら、手元環境で1枚あたり25秒くらい→だいたい2.5秒くらいで判別できるようになった。このくらいなら使えるかな。

速度向上に一番効いたのは、Token#importで画像を比較しているところの修正。他は細かい手直し。

使い方は前のやつと変わってません。

あと、テストに100枚くらいCAPTCHA画像食わせてみたけど、とりあえず全部正しく判定できた。

動作確認用のスクリプト (run.rb)

カレントディレクトリ以下にある*.gifCAPTCHA画像ファイル適当に判別するスクリプト。動作確認用にどうぞ。

後述のdecaptcha.rbと同じディレクトリ適当に置いてchmod +xしてね。

#!/usr/local/bin/ruby
$LOAD_PATH << File::dirname(File::expand_path($0))
require 'decaptcha'

STDOUT.sync = true

Dir.glob('*.gif').sort.each do |file|
  correct = File::basename(file, '.*')
  puts "Processing file: #{file}"
  start_time = Time.now
  ret = DeCAPTCHA.decode(file)
  elapsed = Time.now - start_time

  puts "  Result: #{ret} (=> #{(correct == ret) ? "Ok" : "Fail"})"
  puts "  Elapsed time: #{elapsed}"
  puts
end

コード (decaptcha.rb)

#!/usr/local/bin/ruby
require 'rubygems'
require 'gd2'
require 'pp'

#
#= CAPTCHA画像解析モジュール
# CAPTCHA画像ファイルを食わすとあら不思議Stringが出てくるよ。
# YourFileHostのやつに対応。
#
#== Usage
# decoded_str = DeCAPTCHA.decode("some_captcha_image.gif")  #=> String
# 失敗したらnilが返る。
#
module DeCAPTCHA
  DEBUG = false

  #=== CAPTCHA画像デコード
  # file::    画像ファイル名のパス
  # method::  未指定でよい。男は細かい事を気にするな。
  # returns:: CAPTCHA画像解析結果(String) or nil (デコード失敗時)
  def self.decode(file, method = DeCAPTCHA::Site::YourFileHost)
    return method.new(file).decode
  end



  #= CAPTCHA画像デコードクラス
  # このクラスサブクラスはimport, tokenize, stream_parseメソッドの
  # 実装を含む必要がある。
  class Site
    def initialize(file = nil)
      @pix = nil
      self.import(file) unless file.nil?
    end
    def decode
      return stream_parse(tokenize())
    end
  end

  #= YourFileHostのCAPTCHA画像を解析するクラス
  class Site::YourFileHost < Site
    def import(file)
      @pix = PixelMatrix.new.import(file)
      return self
    end

    # importしたイメージ(PixelMatrix)から、文字と思わしきパターンを
    # 抽出して上下マージンを切り取ってArrayにして返す。
    # returns:: Array of PixelMatrix
    def tokenize
      ret = []
      state = :initial
      for x in 0...@pix.width
        case state
        when :initial
          if !@pix.vline_blank?(x) then
            state = :tokenize
            pixel = PixelMatrix.new(0, 0, true)
            ret << pixel
            redo
          end
        when :tokenize
          if @pix.vline_blank?(x) then
            state = :initial
            next
          end
          x0 = pixel.width
          for y in 0...@pix.height
            pixel[x0, y] = @pix[x, y]
          end
        else
          raise 'NOTREACHED'
        end
      end

      ret.map! {|token| Token.new.import(token.cutoff_vmargin!) }
    end


    # PixelMatrixのArrayを受け取り、数字を判別。
    # tokens:: Array of PixelMatrix
    # returns:: String (判別結果)
    def stream_parse(tokens)
      rs = tokens.map {|x| x.guess.to_s }.join('')
      if rs.length != 4 then
        rs = nil
        if DEBUG then
          puts '- guess failed. dumping guess result of each token:'
          tokens.each_index do |i|
            print "##{i}:#{tokens[i].guess} "
            pp tokens[i].candidate
          end
          puts
        end
      end
      return rs
    end

    class Token
      @@digits = nil
      attr_accessor :candidate

      def initialize
        if @@digits.nil? then
          # 文字画像サンプルを作っておく
          @@digits = DIGITS_ASSOC.map {|digit|
            PixelMatrix.new(0, 0, true).import_array(digit) }
        end

        @candidate = Hash.new
      end

      # PixelMatrixを受け取り、文字画像サンプルと比較して
      # 一致率を計算しておく。
      # pixel:: PixelMatrix
      # returns:: self
      def import(pixel)
        @@digits.each_index do |i|
          digit = @@digits[i]

          if (digit.width - pixel.width).abs   > 4 or
             (digit.height - pixel.height).abs > 4 then
            @candidate[i] = -1  # サイズが違いすぎな場合、一致させない
            next
          end

          correct_bits = 0
          enlarged_width  = [digit.width,  pixel.width ].max
          enlarged_height = [digit.height, pixel.height].max
          for y in 0...enlarged_height
            dy = (y.to_f / digit.height * enlarged_height).to_i
            py = (y.to_f / pixel.height * enlarged_height).to_i
            for x in 0...enlarged_width
              dx = (x.to_f / digit.width * enlarged_width).to_i
              px = (x.to_f / pixel.width * enlarged_width).to_i
              correct_bits += 1 if digit[dx, dy] == pixel[px, py]
            end
          end

          @candidate[i] = correct_bits * 100 /
                          (enlarged_width * enlarged_height)
        end

        return self
      end

      # importのときの比較結果をもとに文字を推測
      # returns:: Fixnum or nil(失敗時)
      def guess
        digit, ratio = @candidate.sort {|a, b| a.last <=> b.last}.last
        digit = nil if ratio < 0 or ratio < 65
        return digit
      end
    end
  end


  #= 画素マトリックスクラス
  # 画像ファイルを食わせると、各ピクセル(画素)を2値(black(1) or white(0))に
  # 変換して、内部で保持する。
  # 以後、Matrixクラスのような感じで個々の画素アクセスできる。
  class PixelMatrix
    BLACK = 1
    WHITE = 0

    attr_accessor :width
    attr_accessor :height

    # width::  幅
    # height:: 高さ
    # is_flexible:: 自動的に伸張するか
    def initialize(width = 0, height = 0, is_flexible = false)
      @matrix = Hash.new {|hash, key| hash[key] = Hash.new(WHITE)}
      @width, @height, @flexible = width, height, is_flexible
    end

    # file:: 画像ファイル名のパス
    # brightness_threshold:: 画素を黒とみなす閾値 (0 - 255, default: 0x40)
    # returns:: self (DeCAPTCHA::PixelMatrix)
    def import(file, brightness_threshold = 0x40)
      gd = GD2::Image.import(file)
      @width, @height = gd.width, gd.height

      self.each_with_axis do |x, y|
        color = gd[x, y]
        greyscale = (color.red + color.green + color.blue) / 3
        self[x, y] = (greyscale > brightness_threshold) ?
          WHITE :
          BLACK
      end
      return self
    end

    def import_array(array)
      array.each_with_index do |str, y|
        str.split('').each_with_index do |c, x|
          self[x, y] = c.to_i
        end
      end
      return self
    end

    # PixelMatrixを画像ファイルとしてexport
    # file:: 新たに作る画像ファイル名のパス
    def export(file)
      gd = GD2::Image::IndexedColor.new(@width, @height)
      gd.palette << GD2::Color::WHITE
      gd.palette << GD2::Color::BLACK
      self.each_with_axis do |x, y|
        gd[x, y] = {
          WHITE => GD2::Color::WHITE,
          BLACK => GD2::Color::BLACK,
        }[self[x, y]]
      end
      gd.export(file)
      return self
    end

    # 指定された位置の画素を返す。
    # returns:: PixelMatrix::BLACK(1) or WHITE(0)
    def [](x, y)
      if !@flexible and !in_range?(x, y) then
        raise RangeError
      end
      return WHITE if !@matrix.has_key?(y)  # XXX: for optimize
      return @matrix[y][x]
    end

    # 画素に値を設定。
    # returns:: PixelMatrix::BLACK(1) or WHITE(0)
    def []=(x, y, val)
      unless in_range?(x, y) then
        raise RangeError unless @flexible
        @width  = (x >= @width)  ? x + 1 : @width
        @height = (y >= @height) ? y + 1 : @height
      end

      @matrix[y][x] = val
    end

    def in_range?(x, y)
      ((0...@width) === x and (0...@height) === y)
    end

    # 指定された軸をもとに画素を走査し、Arrayに変換。
    # 例えば、to_a(:vertical, 10) とすると、x == 10 な列を取り出して
    # Arrayにして返す。
    #
    # axis:: 軸を指定 (:vertical または :horizontal)
    # pos:: 位置を指定。_axis_で指定した軸と直交する軸における位置を指定。
    def to_a(axis, pos)
      {:vertical => lambda {
        (0...@height).map {|y| self[pos, y]}
       },
       :horizontal => lambda {
        (0...@width).map  {|x| self[x, pos]}
       },
      }[axis].call
    end

    # returns:: Array
    def hline(y)
      self.to_a(:horizontal, y)
    end

    # returns:: Array
    def vline(x)
      self.to_a(:vertical, x)
    end

    # X軸方向に画素を走査。
    # y:: どの位置で走査するか
    # returns:: 指定された軸の上にドットが存在: false, 無い: true
    def hline_blank?(y)
      return true if @matrix.has_key?(y) == false # XXX: for optimize
      for x in 0...@width
        return false if self[x, y] == BLACK
      end
      return true
    end

    # Y軸方向に画素を走査。
    # x:: どの位置で走査するか
    # returns:: 指定された軸の上にドットが存在: false, 無い: true
    def vline_blank?(x)
      for y in 0...@height
        return false if self[x, y] == BLACK
      end
      return true
    end

    # 上下のマージン削除した新しいPixelMatrixを返す。
    # returns:: PixelMatrix
    def cutoff_vmargin
      pixel = PixelMatrix.new(0, 0, true)
      head = 0
      tail = self.height - 1

      head.upto(tail) do |y|
        if !self.hline_blank?(y) then
          head = y
          break
        end
      end
      tail.downto(head) do |y|
        if !self.hline_blank?(y) then
          tail = y
          break
        end
      end

      head.upto(tail) do |y|
        0.upto(self.width - 1) do |x|
          pixel[x, y - head] = self[x, y]
        end
      end

      return pixel
    end
    
    # 自身の上下のマージン削除する。cutoff_vmarginの破壊版。
    # 速度稼ぎのために直接@matrixを触ったり、すこしずるをしている。
    # 効率は、ほんの少しだけ速くなったような誤差の範囲のような感じ。
    # returns:: self (PixelMatrix)
    def cutoff_vmargin!
      head = 0
      tail = self.height - 1

      head.upto(tail) do |y|
        if !self.hline_blank?(y) then
          head = y
          break
        end
      end
      tail.downto(head) do |y|
        if !self.hline_blank?(y) then
          tail = y
          break
        end
        @matrix.delete(y) if @matrix.has_key?(y)  # XXX
      end

      if head > 0 then
        head.upto(tail) do |y|
          next if !@matrix.has_key?(y)            # XXX
          @matrix[y - head] = @matrix.delete(y)   # XXX
        end
      end
      self.height = tail - head + 1

      return self
    end
    
    def each_with_axis
      for x in 0...@width
        for y in 0...@height
          yield(x, y)
        end
      end
    end
  end
end

class DeCAPTCHA::Site::YourFileHost::Token
DIGITS_ASSOC = [
  # 0
  ["00000000011111110000000000",
   "00000001111111111110000000",
   "00000011111000001111000000",
   "00001111111100010011110000",
   "00011111100000110000111000",
   "00111111000000100001111000",
   "00111111110001000001111100",
   "01111111000010000011111110",
   "01111100000110000111111110",
   "01111111000100000111111110",
   "11111100001000001111111111",
   "11100000001000011111111111",
   "11111000010000011111111111",
   "11111000110000111111111111",
   "10000000100001111111111111",
   "01100001000001111111111110",
   "01100010000011111111111110",
   "01100010000111111111111110",
   "00111100000111111111111100",
   "00011100001111111111111000",
   "00001100011111111111111000",
   "00001111111111111111100000",
   "00000011111111111111000000",
   "00000000111111111100000000"],
  # 1
  ["00001",
   "00111",
   "11111",
   "11111",
   "10001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001",
   "00001"],
  # 2
  ["0000011111111110000000",
   "0001111111111111000000",
   "0011110000000010000000",
   "0110000000000100000000",
   "1100000000001100011110",
   "1000000000001000001111",
   "1000000000010000000111",
   "1000000000110001111111",
   "1000000000100001111111",
   "1000000001000000011111",
   "0100000011000001111111",
   "0011000010000111111110",
   "0011000110000001111110",
   "0000001100000111111100",
   "0000001000011111110000",
   "0000011000000111100000",
   "0000110000000000000000",
   "0000111111111111111111",
   "0001111111111111111110",
   "0011111111111111111100",
   "0011111111111111111100",
   "0111111111111111111000",
   "0111111111111111110000"],
  # 3
  ["000000011111111110000000",
   "000001111111111111100000",
   "000011100000011111111000",
   "000111000000111111111000",
   "000110000001111111111100",
   "000100000001111111111100",
   "000100000011111111111100",
   "000110000111111111111000",
   "000010000111111111111000",
   "000000001111111111100000",
   "000000011111111111000000",
   "000000011111111110000000",
   "000000000000001100000000",
   "000000000000011100011100",
   "000000000000111000111110",
   "000000000000110000001110",
   "000000000001110001111111",
   "110000000011100011111111",
   "111000000111000000111110",
   "011100000110001111111100",
   "001111001110000111111000",
   "000011111100000011100000",
   "000000011000111000000000"],
  # 4
  ["0000000000011",
   "0000000000011",
   "0000000000111",
   "0000000001111",
   "0000000001111",
   "0000000011111",
   "0000000111111",
   "0000000110111",
   "0000001100111",
   "0000011100111",
   "0000011000111",
   "0000110000111",
   "0001110000111",
   "0001100000111",
   "0011000000111",
   "0111000000111",
   "0111111111111",
   "1111111111111",
   "0000000000111",
   "0000000000111",
   "0000000000111",
   "0000000000111",
   "0000000000111"],
  # 5
  ["000000001111111111111110",
   "000000011111111111111100",
   "000000111111111111111100",
   "000000111111111111111000",
   "000001111111111111110000",
   "000011100000000000000000",
   "000011011111111110000000",
   "000111111111111111000000",
   "001111100000000111000000",
   "001110000000000110001100",
   "000000000000000100011110",
   "000000000000001100000110",
   "000000000000011000011111",
   "000000000000011001111111",
   "000000000000110000011111",
   "000000000001100000111111",
   "110000000001100111111110",
   "011000000011000001111110",
   "011100000110000011111100",
   "001111000110011111111000",
   "000111111100001111110000",
   "000001111100000011000000",
   "000000001000011000000000"],
  # 6
  ["000000000000000110000000",
   "000000010001111111111000",
   "000001110000011100111100",
   "000011100000011000001000",
   "000111000011111000000000",
   "001111000001110000000000",
   "001110000000111100000000",
   "011110001111111111100000",
   "011100000111000011110000",
   "011000000010000001111000",
   "011000011110000011111100",
   "010000111100000111111110",
   "100000001000000111111110",
   "100001111000001111111111",
   "000011110000011111111111",
   "000000100000011111111111",
   "000011100000111111111111",
   "001111000001111111111110",
   "000010000001111111111110",
   "001110000011111111111100",
   "000111000111111111111000",
   "000011111111111111110000",
   "000000111111111111000000",
   "000000000111111000000000"],
  # 7
  ["0011111111111110001111",
   "0011111111111100000011",
   "0111111111111000000110",
   "1111111111111000111100",
   "1111111111110000001100",
   "0000000000000000011000",
   "0000000000000011111000",
   "0000000011000000110000",
   "0000001110000011100000",
   "0000011110001111100000",
   "0000111100000011000000",
   "0001111000000110000000",
   "0001111000111110000000",
   "0011110000001100000000",
   "0011110000001000000000",
   "0011100011111000000000",
   "0011000001110000000000",
   "0001000000110000000000",
   "0000000111100000000000",
   "0000000111000000000000",
   "0000000011000000000000",
   "0000001110000000000000",
   "0000001100000000000000"],
  # 8
  ["0000000111111111110000000",
   "0000011111111111111100000",
   "0000001111100000011110000",
   "0000000001110000000111000",
   "0011000011111000000011100",
   "0011100001111100000011100",
   "0011110000001110000011100",
   "0001111000011111000111000",
   "0000111100000111101110000",
   "0000011110000001111100000",
   "0000001111000011111110000",
   "0000111111110000011111000",
   "0011110011111000001111100",
   "0111100001111100011111100",
   "0111000000111110000111110",
   "1111000000011111000000111",
   "1111000000001111100011111",
   "1111000000000011111000010",
   "0111100000000001111100000",
   "0011110000000000111110000",
   "0001111110000001111110000",
   "0000011111111111111000000",
   "0000000011111110000000000"],
  # 9
  ["000000111111111110000000",
   "000001111111111111100000",
   "000111111111111001111000",
   "001111111111110000010000",
   "011111111111110000010000",
   "011111111111100000100000",
   "011111111111000001100000",
   "111111111110000001000111",
   "111111111110000010000001",
   "111111111100000110000111",
   "011111111000000100011111",
   "011111111000001000001111",
   "001111110000011000011111",
   "001111100000010001111110",
   "000111110000100000011110",
   "000001111111100000111110",
   "000000011111000111111100",
   "000000000010000001111100",
   "000000000110000001111000",
   "000100001100011111110000",
   "000111001100001111100000",
   "000011111000001111000000",
   "000000010000110000000000"],
]
end
__END__

2008-10-06

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

破ろうぜ!CAPTCHA画像♪(うっうーん)

そんなわけで、みんな大好きなYourFileHostだけども、最近みてみたら、なんかCAPTCHA認証がついているわけじゃないですか。

でもこれってさーCAPTCHAといっても見るからに危ういというか、見れば見るほど簡単に破れてしまいそうな気がして、どうにもむずがゆいアンニュイな気分になってしまうわけです。

そんで、このたび適当にいじってみたところ、それなりに推測できるコードが書けたので、ここに張ってみますね。

やってることは単純で、こんな感じ

  1. CAPTCHA画像ファイルをよみこむ
  2. ピクセルごとにグレイスケールにして、それで2値にする
  3. この時点でじゃまな背景が消えて、文字の形がわかってしまうわけです
  4. 縦軸に点がないところで切って、文字ごとにばらばらにする
  5. 文字画像のサンプルと比較して、一致率が高いものを採用

使い方は、こんな感じで

require 'decaptcha.rb'
captcha_string = DeCAPTCHA.decode(filename)
if !captcha_string.nil? then
  # 判別成功時の処理
else
  # 判別失敗時の処理。失敗することもあるのでよしなに。
end

あ、Ruby/GD2入れといてね。sudo gem install gd2とかで入ります。多分。

判別率はそこそこ良い感じになったんだけども、富豪プログラミングがたたってか、いかんせん遅いです。

手元だと1枚判別するのに20秒くらいかかることもある。

そんなわけで誰かチューニングしてくれるとうれしい。

追記

実行速度を上げた改良版はこっちにうpしました。以下のコードは参考程度に。

コード (decaptcha.rb)

#!/usr/local/bin/ruby
require 'rubygems'
require 'gd2'
require 'pp'

#
#= CAPTCHA画像解析モジュール
# CAPTCHA画像ファイルを食わすとあら不思議Stringが出てくるよ。
# YourFileHostのやつに対応。
#
#== Usage
# decoded_str = DeCAPTCHA.decode("some_captcha_image.gif")  #=> String
# 失敗したらnilが返る。
#
module DeCAPTCHA
  DEBUG = false

  #=== CAPTCHA画像デコード
  # file::    画像ファイル名のパス
  # method::  未指定でよい。男は細かい事を気にするな。
  # returns:: CAPTCHA画像解析結果(String) or nil (デコード失敗時)
  def self.decode(file, method = DeCAPTCHA::Site::YourFileHost)
    return method.new(file).decode
  end



  #= CAPTCHA画像デコードクラス
  # このクラスサブクラスはimport, tokenize, stream_parseメソッドの
  # 実装を含む必要がある。
  class Site
    def initialize(file = nil)
      @pix = nil
      self.import(file) unless file.nil?
    end
    def decode
      return stream_parse(tokenize())
    end
  end

  #= YourFileHostのCAPTCHA画像を解析するクラス
  class Site::YourFileHost < Site
    def import(file)
      @pix = PixelMatrix.new.import(file)
      return self
    end

    # importしたイメージ(PixelMatrix)から、文字と思わしきパターンを
    # 抽出して上下マージンを切り取ってArrayにして返す。
    # returns:: Array of PixelMatrix
    def tokenize
      getter, tokenizer = lambda {|queue|
        [ lambda { return queue },
          lambda {|x, pixel|
            if pixel.nil? then
              x, pixel = tokenizer.call(x, PixelMatrix.new(0, 0, true))
              queue << pixel
              return x
            end
  
            if !@pix.in_range?(x, 0) or @pix.vline_blank?(x) then
              return [x, pixel]
            end
            x0 = pixel.width
            @pix.vline(x).inject(0) do |y, color|
              pixel[x0, y] = color
              y + 1
            end
            return tokenizer.call(x + 1, pixel)
          }
        ]
      }.call([])

      x = 0
      while (x < @pix.width)
        x = @pix.vline_blank?(x) ?
          x + 1 :
          tokenizer.call(x, nil)
      end

      getter.call.map do |token|
        # Token.new.import(token.cutoff_vmargin.shrink)
        Token.new.import(token.cutoff_vmargin)
      end
    end

    # PixelMatrixのArrayを受け取り、数字を判別。
    # tokens:: Array of PixelMatrix
    # returns:: String (判別結果)
    def stream_parse(tokens)
      r = []
      tokens.inject(nil) do |prev, cur|
        r << cur.guess
      end

      rs = r.map {|x| x.to_s}.join('')
      if rs.length != 4 then
        if DEBUG then
          puts '- guess failed. dumping guess result of each token:'
          tokens.each_index do |i|
            print "##{i}: "
            pp tokens[i].candidate
          end
          puts
        end
        return nil
      end
      return rs
    end

    class Token
      @@digits = nil
      attr_accessor :candidate

      def initialize
        if @@digits.nil? then
          # 文字画像サンプルを作っておく
          @@digits = DIGITS_ASSOC.map {|assoc|
            PixelMatrix.new(0, 0, true).import_assoc(assoc) }
        end

        @candidate = Hash.new
      end

      # PixelMatrixを受け取り、文字画像サンプルと比較して
      # 一致率を計算しておく。
      # pixel:: PixelMatrix
      # returns:: self
      def import(pixel)
        gcd = lambda {|a, b|
          a, b = [b, a] if a < b
          return a if b == 0
          r = a % b
          return gcd.call(b, r)
        }
        lcm = lambda {|a, b| a * b / gcd.call(a, b) }
        mul_to_lcm = lambda {|a, b|
          g = gcd.call(a, b)
          [b / g, a / g]
        }

        0.upto(@@digits.size - 1) do |i|
          if (@@digits[i].width - pixel.width).abs   > 4 or
             (@@digits[i].height - pixel.height).abs > 4 then
            @candidate[i] = -1  # 比較対象とサイズが違いすぎ
            next
          end

          mul_ax, mul_bx = mul_to_lcm.call(@@digits[i].width,  pixel.width)
          mul_ay, mul_by = mul_to_lcm.call(@@digits[i].height, pixel.height)
          enlarged_width  = @@digits[i].width  * mul_ax
          enlarged_height = @@digits[i].height * mul_ay

          # 文字画像サンプルと比較対象画像のサイズをあわせる
          # 幅・高さをそれぞれ適当整数倍して、最小公倍数に合わせて比較
          # (めんどうだから)
          correct_bits = 0
          (0...enlarged_width).each do |x|
            (0...enlarged_height).each do |y|
              if @@digits[i][x/mul_ax, y/mul_ay] ==
                 pixel[x/mul_bx, y/mul_by] then
                correct_bits += 1
              end
            end
          end
          
          @candidate[i] = correct_bits * 100 /
                          (enlarged_width * enlarged_height)
        end

        return self
      end

      # importのときの比較結果をもとに文字を推測
      # returns:: Fixnum or nil(失敗時)
      def guess
        digit, ratio = @candidate.sort {|a, b| a.last <=> b.last}.last
        digit = nil if ratio < 0 or ratio < 80
        return digit
      end
    end
  end


  #= 画素マトリックスクラス
  # 画像ファイルを食わせると、各ピクセル(画素)を2値(black(1) or white(0))に
  # 変換して、内部で保持する。
  # 以後、Matrixクラスのような感じで個々の画素アクセスできる。
  class PixelMatrix
    BLACK = 1
    WHITE = 0

    attr_accessor :width
    attr_accessor :height

    # width::  幅
    # height:: 高さ
    # is_flexible:: 自動的に伸張するか
    def initialize(width = 0, height = 0, is_flexible = false)
      @matrix = Hash.new {|hash, key| hash[key] = Hash.new(WHITE)}
      @width, @height, @flexible = width, height, is_flexible
    end

    # file:: 画像ファイル名のパス
    # brightness_threshold:: 画素を黒とみなす閾値 (0 - 255, default: 0x40)
    # returns:: self (DeCAPTCHA::PixelMatrix)
    def import(file, brightness_threshold = 0x40)
      gd = GD2::Image.import(file)
      @width, @height = gd.width, gd.height

      self.each_with_axis do |x, y|
        color = gd[x, y]
        greyscale = (color.red + color.green + color.blue) / 3
        self[x, y] = (greyscale > brightness_threshold) ?
          WHITE :
          BLACK
      end
      return self
    end

    # reverse function of to_assoc
    def import_assoc(assoc)
      assoc.inject(0) do |y, columns|
        columns.inject(0) do |x, color|
          self[x, y] = color
          x + 1
        end
        y + 1
      end
      return self
    end

    # PixelMatrixを画像ファイルとしてexport
    # file:: 新たに作る画像ファイル名のパス
    def export(file)
      gd = GD2::Image::IndexedColor.new(@width, @height)
      gd.palette << GD2::Color::WHITE
      gd.palette << GD2::Color::BLACK
      self.each_with_axis do |x, y|
        gd[x, y] = {
          WHITE => GD2::Color::WHITE,
          BLACK => GD2::Color::BLACK,
        }[self[x, y]]
      end
      gd.export(file)
      return self
    end

    def to_assoc
      (0...@height).map do |y|
        (0...@width).map do |x|
          self[x, y]
        end
      end
    end

    # 指定された位置の画素を返す。
    # returns:: PixelMatrix::BLACK(1) or WHITE(0)
    def [](x, y)
      if !@flexible and !in_range?(x, y) then
        raise RangeError
      end
      return @matrix[y][x]
    end

    # 画素に値を設定。
    # returns:: PixelMatrix::BLACK(1) or WHITE(0)
    def []=(x, y, val)
      unless in_range?(x, y) then
        raise RangeError unless @flexible
        @width  = (x >= @width)  ? x + 1 : @width
        @height = (y >= @height) ? y + 1 : @height
      end

      @matrix[y][x] = val
    end

    def in_range?(x, y)
      ((0...@width) === x and (0...@height) === y)
    end

    # 指定された軸をもとに画素を走査し、Arrayに変換。
    # 例えば、to_a(:vertical, 10) とすると、x == 10 な列を取り出して
    # Arrayにして返す。
    #
    # axis:: 軸を指定 (:vertical または :horizontal)
    # pos:: 位置を指定。_axis_で指定した軸と直交する軸における位置を指定。
    def to_a(axis, pos)
      {:vertical => lambda {
        (0...@height).map {|y| self[pos, y]}
       },
       :horizontal => lambda {
        (0...@width).map  {|x| self[x, pos]}
       },
      }[axis].call
    end

    # returns:: Array
    def hline(y)
      self.to_a(:horizontal, y)
    end

    # returns:: Array
    def vline(x)
      self.to_a(:vertical, x)
    end

    # X軸方向に画素を走査。
    # y:: どの位置で走査するか
    # returns:: 指定された軸の上にドットが存在: false, 無い: true
    def hline_blank?(y)
      hline(y).find {|color| color == BLACK }.nil? ?
        true : false
    end

    # Y軸方向に画素を走査。
    # x:: どの位置で走査するか
    # returns:: 指定された軸の上にドットが存在: false, 無い: true
    def vline_blank?(x)
      vline(x).find {|color| color == BLACK }.nil? ?
        true : false
    end

    # 上下のマージン削除した新しいPixelMatrixを返す。
    # returns:: PixelMatrix
    def cutoff_vmargin
      pixel = PixelMatrix.new(0, 0, true)
      head = 0.upto(self.height - 1) do |y|
        break(y) if !self.hline_blank?(y)
      end
      tail = (self.height - 1).downto(0) do |y|
        break(y) if !self.hline_blank?(y)
      end

      head.upto(tail) do |y|
        y0 = pixel.height
        self.hline(y).inject(0) do |x, color|
          pixel[x, y0] = color
          x + 1
        end
      end

      return pixel
    end
    
    def each_with_axis
      (0...@width).each {|x|
        (0...@height).each {|y|
          yield(x, y)}}
    end
  end
end

class DeCAPTCHA::Site::YourFileHost::Token
DIGITS_ASSOC = [
# 0
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
],
# 1
[[0, 0, 0, 0, 1],
 [0, 0, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1],
 [0, 0, 0, 0, 1]],
# 2
[[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
 [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0],
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
 [0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0]],
# 3
[[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
# 4
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1]],
# 5
[[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
 [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0],
 [0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
# 6
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0],
 [0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
# 7
[[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
# 8
[[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
 [0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0],
 [0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
 [0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0],
 [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1],
 [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0],
 [0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
# 9
[[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
 [0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1],
 [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0],
 [0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0],
 [0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
 [0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
]
end


__END__
Dir.glob('*.gif').each do |file|
  puts "Processing file: #{file}"
  p DeCAPTCHA.decode(file)
end

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