2010年8月24日火曜日

i-mode html simulatorでguid=ONが利かない問題の妥当と思われる解決策

  • 携帯のWEBアプリを開発
  • i-mode html simulatorで?guid=ONが利かないので困る
  • だがネットワーク設定にプロキシの項目は存在しているので
  • なつかしのProxomitronを使えば普通に解決することにきづいた
  • http://proxomitron.sakura.ne.jp/
  • そもそもi-mode側もそのような感じの動きをしているわけです
  • FireMobileSimulatorはFirefoxのプラグインがそのまま使えるのでそれはそれでいろいろ見られてよいのだけど
  • FireFox使ってる人間としては鬱陶しいことこのうえないのでこの組み合わせが一番楽かなあ

2010年8月11日水曜日

Flash vs HTML5

  • Flash - プロプライエタリ(ただし仕様は公開)、制作ソフトとしては高価な部類、バイナリベース
  • JS+HTML5 - 実装内容オープン、ブラウザに実行環境搭載、テキストベース
  • HTML5とはつまり - HTML5近辺で機能追加されたCSS、HTMLに対する拡張>JSに対してはライブラリの強化に近い。JSはたぶん変わった! とか聞かないのであまり変わってないはず。
  • 主要な追加機能は以下のとおり
  • HTML5:Canvasの追加←けっこうどんな表現でもできるように
  • HTML5:ローカルストレージ
  • HTML5:オーディオ機能の追加
  • HTML5:ドラッグドロップ
  • どちらかというと、Flash vs Canvasではないか。この問題は(ローカルストレージはFlashも恩恵がある、D&DはFlashが欲しいところだが、次期にはできるかベンダがこの流れで、プラグインへのD&Dを許可するか? といった問題→Mozillaはともかく他はどうか?)
  • 組み込みにおいてはFlashはライセンス料を要求してくるのでHTML5で同様のことができるとなるとなるどFlashのライセンス費用払いたくないよ問題が生じる可能性
  • HTML5は相当重い。だがそれはFlashも結局変わらん。重たいFlashはいらない。
  • HTML5 Audio Canvasプラグインとか作って、*.hacとかいう拡張子で再生するプラグインをひとつどうか。
  • Flash派の人はFlashのインストールベースを落としていくとまずいのか。
  • HTML5ネイティブアクセスが格段に増えるうえ最大の問題は実装が各社に依存すること。

2010年8月10日火曜日

言語話

  • 別にJavaがとりたて好きなわけではないが。C、C++を持ち上げるのもどうかと思う。
  • C++の汚いコード(しかも自作)、に3年くらい苦しんでから、Cが好きだというのならわかる。
  • 悪いコードはどこにでも往々にしてあるので、
  • どの言語で書いたから悪いコードが少なくなるというのはないだろうたぶん。
  • つまるところ言語ではなく我々のアタマが悪いのだ。
  • 最大公約数的にC#かD言語で。
  • PHPで気になったのでGoogleでJava Hateの人を検索して見て見たが。
  • おおよそこんな傾向。
  1. C++と比較している
  2. メモリを食いすぎる
  3. 多重継承を許さないのをおれは許せない
  4. (アプレットやデスクトップアプリが)遅い
  • メモリを食いすぎる件は、メモリを好きなように使って適宜片づける形だから仕方がない。
  • メモリリークはJavaにも存在する。Threadでつかんだままとか。
  • newしたものをdeleteしなくていいだけなので誤解は避けたいですよね。
  • でもぶっちゃけCで悪く書かれたプログラムよりはいくらもマシだと思います。
  • 言語仕様の話に関してはけっうあるけど。これは趣味のレベルですよね。
  • インスタンスの参照渡を必ず強制されるのはたしかに時々困る。
  • 基本型だけは直値渡しというのもきもちがわるい。
  • アプレットは最近早くなってはいるが、まあそれだけでJavaを語られてもねえ。
  • モバイル向けのJavaもあるのだし

2010年8月6日金曜日

PHP

  • http://www.bitstorm.org/edwin/en/php/
  • 私はしばしばPHPを触る。他の言語と同じくらいにはということだけど。
  • PHPという言語は別にそんなに嫌いではない。お世辞にも愛好者とはいえない。
  • だが、組織や、個人単位でなんかやたらと声が大きい人間が多く説得しづらいのが嫌いだ。しばし彼らはPHPがJavaで書くより実行速度が速いといったレベルの妄言を口にする。
  • Javaの実行速度はメモリが十分ある実行環境で、かつメモリの確保開放が頻繁に行われる環境(ウェブアプリケーションのような状況)においては、高性能なGCを搭載している関係からC++に比肩する速度を出す。
  • (つまりメモリを馬鹿ほど確保してプロセスを肥大させしばらくしたら開放するという無理やりなやり方で効率化するわけなのであまりほめられたやり方ではなくそれだけやってせいぜいトントンの速度なんだろなあ)
  • つまり彼らのいうにはPHPはC++より速いのだ。ぜひPHPでPS3のゲームを作成してもらいたいものだ。PHPの開発者は数が多そうだからたくさんのゲームが生産されることだろう。
  • ではJavaではどうか。PS3のゲームはともかく、リアルタイムプログラムをアプレットで構築することは昔から行われている、Androidアプリケーションはjvm上で動作する。はっきりいって快適ではないが、実用的な速度はでている。OKゲームプログラムを書くには、やはりC++かアセンブリ、シェーダ言語を覚えたほうがいい。あとはPHPか。
  • 反論があれば彼らは、押し黙る。押し黙ったのちそれしか我々には開発できない、他のすべてのプログラムはPHPより高度で高コストであり人員が用意できないということを口にする。ほんとうだろうか?
  • PHPがウェブアプリの実行において速い云々の、実際は上の記事にあるようりmemcachedやAPCなどのキャッシュ機構が速いというだけのことだ。 そしてそれらはCのバイナリであり、キャッシュが呼び出されてる間は、寸毫もPHPは関与しない。そしてキャッシュでは一部の頻繁に更新される画面を構築 するニーズを満たすことはできないのだ。
  • memcachedをサーバで動作させるのには、memcached(デーモン)をインストールして、libmemcached(クライアントライブラリ)をアクセスする環境すべてにインストールして、PHPの場合はPECL:memcacheかPECL:memcachedをインストールしなくてはいけない。
  • そしてその楽しいゲームをプレイするのはたいていの場合声の大きなPHP開発者ではなく運用の人間だったりする。環境の構築にいくらかかる、何人かかるみたいなことを、曖昧にするPHP開発者は(身の回り)に多い。高額なサーバー費用をかけてほとんど破綻してるようなモノもある。
  • Javaではどうかって? 実はrpmからJavaをインストールして、サーブレットを使いたければJettyフォルダをコピーしてサーバにあげてApacheで標準に入っているajp13モジュールの設定をすればそれで済む。ライブラリはアプリケーションの中で追加できる。mavenでも用いれば一般のユーザー(ユーザーレベルの開発者や運用管理の人々)はライブラリの存在を意識する必要すらない。メモリキャッシュ、セッションプールといったものは簡単に用意できる。
  • 悪いて点を言えば、すべてのJavaで組まれたシステムがそんなに効率的に構築運用されてるかというとアホみたいに金ををとって知識不足でロクなものが作られなかったりで、別にそれはJavaだけの問題ではない。
  • まとめると慣れた環境がいいってことだ。
  • このあたりは、大量に環境を作るならイメージ化しておけば何の問題もないし、最近は仮想化も流行ってる。
  • まあ遅いものは遅いので工夫はいくらでもあるし、前向きにウェブアプリケーション開発を進展させてきたのは他ならぬPHPだ。使いどころ次第。PHPでつくられたサイトにはすばらしいサイトがあることも認める。Wikipediaのようにキャッシュがよくきくサイトではなんの問題もない。ではJavaでは?
  • おそらくWeb上で最大級に金を稼いでいるGoogleAdwardsはJavaで組まれてる。Oracleのインターフェースも当然Javaで組まれてる。両方とも良好なパフォーマンスが必要とされるプログラムであり、さて、他に何か例をあげる必要ばあるだろうか。
  • だから何の疑いもなくPHPしか使えないから使わないというのはやめていきたい、というだけの話で、何もPHPは悪だから排除しようなんてことはちっとも思わない。
  • どちらがいいかという比較はあまり意味がなく、どちらがよりトータルで見て成功できるかということが大切なのだろう
  • レンタルサーバーを借りれば、PHPやらPerlはインストールされているもので、それが日本での言語普及の大きな要因だろう。つまりPHPやらPerlはIT業界に多くの人々を送り込んだ、諸悪の…いや、すばらしい言語なのだ。
  • あまりにも言いっぱなしになるので、言語ベンチマークサイトへのリンク
  • http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=php&lang2=java
  • JavaはCの1/2~1/3程度の速度で動作する。コード量はCの1/3
  • PHPはJavaの1/30~1/100程度の速度で、Cに比較すると1/100~1/250程度の速度で動作する。