「メソッド」を含む日記 RSS

はてなキーワード: メソッドとは

2011-07-01

引き寄せの法則リアルタイムで実践する

お金が欲しい。風俗行きたい。イケメンになりたい。

スポーツ万能になりたい。海外旅行行きたい。

頭よくなりたい。筋肉ムキムキになりたい。

人には実に色々な願望がありますが、ほとんどが実現されないのが現実ではないでしょうか。

ちなみにお察しの通り、上に書いたものはすべて私の今の願望です

こういった願望を抱くという事は、現状はすべて逆であるということです

そう、つまり私は正真正銘の【ダメ人間】なのです

でもどうしても願望を実現し、現状を変えたいという強い思いだけはあります

そして強い思いだけもって特に何も変わらない、悶々とした日々をすごしてきました。

が、昨日我が家本棚に「引き寄せの法則」「ザ・キー」という2冊の本を見つけました。

これは母が何年か前に買った本で、今まで特に気にしていなかったのです

昨日なぜか急にこの本が目に入ったのです

母に聞いたところ、「結局宗教っぽくてあんま面白くなかったよ」といわれました。

しかしとても気になってしまい昨晩と今朝で一気に2冊読んでみました。

感想

確かに宗教っぽい。でもこれ全部マジだったら俺も変われるかもw

この日記を書いた理由

実践の方法

とりあえず「引き寄せの法則」よりも「ザ・キー」の方が自分にはわかり易かったので

こっちに書いてあったメソッドとかを一通りやりながら願望を実現してみる。

ザ・キーに書いてあったこと
  1. 願望を実現出来ないのは、自分の思い込みを「クリア」出来ていないから。
  2. クリアにする方法を知る前に、神様になったつもりで、自分がなりたい姿を書いてみる。
    1. 本当に神のつもりになれた?絶対無理とか考えなくていいから、もっと書け。
  3. 願望実現の前に、現状に感謝しよう。
  4. 幸せを問いただす
  5. 自分の中の思い込みを変える。
  6. 愛してると言う。
  7. 望む事をシナリオで書く。

本当はもっと書いてありましたが、自分の中で印象に残った部分だけ抜粋しました。

では、順に実行していきます

1・願望実現のコツはクリアすること
まず、引き寄せの法則とは、僕らが何か思考すると、それを宇宙が受け取って
あとは勝手現実にそれを物質化して叶えてくれる。
ボールを真上に投げたら、重力によってまた自分のとこまで戻ってくるのと同じように
例外なく自分の思考はすべて現実ものとなっている。という法則のことです。
これがなかなか実現出来ないのは、例えば「超絶美人なお姉さんとHな事したい!」と思考したときに
「でも俺ブサイクだし、そんなお姉さんにすかれるわけがない。」とか「第一出会いがねーし!」みたいな
思い込みによってこの願望は実現を阻まれているそうです。
だから、この思い込みをクリアにすれば願い事はすべてかなうです!
というのが一番最初に書かれてました。
2・神になったつもりで自分が何になりたいか。どう変えたいかを書いてみました。
まず1億円くらい手にする。
免許を取って車とバイクを買う。
顔が向井理みたいにイケメンになる。
体がジェイソンステイタムのようにマッチョになる。
スポーツ万能になり、フットサルテニスボーリングゴルフダーツなどの
大会で全て優勝する。
1ヶ月で10カ国以上を旅する。移動の飛行機は全てファーストクラス。
頭がよくなり、業界世界的に有名な人間になる。
かわいい子にモテるようになり、セフレが5,6人くらい出来る。
風俗に週2で通う。
2-1・不可能な事はないので、遠慮せず書く。
結構遠慮しませんでしたが、1億円は「さすがに10億は行きすぎだろ」
とか考えてたので、1000億くらい手にする。に変更。
あと、スポーツ大会は「外人には勝てないよね」って思って国内を想定してたので
世界大会で優勝に変更。
旅行の部分は「10カ国とか時間的にキツいかな?」とか考えてたので
1ヶ月で30カ国に変更。
3・まずは今に感謝する。

著者の友人はこんなことを言ったそうです

多くのひとはその瞬間を生きていない。

常に、つぎの契約、つぎの車、つぎの家、つぎの昇給について考えていて、

パワーの基点、つまり、真の奇跡がいまここにあるということに気づいていない。

「ザ・キー」P75より

確かに、僕も今足りないものばかりだから、これが満たされたら幸せになれると思ってました。
でも、つぎばかり求めてると、つぎが来た時にはまた「つぎのつぎ」を求めるようになり
結局いつまでたっても幸せになれないのだそうです。なるほど。
で、ここでは自分が今感謝できることをひたすら書いていきます特に大きな病気もなく健康に暮らせている。
家族もみな健康である毎日行く場所がある。
毎日おいしいご飯が食べれている。
適度に遊べている。
面白い人達毎日会える。
たくさん寝れてる。
帰る家がある。しかも駅から近くて綺麗で広い。
車も原付もほぼ好きな時に寝れる。

書き出してみるとかなり恵まれてると思ったw
4・不幸せを問いただすメソッドと5の思い込みを変えるメソッド自分にはしっくり来なかったので飛ばしました。

6・愛してるという。

「愛してる」って言う。というか心で唱えるだけでも問題を解決することを

妨げているものを除去することが出来るらしい。

これからはよく唱えるようにしよう。

7・シナリオを書く。

自分が望むことをシナリオのように、既に起こったこととして書くと

その通りになるらしい。

私は、はてな匿名ダイアリーを書いていました。そこには自分が願望実現を
リアルタイムで実践していく様子を記していました。
一度書き終えてからたまたま通りすがった宝くじ屋でスクラッチタイプのくじを2枚購入。
その際には先ほどの教えに従って、売り場のおばちゃんに「愛してます」といいました。(心のなかで)
しばらく歩いていると、後ろから急に「おにーさん!」と肩を叩かれ、驚きながら振り返るとめちゃくちゃ可愛いギャルが・・・
きっと美人局に違いないと思った僕は「すいません」と言い残し足早にその場を去ろうとしました。
しかギャルは「今何してるのー??どうせ暇なんでしょー!カラオケでも行こうよっ☆」と満面の笑みで誘ってきます。
「か・・・可愛い・・」それでもまだ美人局の可能性を完全には否定できないと思った僕は「ごめんないさい。用事があるので」と
ギャルの誘いを断ってしまいました。これが引き寄せの法則の力だとしてもさすがにいきなりは怖いと思ったので自分的には
正しい判断だと思います。結局メアドだけ交換してギャルは去っていきました。
生まれて初めての逆ナンテンションがあがった僕はまたもや目に入って来た宝くじ屋で今度は5枚
スクラッチタイプのクジを購入しました。

近くにあった漫画喫茶に入り、買った7枚のスクラッチクジを一つ一つ丁寧に削っていきます。
この時、なぜか高額当選が当たり前かのような気分に浸っていました。
そして4枚目のクジを削ったときに見事1等当選!!!
当たり前とは思っていたものの、思わず叫びそうになるのを必死に押さえ、喜びをかみしめます。
残りの3枚を削ってみると、ほかにも3等と200円の当選が各1枚ずつまぎれていました。
自分の身に起こったシナリオ通りの事態に足を震わせながら換金へと向かいました。
換金後はもちろん先ほどのギャルに連絡し、早速遊びに行っちゃいました。




さて、とりあえず今から、気持ちい気分で最後に書いたシナリオの場面を想像

愛してるとつぶやきながら宝くじを買いに行ってきます

引き寄せの法則の効果をリアルタイムで実践したいと思います

※購入後につづきを書きます

  • 7/1 18:25編集 -----------------

待っていた人などいないと思いますが、皆様お待たせいたしました!

結果報告!!

ナン:されず・・・でも可愛いギャルとたくさんすれ違いました。

スクラッチ:購入しましたが、今の気持ちだと何か当たらないような気がするので

なぜ引き寄せられなかったのかを反省したいと思います

失敗の原因は・・?

正確にはわかりませんが、少し調べた結果エゴが原因なんじゃないか

という仮説にいたりました。

では、逆ナンされるのを期待しながら歩いてたとき自分の思考を振り返ってみます

可愛いギャルからナンパされるかな~」
「いくら引き寄せの法則とは言えど、ありえないかなぁ」
「ありえないとかって感情を抱いた時点で無理かな」
「いや、ありえなくない!でも逆ナンされたときの気持ちい感情を味わえって書いてあったな」
「そもそも逆ナンされたことないか感情とかワカンなくね?」
「とりあえずワクワクしてみよう!!」
「ワクワク・・・これでいいのかなぁ・・」

と、いう具合に自分の中のエゴが
「逆ナンなんてありえない!引き寄せの法則などあったとしても
お前のやり方は間違っている!」
って言ってる気がして、自信を喪失してたようにも思います

エゴを消すにはどうすれば

実際には願望を実現するのは自分の今いる世界とは別の領域で

エゴには実現する能力すらないのだそうです

そこで、エゴにはそんな能力すらないのだから、否定的な気持ちになるのを

理解してあげつつ、さよならと言って消し去ればよいらしい。

ちなみに、調べてたら「100%バカになる方法」というのを見つけた。

http://www.rubysilver.net/loa/theme/theme002.html

2011-06-25

初めて風俗に行ってきたので考えたこと、感じたことをつらつら書いていこうと思う。

以下感想

  • 行くのがちょっと遅すぎたか、という感じ。かの偉大な北方先生は「ソープに行け」という万能アドバイスを残しているが、あれって実際、童貞歴が長すぎると効果がないようである
    • これについて、事前の考えとしては、「ソープに行くと気持ちいいので色々悩んでたのがアホらしくなる」、または「童貞で悩んでいたのが、なんだ、セックスなんてこんなものか、と自信がつく」というのがあのメソッドの含意だと解釈していた。実際、こんなものか、とは確かに思ったのだが、あまりにも何もなさすぎて、何の問題も解決しなかったので拍子抜けした感じである女性に対して自信がついたりしたということは全く無い。
    • どうも自分は、童貞であることについて深く考えたり悩みすぎたり、それでいて実際の行動(合コンとか)にはあまり移さなかった結果として、いわゆる「童貞をこじらせた」状態になっているらしく、つまり、手遅れということなのかと思う。
    • 上はどちらかというとメンタル面の話だが、肉体的物理的な話をすると、純粋にそう気持ち良いものでもなかった、ということもある。今まで数年間、散々エロマンガだのエロゲーだのAVだので自慰し放題の生活を続けてきたせいで、女性の生の肉体との接触によってはあまり快感や興奮を得られないようになってしまったようである。これも噂には聞いていたが、実際その通りらしい。
  • はいえ、様々な知見が得られたので決してムダではなかったとも思う。
  • たとえば、風俗店というのは(より正確には自分の行ったソープランドは)、美容室マッサージ店に似ていると思う。相手への信頼のもとに自分の身体の一部の自由を委ねて、何がしか快楽を得る、という店と客との関係が。後付けの知識だが、実際、一部の風俗店業態マッサージ店と限りなく近接・混淆しているようだし、また、台湾では「床屋」とは風俗店のことだとも聞く。フィクションにおいて恋人たちが髪を切ったり洗われたりするのは深い信頼のあらわれであると同時にセックス隠喩である、とはこういうことか、とそんなことを身体を洗われながら思った。
  • 愛のないセックスは虚しい、みたいな話をここですると増田的にはきっと恰好のネタになると思うのだが、まあとにかく、楽しくはなかった。これは純粋自分初体験で緊張していたというのもあるのだろうけど(噂には聞いていたが実際なかなか勃たなくて焦った)、嬢の身体を見ても興奮できないのである感覚としては家族のそれに限りなく近い。キスしてもただ、「肉である」という感想しか得られない。
    • これは相手の嬢の方には非常に失礼なことであるし、態度には出さなかった(はず)。どこまでも当方の問題であるわけだから。実際、ローションプレイはなかなかに気持ちよかったし、最終的には射精まで漕ぎ着けられた、とは付記しておく。
      • ここまで文章を書いていて気がつくのは、自分風俗店に行ったときの話をしているのに口をついて出てくるのは自身についての省察ばかり、嬢の話はこれっぽっちも無い、ということである。今時の男は自分のことにしか興味がない、というスポーツ新聞コラムニストの言を頭から信じるわけではないが、実際そういう部分はあるのだろう。とうとうここまで恋人を作ることができなかったのも、畢竟そういうことか。
    • しかしながら、世の人が「作業になっちゃったセックス苦痛」と言うのが少しだけ理解できた気はする。
  • さて本番、という段になり、愛撫を促された自分は思わず硬直した。いざ抛り出された女性の裸体を前にしたとき、一体どうしたものやらとんと見当がつかないのである。とりあえず見よう見まねで(すなわちAVやらエロゲーやら何やらのように)手を動かしてはみるものの、どうにも奏功している感触がない。初めてだから仕方ない、とフォローは可能なのかもしれないけども。唐突に話が飛ぶが、これは車の運転についてもそうで、ちっとも上手く出来やしない。「誰でも最初から上手いわけじゃない、練習あるのみだ」と人は言うのだけど、どうも自分の拙さはやや常軌を逸してかけているように思えてならない。そういうわけで近頃は世人に対する驚異と尊敬の念いよいよ高まるばかりである
  • ところで奇妙なことに、挿入とピストン運動(古い)、嬢に両足で腰を銜え込まれる感覚は、これまで何度か夢に見たものとさして変わりがなかった。膣内は思ったよりも浅く、ややもすると抜けてしまいそうになるものから腰遣いには注意を要した。といってもただ振ってるだけだったのだが。いずれにせよ、人間想像というのは、ときにはそう外れているものでもないらしい。
  • 店を出て上記のように縷縷思索に耽りながら、ふと頭を過ったのは、これはポルノグラフィティの鑑賞にあたってフィードバックに使える、ということである。今や自分キスの、挿入の感触を知っている、これでまたひとつ豊かな視聴(あるいは読書プレイ)体験の世界が広がったのだ、と嬉しがりながらtumblr.で流れてきた『とある科学の超電磁砲』の佐天×初春キス画像を眺めている。1万6千円はけっしてムダではなかったのだ、と納得しこの稿を終えたい。

ブコメで頻出している「1万6千円って安すぎだろう」という突っ込みに対する応答も含め、補足を書いたのでそちらも参照してもらえると幸いです

http://anond.hatelabo.jp/20110625102225

2011-06-17

http://anond.hatelabo.jp/20110617223140

横だけどそれはなんかちょっと違うと思うよ

アニメの売り上げで「爆死wwww」とか「爆売れ大勝利wwww」とか言ってるアニオタは確かに見るけど

あれは半分以上はネタだと思う

あんまりにも売れないアニメは笑い話のネタになるし

大口叩いてた監督の意欲作がこけたらやっぱりネタにして喜ぶし

みたいなね

まり全部ただの話の種だよねオタク同士で繋がるための


好きなアニメがヒットと言える売り上げを叩き出したら祝うけど

「こんなにたくさんの人から認められているアニメのよさがわかる自分は凄い」みたいな

つまんない自己肯定の気持ちを刺激されてるぐらいであって、

何かと競争して大勝利ってことじゃない

AKBは明確に競争自分の推してるメンバーが何位ぐらいで

ここまで押し上げたい、っていう気持ちでお金注ぎ込むんでしょ

似て非なるもんだよ

っていうかアニオタアニオタで条件が合致すれば凄い額を作品に注ぎ込むメソッドはあるんだから

畑も適用対象も仕組みも違うAKBシステムなんか持ち込む必要ないのさ

2011-05-30

http://anond.hatelabo.jp/20110530172607

それは確かにわからん話だ

だってアリエッティとかコクリコ坂って

「ぼろ儲け」って言葉イメージと全く結びつかないじゃんか

どっちもジブリって看板がなきゃいくらも売れないぞ


かんなぎみたいな微妙雑誌の発展途上な中堅マンガを題材に抜擢して丁寧なアニメにして萌えオタ釣り

ってメソッドの方がよほど「ぼろ儲け」のイメージに近い

(まあヤマカンがおんでた古巣商法だけど)

2011-05-26

もう死ぬまで基地外少女でいいんだよ

教育だの世論だのは人を型にはめるなよ。もう今までのメソッドは無理なんだって。みんな嫌なんだよ。基地外少女がいいんだよ。生肉が好きなんだよ。

2011-05-19

「これからの「パスワード」の話をしよう」のバグについて突っ込む

Web屋のネタ帳( http://neta.ywcafe.net/ )様の

これからの「パスワード」の話をしよう( http://neta.ywcafe.net/001184.html )で

紹介されているパスワードハッシュ化のバグについて突っ込んでみる

バグといっても大きなものではな

 「1回ハッシュ化を解読できただけ、プレーンパスワードを入手することが可能である

というものである

問題の部分はここ

    /**
     * 平文のパスワードハッシュ&stretchするメソッドです。
     * loop回数は1000としていますが、999でも1001でもお好みでどうぞ。
     * ただしループ回数は処理時間に直結しますのでほどほどの数値で。
     */
    private static final String hashAndStretch(String plainPasswd, String salt) {
        int loop = 1000;
        String hashedPasswd = "";
        for (int i = 0; i < loop; i++) {
            hashedPasswd = DigestUtils.sha256Hex(hashedPasswd + plainPasswd + salt);
        }
        return hashedPasswd;
    }

ここのロジックトレースしてみると

凡例

プレーンパスワードPASSWORD

ソルト:SSSSSSSS

トレース

最終的なハッシュパスワードが「XXXXXXXX」とする

XXXXXXXX ←  DigestUtils.sha256Hex("YYYYYYYY" + "PASSWORD" + "SSSSSSSS")

クラッカーがXXXXXXXXXのハッシュ値を解析し、元の文字列が「YYYYYYYYPASSWORDSSSSSSSS"」と判明したとする。

この時点で元文字列の中にプレーンパスワードが含まれていることになる。

また、ハッシュ化された文字列には「0123456789abcdef」の文字しか含まれておらず、

 「それ以外の文字が含まれていた場合容易にプレーンパスワードはないか

と推測可能である

一般的なパスワードには少なからず「0123456789abcdef」以外の文字が含まれているだろうし、

意味のある言葉パスワードに使っていた場合一目瞭然だ。

上記のことをふまえてプログラムを修正すると。。

    /**
     * 平文のパスワードハッシュ&stretchするメソッドです。
     * loop回数は1000としていますが、999でも1001でもお好みでどうぞ。
     * ただしループ回数は処理時間に直結しますのでほどほどの数値で。
     */
    private static final String hashAndStretch(String plainPasswd, String salt) {
        int loop = 1000;
        String hashedPasswd = DigestUtils.sha256Hex(plainPasswd + salt);;
        for (int i = 0; i < loop; i++) {
            hashedPasswd = DigestUtils.sha256Hex(hashedPasswd + DigestUtils.sha256Hex(salt + i));
        }
        return hashedPasswd;
    }

プレーンパスワードループの外でハッシュ化し、

またソルトを毎回違う値にハッシュ変換することにより

元の文字列の推測を行いにくく修正した

2011-05-16

http://anond.hatelabo.jp/20110516000303

解けるつもりで忘れていないかの確認には必要

奇問は無視するとしても定着に効果的

から2回目は要点の確認ができてるか把握できればいい。

知識の整理やデータベース化みたいな、初回ほどの労力をかける必要はない。

 

加えて、いわゆる受験ハウツー

「1回通読したら後は自分で考えて~」

なんて思考を要する作業は与えない。与えるはずがない。

あくまでそれは100人100人合格させるためのメソッドであって

単なる一読者である増田合格させるためのメソッドはないから。

自己流に確信が持てるならそれがベスト

万人にそれができりゃ塾なんてものは流行らないんだから

2011-05-05

http://anond.hatelabo.jp/20110426160238

ファッションそのものに大して興味はないけど、対人メソッドとしてそれなりに小ぎれいにしておきたい」って感じの布陣だな

たぶん、脱オタぐらいにちょうどいい感じ

スレンダー巨乳」な女性と暮らすための4つのメソッド

男性のみなさんこんにちは今日は「スレンダー巨乳」という夢のような女性との暮らしを手に入れるための、4つの簡単なメソッドをご紹介します。

彼女 / 嫁さんを作る

ここは頑張ってなんとかしてください。この時点女性が「スレンダー巨乳である必要はありません。

太らせる

「ちょっとぽっちゃりぐらいが健康ですてきだよ」とかなんとか言っておけば、女性は大喜びでスイーツ()をmogmogします。うまく誘導すれば「寛大な彼氏 / 旦那」という評価もゲットできるでしょう。

目標は「胸はあるけどほかもある」ぐらいのサイズです

出産させる

膣内射精はとてもきもちいい、という嬉しいオマケがついてきます。なお、妊娠が発覚した時点入籍しておいたほうが社会的無難でしょう。

母乳育児させる

授乳期間中、女性の胸は相当大きくなりますしかカロリーほとんど母乳に行くので、相当量食べても痩せ続けます

ほーら、「スレンダー巨乳」のできあがり!

しかも、赤ん坊が激しく吸い付くので、乳首が一皮むけてピンクになる、という嬉しいオマケがついてきます

おわりに

授乳期間が終わっても同じペースで食べつづけると、あっという間に「スレンダー」は失われてしまいます。そうなったら、3番目のメソッドから繰り返しましょう。

いかがでしたでしょうか。スレンダー巨乳との暮らしを手に入れた上に、かわいい子供までできました。もうしばらくしたら、近所の児童館でお会いするかもしれませんね。

それでは、楽しい少子化防止ライフを!

2011-05-02

原子力ギルドより恐ろしい教育ギルドがフクシマの児童を殺す

  20ミリシーベルト問題だが、実は放射線医学専門家は引き下げを主張したが、

  文部科学省側が20ミリシーベルト維持を押し切った、という未確認情報がある。

  

  真相は未確認だが、私見では「さもありなん」という気がする。

  巷間では散々「原子力ムラ」「原子力ギルド」と批判されるが、

  実は文部科学省教育関係者らによる「教育ギルド」の方が、

  より深刻なんじゃないか、と思う。

  「自分たちが気付きあげた教育メソッドこそ最高」と固執して方針転換が遅れたり、

  「教育関係者以外の人に教育なんかわかるはずがない」として

  他学会から教育界の常識を否定」された際にも直視しなかったりする。

  

  例えば「教室天井高は高ければ高いほうがいい」と教育界では信じられてきて、

  文部官僚地方自治体から申請あった「天井高の規制緩和」をかたくなに拒否してきたが、

  しぶしぶ埼玉県で認めたところ、「かえって天井高が低くした方が、児童は心理的に落ち着く」という

  教育関係者赤っ恥な結果が出た。

  あるいは「教育効果を上げるには少人数教室が最善」と教育関係者(文部官僚日教組も)は主張し続けているが、

  経済学者から「少人数教室にすると、トップ層が切磋琢磨しなくなり、かえって全体の平均学力は落ちる」と

  異論を提示されている(クラスサイズパズル

  しかし、教育関係者はダンマリを決め込んでいる。

  今回の件についても、文部官僚は「屋外での体育活動が重要」とか

  「子を疎開させて親と別離することは精神的に問題」という「もっともらしい理由」で

  「できるのであれば20ミリシーベルトを貫いて、中通りで極力平常どおりの教育したい」という思惑を貫こうとしている。

  彼らは「体育活動が重要」「親子のコミュニケーション重要」という「従来から教育メソッドの固執」という発想しかできない。

  緊急時には、それこそ体育授業の1年間停止とか学童疎開という非常手段も求められるのに、

  そういう「従来の延長線上からかけ離れた措置」を文部官僚は非常に嫌がる。

  

  前例踏襲主義、という点では、文部科学省、もっと言えば旧文部省こそ、「官僚の中の官僚である

  福島児童の不幸は、官僚の中の官僚学校運営権を牛耳られたことである

   

2011-04-24

俺はエヴァに呪われていてエヴァアニメ物差しにしているのか…

http://anond.hatelabo.jp/20110422235719

↑の元増田です


ブコメで「エヴァに呪われている」とか「エヴァ脳の恐怖」とか「エヴァアニメ物差しにしている」といったコメントを見て、なるほど的を得ているなと。

そして残念ながらid:kyo_juネタじゃない。マジで書いた内容なんだ…orz

てか自分でもマジでエヴァ脳だと思う。じゃなきゃ増田で書かない。

俺がこんなコメント普通ブログ投稿してる奴をみたら、とりあえず全力で叩く。

それぐらいTPOに反してる感想だと我ながら思う。


しかし何で自分エヴァに呪われているのか?

何故エヴァアニメ物差しにしているのか?

何でだ?


自分なりに考えてみたんだがエヴァに前のめりで楽しんでた人達、というか後ろに引いて見ることが出来なかった人達は、

エヴァが終わった後の娯楽としてそれぞれ別個の道に進んで行ったかと思う。


まずアニメという枠に傾倒する道。

あるいはSFというジャンルに傾倒する道。

この二つの道に進んで行った人は多いのではないかと思う。

ただ自分はこの二つの道には進めなかった。

アニメ当時の世相を反映してか「自分探し」のような内容か、あるいは「萌え」に特化した内容ばかりだった。

自分探し的な部分は十分エヴァで堪能したし、萌え視聴者勝手に後付けするものであって主食として作者が提供するものじゃないものと考えているので無理だった。

SFは─漫画だろうと小説だろうと、作者の設定自慢ばかりで人の営みが希薄なのが多かった。「イカにSの面白さを最大化するか?」が最大の関心事になっている世界だった。

Fだけでいいか人間ドラマが欲しくてSFの道には進まなかった。

※その中で何故か『BLAME!』だけは面白いと思ってた。我ながらかなり謎。

 「設定?誰がんなもん語るか。察しろ。」というスタンスがよかったのかも知れない。

 あるいは設定の説明がない分、人間(と愉快なクリーチャー達)の営みに思考が集中できたせいかも知れない。


自分は娯楽なしで生きられるような人間はない。おそらくは他の人もそうだと思う。

大人になって仕事家事忙殺されても、アウトドアや人付き合い以外の何かしらの娯楽を大なり小なり楽しんでるんじゃないか

人によって、それが映画だったり、ドラマだったり、推理モノだったり、歴史モノだったりすると思う。

自分は「エヴァの次の娯楽」として、最終的に「古いモノ」を選んだ。

小説に手をだし、散々色々な誇大広告に騙された結果、最低10年以上「これは良い」と語られる小説は、少なくとも個人の趣味で好き嫌いはあっても外れはないことに気づいたからだ。

そしてこの単純な法則が、小説という枠だけでなく他の枠にも当てはまることを知った。


「古いモノ」を楽しむコツとして、「その当時の世相や時代背景を同時に知る」ということ。

今ではやや物足りない部分があったとしても、当時としては革新的な技術や手法、あるいは独自の視点が盛り込まれていたために長らく語り草になることが多い。

それと同時に他人の解釈をガン無視すること。例えるなら、どれだけ権威ある人が「このキャラツンデレから萌え」と言っても自分が「ツインテールから萌えであってツンデレなのはどうでもいい」なら自分の直感に従って楽しむこと。

こんな風に古いモノ、かつ娯楽として時代の振り落としを生き抜いたモノを、自由気ままなオレオレ解釈で楽しみ、アニメを見なくなった結果自分アニメ物差しエヴァジブリ千年女優だけになったorz

敢えて弁明、というか開き直らせていただければ…


だって仕方ないじゃん!1年間で1割より少ない程度で面白いアニメは出てると思うよ?

けどその1割弱を探すためだけにアニメ世界に飛び込めば、まさに「渡る世間は萌えばかり」、あるいは「前門の厨二アニメ、後門の監督が厨二の自称芸術unkoアニメ」ばかりじゃん!

アニメの作り手にしても、ちょっと成功して有名になるとすぐ芸術気取りした宮崎駿後継者気取りしてばっかじゃん!

そんな中途半端なことをするくらいなら、いっそワーグナーみたく「アニメはただの芸術じゃない。神聖な祭事だ!」ぐらい突き抜けつつ「よろしい!私に投資する権利をやろう!」的なノリで資金調達&製造とかやれるだけの実力と人間としてゲス気概を持って挑めよ!>ヤマカン、細田

特に'00年代は酷かったよ!観客の声を聞かずに監督が見たいアニメか、大向うの観客の声しか聞いていないアニメばっかだったよ!

「そもそも今客席にいない人を、どうやって小屋に来てもらうか」を考えている人なんて皆無だったよ!


00年代はまブロードウェイ- ミュージカルの方が観客を呼ぶためのモノ作りをしてるよ…

例えば「Wicked」はファンタジーで低年齢児を釣り、女の友情で少女釣り、あげくに社会派的要素で親を釣り上げる万能釣り竿だよ。

Next to Normal」なんて狂気の中から家族愛を導き出すーそれも母親が主役でーっていう化け物ミュージカルだよ。

ミュージカルってさ、親しみが無い人には「子供が見るモノ」あるいは「軽いモノ」ってイメージがあるんだ。

酷いと「演劇と歌が同居する必要性がないんじゃねーの?」って言われる始末www

まぁ当然だよね。舞台としては戯曲という枠が、歌劇としてはオペラという枠が、ダンスバレエという枠が、技巧も歴史も名作も持ってる。

けどミュージカル子供ミュージカル自体にマニアックな人ばかり相手にしてたってお金にならない。

彼らが飯を食っていくためにミュージカルという枠のファンを増やすしか無かった。

かと言って技巧だけで挑めば間違いなく他の枠に負ける。

から彼らはあらゆるものを取り入れ名作を作り上げた。

例えば古典悲劇恋愛ベースに、彼らの身近にあるダンス風俗、そして身近にありすぎるマイノリティへの差別問題を注入したWSSとかね。

そういったことを繰り返し繰り返し続けた結果、今のブロードウェイミュージカルの地位が出来上がった。


じゃあアニメはどうだろう?特に00年代

00年代映画ドラマが売れないと言われる時代だった。

アニメを作ってる側の人からも、「売れない、売れない」という声ばかり聞こえた。

けど自分からしたら、なんでアニメを作ってる人は「今、テレビの前にいない人」を捕まえようとしないんだろうと思ってた。


筋を古いモノから流用し、装飾や人々を今の時代に合わせ、最後の結末に自分たちのメッセージを盛り込む。

これだけでも十分面白いモノが出きるのに。

守破離」の全部が大事なのに、今のアニメは「守」だけ「破」だけ「離」だけみたいに、個別の実装しかいものが多い気がする。

その意味でまどまぎは見事に守破離を盛り込んでた。

魔法少女」っていう小さな視野で見ても、かなり綺麗に守破離してる。もちろん違う角度から見たときにも様々な守破離があるのがまどまぎの魅力。


けど、きっともう後16年くらいは守破離をしっかり出来たアニメは出ないんだろうなぁ…

まどまぎの脚本の人は「ロボットものを書きたい」って言ってるらしいから、おそらくロボットを書くのに夢中になって客席を見なくなるか、大向うの客席しか見なくなる。

そうすると悲劇が好き過ぎる人みたいだし、シェイクスピアを消化しないまシェイクスピアの再発明を得意気にしちゃったりするんだろうなぁ…


かといって他のアニメの作り手は、まどまぎのパラメーターだけみてメソッドを見ず、もっと酷いものを作るんだろうし…

処女厨がウザい・怖い」的な発言をよく作り手側のコメントで見かけるけど、

なら小デュマみたく処女厨を逆手にとって、ビッチであることが生きるために必然である椿姫処女厨の目の前に置いて、

「それでもお前らこいつを罵れる?」といけしゃあしゃあと言ってのけるような人は今までいなかったし…


自分アニメ物差しはきっと簡単には増えないんだろうね…はぁ…

2011-04-14

パスワード個人情報を扱うサービスを作る際に気をつけたこと

HTMLはわかるけど、サーバーサイドはお遊びでphpを触ったぐらいだったので、会員制でデータをためこむサイト作りに初めて挑戦した

今回重視したのは、「いか個人情報をお漏らししないようにして、万が一漏らしても被害を少なくするか」ということ。

世の中、有償サービスでもパスワードを平文で保存してるサービスが意外と多いらしいので、流出した時のリスクを少しでも減らせる対策として書きます

今回のシステム構成

サーバーロケットネットキャンペーンにでレンタルサーバ年1000円ポッキリプラン

クライアント側の処理HTML+CSS+jQuery(とプラグインもろもろ)
サーバ側の処理PHP
WebサーバーApache
データベースMySQL

個人情報こわい!

個人情報ビビる漏洩とかまじ困るし怒られるしこわい。

俺も巻き込まれたところでは、サミータウンがメールアドレスパスワードセットでお漏らししてお詫びに1ヶ月無料なにそれこわい

サミータウンだけならまだいいけど、メアドパスワードを他のサービスで共通化して使ってる情弱なので、

共通化してメアドパスワードをどこかのサービスが一箇所でも漏らすと、ヤフオクID乗っ取り事件みたいなことになる。

http://internet.watch.impress.co.jp/cda/news/2008/09/26/20967.html

だってできれば人様のメールアドレスパスワードとか預かりたくない。

万が一、肉親のメールドレス発見してパスワードにrapemeとか入ってたら明日からどういう顔すればいいかからない。

ググってみてもどこにも情報のってない。うーん困った。ダメもとで「個人情報ってどうやって保存したらいいんだろう。。。」

って、twitterでつぶやいたら、「住所とかは可逆暗号化でいいけど、パスワードハッシュで不可逆化しないとだめだよ!」

と、呪文のようなありがたい言葉を教えてもらった。

暗号化の種類

「住所とかは可逆暗号化でいいけど、パスワードハッシュで不可逆化しないとだめだよ!」

何のことかわからなったので、調べてみると、

・可逆暗号=元のデータに戻せる暗号化方式。

ハッシュハッシュ値を使った、元のデータに戻せない暗号化方式

うーん。。。よくわからん。。。

電話番号とか住所は、第三者が使用する情報なので、可逆が必要。パスワードは、認証しか使わないので、

ハッシュ値結果が一致すれば元のデータがわからなくてもOK、という方式なのでこういった暗号の使い分けをする。

●可逆暗号イメージ(もとにもどせる) 暗号キー開発者が指定する。
090-xxxx-xxxx →(暗号化)→ !'&%($% →(復号化)→ 090-xxxx-xxxxハッシュイメージ(もとにもどせない) 
登録passwordDBに保存)→(ハッシュ値抽出)→!"$#'$#="
ログインpassword →(ハッシュ値抽出)→!"$#'$#="
※二つのハッシュ値が合っていれば、パスワード一致として認証する。

暗号化の実現方法

可逆暗号電話番号とか住所とかに適用

今回はMySQL関数で実現した。encode関数暗号化して、decode関数でもとに戻す。

例えばtel_noという項目だけあるテーブルがあるとすると、

//データベースに保存する時
insert into テーブル名 (tel_no)  values (encode(tel_no,'暗号キー'));
//データベースから取得する時
select decode(tel_no,'暗号キー') from テーブル名;

これで、データベース格納時は暗号化(バイナリ化)されて、データベースから取り出してHTML表示する時に復号化はされる。

ハッシュパスワードかに適用

今回はphpのhash関数で実現した

ユーザ登録時>

$password=(フォームから取得)
$hash=hash('sha512',$password)
//ユーザ登録時は、ここで生成した$hashをデータベースにぶっこむ。

ユーザ認証時は、入力されたパスワードと、データベースパスワードが一致するかチェック。

ログイン認証時>

//フォームから入力されたパスワード
$input_password=(フォームから取得)
$input_hash=hash('sha512',$input_password);

//MySQLに保存されたパスワードを取得(略)
$db_hash==(データベースから取得)

//判定
if($input_hash==$db_hash)
	echo 'ログインしますよ!';
	//ここにログイン処理を書く
else
	die('メアドパスワードがあってないよ!');

これでもしSQLインジェクションとかでデータ流出しても、ハッシュ暗号パスワードに関してはまず解析されないはず。。。

可逆暗号データphp側の暗号キーが盗まれない限りバレない。。。はず。。。

暗号化する対象のデータをえらぶ

何でもかんでも暗号化するとコードが煩雑になるし、パフォーマンスにも影響でそうなので、

住所データ都道府県とか、漏れても良いような情報暗号しませんでした!!

本人が特定できなければ個人情報はないらしいので。。。

個人情報保護法
2条による定義個人情報」とは、生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの(他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含む。)をいう。

http://ja.wikisource.org/wiki/%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E3%81%AE%E4%BF%9D%E8%AD%B7%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%B3%95%E5%BE%8B#2

これで、もし漏れても、俺、ウンコ漏らして臭いけど、パンツから出てないからいいよね?というレベルはなった。はず。

お漏らさないようにキツくする

万が一漏れても大丈夫!と書いたけど、そもそも漏らすなというお話になる。色々調べた結果、以下の対策をほどこした

SQLインジェクション対策

・当初jQuery側でSQL組み立ててPHPに渡してたので、これだと任意のSQLが実行できて漏らし放題なのでやめる。

GETとかPOSTでDBに渡すパラメータを扱ってる場合、ちゃんとエスケープする。

例えばログイン認証するPHPで、GETメソッドでフォームからデータを取得するような場合

$id=$_GET['id']
$pwd=$_GET['pwd']
$sql="select * from ユーザーテーブル where uid='$id' and pwd='$pwd'

とかやってると、login.php?id=admin'&pwd=' OR '1'='1とかパラメータを渡されるとあら不思議

select *from ユーザテーブル where uid='root' and pwd='' or 1=1

で、誰でもログイン出来ちゃう!ので、mysql_real_escape_stringでエスケープしたり、渡されたパラメータが想定した値かどうか(例えば数値かどうか、とか)のチェックをいれたりする。

クロスサイトスクリプティング

・保存するデータタグJavascriptを埋め込まれないように、保存されたデータを出力する場合PHP側でhtmlspecialchars関数使ってエスケープするようにする。

こんな感じでお漏らし対策をした。間違いがあったら教えて欲しい

ちなみに出来上がったサイトはこれ。

http://oreni-makasero.com/

2011-04-05

嫉妬脳の恐怖

こいつらが何を言い争ってるのか把握したのでまとめた

まずkurahitoが執拗にFrancesco3にセクハラを続けている

「Francesco3とはファックしたくないファックファック」と狂ったように騒ぐkurahito

 

''kurahito" 因みに実母とファックしたいと思った事はありますが、F子みたいなのが母親だったら

ファックしたいとは思わない。客観的にw親密に見えたとしても。 2010/12/15

 

"kurahito" 私がファックしたいと思う基準は親密性もさることながら責任能力

F子みたい電波母親とファックしたら後々面倒に決ってるので桑原という感じ。教員しかり。 2010/12/15

 

"kurahito" 所で反処女厨の自称フェミ女は「非処女の私を(も)欲望しろ」と言ってる訳ですよね。

処女厨じゃないけどあなたは欲望しません」というのは言わぬが花なんでしょうか。 2011/03/19

 

ひとりはてブタワーをのぼりながらファックの話を続けるkurahito

みんな遠巻きにしている誰も止められない

ここでNATSU2007登場

 

"NATSU2007" あーはいはい 貴方の発想って一事が万事「女が俺に欲望されないから嫉妬してる」

しかないんだね。だから「ファックしたくない・お前には欲望しない」と見当違いに吠える。

しい心性じゃないが。むしろ何度目だナウシカ。 2011/03/21

 

"kurahito" これは一般論だが「夫がロリエロ/近親姦漫画を隠してました。おぞましいです」は嫉妬だと思うが。 2011/03/22

 

"kurahito" 顕著なのは人形姦な。「人形に欲情するなんておぞましい」って、人形のように半永久的に

しいものへの嫉妬以外のどんなモチベよ? 2011/03/22

 

嫉妬脳の恐怖wwwwwww 

モテないルサンチマンを抱えながら

なぜか女から欲望されている事を疑わないのは

キモヲタ全般に共通するが

こいつらの自意識過剰の理由を誰か説明してくれwwwwwwwwww

 

"NATSU2007" それら全て「欲望されない女の嫉妬」と定義するならゲイ男性も当然忌避される筈だが

逆に好かれてる位だ。さーどうする理屈に合わないな。「ホモが嫌いな女子はいません」が

二次に限るとしても「おこげ」も存在する。 2011/03/23

 

"kurahito" 浅っ。腐女子やオコゲは「ヘテ男に欲望されねばならない」という心的負担のない

安全圏からゲイ男性を視姦してるだけでしょう。 2011/03/23

  

"NATSU2007" メタブ え、小児性愛者や人形愛者は「ヘテ男」で括られるわけ?幼少年しか欲望しないペドは?

ゲイ男性と同じ立場の筈だが幼女を欲望するペドと同じように"おぞましがられている"と思うんだけど。 2011/03/24

 

"NATSU2007" メタブ あとこれ"kurahito氏自身"が「ヘテ女に欲望されねばならない」

心的負担から逃避する為に「幼女or人形しか愛せない」事をexcuseにしてる心理の裏返しとすれば、

小児性愛ブクマで殊更アピールする態度にも説明が付くね。 2011/03/24

 

痛い所を刺されkurahito泣きながら逃亡wwww

 

"kurahito" ↓「異性愛人形愛、近親姦小児性愛」なんだが。私のことを知りもしない癖に

知ったような書方するし、知ってほしいとも思わないし、他者に敬意を払えない

自称ライターさんもウザイからこれ以上レスしません。 2011/03/24

 

"NATSU2007" メタブ, 性 これじゃ父息子・兄弟近親姦少年性愛者も「ヘテロ」となる。

「ヘテ男に欲望されたい女の嫉妬」メソッドではそれらが忌避される説明がつかない。

どこまでもヘテロ目線だから破綻するんだよ。底が浅いのはどっちよ 2011/03/25

 

"NATSU2007" メタブ 敬意もないコメントをし続け

(私も散々ナツと呼び捨てにされ失礼な事書かれた)、

知りもしない他人の事を知った様に書いてきたのは貴方じゃないの。

貴方のメソッドをそのまま返しただけなのに逆ギレですか? 2011/03/24

 

いで

知りもしないFrancesco3のことを知ったように論評するkurahitoと

それをブーメラン返しで自覚させるNATSU2007

 

"kurahito" 私が見聞きした限りではF子は娘に対して異常に他人行儀な気がするんですよね。

異常に距離感が掴めてないというか。「親子は他人の始り」をどこかで認識し損ねたかのような。 2011/03/10

 

"NATSU2007" メタブ, 転移 私が見聞きした限りkurahito氏は母親への恨みを母の表象

中年女性主婦」にぶつけてる様に見える。有村氏が「僕を罰して」なら

kurahito氏「僕を裏切ったママを罰してやる」マザコン八つ当たりも奇妙な欲望だよね 2011/03/25

 

 

以上

どう見てもキチガイが目に余るセクハラを続けているので

堪忍バッグの緒がきれたNATSU2007がバッサリ斬った構図だが

これを【どっちもどっち】【結婚すればいいのに】【類友】と

イメージ操作したがっているid:kanoseやそのお仲間の遣り口の薄汚さには

ノドにスッパい物がこみ上げてくるのを抑えきれねえ。まるwwwwwwwww

http://anond.hatelabo.jp/20110405083429

2011-04-02

確実にアクセス20倍にする、人気ブログの作り方

はてブうんざりした話

http://anond.hatelabo.jp/20110401162030


上記に目を通したのち、言及されていたブログを読みに行ってみた。

タイトル横には、

「人気ブログをつくる方法」を研究するブログです

と、あったけれど、ブログには割と建前的なことが書いてあったので、

確実にアクセス20倍にする方法を書いていく。



まず、最初あなたがするべきことは、ブログの記事をやみくもに増やすことではない。

また、記事の中身を充実させることでも、はてブでホッテン入りしやすいまとめ記事を書くことでもない。

どんなにあなた気合を入れて書こうが、誰も見にきたりはしない。

人気ブログメソッドを利用して書こうと、成果はそんなに変わらない。

変わったとしても、気のせいだっつーの。まずは、そこを認めろ。



あなた最初にすべきことは、Twitterで知り合いを作ることだ。

たた単に知り合うだけでは、意味がない。特に、「頻繁にブクマする傾向にある人」「リツイート好きな人

「フォローされている人の数が100人以上」を狙い内にして知り合え。

あ? どうやって探すかって?

ライフハックITやまとめ記事で、ホッテン入りしているような記事のブクマコメント覗いて、

よく同系統の記事をブクマしていたり、Twitter連携している奴を探せばいいだろ。



相手が有名なブログ主である必要はないが、

もし相手が何か記事を書いたらブクマしたことが相手に分かるようにして感想を送れ。

これを繰り返したら、相手は次第にあなたに信頼を抱く。そう、これは布石だ。

将来、あなたが記事を書いたときに、ブクマしてもらう、あるいは広めてもらうための布石だ。

嘘も方便。誉めろ。相手に価値があると、称えろ。そして、敬え。あなたに、価値を感じてもらえ。



そして、それを一か月繰り返せ。



そうすることで、下地ができる。今後、あなたが記事を書いたよ、とツイートしたら、

みんなが言及してくれる、ブクマしてくれる、リツイートしてくれるようになるだろう。



今まであなたがどんなに頑張って、ライフハック記事を書いても、せいぜい一桁ぐらいしかブクマされなかったのが、

当たり前のように、数十、数百軽くいくようになるだろう。そう、例え今までと同じ記事を書いたとしても、

ブログアクセス数は軽く20倍は行くようになる。「・・の方法」「・・の理由」「・・のまとめ」のような

タイトルを連発しろ。何でもいい。ありがちでもいい。寄せ集めた知識で、「SEXで確実に相手をイカせる方法」なんてのを

書いたら、軽く300はブクマされる。中身はパクれ。そもそも、多くブクマされるような記事にオリジナリティなんていらない。

寄せ集めろ。寄せ集めて上げろ。あ? 効果なさそう? 貧乳でも寄せて上げれば、それなりに見えるだろ!?

あなたも、騙されたことや騙したことの1つや2つあるだろ? 童貞処女は部屋でスルメでも齧ってろ。



ブログは、中身じゃない。そこを認めろ。寄せ集めろ。寄せ集めて上げろ。貧乳巨乳に見せろ!


ピラニア

2011-03-30

NetBeans の City Lights  で、クラス名が黒くなる問題

→少なくとも4年前には解決していない

http://goo.gl/hvY3k

http://netbeans.org/bugzilla/show_bug.cgi?id=114689

 

→Norway today」を改造して、City Lightsに似たオリジナルを作る。

クラスの色は「Norway today」と同じになるが、バックが黒に文字が黒よりは見やすい。

 デフォルトフォント:Monospaced 16

 

  凡例  前景  背景 その他

 

デフォルト 緑 黒

URL 継承 継承 →エフェクト:下線付き エフェクトカラー:青

インターフェース継承

エラー 白 赤

・エンティティー参照 シアン 継承

キーワード オレンジ 継承

クラス (→マゼンタ) 継承

コメント継承

コンストラクタ 継承 継承 →フォント:継承+ボールド-イタリック

・セパレータ 継承

フィールド 9,134,24 継承 →フォント:継承+ボールド-イタリック

マークアップ属性 0,124,0 継承

マークアップ属性継承(黄色?) 継承

マークアップ要素(タグ)オレンジ 継承

メソッド 継承 継承 →フォント:継承+ボールド-イタリック

メソッドパラメータ 160,96,1 継承

・使用されていない要素 グレー 継承

・公開要素 全継承

・列挙 全継承

局所変数継承

抽象クラスまたはメソッド継承

・数値 黄 継承

・文字 黄 継承

文字列継承

・(演算子) ピンク 継承

・空白 全継承

・識別子 全継承

・公開限定要素 全継承

・静的要素 継承 継承 →フォント:継承+ボールド-イタリック

・非公開要素 全継承

・非推奨の要素 継承 継承 →エフェクト:打ち消し線 エフェクトカラー:濃いグレー

http://anond.hatelabo.jp/20110330122305

ここを読めば、PHPPHPコードの実行が遅くて、JavaI/Oが遅い事が分かると思う。

特にJava標準出力に出したときは、内部文字コードシステムコードが異なるので、文字コード変換を毎回行っているはず。

なお、PHPはメソッド・コールが他のスクリプト言語と比較しても遅いPHPコード量が増えると、他のプログラミング言語よりも、速度の低下が激しくなる傾向がある。

利用目的が違うので、JavaPHPの速度比較なんて不毛だが、特性としては以上のような違いがある。

http://anond.hatelabo.jp/20110330114425

JavaPHPメソッド呼び出しの速度比較をすると、1,000倍ぐらいPHPが遅い。

PHPコードは最小化して、ビルトイン関数を有効に使うと、10倍ぐらいの速度差で済む。

2011-03-21

http://anond.hatelabo.jp/20110320223445

ペロペロ

1. htmlのはき出しがあるやつは?>を書いたほうがいいよ。それ以外は最近はかないのがはやりだねさらに昔はevalとかで書いてた

2. configこれはwwwやpublic_html以下にしかconfigを配置できないクソサーバーがあるので、phpにしておいたほうが安全。なぜなら丸見えにしてあれこれパスをさらけ出すバカがいるかもしれないからだ。オープンソースなら特に。

3. コメント挨拶だ。必要以上に挨拶を繰り返す必要もないし、それ以上でも以下でもない。

4. eclipseのせいと、phpとかが出始めたころのコーディング規約がスペースにするように求めた。{を改行してから書くか、続けて書くかのこれは宗教戦争だ。だが正直スペースは気に食わない。LLのくせに何バイトつかってるのだとおもう。あとスペース2文字インデントのやつは旅立て!

5. phpの0と""の違いは緩すぎる。そういう意味ナンバーの取り扱いにだけは気を配るべきだ。あとはtmpでもbufでもretでもなんでもいい。

6. nullはつっこむな、nullで初期化はすんな。初期化されてないからnullなんだ。issetは有効につかえ。とくに$_系の変数

7. 本当はerrorprocをかけといいたいがLLにそこまで望んでもしゃーない。エラーを投げると鯖ログにまで場合によっては落ちたりしてやっかいからfalseを返せばいいというものでもないが、trueで初期化するやつは滅びていいと思う。あとarrayを返すようなfunctionの場合phpのなんだっけisarray?だっけ?がクソすぎて萎え

8. つかダブルクオートのなかに$を書くコードは滅びていい。コンストはすべて大文字でという昔ながらのルールだけ守ってくれればいい

9. 出力系のラップ関数ぐらいつくっておこうぜ。あと、var_dumpとかのほうが見やすい。あと、get_defined_varsとかをラップしておくと便利

10. 三項演算子はつかうな。ifの{}を略すな。可読性がおちるのとしんたっくすで原因の特定がめんどくさい。

11. phpの==ほど信用ならないものはな

12. ++iなんていうコードを書くな。あと、roopの条件文で計算すんな

13. むしろこういうのは文字列の連結以外で使うようなスチュエーションをつくっちゃだめ

14. あら上で言っちゃったよ。ここまでやるんだったらlogファイルに吐き出すところまで拡張しとけば?

15. んー。エラーメッセージを定数化するとき外国版をつくるあてまである時だけだな

16. これも上でいってしまったな。あとリロードされてもいいように初期化クリアしておくといいぞ。

17. ああそうだな、関数が1スクロールに収まらないときは大抵正規化に失敗してる。つくりをみなおせ

18. えー、こんな風に書くのはどうかしている。public二つチェインで呼び出すぐらいなら、内部でprivateを呼び出すか、継承させてparentにしておくべきか、それともシステムとして共通のstaticで呼び出せるかにしてくほうがいいのでは?$this->setThis()でいいじゃないか。なぜpublic functionをそういくつも定義する必要がある? 外部から入り口出口は絞れ

19. グローバルなラッピング関数は最低限にとどめるべきで他は機能ごとにクラスつくってメソッド化しとけ。p(var)じゃねぇよDEBUG::p(var)とかにしとけってことだ

20. 眠くなったからねる。つまりはそんなもんだってことだ。気に病むな。満足してもらえるもんをしっかりつくればいいだけだ

2011-03-20

より良いPHPerにならないための20Tips

http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/

良いPHPerだって?そんなものは丸めゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。

つまり俺たちがしなくちゃならないことは「より良いPHPerにならないため」に何ができるかってことなのさ。

それじゃ、始めよう。

1. ?>を使うな

?>なんて使っちゃいけない。そう俺たちはBAD PHPer。

無駄ホワイトスペースの出力に悩まされるくらいなら対称性なんて丸めゴミ箱にでも捨てた方がまだマシだ。非対称性こそが賛美。

2. 設定ファイルPHPで書くな

require_once("config.php");

未だにこんなことやってるやつがいるのかいベイベー。絶対にダメだ。この一行を見たら俺は悶絶する。

ダメだ、早く何とかしないと。

大抵このconfig.phpの中身はこうなっている。見て絶望だ。

$hoge_path = '';
if (!LOCAL) {
    define('FOO_FLAG', 1);
    if (HONBAN) {
        define('HOGE_FLAG', 1);
    }
    else if (TEST) {
        define('HOGE_FLAG', 2);
    }
}
else {
    $hoge_path = '/local';
    define('FOO_FLAG', 2);
    define('HOGE_FLAG', 3);
}

define('HOGE_URL', $hoge_path.'/hoge/');

こういうのが延々と続くわけだ。もういやだ。もう見たくない。

本番環境テスト環境でどういう値の違いがあるのか、ローカル環境だとどうなるのか、まったく把握できる気がしない。

なまじPHPな設定ファイルのせいで処理をついつい書いてしまう。そしてどんどん複雑になってしまう。

やはり設定データは基本的にYAML等のデータしか定義できない形式のもので用意すべきだ。そして環境ごとに設定ファイルを分けるべきである

そうすることで何にどういう違いがあるのかすぐにわかるし、diffすれば一度にすべて把握することができる。

# 本番環境設定ファイル
foo_flag: 1
hoge_flag: 1
hoge_url: '/hoge/'
# テスト環境設定ファイル
foo_flag: 1
hoge_flag: 2
hoge_url: '/hoge/'
# ローカル環境設定ファイル
foo_flag: 2
hoge_flag: 3
hoge_url: '/local/hoge/'

3. コメントを信用するな

そう、あなたはこんな状況に遭遇したことがあるんじゃ?

// ここで後の処理のためにhogeメソッドを呼び出しておく
$q->foo();

// $a['foo']はここに来る時点で真のはず
// 2010-03-10 判定がおかしいので修正
// 2010-06-21 やっぱり値が入ってる方が正しい
if ( !isset($hoge[0]) ) {
}

コメント保守されない。そう、それは真実。こんなコメント発見したら即効削除しよう。コメントは基本信じるな。

俺たちにちょっとしたヒントと大きな損害を与えてくれる、それがコメントの役割なのだ。

4. タブとうまく付き合うしかない

わかる。いいたいはとてもわかる。俺たちはしばしばインデントにスペースを使うはずだ。一方でIDEのしっかりした言語ではタブも使うことがある。しかし悪いことに、両者を混同しているプログラマも一定数いるのだ。

タブを画面上で認識しにくいエディタが世の中には存在する(何とは言わないが)

そして画面上で認識しにくいことを理由にタブを気にしないプログラマがいる。

この二つの条件が重なると、タブとスペースの交じり合ったインデントが完成する。もうぐちゃぐちゃだ。これは永遠に続く戦いだ。

私たちが勝利を掴むためにできることなどせいぜい、常にスペースしか使わない。タブを見つけたらその都度スペースに変換する。そういった地道な活動が明日へとつながるのだ。

5. 変数名に時間をかけるな

われわれがプログラムをするとき、何に一番時間がかかってるか。実は変数の命名なのである。ここで拘り過ぎて時間をかけ過ぎては何も進まない。

御託はイイからさっさと書け、だ。しかしとはいっても変数名は重要。日頃からどういうときにどんな名前を使うかを決めておくといい。

そして変数名に型はまったく必要ない。型宣言のないPHPにおいて、型の変数名をつけること自体ナンセンスだ。

コンパイラ様に保証されてない状態での

$iNumber = 'aaa';

になんの意味もない。コメントを信じるなでも言ったが、これはプログラマを混乱させるだけの害悪なものだ。

6. 変数初期化場所

変数を使う前に初期化するのは、警告を出さないという意味でも良い癖だ。しかし具体的にどこでやるかが問題だ。

$foo = null;
$foo = $q->foo();

こんな初期化意味はない。よくあるのはやはり、if文で値を振り分けるケースだろう

$foo = null;
if ( $hoge ) {
    $foo = 1;
}
else if ( $bar ) {
    $foo = 2;
}

このとき初期化はとても有効だ。もしnullの初期化を忘れたまま$fooを使うと警告が出るが、ちゃんと初期化してるので出ない。基本中の基本だ。

7. 不正なら常に死ね

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    return $bReturn;
}

(中略)

もし、何かしらの理由で、あなたの書いたif文が間違っていたら?

この書き方をしていれば、間違った値に対して、常にfalseが返る。

私たちが、PHPでsensitiveなデータを取り扱うなら、正しいデータ入力されるまでは、動かないコードを書くべきだ。

trueとfalseの条件がいまいち明確ではないが、本当に動かないコードを書けというのであれば以下のようにすべきだ

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    else if ($i == 1) $bReturn = false;
    else throw new Exception("bad status! $i");
    return $bReturn;
}

中途半端にfalseを返して生存させる必要性はまったくない。今すぐ死ね

8. 連想配列キーアクセスする場合

単なる配列に対して数値をクオートで囲う必要はない。

連想配列キーを指定する場合だけ定数と間違わないようにクオートで囲まなければならない。そして逆に定数を使いたい場合はクオートで囲ってはいけない。

更に後世のプログラマ処理を見たときに、定数が使いたかったのか、文字列が使いたかったのかを明確にした場合はconstantを使うと良い。

// 定数のFOOを使うよということが明確になる
print $a[constant('FOO')];

9. echoよりもprintfを使え

もし、文字列変数の値と一緒に出力するときPHPではコンマの代わりにprintfを使うことが使える。

なぜ?コンマを使うよりも可読性がグッとあがるから

printf( “Hello, my name is %s“, $sName);

以下の代わりに上記のコードを使う。

echoHello, my name is “, $sName;

出力すべき変数が増えれば増えるほど、有効になっていく。とにかく迷ったならば、printfを使え、だ。

10. 三項演算子は一回まで

三項演算子はとても有効だ。しか優先順位に難があるせいで三項演算子ネストしようとすると以下のようなコードになってしま

$n = (($i == 1) ? 2 : (($i == 2) ? 3 :$i));

括弧だらけで読みにくいったらありゃしない。三項演算子を使うなら一回まで。約束守れないやつは丸めゴミ箱にでも捨てちまえ。

11. 真偽値のチェックは生でいけ

if ( $flag ) {
}

仕様をちゃんと把握しているなら真偽値のチェックなどこれで十分。

もし事前にbool型だというのが確定してるのなら「$flag === true」を使えばいい。

12. ++と--の演算子を見極めろ

インクリメント、デクリメント演算子は前に付くか後ろに付くかで意味が変わるので慣れるまでは非常にややこしい

けがからなくなるくらいなら初めから使わないほうが良い。見極められないなら使うな。それがPHPerなのだ。

13. 代入演算子を使え

文句なしだ。これは文句がない。

他にも色々あるので覚えておこう

$a %=  1;
$a &=  1;
$a |=  1;
$a ^=  1;
$a <<= 1;
$a >>= 1;

14. 変数dump関数はより便利に

てっとり早く画面に表示する際にpreはよく使うが、デザインの関係上画面の文字が見えないときがある。

なのでdivを使って以下のようにしとくと便利だろう。

function p($var) {
    echo "<div align='left' style='background-color:white;color:black;'><pre>";
    print_r($var);
    echo "</pre></div>";
}

15. 定数から手を洗え

君らが通常作るアプリケーションなんぞに、定数なんぞ必要ない。いいか、もう一度言う、お前ら程度のもんが、定数使おう何ぞ、おこがましいわ!

大丈夫。なんでもかんでも定数にする必要はない。結局設定ファイルに定数をずらずら作りまくってわけがからなくなってるパターンが多い。

貴様たいなもんに、定数は制御できん。いいか設定ファイルYAML等のデータで持つようにし、その連想配列データ構造を一つ持ってるだけで定数の変わりになる。

このメリットに比べれば、定数だと書き換えられなくて良いという利点などこの歯のカスほどのものだ。そんなものは丸めゴミ箱へ捨ててしまうといい。

認識を改めろ。俺たちはより良いPHPerにならないために努力している。

16. $_GETと$_POSTを生で使うな

できれば何かしら簡単なクラスでもいいのでラップしろ。

class Request {
    private $parameters;
    private $method;
    function __construct () {
        $this->method = $_SERVER['REQUEST_METHOD'];
        if ( strtoupper($this->method) === 'POST' ) {
            $this->parameters = $_POST;
        }
        else {
            $this->parameters = $_GET;
        }
    }
    function param ($key) {
        return isset($this->parameters[$key]) ? $this->parameters[$key] : null;
    }
}

これだけでもいい。たったこれだけでもとても便利だ。ここから拡張してGETやPOSTを明示的に取るメソッドとかも作ってみるといい。自分の手を動かすのだ!

17. 関数だのオブジェクトだのの問題ではな

例が良くない。こんなのは引数20個ある関数からset20回呼ぶオブジェクトに変わっただけではないか

そもそもこの20個の引数はなんなのか。何かのデータ構造なんであれば連想配列にして引数一つとして渡すべきだし、それぞれまったく異なる用途の変数なのであればWindowsプログラミングじゃあるまいし20個も引数取る時点設計が間違えている。

何がいいたいか。別に関数でもオブジェクトでもどっちでもいいということだ。

そんなことで悩んでる暇があったら設計を見直せ。

18. メソッドチェインを愛用せよ

スキあらば自分自身を返せ。スキあらばオブジェクトを返せ。配列はArrayObjectのARRAY_AS_PROPSで返せ。

ひたすらメソッドチェイン。来る日も来る日もメソッドチェイン。とにかくメソッドチェインを使い続けろ。そこに未来はある。

19. コードの汎用化は慎重に

どんなコードも繰り返すな。もし、少しでも同じコードを書いていたなら、それは関数に置き換えてしまえ。

・・・と、いうのはやめなさい。

一見同じように見えた処理でも前後の流れでまったく違うものということが往々にしてある。

まとめ方にも問題があるケースもある。何でもかんでも関数化すると、関数が膨大に増えていく。君は見たことがあるだろうか。common.phpやfunction.phpの恐ろしさを。

かに細かく関数化はされているが、適切に関数化していないのである。結合度が非常に高い。なんでもかんでも盲目的にまとめれば良いという話ではないのだ!

20. 結合度は適切に減らし、適切に結合せよ

あまりに極度に意識しすぎると、プログラムそのものができなくなる。そういう状態に陥る。

気を抜いて。そう気を抜いて。所詮あなたコードなんてすぐに消えてなくなるよ。きっともっと偉い人が作り直すよ。だからまずは思うが侭にやるといい。

結合度を減らすというのは非常に難しい何度何度も失敗し続けて、ようやくここは分けた方が良かったんだなと気付く。次に活かそうと心に決める。そしてまた同じ過ちを繰り返していくわけだ。

まずは実装することだ。これが一番の早道だ。まずはがっつり結合した関数をあえて作るといい。何も考えずに作ろう。

そしてその後に、一部分使いましたいとおもうことがあるはずだ。その時に関数に切り出そう。それを繰り返すといい。そのうち初めから分けた方が良いと気付く。

何事も経験が必要である経験を積まないプログラマ丸めゴミ箱に捨ててしまえ。

さて、先の例で言うならば、私ならadd_result_outputという関数を作ってしまうだろう。だってaddとresultを連続して呼ぶのはめんどくさいんだもん。一連の流れをいつも使うのなら、その流れをやってくれる関数を作ればいいじゃないか

function add_result_output ($iVar, $iVar2) {
    $r = add($iVar, $iVar2);
    echo result($r);
}

もっと言えばクラス化してしまってもいいかもしれない。どんな感じになるかは君の手を動かして確認しよう!

最後

このTipsはとてもわかりにくく、ニッチ過ぎる部分も多いかもしれない。

しかしもう一度タイトルを確認してほしい

あくまでも「より良いPHPerにならないための20Tips」なのだ。

君はこの記事を鵜呑みにしてはならない。PHPPHPと見抜けないPHPerはPHPを使うのは難しい

おまけ

もし、あなたPHPプログラマなら、公式のPHPドキュメントあなたのケツの穴を拭くための紙になるだろう。

私は、それぞれのセクションを眺めて、各関数でどんなことが出来るかなんぞ、歯クソのゴミ程に役に立たないとおもっている。動けばいい。はは。

あなたは、PHPで用意された既製関数で多くのことが実現できることに、(俺の仕事を減らすなと)驚くはずだ。

この記事があなたの役に立たない事を。

どんなコメントでも待ってます

ふざけんな!

個人的な感想

この記事に書かれている内容は、丸めゴミ箱に捨てた方が良いレベルです

もしここまで読んでしまったら、丸めゴミ箱に捨てましょう。

プログラ増田のあなぐら

2011-03-19

ドラゴンボールで学ぶオブジェクト指向Z

これは http://anond.hatelabo.jp/20110316202255 の続編です

GTをやる前に改を書いてくれている人がいてとてもしっかりした内容なのでちゃんと勉強したい人はそっちを見てね!

d:id:ryoasai:20110317 - ドラゴンボールで学ぶオブジェクト指向 改 | 達人プログラマーを目指して

またオブジェクト指向については

d:id:m-hiyama:20080109 いまさらながらだけど、オブジェクトクラスの関係を究めてみようよ | 檜山正幸のキマイラ飼育

がとても詳しいです。合わせて読むとかなりしっかりと理解出来ると思います。

変な書籍を買うよりこちらがオススメです

はじめに(いいわけ

ホットエントリに行くとは思っておらず、皆様ありがとうございます

ドラゴンボールオブジェクト指向にする」というコンセプトではなく、「オブジェクト指向を(無理矢理)ドラゴンボールで説明する」という遊びだったので

プログラマーの方々にはツッコミを受けてしまいましたがここは遊びだと思って楽しんで下さい…。

ドラゴンボールは小さい頃から大好きでしたが流石にうるおぼえ過ぎました

専門家の方々からも厳しいツッコミを受けました

それはさておき「説明する題材を決める→好きな漫画から無理矢理当てはまりそうな例を考える」という思考実験なので、気が向いた方は色々考えてみると楽しいと思います。僕は楽しかったです

ジョジョの奇妙な冒険で学ぶオブジェクト指向

 スタンドとか波紋法とか色々面白そうです

ジャニーズで学ぶオブジェクト指向

 これは難易度が高そうです

BLで学ぶオブジェクト指向

 継承誘い受け、移譲=ヘタレ攻めだと思います。

結論

やっぱりドラゴンボールで例えると分かりやすいな!

無理がある!


ドラゴンボールで学ぶオブエジェクト思考Z ドラゴンボールで学ぶデザインパターン

デザインパターンとはドクターゲロが考えた「こうやって設計すれば色々捗るぞ」という例のことです。実際はGoFという人たちが考えたもので23個のよくあるパターン名前を付けて整理してくれたわけですね。

23個の中にはブルマさんですらわからいものが多いので(さすがドクターゲロですね)良く使う、代表的な物をいくつか紹介しま

Singletonパターン

Singleton世界に一つだけしか存在出来ないようにする方法です

balls = new DragonBalls(); //これでは誰でもドラゴンボールを作れてしまう!
balls.callShenron();

クラスの中にはいくつかのメソッドがありますが、簡単に言うと外から呼べるもの、外からでは呼べないもの

二種類があります。そうやってメソッド保護することで世界崩壊を防ぐわけですね。

基本的な戦闘力をアップさせるには本人の努力が必要になり、外から簡単に挙げられてしまうとジャンプ三本柱が外れてしまいます。

(某漫画などは努力しなくともあがったりしますが)

ただナメック星の最長老界王神などはかなり偉いので、本人の才能を引き出すことが可能した

現実には思いつきのような仕様を後から言われることが多々あります。困ります

//地球上にひとつだけ存在するドラゴンボールをつくろう
class DragonBalls{
	private DragonBalls(){
	      //ドラゴンボールを作れないように生成メソッド保護します。
	}
	static function sagasouze(){
		static singleton_dragonball;
		//ドラゴンボールを生成。
		//DragonBallsクラスの中なので、保護してある「new DragonBalls()」を呼べます。
		if(!singleton_dragonball)singleton_dragonball = new DragonBalls();
		return singleton_dragonball;
	}
}

これで界王神から怒られることもありませんね。

プログラマーは神なのでドラゴンボールを作れます


Proxyパターン

何かの処理を行うためにProxy、代理人を立てる設計です

地球のみんなは地球しか話せませんが、ナメック星にいるクリリンを通して願いを叶える必要があります

クリリンももちろん地球しか話せませんが、ナメック語を話せるデンデがいるため、地球のみんなは願いを叶えることが出来ます

class Kuririn{
     private dende = new Dende();
     
     function request( wish1, wish2, wisth3){
		this.dende.request(wish1);
		this.dende.request(wish2);
		this.dende.request(wish3);
     }
}

kuririn.request(
	"ピッコロを生き返らせてくれ",
	"ピッコロナメック星へとワープさせてくれ",
	"ナメック星にいる孫悟空フリーザ以外を全員地球へとワープさせる"
);

この場合メリットはデンデが何をやっているかクリリンプログラミングした人が知る必要が無いということです

デンデを通して願いと伝える実装だけ行えば大丈夫です

地球の人はナメック星にいるナメック星人が「デンデ」であることを知る必要もありません。

それでも願いは叶うんです

本来であればデンデやクリリンは願いが叶うのを待つ必要がありましたが、地球の人は一気に伝えることが可能なように設計しました

それでないと不便ですからね。

//デンデクラスナメック星人英語でNamekianらしいですclass Dende extends Namekian{
	function translate(word){
		namekian = *****//ナメック語に翻訳します。
		return namekian;
	}
	function request(wish){
		static polunga;
		if(!polunga){
			polunga = DragonBalls.spell("タッカラプト ポッポルンガ プリピット パロ");
		}
		polunga.ask(this.trasnlate(wish));
	}
}




Template Method

大まかなアルゴリズムだけ決めておいて、実装はサブクラスに任せる設計がTemplate Methodです

ナメック星に行く方法を考えた時いくつかの方法がありました。古い宇宙船を探してきて直して載せて…っていちいち書くより同じメソッドナメック星に行けたほうが便利ですね。

abstract class WayToNamek{
	abstract function prepareSpaceShip();
	abstract function launchSpaceShip( ship ) ; 
	function gotoSU839045YX( people ){
		ship = prepareSpaceShip( );			//船を修理しまship.load(people);					//人を載せます
		this.launchSpaceShip(ship);	//船を出発します。
	}
}

ナメック星に行く方法を定義したので「ブルマクリリン悟飯」組と「悟空」をそれぞれナメック星に連れて行きましょう。

way = new WayWithKamisamaShip();
way.gotoSU839045YX( buruma, kuririn, gohan );

way = new WayWithSaiyajinShip();
way.gotoSU839045YX( goku );

と簡単に方位SU83、距離9045YXまで乗員を連れて行くことが出来ます

つの方法を実装します。神様の船を修理して行く方法と、サイヤ人の船(悟空が乗ってきた船)で行く方法の二つです

//神様の船で行きますclass WayWithKamisamaShip extends WayToNamek{
 	function prepareSpaceShip(){
 		return new KamisamaShip(); //船を準備します。神様の船を使います。
 	}
 	function launchSpaceShip(ship){
 		ship.inputByVoice("ナメック星に出発");	//
 	}
 }
 class WayWithSaiyajinShip extends WayToNamek{
 	function prepareSpaceShip(){
 		return new SaiyajinShip();      //船を準備します。サイヤ人の船(フリーザの船?)を使います。
 	}
 	function launchSpaceShip(ship){
		//audio = new HighSpecAudio();
 		//ship.setAudio(audio);
 		ship.turnOnCenterButton();	//真ん中のボタンを押すだけ
 	}
 }

元になる船も違いますし、発射の仕方も違いますが同じ呼び出し方が出来ます

オーディオの位置が決まりませんでしたが、今回の運用では不要とのクライアントからのご意見したのでだったので

せっかく用意したオーディオ無駄になりましたが、コメントアウトしてあります


他のパターン

他にもまだまだあります。のんびり紹介していこうと思います。

ではでは。

2011-03-16

ドラゴンボールで学ぶオブジェクト指向ツッコミ

http://anond.hatelabo.jp/20110316202255

亀仙流やつ鶴仙流など、世の中にはいくつかの流派があり、それぞれ
カメハメ波やドドン波、舞空術などの技(メソッド)がある。
実際に技を使う場合、技を覚えているZ戦士(インスタンス)が必要。

クラス = 流派

メソッド = 技

インスタンス = Z 戦士

というのはおもしろいと思うし, 例えばゲームを作るなら実際にそういう実装になると思う.

例)セルを作りましょう。
class Cell extends Goku,Veget,Picoro,Tenshinhan,Kuririn{
....
}
cell_inst = new Cell();
cell_inst.shotKienzan(); //Kuririnをextendsしているので気円斬が使えます

しかし, ここではクラス = Z 戦士になってしまっているので, 混乱を招くだろう.

むしろ, 「JavaScript における prototype」 に絞って説明するのはどうだろう.

(ついでに「撃つ」の現在形は shot でなく shoot ですね)

var Goku = function () {};
Goku.prototype.shootKamehameha = function () {
  console.log("波!!!");
};

var goku = new Goku;
goku.shootKamehameha(); // 波!!!

var Gohan = function () {};
Gohan.prototype = new Goku;

var gohan = new Gohan;
gohan.shootKamehameha(); // 波!!!

そしてセルによる吸収は, 動的な継承として考えるのがより自然だろう.

var Goku = function () {};
Goku.prototype.shootKamehameha = function () {
  console.log("波!!!");
};

var Vegeta = function () {};
Vegeta.prototype.shootBigBangAttack = function () {
  console.log("ビッグバンアタック!!!");
};

var Cell = function () {};
// 吸収メソッド
Cell.prototype.absorb = function (target) {
  for (var method in target) {
    this[method] = target[method];
  }
};

var goku   = new Goku;
var vegeta = new Vegeta;

var cell = new Cell;
cell.absorb(goku);   // 悟空を吸収
cell.absorb(vegeta); // ベジータを吸収

cell.shootKamehameha();    // 波!!!
cell.shootBigBangAttack(); // ビッッグバンアタック!!!

そして次にクロージャの使用例として挙げられた次の例.

例)連続エネルギー波
var shotRenzokuEnergy = function( count ){
	var shotEnergy = function(){
		//エネルギー波を放ちます
	};
	for(var i=0;i&lt;count;i++){
		shotEnergy();
	}
};

この実装では, shotRenzokuEnergy を実行するたびに shotEnergy が毎回定義されてしまい, 非効率である.

以下のように書き換えることで, shootEnergy の定義は, shootRenzokuEnergy の定義時の 1 回のみとなる.

var shootRenzokuEnergy = (function () {
  var shootEnergy = function () {
    console.log("エネルギー波!!!");
  };

  return function (count) {
    for (var i = 0; i &lt; count; i++) {
      shootEnergy();
    }
  };
})();

shootRenzokuEnergy(10); // エネルギー波!!! x 10

ドラゴンボールで学ぶオブジェクト指向

オブジェクト指向の基本

亀仙流やつ鶴仙流など、世の中にはいくつかの流派(=クラス)があり、それぞれの流派にかめはめ波どどん波舞空術などの技(メソッド)がいくつかあります

実際に流派にある技を使う場合、技を覚えているZ戦士(インスタンス)が必要になります

例)亀仙流を覚えた孫悟空を使ってかめはめ波を放って敵を倒す
goku = new KamesenRyu("goku");
goku.shootKamehameha(teki);

Z戦士によっては複数の流派の技が使えたり、自分の技を人に教えることが出来ます継承)。

また悟空クリリンのように同じ流派でも同じ技で違う性能を持っていたり、オリジナルの技を持っているなどの違いがあります

クラスセルを作るためのZ戦士達の遺伝子情報と言っても良いかもしれません。

例)セルを作りましょう。
class Cell extends Goku,Veget,Picoro,Tenshinhan,Kuririn{
....
}
cell_inst = new Cell();
cell_inst.shootKienzan(); //Kuririnをextendsしているので気円斬が使えます


世界の成り立ち

世界プログラミング言語)によってはただの人を後付でZ戦士にすることが可能です

(JavaScriptRubyなど)

noumin = new Hito(); 
noumin.kougekiKuwa = function(){
	//戦闘力たったの5…ゴミめ!
};

noumin.shootKamehameha = function(){
	//な、なんだと!?
};

農民がいきなりかめはめ波うつようになったら危険ですね、危ないです。

このように後付でメソッドを追加出来るタイプ危険性を含んでいます。

クラスインスタンス

http://anond.hatelabo.jp/20110316204446

インスタンスなのかクラスなのかはっきりしろよ・・・

セルを作るならZ戦士(インスタンス)を継承しなきゃならんぞ

とても良いつっこみが来たので追記します。

前半部分ではZ戦士をインスタンスしましたが、セルを作るにはZ戦士がインスタンスでは出来ないので

なのでZ戦士それぞれをクラスという形に再定義しました

何をインスタンスにして、何をクラスにするかが「設計」なんですね。

何がインスタンスで何がクラスか、加えて説明します。

セルの第一段階ではGokuなどのZ戦士の遺伝子があれば作ることが出来ました

cell_inst = new Cell(); //このセルは第一段階

でも第二段階以降は人造人間17号、18号が必要でしたね。

cell_inst.absorb(17gou); //第二段階に変身
cell_inst.call18gou();
cell_inst.absorb(18gou); //最終段階に変身

class Cell ....{
   function call18gou(){
        if(!this.17gou)return error(); //17号を吸収していないと失敗する
        this.17gou.speak("****略*****ドクターゲロ様****略****");
   }
}

この場合、17号と18号はそれぞれインスタンスです

17gouを吸収したので、17号の声で18号を呼ぶことが出来るようになりました

でもドクターゲロ「様」って言ったのでセルだってバレバレですね。

かいセリフは忘れたのでどなたか資料を下さい…。

追記

コメントへのレスを追加。

http://anond.hatelabo.jp/20110316224648

追記2

クロージャについてちゃんと書こうと思って挫折。どなたか良いアイディアを下さい。

変数スコープ解説する必要があるかなと思ったんですオブジェクト指向からは外れるような気がします。

エネルギー波→連続エネルギー波がどこかに使えそうな気がしましたが、気のせいだったぜ…

追記3

続編書きましたhttp://anond.hatelabo.jp/20110319020332

2011-03-08

http://anond.hatelabo.jp/20110308162450

でもはてブで偉そうなコメント書いてるやつって自分のこと賢いって思ってるんだろーな。本当はバカ丸出しなんだけどさ。

最強メソッド

2011-03-03

仕事プログラム書き始めてもうすぐ10年になるけど

結局プログラムなんて手数勝負なんだとつくづく思う。

コード量が増えれば増えるほど品質が落ちる。

逆説的な話だがプログラムを書くときは「書かないでます」のが仕事なのだ。

ぶっちゃけ「よっしゃガンガン書くぞ」ではな

「なんで書かなきゃいけねーんだよめんどくせーなー」

と思っていた方がうまく行く。

実際、書いたら書いた分だけずっと自分一人で面倒見るとかうざいし

からコードが少なくなるのは無条件に嬉しいことだ。


なので、同じことは2度と書かないように心血を注ぐ。

なんの処理をやっているか一目で分かるよう、

関数とかメソッドとかプロシージャとかはコンパクトに纏める。

そのためには作っては壊しを何度も繰り返したりする。

そして気がつけば、いっぱい書いてしまった部分が、

書き直すことで消えて無くなってしまうことが喜びになるのだ。

結局、なんも考えずやたらめったらコードを書くのと同じくらいの工期になったりするが、

後腐れは無いので楽だ。


更に言えば、あらゆる言語も、開発手法も、ミドルウェアも、ツールも、ライブラリも、フレームワークも、

詰まるところ可能な限り書かないでますためにあるのであって、

それを意識していればミスチョイスはかなり減ると思う。

というか自分に限って言えば、自分末永く楽できるかどうかだけで選んでいる。

一度でも横着することに味を占めると、誰でもそうなるはず。


自分はこれからも、短気で怠け者なプログラミング人生を送ろうと思う。

というか怠けられるのなら、人生の半分くらいはプログラミングだって構わない。

もはや怠けるのが好きなのかプログラム書くのが好きなのか分からなくなっているが、

どっちでもいいや。

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