2012年6月24日日曜日

創業20年とやらの「ファーストサーバ」オペミスでデータ消失。だそうな



小生は使ってないので知りませんでしたが、
創業20年を謳う日本国内レンタルサーバ業者「ファーストサーバ」、オペレーションミス(正しくは、管理プログラムのバグ)で、顧客サーバの中身のデータを消失したらしい。しかも、4日経った今日でも未だに復帰はできてないですね。

http://www.fsv.jp/
http://www.itmedia.co.jp/news/articles/1206/24/news004.html

4年前からクラウド推しの小生は、日本国内の「クラウド食わず嫌い」にはかなり気を揉みました。Amazone EC2をはじめとするクラウド(ホスティング)は、稼働時間保証が甘かったりします。無人監視ですし。これを日本人は「怖い」と思うらしい。まあ無理もありませんが。しかし「安全」「怖い」の尺度が本質的に間違ってたことを、図らずもファーストサーバが証明したようなものです。

有人監視だから「間違えない」わけではない。むしろ間違えます。間違えた上でのリカバーのコストも含めて、有人監視であるわけです。「サービスのためのサービス」を提供しようとする日本人の気質は、本質的には悪くはないと思いますが、管理プログラム類の成熟度はなかなかあがらないと思うのです。作業者も仕事で使うだけですから、使い勝手とか考えない。と言うわけではないでしょうが。

「管理プログラム」は、海外の業者では、概ねオープンソース或いは自作でしょう。料亭で言えば、賄い料理を出しているようなものです。

肝は、自身がヘヴィーユーザであるか否かというところ。

オープンソースやらフリーソフトやらの成熟度の尋常でなさは、ご存知の人は多い筈。

何某かの管理プログラムがオープンソースである可能性は高いですが、商用プログラムと比べて、安全なわけでも、危険なわけでもありません。オープンソースであれば、自分で責任をとらなければならない。「作る手間が減っただけ」で「メンテナンスする手間」は寧ろ増えるのです。これが商用プログラムだったら?「文句を言う相手が外部に居る」それだけです。

2012年6月23日土曜日

動的言語で、生産性が上がる、ってどういうことだろう

久しぶりに読んでみたらおもしろかったので
http://logsoku.com/thread/hibari.2ch.net/tech/1308499587/
また考えてみます。

まず「動的言語」ってなんなの?という定義が必要だと思われます。
この系列の初回のスレッドでは、

http://logsoku.com/thread/hibari.2ch.net/tech/1306002146/

1 : デフォルトの名無しさん : 2011/05/22(日) 03:22:26.61
型をしっかり明記してこそ
安全で堅牢、バグのないソフトは作れる
と言ってるので、まずは「動的型付け言語」だと解釈するべきだと思うのだがどうか?小生もこの点では激しく同意します。一番困るのは、関数の引数の順序間違いとか入れ違い。

悪名高きPHP5でも、引数型のタイプヒンティングが付きました。ただしこれ、arrayもしくはクラス/インターフェイスに限ります。stringとかintとかboolとかは書けないわけです、片手落ちとはこのことかと。PHPでこれを使うなら、クラス名を直接書くより、interfaceをわざわざ宣言して、わざわざ指定するべきでしょう。こうすれば、PHPでも、「コンパイル時チェック」の恩恵を若干受けることができます。

ただし、C++育ちの人は、引数を沢山渡したがる気がするのだがどうだろう?4つ以上なんか、もう管理しきれませんよ。3つ以下に減らしましょうよ。protectedに仮置きするなりして。

「コンパイラ時チェック」には、もちろん関数名のタイプミス程度のダサイミスも含みます。だだしコレを理由にPHPをdisってる人は、統合エディタを使ってなかったりする。んじゃないかと思うのだがどうだろう?使用言語に限らず、統合エディタが手伝ってくれるものは素直に手伝ってもらいましょう。変数名だの勘数名だの補完。2画面開いてコピペとか、地道過ぎだし、JavaだったらEclipseを、Visual C++だったらVisual Studioを使ってるでしょう?その時点で、実は公平な比較をしてない。

で、ボチボチ「動的言語」の定義を「evalできる言語」にシフトしたいのですが。言い換えると、ランタイムコンパイル言語。

リファクタリング論まで含めると、Java+Eclipseが素晴らしい!なんて話に成りがちですが、その作業のほとんどをEclipseが肩代わりしてくれてることを忘れちゃいけません。Javaが素晴らしいわけではない。Eclipseが素晴らしいのです。つまりJava+Eclipseでようやく実用になる。生エディタでなんとなく仕事ができてしまう「動的言語」とは勝負になりません。※Javaが負けだと言っています。

動的言語のいいところは、コンパイル操作が要らないところ。もちろん最近は「スクリプト言語」でも内部ではバイトコンパイルしてますが、そんなミクロな話はしてません。「makeが要らない」と言い換えてもいい。これによって、「試行錯誤」を高回転で実施できるところです。

PHPのバグの殆どが「実行しないと判らない」のは全面的に認めるとして、しかし「デバッグができない/面倒臭い/困難」なわけではありません。JavaとかC++育ちの方々は、ステップトレースしたいところでしょうが、そんなミクロなデバッグは要りません。アチコチにvar_dumpを入れまくってアタリを付ける感じは嫌いじゃないですね。そして初級プログラマほどソレを勧めたい。
  • プログラムのバグってのは、1行単位で起こるわけではありません。
  • ある程度のプログラム量を経由して起こるものです。
そんなわけで、小生の見解として、
  • 動的言語で、コーディング時点でバグを検出しにくいのは仕方ない。諦めれ。
  • デバッグは、var_dumpなり、error_log( json_encode() )なりを入れまくれ。
    • 組み込み関数がダサイPHPは、自家製関数でwrapしてやればよかろう。
  • 関数の引数が4個以上とかは、引数クラス型チェックに頼るより、設計を見直す方が先。
  • PHPでは、interfaceを上手く使えば、ダサイタイプミスは減らせる。と思う。やらずに済んでるので。
  • JavaとPHPの生産性は、実は大して変わらない。
      • これは「PHPはJavaの劣化コピーだ」と思ってる人に言ってます。
      • 嘘だとおもったら、Eclipse禁止でJavaで仕事をしてみればいい。
      • ちなみに小生は、どっちも「生産性が高い」とは思ってません。
  • 本当はPythonで仕事したい。
  • 「プログラミングとは、言語を拡張することだ」と何某かの言語の開発者の誰かさんが言ってましたが、この観点からいうと、言語はシンプルな程優れてる、ということになる。tcl最強じゃね?(lispとか知りません)
  • 静的型付けマンセーだと思ってる方々には、Pike( http://ja.wikipedia.org/wiki/Pike ) とかイイと思いますよ。
要するに、「動的言語を使う」なら「動的言語なりの手抜き」をしないと、効率なんか上らんぞ。と。

2012年6月20日水曜日

AKIBA'S TRIP PLUS

AKIBA'S TRIPの続編というかリニューアル版、PLUS。買ってきました。
初回特典付きを買う(不可抗力だったが)のはおそらく始めてです。

(初回特典付きってぐらいだから)UMD版を買いました。ローディングはかなり短くなってますね。UMDのままでも6秒ぐらい??MEDIA INSTALLすると2秒ぐらいまで。

UMD PassportでVitaでも遊ぶ気満々だったのですが、非対応。新作だから?? しかたなくPSPで遊ぶことに。

本編のウリの一つ、モデリングのリファイン。売店のオネーサンが妙に美人に。



洋服屋再建の場所が変わってます。秋葉原駅のすぐ横。元あった場所にはゲームセンターが入ってます。



イベントシーンの構図も色々変わってます。台詞をしゃべってる時(主人公以外は概ねフルボイス)は、本人のアップになります。口パクもしてます。ああそうか、コレを見せたいのか。


とりあえず無印のデータを引き継いでみたので、いきなり「服半透明」が解禁です。だけじゃなくて、スタート直後に幾つかアイテム類を貰えます。結構な量(「幾つか」どころじゃなくて10以上)でしたが、記録を取ってなかったので内訳は判りません。

DLCのITウィッチコスプレイヤーのアバターを使用。





屋上の看板が変わったような??



イベントのほとんどは依然として健在です。





聡子さんの横顔は意外と美人。



新機能(?)目録。アレ技一覧はもともとあったよな。衣装一覧が増えたのかな。



コスプレイヤーモデルは常に笑顔を絶やしません。イベントシーンが意外と微妙な感じに。





おっとイケネエ。妹チェンジしちゃってるので、新妹モデルを拝めませんでした。


妹は、1回3000円でポーズ取ってくれます。カメラ見回すのは相変わらずの90度単位。



自警団の面々もオトコマエ(?)になっています。



新サブミッション「ミドリな大量発生」。着ぐるみ軍団30人を倒すというものです。基本的に強い装備ではないので、雑魚ですが、迂闊にローアングラー2と同時受注すると、同時発生します。

何が困るって、ミドリはいきなり戦闘を始める上に彼らはカゲヤシ。そうです、警護対象の筈のゴスロリ3人が戦闘参加してきます。しかも戦闘が始まると、ローアングラーが野次馬撮影モードに入るので、会話が成立しません。要するにローアングラー討伐は不可能に。

最初はどうしてくれようかと思いましたが、ミドリ15人倒すとミドリが復活しなくなりました。30人の筈なのに? バグってるのか救済処置なのか、とにかくローアングラー討伐して、公園に入り直して、ミドリのやりなおし。これが増えたお陰か、カゲヤシ100人炭化はかなり早期に達成できます。何がイイって、飴渡さんに「NIROマニュアル」が貰える。




2012年6月17日日曜日

今更、NHKを解約してみようとしてみた

今更、NHKを解約してみようとしてみました。

アナログテレビしかないどころか、それもアナログ期間中に処分しちゃってたので、その時点で解約の権利はあったんですが。東海沖地震で色々有耶無耶に。仕事もグチャグチャだったしね。

故に、受信料は踏み倒す気満々だったが、銀行引き落としが機能しちゃってたらしい。だからこそ今回↓の窓口応対がスムーズだった、って事もあるでしょう。まあいいか。

http://pid.nhk.or.jp/jushinryo/digital.html
これに書いてある電話番号に電話して、3分程まつ。
そりゃ、通算15万人が解約するって言うんなら、小生の順番もかなり後ろの方でしょうよ。

デジタル放送が受信できないかについては、何項目か質問がある。結構しつこい。まあオネーサンもマニュアルに従ってるだけだろうから、付き合いましょう。

  • 「ワンセグ対応の携帯電話はお持ちでしょうか」とか
  • 「ケーブルテレビ等のご加入はありませんでしょうか?」とか

今までは電波ありきなので、個々の契約者の受信方法の記録がない、って事なのでしょう。しかし、「録音してる」って話なので、ここでうかつな事を言うと、何か記録される可能性があります。まあだからって不利になるようなネタは今更言わないが。

ただし、携帯からのせいか、音質はあまり良くなかったので、聞き取りにくい時は素直に聞き返しました。「録音してる」ってのに、生返事するわけにいきません。

ワンセグ対応携帯は、本当に持ってませんよ。って言うか、そのために、ワンセグの付いてない携帯を選んで買ってますから。HTC-03a, HTC-EVO, iPhone3GS 。付いてないでしょ。国内メーカーはNHKとグルですからね。 ※はっ、iPhoneが売れてるのってそういう背景もあったりして

今後数ヶ月分、引き落としが継続するが、昨年アナログ停派まで遡って、まとめて返金するらしい。その時に引き落とし口座を(店名→支店名までは)確認しましたが。確かにその口座には残金が結構あります。割と最近足したし。

普通郵便で書類を送るから、その書類を返送してね。別の紙は駄目。って話は聞いたけど、誰かさんが確認のために見にきます。って話は、そのオネーサンは言及しませんでしたね。どうなったのだろう。どっちでもいいが。確かにつながってないし、テレビも本当にないしね。

ちなみに解約したとしてNHKと完全に切れてるかというと、切れてません。別の住所で受信料は依然払ってるので。

2012年6月16日土曜日

mercurial requirements dotencode

mercurial 1.9で作ったリポジトリは、mercurial 1.4で読めないらしい。
具体的には、こんな感じで怒られます。

中止: 必須機能 'dotencode' はサポートされていません

もしくは

abort: requirement 'dotencode' not supported!

linuxmintの常用ノートから、ubuntu10のファイルサーバにリポジトリをcloneして、いざそのリポジトリをhgwebdirから閲覧しようとすると、前述のエラーに悩まされるわけです。

小生も泡食って色々調べてしまいましたが、リポジトリが壊れてるわけではありません。
コイツは、「「リポジトリバージョン」の違い」とでも言うべき現象です。

既に出来上がってるリポジトリがどうなってるかは、.hg/requires を見れば判ります。dotencodeを使ってるリポジトリでは、当然最後の行に dotencode が書いてある筈です。ただし、このファイルのdotencodeの行を削除すれば良いかというと、残念ながら違います。リポジトリを正しく読めなくなるっぽいので、後述の再構築をする方が安善でしょう。

http://mercurial.selenic.com/wiki/RequiresFile#Known_requirements
問題のdotencodeは、1.7から増えた機能。MacOS系及びWindows系のファイルシステム対応らしい。故に1.4では読めない。というわけです。しかし流石はmercurial、リポジトリの変換機能(厳密には再構築)は存在します。もちろん1.7以上で実施する必要があります。
hg --config format.dotencode=0 clone --pull 旧リポジトリ 新リポジトリ
幾つか作っちゃったぜ。って人は、仕方がないので一括変換しましょう。

https://raw.github.com/gist/3065657/9c97d72f59e555dd73e9c1af4a6e5f386b0d04d1/oldformat.sh

古いリポジトリも依然として使えますし、1.7以上であればpush/pullできます。
もし、「オレサマはWindowsもMacOSも使わねえぜ」って人であれば、最初からこの機能はoffれます。流石はmercurial。

.hgrcにこんなのを書くらしい。
[format]
dotencode = False
念のため強調しておくと、この設定が効くのはリポジトリの新規作成(init/clone)の時だけです。の筈。前述の変換コマンドラインは、この設定を上書きしつつ処置するわけですね。

更に、このケースが問題になるのは、ローカルmercrialがリモートリポジトリを、直接参照する時だけです。hgwebdir.cgi等を使ってる場合はこれに当てはまりません。リモートのmercurialがリモートのリポジトリを操作しますから。

2012年6月14日木曜日

「一過性黒内障」

小生は肥満であり、脂肪肝であり、高血圧である。実感が伴わなければなかなか痩せようとは思うまい。ところが、自身の健康状態を真剣に考えざるをえない事が起こった。ネタは題名のとおりではある。

先週末日曜日、昼間、PSPでゲームをやっていたところ、いきなり視界の一部がボヤケる。確認してみると、右目の視野の左上3割程度が、灰色の幕が掛かったようで、何も見えない。最初は網膜剥離かと思って、仰向けにしばらく横になると、回復して完全に見えるようになった。

仮に網膜剥離だとして、寝て入れば治るものなのか?※ぼやけたのは、視力の弱い左目だけで見てるため。

近所の眼科を検索してみると、「日帰り緑内障治療」「網膜剥離治療」とか頼もしいフレーズが並んでいる。

火曜日朝、眼科医を尋ねて症状を言う。何か決めかねてる模様。結局、様々な検査で、2時間程度、保険本人負担分で4000円も掛かってしまった。

  • 「目の形」を調べる
  • 眼圧
  • 矯正視力検査
  • 視野検査
  • 眼底検査
結論からいうと、現在の目玉の状態は極めて良好。しかし、小生の証言の症状から鑑みると、「一過性黒内障」の疑いがあるという。網膜の血管が詰まって、網膜の働きが弱くなるのだが、詰まるのにも色々理由がある。

ヤバメなのは血栓で、さもなければ脳にいって脳梗塞を起こす可能性があるという。更に、眼球の動脈が静脈を圧迫して、血流が悪くなってる可能性がある。動脈硬化の気があるという話であった。目で済んで良かったのか悪かったのか?ちなみに、黒内障が発症すると、血流が滞ってる部位が、眼底撮影で白く映るという。小生のはちゃんとオレンジ色ではあった。

脳梗塞に、失明の危険、ヤバメの話が二つも出てきてしまった。おまけに動脈硬化ときた。
網膜の血管の詰まる位置次第で、見えなくなる範囲はいかようにも変化する。中心部近くで起これば、ほとんど全滅だ。緑内障、白内障、黒内障、シリーズのようにも見えるが、「見えなくなる」からこその「「黒」内障」であるというわけだ。

一瞬で視力を失う経験には、小生もさすがに戦々恐々とせざるを得ない。まずは食事から考えてみる。玉ねぎがいい、と例のネイルサロンの技師に聞いたので、毎晩食べてはいる。これだけで改善はするまいが。

2012年6月13日水曜日

「こちらになります」

「こちらになります」が耳に付き始めてだいぶ経ちますが、

http://netafull.net/neta2007/020251.html

早4年ですか。そうですか。

「中間的な丁寧さ」というニュアンスは判らんでもありませんが、どうして「語尾を丁寧にする」というアプローチしかないのでしょうか。正直、頭悪いと思う。「「語尾を丁寧っぽくしたら丁寧語」だと思ってるわけだから。

ただし、丁寧語以前の問題として、コンビニ店員は、同じ店でも接客の質のばらつきが大きすぎます。
  • レシートを渡さない。
  • 袋詰めが下手
  • レジ待ちがつまってる時のフォローが遅い|来ない
  • 深夜だからって、楽しそうに私語&談笑。
最初の話に戻って、接客質問の文言

  • 「温めますか?」の質問の文言
    • 「温めどうなさいますか?」YES/NOだけで返答に成らない。
    • 「そのままで大丈夫ですか?」何が?
  • 「レジ袋に入れますか?」の質問の文言
    • 「そのままで大丈夫ですか?」何が?

正直、この質問の文言がオカシイ奴は、頭が悪いと思う。コンビニ店員の仕事は「丁寧語を話す」ではありません。それは社会人としての常識って話で、あわてて頑張ってる場合じゃない。偽丁寧語を使う程度で、本来の作業が疎かになってもらっちゃ困ります。客としてじゃなくて、それで店のイメージが下がって売上が下がって、店長が困るのよ。

地球防衛軍3Portableが先か、GOD EATER 2が先か

GOD EATER BURSTは、3キャラ目が300時間越えてきちゃったので、1キャラめをIMPORTして最初かやりなおしてみたりする程、ゲームに飢えてるわけですが、なかなか出ませんね新作。ああ、もちろん、「小生好みの」という強調が付きますが。

Vita専用、地球防衛軍3Portable
http://www.d3p.co.jp/edf3p/

PSP用、GOD EATER 2
http://www.godeater.jp/

後者は残念ながらPSP用。「Vitaでも動きます」ですが。

そして同じく残念ながら、「2012年秋」。いつやねん!

取り急ぎ、AKIBAS' TRIP PLUSかなあ。
http://akbstrip.jp/
http://www.jp.playstation.com/software/title/uljm06049.html

2012年6月11日月曜日

「銀魂」「こちら葛飾区亀有公園前派出所」いらなくね?

ワンピースはやたら目に付くので色々書きましたが、他にも「全く」読んでないのがありました。銀魂 と こちら葛飾区亀有公園前派出所。

http://ja.wikipedia.org/wiki/%E9%8A%80%E9%AD%82
http://ja.wikipedia.org/wiki/%E3%81%93%E3%81%A1%E3%82%89%E8%91%9B%E9%A3%BE%E5%8C%BA%E4%BA%80%E6%9C%89%E5%85%AC%E5%9C%92%E5%89%8D%E6%B4%BE%E5%87%BA%E6%89%80

両者のコンテンツの特徴は、毎週読んでるはずの人でも「今週何の話だったか思い出せない」というものです。

銀魂は
  • ギャグがクドイ。
    • 登場人物のボケ担当(よく脱ぐ奴)がボケ倒して、それを登場人物の誰かさん(眼鏡のアイツ)が脳内ツッコミをし続けるスタイル。字が多い。読んでられない。
    • しかも投げっぱなし(小生は投げっぱなしは大嫌いなので)
    • 投げっぱなしがオチ。
  • いつの間にか始まって、いつの間にか終わってるバトルパート
    • 呪いで猫だかにされちゃったときはちょっと面白かったが
こち亀
  • 両津が何か思いつく>中川にねだる>失敗する>部長に怒られる OR 何処かに逃亡
  • 何か事件が起こる>両津が何か気付く>事件解決
  • 1話1週完結なので、読み損なってもまったく惜しくない。
  • 漫画好きの知人は、「続けることが目的です」と評した。
いずれも良くも悪くもワンパターン過ぎ。

嫌なら読むなって?もちろん読んでませんよ。それよか連載を終わって、他の作家に枠を明け渡して欲しいです。小生が望むのはそれだけです。

2012年6月9日土曜日

ゴッドイーターバースト DLC マリアンヌ

中級未満の攻略です。

出てくるのは、

  1. プリティヴィマータ ※かなり攻撃力が高い
  2. ヤクシャ ※特定の4体 以外は無限沸き
ヤクシャは足が遅いわけですが、それをマータが完全にカバーしてしまうので、最優先で倒すのはマータですね。ただしマータは攻撃力が非常に高い設定なので、中級未満ゴッドイーターではかなり高頻度で瀕死になります。故に、NPCは回復用(衛生兵)を連れて言った方が良いでしょう。
実際、クリアできたのは、久しぶりにサクヤさんを連れていった回でした。スキル神医の恐ろしさを実感しましたね。マータが氷槍を構えてる目の前でリンクエイドとか達人過ぎます。自分の体力にも余裕があるので、リンクエイド直後に慌てて回復薬飲んだりとかもいらないわけです。これが真の衛生兵なのか!

マップは鉄塔の森で、障害物は良くも悪くも適度にあるので、アラガミ共々密集しがちです。なので、アサルト回復弾(要するにアリサ)では、回復弾が着弾しない場合がままあります。故にレーザー回復弾持ちが良いでしょう。とは言え、レン君だと(バックラーでガードの上から削られるので)打たれ弱い可能性あり。

ヤクシャは無限沸きっぽいです。5体目以降は、討伐非対象判定ですね。ユーバーセンスで見ると小さい点になってます。腕に自信がありまくれば、駆逐部隊つけて狩りまくるのも一考。しかしそのレベルの方々なら、こんな攻略は検索してないと思われます。

ヤクシャ自体は、最近始めて戦いましたが、砲撃特価型ってやつですか。近接攻撃はまったくやらないし、足も遅い。密着すると、真下に範囲攻撃を撃ちながらバックジャンプ。かなり痛いですが、見切れば着地地点に先回りして補喰。逆に中距離に離れると、レーザーサイト(?)から砲撃を撃ってきますが、これは避けやすいので、実は囲まれたら無理して間合い詰めない方がいいかも?

装備は
  • アトラス砲 極 <トリガーハッピー>
  • ファントムピアス <ユーバーセンス> <空気> <消音>
  • ユミル硬 <体力↑大> <神攻撃力↑大>
  • プラーナ <B体力自動回復>
  • 乱戦サポーター <総合被ダメージ減少> <敵体力視覚化> <アイテム仕様速度↑>
  • 天使の祝福
マータの避けが熱いので、小生の実力ではショートにするしか無さそうです。
ヤクシャは無限沸きなので、死体はすぐ消えます。ご注意。

具体的な攻略は、

Qの奥からマータが出てきます。問題はQの奥のPにヤクシャが一体居るので、迂闊に気づかれると両方寄ってきて混戦必死。ですので、自分はBの辺りまで下がって、マータを1発だけ小突いて、来てくれるまで待つのが安全かと。後はA〜B〜C辺りまで引きつけて各個撃破。



それが成功すれば、後は足の遅いヤクシャだけなので、大乱戦でもどうにかなります。ここだけ見れば、ピルグリムと難易度は同程度かと。

ちなみに、ピルグリムをソロで倒せる人がやると、こんな感じに。
http://www.youtube.com/watch?v=651eGEv6VfU
達人というよりは、超戦士とか言いたい。

2012年6月4日月曜日

PHPは、未来永劫、駄目言語であり続けると思う

仕事で久しぶりにヤラレましたよ。暗黙の型変換。

$data = ActiveRecord::find($key);
$data->update = true;
$data->save();

たまーに、「stdClassなのでsaveメソッドが無いよ」と言われる。いやあ悩みましたね。

カラクリはこうです。

  1. $dataがnullで戻ってくる
  2. 2行目の代入直前に、$data = (object)$data というキモい型変換をやってのける
  3. 当然saveメソッドなんて有るわけない。
  4. ←いまココ

スカラー同士の型変換はまだいいとして、オブジェクトに変換はイラネーだろと。Zendエンジンにパッチ当てて、型変換を辞めさせようかと真剣に悩みましたよ。でもZendのソースはキモいので、正直触りたくない。

ちなみに逆変換もまた酷いことになります。
  1. $data = (object)ナニカ
  2. $name = "$data";
  3. $data が "Object"とか入ってる。
  4. ←いまココ
PHPの駄目言語たる理由を大別すると、
  • 構文。すなわちZendコンパイラが腐ってる
  • 実行時。すなわちZendエンジンが腐ってる。
    • 主に暗黙の型変換のセンスが悪い。
  • 内蔵ライブラリが腐ってる。
どっちみち腐ってる訳ですが。

構文に関してはかなり致命的です。
  • プログラムのファイル間の結合方法がincludeしかない。requireはincludeの延長線上の機能なのでこれに含みません。
    • 実はinclude文は、バイトコードエンジンの範疇だったりする。故に「実行時インクルード」というキモい挙動。
  • クラスプロパティの区切り文字と、名前空間階層の区切り文字に、別の文字を使ったところ。前者はダブルコロン。後者はバックスラッシュ。なんで?
    • 構文解析がタコいから?
    • 確かにこれ以前までは、バックスラッシュは文字列定数にしか現れません。だからって、記号の質を変えて良いって訳ではない。
    • ディレクトリ区切りにバックスラッシュを使ってるWindowsは、(PHPと同じく)腐ってるわけですが
  • 連想配列の初期化構文。
    • 中括弧を使わないのは、スコープ構文と区別が付かないから?
  • 関数の参照渡しがない。
    • array( & $this, $method )とか、こんなモノ第一級関数とか呼ばないデスヨ。↓後述
    • is_callable("mb_convert_encoding") == true とか馬鹿じゃねえのかと。
  • new演算子の直後で、直接メソッドを使えない。
    • 恐らく、表面上はnewは演算子の体裁をしつつも、実は別系統の構文なのではないか?と勘ぐってますが。ソースは読んでません。
  • use文のキモい用法
    • 名前空間のインポート?
    • 挙句、mix-inのインポート?
  • class定義内で、static変数やconst定数を、変数式で初期化できない。
    • 定数式でなら初期化できます。
    • メンバ変数の初期化構文は、「コンパイラの仕事」だから。
  • 文字列専用の連結演算子が "." 
実行時に関しては
  • 内蔵ライブラリ関数が0とfalseとnullを混在して返すこと。しかもそれぞれ意味が異なる。
    • 世間一般には例外を投げるところです。が、今から変更することは恐らくないでしょう。何故なら、戻り値を===で判定しちゃってるプログラムが山の用にあるからです。
  • 前述の通り、スカラ型から、オブジェクトへの「型変換」は出来るが、出来上がったインスタンスはstdClassで、しかもこれはオブジェクト群の「基底クラス」では「ない」
    • 故に、折角のタイプヒンティングがあるのに「兎に角、任意のオブジェクト」を示す方法がない。stdClassと書くと「無名オブジェクトしか」引っかからない。
      • 自前のクラスを定義する時に、extend stdClassと書けば良いのだが。こんなの馬鹿じゃねえのかと。
    • new stdclassは出来る。
  • includeしかありません。
    • include文は、zendエンジン上で、それに相当するバイトコードがあります。
      • 実は、eval( file_get_contents() ) と同義だったりします。
      • 故に、大規模なプログラム開発には、本質的には向かない。毎回コンパイルしてるので。
        • Java族が言う所の「PHPは遅い」はこの辺りに起因してると思うのですが、PHPのコンパイル自体は意外なほど早かったりします。要はプログラムの規模次第ってことでしょう。
    • この構造故に、class定義の間でincludeを使っても、期待通りには動きません。
  • 第1級関数が無い
    • 5.3では、無名関数のためにClosureオブジェクトというのを内部で使ってるっぽい。create_functionした結果をvar_dumpすると、そう表示する、しかし
      • コンパイラ側にclosureの定義がない。function method1( closure $func1 ) とか書けない。馬鹿じゃねえのかと。
      • 故に、組み込み関数の渡すときは、文字列定数で渡すしかない。
        • $a = "echo" ; is_callable($a) == true とか馬鹿じゃねえのかと。
結論としては、かなり「根深い」ところで「駄目」なので、この「駄目さ」は未来永劫変わらないだろうと予想できます。少なくとも当面、7.xいや8.xぐらいはまだまだ駄目でしょう。大幅な設計変更が必要です。もう「これはもうPHPじゃないね」と言われるぐらいの。

こんな駄目言語でも、仕事では使わざるを得ません。しかし、前述の通りの穴だらけ仕様なので、「安全」というか「バグりにくい」プログラムを書く方法はそんなに多くありません。
  • 関数の戻り値は
    • 常に同じデータ型で返す。しかも成功時のみ。
    • 失敗時は
      • やはりオブジェクト型で返す。例えばデータが見つからなければ 「「データが見つからない」を示すオブジェクト」をnewして返す。
        • 何故って、PHPが別の型に変換しやがった時に、迷宮入りする可能性が低いから
      • throw しまくる
        • データが見つからなければ、「データが見つかりません例外」を投げるべき。
        • 空の配列を返すとかだと、count()==0とかやらなければならなくなる。でもそれは空文字でもヒットするので、実はジワジワ危険だったりする。
          • is_array($result) && count($result)==0 とか馬鹿じゃねーのかと。
かなり駄目かつ、判りにくいですね。まあthrowする方が現実的でしょう。ただし例外を投げても、catchしてもみ消す人もかなり多いので元の木阿弥だったりします。

2012年6月3日日曜日

ゴッドイーターバースト チャレジミッション 大回転

チャレンジミッションの大回転。いやーこれ小生の実力ではロングソードではクリアできませんでした。

結局クリアできたのは
  • 金剛仁王烈大筒 絶 <全力攻撃> <コンボマスター>
  • シュバリエ 極 
  • 剛回避バックラー 硬 <アスリート><ステップ距離↑><ノックバック距離↑>
    • 臥龍太甲 護 <スタミナ↑大> <アスリート> <ガード速度↑> ※あまり変わりませんね。
  • プラーナ
  • スタミナ強化3 <スタミナ↑大>
  • 天使の祝福
後半、ちょっと死にスキルですね。
これで、コクーンメイデンを殴ると、白フラッシュします。今数えたら9回切れば倒せます。これで1体あたり10秒前後に倒せるので、後は逆算ですね。移動時間はアドバンストステップ連発のあれで移動。ちょっと久しぶりだったのでスタミナ管理がヤバかった。全力攻撃ついてますしね。まあ一応1分残しました。自慢ではありません。装備が揃えばどなたでも出来るかと。

機械剣フィクスだと緑だったので、貫通属性で攻めるしかなさそうだったっぽい。よく判らないです。

ゴッドイーターバースト データ引き継ぎ (GE2の話ではありません)


3rdキャラ目でも230時間ぐらいいってしまったので、データ引き継ぎを試してみました。
  • コールサインは変更できない。
  • 名前は変更できる。
  • キャラデザインは変更できる。男女も含めて。
  • セーブデータは、元のものを強制上書き。
  • っていうか、女性ボイス15を試してみたかった。


金やら素材やら武器やら全部引き継いでのヘタレプレイ。いい機会なんでロングブレード&アサルトを使い込んでみた。というわけです。素材はまだまだ残ってて、部位破壊じゃなくて結合崩壊を無理に狙う必要もないですし。※最近はすっかりバスターブレードでして。チャージクラッシュいいよね。男のロマンだよね。キャラクタは女性だけどね。あ、そーいや一度もチャージクラッシュの掛け声聞いてないぞ。ロング使ってたから。

ロングブレードは2キャラ目では割と使って居たような。ただどうにも決め手に欠ける感が否めません。チャージクラッシュ使えないし。インパルスエッジってどうなの?

結論から言うと、ロングブレードは、大きく移動する強斬りを使いこなせるかどうかですね。ダメージは体感で、弱斬りの倍は違う感じです。

ロックオン状態では、アナログを前に入れっぱなしで△連打。切り抜けてもちゃんと振り向きます。慣れないと、操作してるコッチの目が回るかもしれません。足の数本にダメージ蓄積するので、ダウンを狙いやすい。

ダッシュ直後の強斬りは踏み込まないので、弱斬りの組み合わせて色々研究するとよいです。

アドバンストなんちゃら、が無いので、アラガミの反撃にガードが間に合わないことが多々あります。腹の下で斬ってる時には、2回斬ったらガードしておく、ぐらいのペースです。ヒット&アウェイにより重点をおく必要があるでしょう。深入りは禁物。リンドウさんも言っています。

それにしても、「一択だろ」と評判の、女性ボイス15。イイですね。ヘタレ感が。たまーにNPCとで掛け合いが成立するのがなおよし。
  • リンクエイドされた系
    • ソーマ「勝手にクタバるな」/カレル「もう少し活躍してくれないか」
    • 女15「うええん、済みませえん」
  • リンクエイドする系
    • 女15「おきてくださあい」
    • シオ「おっはよう!」/カノン「私、気絶してました?」
  • クリア時待機
    • レン「貴方と戦うのが楽しくなってきました」
    • 女15「警戒、警戒、っと」
つくづく思うのが、サクヤさんの服がエロ過ぎる件。いやいいんですが、主人公が着ても似合わないし。なんでだ。モンローウォーク出来ないからか? あと、あの恰好で感動のドラマやられてもちょっとアレです。

それにリンドウさんを助けた後の「燃え尽き」感が半端ないです。その理由の大部分は平和過ぎるBGM(「日だまりの中で アナグラBGM3」)。

難易度10をクリアしたら、アナグラBGMを選択出来るようにしてほしい。むしろ今すぐアップデートを出すべきですね。「揺れる魂」(アナグラBGM2、リンドウさん行方不明の辺りで使ってるやつ)だったら、こりゃあ続ける気が起きまくりですよ。しかたないのでBGM音量を下げました。任務に入る時に音量を戻すのを忘れないようにしないと。

2012年6月2日土曜日

「頭が良い」にも色々あってですね

昔から思っていて、言語化したことは無かったのだが

「頭が良い」にも色々ある

だってコレ、「性能」の話だけ。例えばPCの総合性能は、CPUだけで決まるものではない。

順番にいきましょう。まず「性能」について細分化してみます。大脳生理学とか知りません。
  • 学歴が高い→勉強が出来る
  • 記憶力が良い→記憶力の容積
  • 頭の回転数/回転速度
問題なのはむしろ使い方なのだ。基本性能が良いに越したことはない。が、使い方が悪くてぶち壊しって人が実に多いこと。

小生が思ってる判定基準を述べておこう。次のことが出来てる人は、大抵「頭が良い」。
  • 説明が簡潔/的確
  • ジョークが面白い/切り返しが早い
「ジョークが面白い」お前何を言ってるのかって?

肝は相手の状況を考えて言えるかどうか。相手を喜ばせる気があるのかどうか。これはまさしく「説明が的確かつ簡潔」にも結びつく。まあ応用例であると言ってもいい。

言った後に本人が笑っちゃったり、ほーら面白いでしょと言わんばかりの笑顔(最近はドヤ顔って言うのね)とか、そういう人は大抵ダメだ。独りよがり成分がかなり高い。

逆に反例ですが、「話が長い人」「打ち合わせが長い人」は大抵ダメ。何故って、「話を早く終わらせる努力」をしてないからだ。

話云々で言うと、「何を言ってるのか判らない人」は、もしかしたら天才かも知れません。自分の能力が、言語中枢の表現力を超えてしまった、ということですから。例えばアインシュタインがそうでしょう。 http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%83%99%E3%83%AB%E3%83%88%E3%83%BB%E3%82%A2%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3 これは小生の解釈です。

2012年6月1日金曜日

「サザエさん」が嫌いな人の数↓

長谷川町子原作 サザエさん
http://www.fujitv.co.jp/b_hp/sazaesan/index.html
http://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%B6%E3%82%A8%E3%81%95%E3%82%93
http://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%B6%E3%82%A8%E3%81%95%E3%82%93_(%E3%83%86%E3%83%AC%E3%83%93%E3%82%A2%E3%83%8B%E3%83%A1)

小生は嫌いです。というか気持ち悪い。

何年経っても登場人物は成長しません。歳を取りません。出世しません。これだけで実はかなり気持ち悪い話だと思うのですが、どうでしょう。しかし劇中にも四季はあるし、学校のシーンもあります。

これで登場人物に年齢設定がないならまだいいのですが、中途半端に設定があるらしい。
http://matome.naver.jp/odai/2127830884929635101

主人公が暮らす時空は、昭和中期。テレビはダイヤル選局だし、電話はダイヤル黒電話。おそらくアナログ信号発呼に違いありません。多分、携帯電話も持ってないでしょう。地デジは受信できないので、NHKの受信料は払ってないでしょう。

主人公が幾ら暮らしても、肉体が衰えないし、精神も発達しない。永遠に昭和中期を生きるわけです。ナミヘイが老衰で死ぬことはありませんが、イクラちゃんが日本語を話す日は永遠に来ないわけです。呪いかなにかを想像します。もしくは閉鎖空間ですね。永遠の夏休みとかアレです。http://dic.nicovideo.jp/a/%E3%82%A8%E3%83%B3%E3%83%89%E3%83%AC%E3%82%B9%E3%82%A8%E3%82%A4%E3%83%88 http://blog.livedoor.jp/insidears/archives/52000045.html

さもなければ、コンピュータが支配する遠い未来で、仮想の「平和だった昭和の世界」を永遠に行きさせられつつ、その生体エネルギーを利用されてるとか。名作マトリックスの世界観です。http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%88%E3%83%AA%E3%83%83%E3%82%AF%E3%82%B9_(%E6%98%A0%E7%94%BB) 完全に、「人間」を「飼い殺す」ためのモデルですよ。

何時のまにか液晶テレビになってたらしいですが、それならより一掃、登場人物が成長しないのはおかいい。

このコンテンツを「面白い」と感じる精神が気持ち悪いですね。正直。

http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Setagaya_Sazaesan_Family_Statue_1.JPG
故に、今更銅像とか作る精神がほんとうに判りません。記念写真を撮ってる連中もいまだに散見します。

まあもちろん、小生も年がら年中そんなことは考えてません。今始めて考えました。アンチキモイ? 言われるまでもありません。じゃあ「サザエさん好き」はキモくないのか?

http://okwave.jp/qa/q3781926.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1315667248
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1485003629
これだって「フツー好きだよね」と思ってるから出る台詞。

本稿を書くにあたって、当然サザエさん関連の検索はしたわけですが、都市伝説というか「最終回」の妄想があるらしいですね。
http://inspiron530.blog105.fc2.com/blog-entry-29.html

これだって「サザエさん達が不滅(不老不死)のはずはない」という危機感(?)から来るものでしょう。

ちなみに小生は、割と昔から嫌いでした。何となくツマラナイと思っていたからですが、言語化したのはこの歳になって初めてですね。