月別アーカイブ: 2012年5月

[作ってみた] [プログラミング] Internet Explorer の正統進化


先日「Google ChromeのシェアがIEを抜いた」などというニュースが流れてきて,第二次ブラウザ戦争も新しい局面を迎えているなあ,などと考える今日この頃です.
ユーザーからすると各社がしのぎを削ってくれるのは大変素晴らしいことでもあります.

さて,アップデートが行われるたびに「大幅に進化したFireFox」「Google Chromeの進化」などと日常的に騒がれるわけですが,それって本当に進化なのでしょうか?

「進化」ということばはしばしば本来の意味からは大きく外れる使い方をされます.ことばなので使い方が変わるのは当然なのですが,こうなると困るのが本来の使い方をしていた人たちです.

進化は、生物の形質が世代を経る中で変化していく現象のことである (Wikipedia)”

とあるように,進化は別に改良されることを指す現象ではありません.大学の生態学の先生が「チンパンジーも時間がたったらヒトになるんですか?」といろんな場で聞かれて返事に困ってしまうと以前話していましたが,確かに某ゲームに親しんで育ってきてしまうとそんな誤謬も発生するのかもしれません.

ブラウザの話に戻りますが,ブラウザにとっては別に使いやすくなることが進化の目的ではありません.基本的には自分の複製を増やす(=大勢の人に使ってもらう)ことが目的であって,使いやすくなることはその手段に過ぎません.ブラウザにとって自己複製/拡大の目的が達せられるなら,ユーザーを裏切ることさえ進化となってよいはずです.

 


前置きが長くなりましたが,本題です.
IE拡張プログラムを作成しました.名付けて「利己的なプラグイン(The Selfish Plugin)」です.

このプラグインを導入すると,ページ内のGoogle Chromeの紹介/ダウンロードページへのリンクが全てIEの紹介ページのリンクに化けます.その他Chromeにまつわるページ(今のところURLにchromeという文字を含む)に全て同じ仕打ちを行います.こんな感じです:


キャプチャなのでマウスポインタがとれていませんが,検索結果のリンク先がIEになっているのがわかるかと思います.

私はIE(を含むブラウザ)について昔から「賢くないなあ」と思うことがあって,それは他のブラウザの安易な紹介です.もし私がIEだったとしたら,ユーザーが検索窓に”Chrome”と打ち込んだとき素直にChromeの紹介を見せるでしょうか?

Noです.絶対にNoです.あの手この手を使って見せまいとするに決まっています.そうでなければ死んでしまいます.

そこでこのプラグインです.この利己的なプラグインにより,IEはユーザーの目的を無視してChromeへのアクセスをなんとか拒否しようとします.積極的でないユーザーならあきらめてくれるかもしれません.
FireFox,Safariその他ブラウザへの対応も同様に可能です.

これで「IEはブラウザダウンロード用ブラウザ」などという不名誉な称号も,擬人化されて涙を流されることもきっとなくなるはずです.

やったねIE.

 

技術的な話をすると,IEの拡張なんて作ったのは初めてで,ただ話的にIEでないとできない内容だったので結局COMプログラミングに挑むことになりました.(コピー参考にしたページ:MSDN).
やっていることは単純なのでコード量的には多くありません.レジストリをいじったり面倒な作業が必要になるので完成品の公開はしませんが,一応クラスのソースだけ置いておきます.[ダウンロード]

 

あ,ちなみに私はFireFoxユーザーです.そんなに極端な使い方はしないのでなんでもよいのですが,ころころ変わると面倒なので合わせてあるだけです.


おいしいカレーの作り方


ブログを始めたらまずはカレーの作り方を書かなければいけないでしょう,ということでおいしいカレーの作り方です.
今回はWordPressの使い方の練習のために書いているようなものなので.内容はほとんどないのであしからず.

 

カレーの作り方,といえばとっさに書ける文章の代名詞です.
「大学のテストでおいしいカレーの作り方を書いたら単位が来た」なんていうジョークよく 聞きますが,私の周りではこのような例はまだ聞いたことがありません.

個人的にはどうしても単位が欲しかったら土下座したほうが効率がいいんじゃないかと思っています.こっちの事例は2件知っていて,片方は必修で追加レポートを課され,もう1つは選択科目で門前払いをされたそうです.土下座が効いたかどうかは微妙ですね.
カレーのレシピではなおさら無理だと思います.シチューでもボルシチでも駄目でしょう.

 

テストとは少し違いますが,「カレーの作り方」の読みものとして今までで出会った中で最も感動したのは,大学の学祭で活動するサークル「無限次☆計画」さんの「カレーライスの作り方」という論文(?)です.
ちょっとまえがきを見てみましょう.

“カレーライスの構成法を記した文章は多いが、あまり厳密に記したも
のはない。…そこでここでは、白米のみをアプリオリに与えられたも
のと考えた上で、丼もの達から成る集合に入る構造を調べ、それらに対
して特定の性質を満たす食べ物としてカレーライスを定義し、簡単な場
合に構成を行う。”

この論文では丼ものの集合について厳密な定義を行い,たし算(複数の丼を並べる)・かけ算(丼に丼をぶっかける)・丼勘定(具の数を数える),その他単位元(白米だけ)・零元(何もない)等も定義しながら話が進みます.
最後に,カレーライスを「何を追加しても変化しない丼(かけ算に対して変化しない元)」と定義してレシピは終了します.

この読み終わっても何も作ることができない感が私は大好きです.
大学数学ならよくあることで,例えば逆行列の定義なんてのはさくさく説明される割に,その作り方についてはこれっぽっちもわからないなんてことがおきるわけですね.
カレーをその世界に持ち込んだことは画期的だと思います.

 

リアルなカレーの話をすると,大学の近くにおいしいカレー屋さんがいくつかあります.ナンで食べたりするやつです.ちょっと割高なので頻繁には行きませんが,以前別の場所で書いたように,手元で書いたプログラムの出力がNaNだらけになったときは気晴らしに行くこともあるでしょう.

NaN (Not a Number) というのはコンピュータの表現するエラー値のようなもので,特別な振る舞いをします.
例えば,この値には何をかけてもNaNになります.NaNにカレーをかけてもNaNです.
コンピュータは理不尽ですね.

 

全然カレーの作り方書いてないですね.
そんな私はハヤシライスが好きです.

今後もよろしくお願いします.


Hello, World.


ぞうさんです.ブログを始めました.
ソビエトロシアではブログがぞうさんを始めます.

テンプレとか見た目はしばらくふらふらすると思います

Twitterには長くなったりして書きづらいようなものをこっちに退避する予定です.そのうち別の使い方も出てくるかもしれませんが.

あれこれ調べながら作ったわけですが,手順がすっかり洗練されていたので驚きました.
当然といえば当然なのですが,ブログひとつ作るのに別にCPUやOSやネットワークに関する知識なんて必要ないわけです.「トランジスタの動作原理から理解する最強ブログの作り方!」なんて本は見たことないわけですね.いやあったら読みたいですけど.
技術の隠蔽とはすごいものです.

まあ何が言いたいかというと,いまどきブログを書くのにOSのインストールから始めるような人はまれだということです.僕は他の用途でも使うので構いませんが.