2011年8月18日木曜日

Google Chrome と Firefox Greasemonkey の互換性

Firefox Greasemonkey のスクリプトが Google Chrome で動くというけれど、スクリプトのヘッダー部分にある @include を @match にするというだけではダメだったりする。

@include …/troop.php#ptop
というURLに対してスクリプトを動かしたいのだが
Firefox + Greasemonkey では動作するが、Chromeじゃ動かない。
@match …/troop.php#ptop
とするだけではマッチしないようなのだ。

でしょうがないので
@match …/troop.php*
としておいて、スクリプト内で
if (document.URL.match('#ptop$')) {

}
という具合にして、URLをチェックして該当する場合に実行するようにしたらOKだった。

2011年7月21日木曜日

戦国IXAとIXA用ツール開発の変遷 1

2010年の夏から戦国IXAというブラウザゲームをやっていて、ちょっと不便なことの解消とか、集計とか、プチ便利機能とかをJavascriptでプログラムしてみたりしている。

そこで自分の戦国IXAとIXA用ツール開発の変遷をちょっと述懐してみる。

1.まずはマップの敵・味方拠点の集計

  20x20の地図から、敵・味方の拠点を選び出しリスト化するのを、ソースを
  セーブして、それをFreeBSDに転送して、sed, grep, awk 等を駆使して
  CSVファイルにして、それをPCへ転送、Excelに貼りつけて利用したのが最初だった。

  ExcelからIXAのマップへリンクと思ったら…IXA側でセッションタイムアウトとなり
  リンク先(この場合マップ画面)が開かない。これじゃ、あんまり役にたたない。

  そこで、Excelの代わりに、Google Docsのスプレッドシートを使ってみたら
  見事リンク先のマップが開くのに成功。こりゃ結構便利だ。
  Google DocsのスプレッドシートはExcel程のきめ細かさはないものの、それなりの
  ことはできる。一年くらい前は、フィルター機能がなかったが、いつの間にか改良が
  進み、使えるようになったし、今でも日々改良が進んでいるようだ。

  Google Docsは業務で使うのならともかく、個人で使う分には十分の性能だと思う。
  印刷関係が今一歩で、特にどうでもいいところにこだわる傾向がある日本人には
  なかなか浸透していかないのかもしれないが、Officeソフトもまともに買えなく
  なるような貧困化が進めば、着実にシェアを伸ばしていくような気がする。

  まあ、最初は砦の周りの敵味方の集計をと思ってつくり始めたが、Google Docsで、
  ネット上の表計算シートを使う便利さに目覚めて、これから来るであるクラウドの
  時代の便利さの触りを感覚的に知ってしまったのであった。

  自分専用のPCじゃ無くてもいいし、iPadのようなものでもいけそうな時代がやってきた
  のを体感してしまった。まだPCの方が便利だけど。

  その後、FreeBSDに転送したりするのが面倒なこともあり、拠点のリスト化はそんなに
  使うことはなかった。

  あと、IXAの漢字コードはUTF-8で、grepが扱えるのがEUCとかSHIFT-JISとかなので
  扱えない漢字を使っている城主が時々いて、これが文字化けするのである。
  中国の漢字を使っていたり、ミミズが張っているような記号のような文字とか
  Unicodeの範囲じゃないと表せない文字は、化け化けになってしまうので、これが
  使わなくなった大きな理由である。いちいち手で修正を加えていたら意味ないじゃん。

  で、直接CSVファイルに落としてしまおうと考えたのである。