2009年01月30日

IEのgetElementByIdはnameも見る

今日、初めて知ったこと

IEのgetElementByIdは、idもnameも両方見ているらしい。
しかも、idとname、両方があった場合は、とりあえず最初に見つけた要素を取ってくるらしい。
固有のidが指定されていても、以前の要素に同名のnameが存在したら、そっちを取ってきてしまう……

サンプルコード(IEでご覧ください)
http://www.mwsoft.jp/sandbox/js/get_element_by_name_test.html


酷い。。。
いろいろ酷い話は知ってるけど、本当に酷いよ、IEさん。

他に見かけた酷い話だと、IEのイベントの実行順序は不定とかいう楽しい記事を見かけたことがあります。
http://blog.livedoor.jp/shimaken0916/archives/51103894.html

素敵仕様、ばんざーい。
posted by MW at 00:48| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

2009年01月27日

【ニュース系】プログラミング言語の流行り

面白いニュースを見かけた。

最近流行りのプログラミング言語
http://sourceforge.jp/magazine/09/01/27/0039208

・ディスカッション・サイトで口の端に上る頻度
・求人の数
・Google Codeに登録されたプロジェクトの使用言語

上記3つの要素のベスト10が載っている。

強いのはCとJavaで、使われていない割に言葉に上がるのはPythonやLisp、Haskell辺りだそうな。納得。

あと、需要があるのに人気がないのはC#だそうです。うん、確かにC#は悪くない言語だよね。でも、ハッカーたちに好きになってもらうには、土壌というのも大事なので。
posted by MW at 23:55| Comment(0) | TrackBack(0) | ニュース | このブログの読者になる | 更新情報をチェックする

【Firefox系】Vim風Firefoxアドオンがあった

先日、JavascriptでVi風にフォーカスを扱おうとか書いた後、ちょっと検索をしてみたら、当然のように見つかりました。

FirefoxをVimっぽく扱えるアドオン、Vimperator。
https://addons.mozilla.org/ja/firefox/addon/4891

※Firefox初心者は入れない方が良いです
※用法、用量を守ってご使用ください


入れるとメニューバーもアドレスバーもステータスバーも消えます。その為、どうやってこのアドオンをアンインストールすればいいのか、一瞬、分からなくなります。

英語のヘルプを読み解かないと、ページ遷移すらどうしていいか分からなくなります。感覚的には、初めてviの画面を前にして、どうやって文字を書くのか、どうやって保存をするのかと戸惑った時の気分に似てます。

それほどまでに、viです。入れた後、思わず周囲の人間に「これ、すげーよ。viだよ」と言って回ってしまたほど、viです。
posted by MW at 23:23| Comment(0) | TrackBack(0) | Firefox | このブログの読者になる | 更新情報をチェックする

2009年01月26日

WEBのTAB遷移を改善したい(その2)

それぞれのアルファベットをショートカットキーとして割り振ってみる。

作りかけ、フォーカス移動
http://www.mwsoft.jp/sandbox/js/js_tab_move2.html

フォーカスが当たるべき要素の上から順に、
Q, W, E, R, T …… をショートカットキーに設定。
1 〜 9 は、数値分だけフォーカス移動機能にする。

途中まで作って気づく。このやり方、テキストボックスと非常に相性が悪い。では、どうすればテキストボックス等と相性が良くなるかと考えていて、思いついた。

viだ。

body内でのescキーは、特にショートカットが割り振られている様子は見当たらない。テキストの入力確定のenterは、確かonkeypressを発しなかった気がする。テキスト変換キャンセルのescも同じだろうか。後で確認してみよう。


escがbody内で押されると、position fixedで画面の最下部に長いテキストボックスが出現し、コマンド入力モードになる。コマンド入力モードでは、テキストの入力は行われず、指定のショートカット効果が実行される。「i」か「a」を押下すると、テキスト入力モードに切り替わる。っていうのを作ってみたら、どうだろう。
posted by MW at 00:32| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

【所感】疲労の勉強

ここ2週間ほどろくに休んでいなかったので、昨日の夜、パタリと倒れる。まぁ、この辺が限界かなぁと思っていたところでパタリだったので、心の中でちょっとガッツポーズ。

今回の疲労限界時に発生した症状
・無駄に甘いものが食べたくなる(脳の血糖不足?)
・倒れる直前の時期は睡魔があまり訪れない(限界突破?)
・こめかみ辺りのツボを押さえると痛い
・気が付くと歯を食いしばっていて顎が疲れてる

とりあえず疲労を抜かないといけないので、次の土日は両方とも予定を入れないことにした。まぁ、きっと片方は入ってしまうのだろうけど、せめて1日休めればなんとかなるだろう。

あとは今週の平日を乗り切ること。5日間のうち2回飲みに行かないといけないこの週を、どう突破するか。疲労との付き合いを続けてきた自分の腕の見せ所だと思う。


もし、もう少し疲労が溜まりづらければ、もうちょっと効率良く稼げたり、もっとプログラムを組めたりするんだけどな。
posted by MW at 00:08| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

2009年01月23日

【ニュース系】定額給付金の論点

今日読んだ中で記憶に残ったニュース。

マクロ経済学の大原則を無視した「定額給付金」懐疑報道に感じる違和感
http://diamond.jp/series/hoda_news/10018/

定額給付金の意味と効果という一番論じられなきゃいけないことを、何で報道は取り扱わないんだろうという疑問を前面に出しつつ、その効果を簡単に解説してくれた記事です。

「オバマは減税を選んだけど、日本は何故給付金を選んだのか」とか「2兆円という金額で効果があるのか」とか「減税や給付金よりも、公共事業への投資を増やすべきではないか」といったことをなんとなく考えさせてくれる内容の記事でした。
posted by MW at 02:31| Comment(0) | TrackBack(1) | ニュース | このブログの読者になる | 更新情報をチェックする

JavaのIntegerの比較

今日、Javaの5でコーディングをしていて気づいたこと。

問題1
Integer int1 = new Integer("10");
Integer int2 = new Integer("10");
System.out.println(int1 == int2);

この実行結果は?


問題2
Integer int1 = Integer.valueOf(10);
Integer int2 = Integer.valueOf(10);
System.out.println(int1 == int2);

この実行結果は?


問題3
Integer int1 = Integer.valueOf("10");
Integer int2 = Integer.valueOf("10");
System.out.println(int1 == int2);

この実行結果は?


問題4
Integer int1 = Integer.parseInt("10");
Integer int2 = Integer.parseInt("10");
System.out.println(int1 == int2);

この実行結果は?


問題5
Integer int1 = Integer.parseInt("130");
Integer int2 = Integer.parseInt("130");
System.out.println(int1 == int2);

この実行結果は?


答え
posted by MW at 01:13| Comment(5) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

2009年01月22日

【ツール】WEBのTAB遷移を改善したい

ブラウザを使っていると、どうもマウスに便りがちになります。例えばYahooのトップページとか、TABで遷移できるElementが大量に溢れています。あそこをキーボードで遷移するのは、ちとつらいです。

WEBのごちゃごちゃしたページが、キーボードで操作し易くなればいいなぁというのはいつも思っているのですが、その感情のはけ口を探していたらこういうものになりました。


数値を押した後にTABを押すと、数値分だけフォーカスが一気に移動する
http://www.mwsoft.jp/utils/js_tab_move.html

1時間で作ったので、出来は微妙です。相変わらずJavaScriptです。仕事中に見ても安全なページです。IE6とFirefox3で動作確認しました。

操作感は……うーん、思ったほど良くない。やはりショートカットキーみたく一発で飛ばないとですね。ブラウザの空いてるショートカットキーを割り当てたいところだけど、何が空いてるのかよく知らない。。。
posted by MW at 01:00| Comment(0) | TrackBack(1) | ツール | このブログの読者になる | 更新情報をチェックする

2009年01月21日

【ニュース】さあ、今こそポメラの苦情だ

私が愛して病まないポメラ。出かける時は替えの電池と共に必ず携帯しているポメラ。これが無いと仕事にならないポメラ。

ですが、今回、こんなニュースが出たので、たまには苦情でも言ってみます。


キングジム「ポメラ」にテキストが読めなくなる不具合、ソフトウェアアップデートで対応
http://www.itmedia.co.jp/bizid/articles/0901/21/news033.html


ポメラはソフトウェアに不具合があった場合にユーザの手でアップデートすることができません。今回の不具合を直す為には、キングジムに郵送してアップデートをしてもらって送り返してもらう必要があります。戻ってくるまで2〜3週間かかる場合があるそうです。

自己責任でいいから、自前でなんとかする方法用意して欲しいですね。


以下、変人の苦言
posted by MW at 23:17| Comment(0) | TrackBack(0) | ニュース | このブログの読者になる | 更新情報をチェックする

JAVAの良いとこと悪いとこを挙げてみた

なんとなくJavaの良いとこ悪いとこを書いてみた。交互に5個ずつで10個。割と普通のことしか書けなかった。

Javaさんは嫌いではないです。むしろけっこう好きです。そこそこに気の合う同僚くらいの間柄です。でも、萌えたり愛したり夜明けのコーヒーを一緒に飲んだりするところまでは至ってません。ちょっと堅いところがあるから、そこまで踏み込めないのかもしれません。


長所1. 絶対に被らない名前空間
パッケージ名にドメイン名を使う風習が根付いているので、その辺から落としてきたライブラリと自前のライブラリの名前が被ってげんなりすることがありません。Javascriptとかだと被りまくるよね。PHPもけっこう被った記憶がある。Pythonはこの2つに比べると被らない方か。

短所1. コードが長くなる
例えば別クラスの関数を使う時に、クラス名.関数名みたいに書かないといけないとか(static importはJavaっぽくないから使わない)、2〜3行の軽い処理をさせたいだけの時でも、クラス作ってその中にmain関数を書かないといけないとか、2で挙げる型の問題とかで、他の言語よりもコード量が増えやすい。

長所2. 信頼できるboolean
例えば空文字を評価した場合、結果はtrueでしょうか、falseでしょうかと言われると、言語によってマチマチだったりしますが、Javaさんはこの点が非常に明快。falseはboolean型であり、0も-1もnullも空文字も、falseとして扱われることはない。この点は、PHPとかのソースでよくバグの原因になってるのを見かけるので、良いことかなと。

短所2. 型キャストが面倒
暗黙のキャストを利用して、数値型を文字列に変換する時に「String.valueOf(num)」とか堅苦しいこと書かないといけない。数値変換する時は、こまめにException吐いてくれたりもする。Commons使えばそれなりに楽になるけど、暗黙変換が欲しくなる人には向かない。

長所3. Run Anywhere
ローカルのWindowsのTomcat上で開発したソースが、Linuxのサーバでもほぼそのまま動くって偉い。ファイル操作とか文字コードに依存するとこは動かないこともあるけど、それでも同じソースがそれなりに動くのはありがたい。

短所3. VMの起動が重い
簡単なアプリケーションでも動かす為にはVM立ち上げないといけないので、無駄に重い感じを醸し出したりする。メモリの設定をちゃんとしておかないと、ほんの僅かなコードで平気で128MBくらい占有しようとすることも。

長所4. 信頼性のあがってきたガベージコレクション
Javaさんも良い歳になってきたので、ガベージコレクション周りもそれなりに信頼して良くなってきたような気がする。効率良くヒープメモリを使うので、メモリ周りの処理性能はけっこう良いという噂を聞いたことも。

短所4. フルガベージコレクションの頻発は勘弁
メモリの使用量が膨らんでいくと、フルガベージコレクションを頻発してあたかもフリーズしたかのような状況を作り出してくれる。あれ、もう少しさっぱりした動きになってくれないかなぁ。

長所5. 豊富なライブラリ
ライブラリの作りやすさと使いやすさには、定評があるような気がする。JavaDocという共通の自動生成ドキュメントの存在と、1で上げた名前空間の厳密さのお陰だろうか。あと、jarファイルでもJadがあればそのままソースが云々。

短所5. 豊富じゃない使い道
現状、サーバサイドではそれなりに勝ち組だけど、デスクトップのプログラムでは明らかに勝ててない。業務用以外で使われてるのを見かけるシーンがもう少し多くなれば良いなぁと思う。
posted by MW at 00:29| Comment(2) | TrackBack(0) | 10個シリーズ | このブログの読者になる | 更新情報をチェックする

2009年01月17日

【所感】ブラウザの検索窓へのショートカット

ものすごくどうでも良い話なんですが、ブラウザのWEB検索窓(たいてい、アドレスバーの右側についてるヤツ)にフォーカスを当てたい時、自分は「Alt+D」した後に「Tab」を押していました。

一応、IE7でもFirefoxでも「Ctrl+E」が、検索窓への移動用ショートカットキーになってるみたいですが、自分は手が小さいせいか、左手一本でCtrl(小指)とE(中指)を押すのはちとキツイ感じがしたので。

でも、今日、気づいてしまったんです。

「Ctrlは右手で押せば良かったんだ」

あー、こりゃ、打ちやすいわ。世の中、いろんなことに気づかずに損してるんだなぁと思いました。

あと、「Ctrl+数字」を押すと、数字番目のタブにフォーカスが行くのを、初めて知りました。気づかなかった。。。

で、IE7でもFirefoxでも、一番左のタブは、「Ctrl+1」で移動できるわけなんですが、そこで、私は期待したわけです。Chromeなら、ゼロオリジンで、左端は「Ctrl+0」なんじゃない?

答え:Chromeも左端は「Ctrl+1」です

がっかり。でも、考えてみたら0はキーボードの右側にあるので、ゼロオリジンにするとタブの位置とキーの位置の間に相違が起きて、分かりづらくなるか。仕方ない……
posted by MW at 23:49| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

【所感】不本意な1日

01:00 就寝。
03:00 知り合いからの電話で起こされる(※1)
04:00 再度寝る
09:00 起床。イマイチ寝た気がしない。
10:00 約束があったので外出。
13:30 取引先の会社から電話。障害らしい。外出中で対応できず。
16:00 約束の件を片付ける。
17:30 帰宅。
18:00 昼の電話の障害の件、自宅から調査開始(※2)
20:00 だいたい調査完了。報告をして、修正作業に入る。
23:00 一部機能を殺して、応急処置的に修正完了(※3 予定)

※1
なんか知らんけど、アドバイスを求められる。午前3時に……
※2
調べたら前任者のソースが問題だった……
※3
追記:予定より30分弱遅れて終了……


明日も潰れそう。来週はビジホで息抜きしないと倒れそう。嗚呼、ドラクエやりたい。オブジェクト指向的な作りに組み替えたのに、そこから先に手が付けられない。。。
posted by MW at 20:45| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

2009年01月16日

よく使うjakarta commonsの機能を10個

普段使っているCommonsの機能を思いつきで挙げてみた。CommonsはJavaのコードを短くしてくれるから好きです。


1. StringUtils.isBlank, isNotBlank
知名度は一番高そう。「str =! null && str.trim() != ""」みたいな表現をあっさり系に書ける。お友達のisEmptyもけっこう使う。メソッド名としてそれぞれNotが存在するのが「!StringUtils.isBlank(str)」より読みやすくて良いと思う。

2. CollectionUtils.isEmpty
引数で渡されたCollectionがnullかサイズが0ならtrueを返す。list != null && list.size() == 0 とかしなくて良い。StringUtils.isBlankと同じくらい使われても良さそうなんだけど、微妙に使われていない気がする。

3. IOUtils.closeQuietry
closeすること林の如しと一部のプログラマからささやかれているかもしれない一品。わざわざfinallyの中で「close」と「try,catch」を書くあの微妙な記述を無くせる。finally{ IOUtils.closeQuietly(stream); }みたいな感じ。

4. StringUtils.right
指定した文字列の右から指定文字数分だけ返す。nullチェックも、lengthチェックも勝手にやってくれる、ありがたい子。友達の「mid」と「left」も便利。

5. NumberUtils.toInt
文字列をintに変換してくれる。中でperseIntして、例外が起きたらデフォルト値を返してくれる気の利いた子。toLongやtoFloat、toDoubleもいる。

6. ReflectionToStringBuilder.toString
langの中にひっそりと入ってる、ありがたい子。Beanの中身をSystem.out.printlnとかで出力したい時に、一行であっさりとそれっぽい文字列に変換することができる。主にdebugログの出力の時に使う。デバッグ以外の用途で使われている姿はあまり見かけない気がするけど、ドンマイ。

7. BeanUtils.copyProperties
同じ変数名のパラメータを、別のBeanにコピーする。設計を間違うと何かとバグやボトルネックの元になりやすいけど、使いどころさえ間違えなければ便利。DBとHTMLのパラメータ名を対応させるような処理とかなら、綺麗に利用できた気がする。

8. IOUtils.copy
Java.io.Fileにはコピーがなかった気がする。この子を使えば、数行でコピーできる。

9. FilenameUtils
どのメソッドが一番とも言いづらいので、クラスごとエントリー。ファイルのパスとか、拡張子とか、拡張子を除いたファイル名とか、ディレクトリ名とか、ファイルパスの一部をさらっと取りたいなぁと思った時に、あっさり願いを叶えてくれます。

10. StopWatch
langのJavaDocに目を通していて、ふと名前に釣られて手を出してしまったのは私だけではないはずだ。suspendしたのをresumeできるとか、それなりに心地よい使い勝手。実行時間計測にたまに使う。
posted by MW at 00:48| Comment(0) | TrackBack(0) | 10個シリーズ | このブログの読者になる | 更新情報をチェックする

2009年01月15日

1月15日の一言

見えないものの為には頑張れないから見える化する、という用途はアリだと思った
posted by MW at 23:54| Comment(0) | TrackBack(0) | 一言 | このブログの読者になる | 更新情報をチェックする

【所感】スパムメールが来る

最近、携帯メールに急にスパムが来るようになった。だいたい日に5通程度。メールアドレスを取ってから5年くらいずっと来なかったのに、何故だろう。携帯アドレスが入った名刺を配ったのがマズかっただろうか。

スパムというと、話題になってるのは「McColo」。

スパムに多く関与しているという噂の米ISPで、ここの通信を遮断したらスパム流通量が一時的に65%減少したとか。恐ろしい。
http://japan.internet.com/webtech/20081212/6.html

最近、多くの国で国家予算をつぎ込んでなんとか景気を回復しようとしているけど、せっかくならスパム防止にもつぎ込んで欲しい。いたちごっこ的なつぎ込み方になりそうだけど。


で、邪魔なのでスパムをフィルタリングしようとしてみる。が、auの携帯メールのフィルタはあまり使えない。ので、携帯転送用にメールアドレスを1個作成して、そこでフィルタリングをかけた上で携帯に転送することを考える。携帯側ではアドレス帳に登録されている場合のみ受信を有効として、後は拒否するようにする。

似たような有料サービスはいくらか見かけるけど、プログラマなんで自分で作るが早いだろう。一般的な転送サービスだとヘッダ情報しか見てくれないけど、自前なら本文も条件に出来るところが良い。

返信は携帯用WEBメール機能でも作って、そこから送るとしよう。万一にも悪用されないように、1回送信するごとにパスワードが変わる完全ワンタイムパスワード性にして、パスワードテーブルを手元に持っておくことにしよう。

という機能を作るとすると、どれくらいかかるだろう。フィルターに1日、送信サイトの作成に1日といったところか。転送機能はcronで動かしとけばいいだろう。レン鯖だから遠慮して5分くらいで。

自分のクライアントにも迷惑メールに困っている人はけっこういるので、うまく実用化できたら、格安で売り込んでみたい。

サーバ内でメールディレクトリに来たファイルを直で扱った方が楽だけど、汎用性の為にPOPで扱うべきか。IMAPの方が好きだけど、普及率はどれくらいだろう。だいぶ高くなってるとは思うのだけど。
posted by MW at 00:43| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

2009年01月14日

【ツール系】ブラウザのサイズ調整機能

仕事でWEBページの表示確認をしてる時に、WindowサイズとかBodyのサイズを指定して確認する必要があったので、こんなものを作って対応する。

ブラウザのbodyサイズとwindowサイズを表示したり調整するページ
http://www.mwsoft.jp/utils/window_size.html


■出来ること
1. ブラウザのwindowサイズを、入力したサイズに調整する
2. ブラウザのbodyサイズを、入力したサイズに調整する
3. ブラウザの現在のwindowサイズを表示する
4. ブラウザの現在のbodyサイズを表示する

■注意点
・IE6,7、Firefox3で動作確認
・画面からはみ出すサイズを書くと正しく動作しない
・小さすぎる値を書いた時も正しく動作しない


2と3は若干トリッキーなことをしないと出来ないので、あまり見かけないのではないかと思って作ったのだけど、必要とされる機能なのかどうかもちょっと不明だった気がする。
posted by MW at 01:02| Comment(6) | TrackBack(0) | ツール | このブログの読者になる | 更新情報をチェックする

2009年01月09日

【所感】Chromeの少し良い機能

ChromeはJavascriptによるalertが複数回表示されると、「このページでこれ以上ダイアログボックスを生成しない」という選択肢が出る。

Javascriptのデバッグをさらっと行おうとした時に、ついうっかりfor文の中に埋め込んでしまって、いつまでもalertが出続けることがある。そんな時にとてもありがたい機能だ。
posted by MW at 23:18| Comment(0) | TrackBack(0) | 所感 | このブログの読者になる | 更新情報をチェックする

2009年01月08日

【どうでもよい系】あっさり速度改善

例のヤツ。簡単に速度改善出来ることに気づく。なんでこんな簡単なことに気づかなかったのだろう……

頻出画像を背景としてリピート表示すれば、その画像についてはIE6でもLoad1回で済む。imgタグの生成・削除のコストも減る。他の画像も大きなブロックはDIVの背景として描画すれば、もう少し速度上げれそう。ロジック(というか設定)が面倒だけど。

http://www.mwsoft.jp/game/dqp/20090107/dqp.html

ああ、もう2時半だ。ついさっき投稿した記事に、「いらんプログラムを組んで寝不足になるの禁止」みたいなこと書いたばかりなのに……
posted by MW at 02:38| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

WEBプログラマ向け、10個の禁止事項

WEBプログラマ向け、10個の禁止事項

今年はこれをやらないように注意しようと思ったことを10個書いてみた。1, 5は気をつけたい。10は……私には無理だ。


1. 車輪の再発明禁止
commonsやCPANに同様の機能があることに気づかずに、自前で実装したりしない。後で全く同じ機能が存在することに気づいてショックを受けたりしない。必ず一度同じような機能が落ちてないか確認する。

2. 言語的冒険禁止
PHPで組んでと言われた時に「Pythonにしましょうよ」とかわがまま言わない。「それがダメならRalsで」とも言わない。Perlでやるべきことを「シェルで挑戦してみた」とかも言わない。

3. 死ぬほど働くの禁止
栄養ドリンクがないと乗り切れないような生活を1年中続けたりしない。適度に息を抜いたりサボったりする。2ヶ月以上連続して張り詰めるとヤバイらしいから気をつける。

4. 新人に優しくないソース禁止
WEB系の職場は、ビット演算や排他的論理和を使うと一部の人から「読めない」とクレームが出る世界らしい。遺憾ながら控える。Windowsプログラミングでよく使う、数値の32ビットそれぞれに意味を与えてAND演算で判定するのも通じないから駄目らしい。恐ろしい世界だけど、それに慣れる。

5. 英語苦手意識禁止
調べごとをする時に日本語のページばかり読まない。時間に余裕がある時は英語のサイトを優先的に読む。英語力はしばらくサボるとすぐ落ちるから気をつける。英語に触れやすいように、Googleの検索パラメータのjaなところをenにしておく。

6. リファクタリングのやり過ぎ禁止
ちょっと実装が早めに終わって時間が余った時に、リファクタリングを始めたらつい楽しくなってしまって、気が付いたらスケジュールに遅れが出ていたとか厳禁。適度なところで我慢する。

7. 寝不足禁止
睡眠不足の時に、ポメラと戯れたり、ブログを更新したり、いらんプログラムを組んだりして無為に時間を使わない。さっさと寝る。

8. Firefoxベースで考えるの禁止
Firefoxだけで表示確認をして終わった気にならない。どれだけ嫌いでも、どれだけ憎くても、ちゃんとIEで見る。Chromeで見てSafariを確認した気になるのは……まぁ、JavaScriptをゴリゴリしてなければ、いいか。

9. 調べごとに没頭し過ぎるの禁止
それほど優先順位が高くない調査事項と相対した時に、調べ始めたらハマってしまって必要以上に時間をかけすぎるのは禁止。どうせハマるなら優先度の高いことにハマること。でも、調べもせずにすぐに諦めるのはもっと禁止。

10. 仕事中のネットサーフ禁止
仕事中に仕事と関係ないニュースサイトを見るの禁止。朝、仕事をする気が起きなくてネットサーフしていたらいつの間にか昼休みになっていたとか厳禁。この項目を見て「これを禁止するのは私には無理だ」とか思うの禁止。
posted by MW at 01:44| Comment(0) | TrackBack(0) | 10個シリーズ | このブログの読者になる | 更新情報をチェックする

2009年01月06日

【どうでもよい系】進捗ほぼなし

例のヤツをうちのCelleron機(2GHz)のIE6で動作させてみたら酷いスピードだったので、パフォーマンス改善できないか確認。開発自体はクアッドコアとかいう上等なもの積んだ子のFireofxでやってるので、遅い子のIEで見るとそれはもう愕然とする。Celleron機でもFirefoxで見れば耐えられるスピードなんだけど。

全ての画像をasboluteで配しているのを、floatで一行配置した後に、それを囲んだdivでずいっと移動という形にしてみる。floatの方がnativeな配置だから早くなるかと思ったが、結果は惨敗。

positionを持ってくところではなく、普通に画像を何百枚も描画するのにかかるコストが問題な様子。ていうか、同じ画像を1回ずつLoadしてやがりますね。使用する画像を全部下の方に表示して、画像も含めて全部onloadを通知したら描画スタートということもやってみたのですが、結果は変わらず。ぬう。

IE7の方は同じ画像は1回Loadに留めてくれている様子。ただ、街や城に入る際の動作が重い。F5押した場合より城を出た方が時間がかかるということは、非同期通信の結果を待ってるところが問題か。もしくはElementをRemoveしてるところも危険そう。

非同期通信が問題であれば、画面表示フィールド内の街や城のマップ情報を先読みすれば、なんとかなる。ElementのRemoveが問題の場合は、固定数の画像に対して、src指定を切り替える形にする方法が思いつく。けど、srcの中身変えた時の反応が各ブラウザイマイチ遅い。IEは特に遅い。

それから、キー押下があった際に、Activeになってるウィンドウ(フィールドか、メニューか、メッセージか、どれに命令送るか)を判定させるロジックとして、Activeな要素にactiveという名前のクラスを配置する方法を試してみる。コード的には格好良かったのだけど、結果は惨敗。予想はしていたけど、連打に対して全然弱かった。

やはりそこは変数で判断するとして、キーイベントでころころ値が変わることを考えると、syncronized的なことをしたいのだけど、Javascriptではどうやるのだろう。最悪、セマフォっぽくすればいけるか。


http://www.mwsoft.jp/game/dqp/20090105/dqp.html

※基本、昨日と何も変わりなし
※描画をfloatにしたけど、差はないと思う
※試しに下の方で画像先読みしてるけど、やはり差はないと思う
※Xボタンを押すとメニューが出て、そのまま動かなくなる
posted by MW at 02:09| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。