JustResize1.0進捗

特に書くことがなかったので掲題の進捗でも。
あとはカスタムサイズの登録・削除部分だけだけど、現行で固定登録してあるサイズの一覧から選ぶようにしてあるので結構な修正になりそう。
今日中に出来ればいいのだけど。
かなりインターフェースも変わってしまったので、これが出来たらVersion1.0にしよう。
懸念事項としては、Shift+マウススクロール上下でウィンドウサイズを変更できるようにしているんだけど、他のアドオンのショートカットと被ってないかが心配。
あとvistaではこのポップアップメニューに縦線が表示される。うぜぇ

Chrome内でのJSの挙動の違い

また椅子で寝落ちしててこの時間です。おはようござまーす


作ってほったらかしてたJustResizeを修正してたのですが
前からちょっと気になっていた点があるので列挙してきます。

    • window.onloadのタイミング

通常onloadはHTML内の文章を読んだあとに画像を読み込み、そのあとに実行される。
以下のサンプルだと次の画像のようになる。

<html>
<head>
<title>test</title>
<script type="application/javascript">
window.addEventListener("load", function() {
    alert("loaded");
}, false);
</script>
</head>
<body>
 javascript sample
 </body>
 </html>


ちゃんと文章が表示されたあとにアラートが出ている。


次はChromeに同様のコードを書いてみる。テスト用のアドオンを作るのも面倒なのでjustresize.jsをカスタマイズ。

window.addEventListener("load", function() {
    alert("loaded: in JustResize");
}, false);

これでFirefoxを再起動すると・・・

まずこのアラートがデスクトップ画面の左上に表示され、ここでOKを押すとブラウザが表示される。もちろんその後には先ほどの文章が表示されたあとに「loaded」と表示される。
windowオブジェクトであるウィンドウ(フレーム)が表示されてないのにwindow.alertは使えてるし・・・そもそも何かをloadしたからこのイベントが発生してるわけだし・・・


よくわかりません

    • 追記

それぞれのalertの部分を

var cnt = 0;
for(var i in window) cnt++;
alert(cnt);

にしてみた。
アドオン内では1115、test.htmlの方では95だった。
windowが指してる対象が違う・・・?
御存知の方いらっしゃいますかー?

    • 解決編

MDCで該当ページみつけられました。
というかここ昨日も調べた時に見たページだったのに見逃してたorz
とりあえずここになります。
chrome コードでウィンドウを取り扱う - Mozilla | MDN


通常HTMLページで使っているwindowはChrome内からのwindowではchrome://browser/content/browser.xulを指していました。
この中の要素として複数の(タブ単位の)windowがある、というイメージになりますので
結局のところ、今開いてるタブのwindowオブジェクトにアクセスするにはcontentが使えます。
その下のdocumentならcontent.documentですね。
タブ指定しての対象windowの取り方はこれから調べてみます。

プログラマはHENTAIコードを書くべきか

  • HENTAIとは至高の存在である

街を歩けば女子高生に「やだ、あの人HENTAIよ クスクス」なんて言われたとしても
インターネット、特にJavaScriptの世界では到達点の一つに成り代わる。
クライアントサイドJavaScriptでは1行でも少なく書くことが評価され、JavaScriptマリオやJavaScriptテトリスが脚光を浴びる。
最小限まで圧縮されたブックマークレットや、ちょっと趣旨から外れるがキレイに整ったGreaseMonkeyコードを、今日も多くのJavaScriptorがこつこつと書いているんだろう。
ちなみにMy Best HENTAI JavaScriptorはリクルートメディアラボのkawasakiさんだ。
彼の画像擬似3D回転プログラムはもっと評価されていいと思う。(今HPに確認しに行ったら見つけらんなかったけど。消えちゃった?)

  • しかし

ちょっとサーバーサイドまたはアプリケーションプログラムに目を向けてみよう。
こちらでは保守性、メンテナンス性が重視され、HENTAIコードにはあまりお目にかかれない。
誰も1ms単位の実行速度の上昇なんかに興味はないし、複数行書いてたコードがメソッドチェーンで1行でかけた!ワーイなんて喜んでる人はいない。
プログラム規約に沿った変数名を付け、膨大なコメントが残される。
過去の改修後は全てコメントアウトされ残っているし(これは先に言った可読性が損なわれかねないんだけど)、追加行には

//20090310 naokist add

なんてのが逐一残ってたりする。
でもこれはしょうがないんだろう、と自分自身を納得させて今日も通り一般の面白味のないコードを書いております。

  • 結論として

要するにHENTAIコードは複数人でのプロジェクト、むしろ仕事でやる分には書くべきではないんだろう。
普通の仕事で疲れて、たまに家でHENTAIコードを書き、一人ニヤニヤしている人に私はなりたい。

LOCAL PHP部 aka PHP北海道 参加してきました

[PHP][LOCAL]勉強会いってきましたー

http://php.local.gr.jp/
オープンな勉強会は初参加ということで、とりあえず僕主観のレポートを。

今回の勉強会はPHP部としては初、ということでしたので2時間枠。
 ・docTestについて(by bobchinさん)
 ・今後のLOCAL PHP部の活動を考える会
それぞれ1時間ずつのプログラムでした。

内容は後に書くとして、人数は20人ちょっと。
新規で来られた方が半分(自分含)、以前からの方が半分といった感じだったと思います。
後半に、初回ということでさらっと自己紹介があったのですが
これからPHPやろうという方や、デザイン関係を仕事でやっていて来られた方がいたのがすごいなーと感じました。
PHP界隈では有名な?方もおられたようなんですが
正直な話趣味プログラマな僕には誰が誰だかさっぱりでして・・・すみません。

docTest

bobchinさんのセッションで、PHPでのテストをやるにはこんなのがあるよーというお話。
個人でやる分には適当に全体をテストして終わり、な感じなんですが
業務レベルではテストは必須、でもPHPUnitでテストケース書くにはめんどくさい。
じゃあコメント書くついでにちょこっと書いておけばPHPUnitのファイルを自動生成&実行しますよというのがdocTestみたいです。

たぶん資料が後ほどUPされると思いますので感想だけ。
メリットとしては
 ・別ファイルにPHPUnit用のファイルを作る手間が省ける(結局は生成されるけど)

個人的デメリット
 ・PHPUnitに結局依存しているので、PEAR1.4.3以上PHPUnit3が必要なのが・・・
普段PHPUnit使ってる人にとっては便利なんじゃないかなーと思います。
本当はSimpleTestにも対応できるんだけどPHP4がー云々のお話もされてて面白かったです。

今後のLOCAL PHP

簡単な自己紹介の後、これから何をやっていくかの話を。
初心者の方向けと技術者向けの話を分けようかーとか、
せっかくデザイン関係の人もいらっしゃるのでそっち方面の方から見たPHPの話もしてほしい、とか。
LOCAL PHP部のこれからに期待しております。

まとめ(2次会含め)

かなり緊張していたのですが、話やすい方ばかりで楽しくお話を聞くことができました。
個人でやってるだけでは分からない部分の話が聞けたのが一番の収穫でした。
想像よりも入って行きやすいコミュニティですので、近郊にお住まいの方は次の機会に是非。


あー写真撮ってくるの忘れた・・・