2012年6月30日土曜日

ドラゴンクルセイド2F用Firefoxアドオン開発

ドラゴンクルセイド2Fのユーザーインターフェースがクソすぎるので勉強がてらFirefoxアドオンを作ってみることにした。

そもそもの始まりはゲーム内チャットが使いづらすぎることだった。
  • 日本語入力を確定するとチャットが送信されてしまう事
  • チャットにスクロールバーがついているのに過去の発言を閲覧しようとしてスクロールしてると、勝手に最新の発言のところまで戻されてちゃんと見れない事
というわけでFirebugで通信内容を覗いたら普通にチャットの発言とか覗けたので、アドオンとしてつくれるんじゃねぇか?って妄想した。
Firefoxのアドオンは作ったことなかったので魔法使いとしてはやってみる必要があると思った。

で、アドオンの作り方から調べて、現在の機能
  • ログインは2サバ限定(簡単に変更できると思う)
  • 世界とギルドチャットの取得(約5秒間隔)
  • ギルドチャットでの発言

これから作る予定の機能
  1. 税金の自動徴収
  2. 城のリスト表示
    • 建築中物件の表示
    • 物件のアップグレード
あと色々妄想するところはあるけど、モチベが続くかどうかが問題だ。
例えば便利そうで実現できそうなのは
最寄りの野外資源地検索
建築キュー(通常2件までだが、終わったら自動的に次を入れれるようにする)
自動最上級兵士生産
自動狩り

ってやり過ぎるとただのBOT・・・?

 DC2Fサポートツール(Firefoxアドオン)


2012年3月29日木曜日

symfony始めました-schema.ymlの作成

どんなDBを使うかモヤモヤと考える。
じゃあMySQLでテーブルはこんな感じかなっとノートにでも書きながら想像する。(省略可)
shema.ymlを書く。
書き方はこの辺を参考に。
Practical symfony 3日目: データモデル
The symfony and Doctrine book
INTの種類の指定の仕方
下記のようなコマンドを打って、うはーすげーな便利だなーと感動する。
php symfony doctrine:build --model
php symfony doctrine:build --sql
php symfony doctrine:insert-sql


タイムゾーンがどうとかいわれたらphp.iniにタイムゾーン設定してあるか確認する。
(してなかったので設定した date.timezone = Asia/Tokyo)

そして3番目(テーブルを実際に作成するコマンド)でハマる。
Couldn't locate driver named mysql
とか言われる。

こちらで言われている通り、確認してみる。
そういえばこれsymfony導入時にもやったじゃんと思いつつ。
・・・モジュール版(?)とCLI版で結果違う・・・?
下記コマンドでphpinfoが見れますよ。
php -i
/usr/bin/php -i
/usr/local/bin/php -i

結論から言えばCLI版のphp.iniにextension=pdo_mysql.soを書き足せばよかったってっ事。
Scan this dir for additional .ini files = (none)
って感じでCLI版はnoneになっちゃってるのが混乱の元だったんだ。

もともと以前確認した時モジュール版はOKだったはず
今思えばこの時も本当はさほど問題なかったんじゃないかと思う。

pecl install pdo-mysql とかpecl install pdo とかやっちゃったけど
これがまたまずかったらしい。
これのせいでモジュール版のPDOからもmysqlが消える。
今は標準でPHPにバンドルされていて、設定を書き換えれば済むところ、古いもので上書きした感じになったようだ?

色々嵌りに嵌ってぐるぐるぐると回りまわって
最終的にこちらで納得して解決。

2012年1月31日火曜日

symfonyはじめました-symfonyのインストール

Getting Started with symfony
symfonyのインストール


プロジェクト用のディレクトリを作る。 $ mkdir -p /home/sfproject
$ cd /home/sfproject
symfonyのライブラリのファイルをぶっこむディレクトリを作る $ mkdir -p lib/vendor ここからダウンロードしてきて展開する。 $ cd lib/vendor
$ tar zxpf symfony-1.4.16.tgz
$ mv symfony-1.4.16 symfony
$ rm symfony-1.4.16.tgz
symfonyのバージョンを表示するコマンドを使うことでsymfonyが正しくインストールされていることを確認 $ cd ../..
$ php lib/vendor/symfony/data/bin/symfony -V
終わり。簡単ですね。

おまけ $ php lib/vendor/symfony/data/bin/symfony で色々見れる。

ServerQueenのVPSにPHP5.3.9をソースからインストール

CentOS5.7でPHPのバージョンが5.2.17でしたとさ。
rpmでインストールされてました。
これを5.3にしたかった。
とりあえずまずはソースをダウンロード
http://www.php.net/downloads.php
最新安定版の5.3.9をダウンロードしました。

apacheを停止(しなくてもよかったのかもしれないが)

sudo service httpd stop ソースを解凍してインストールを試みる configureのオプションはすでにインストールされていたPHPのphpinfoを見てそれっぽいところをいじった。 tar jxf php-5.3.9.tar.bz2
cd php-5.3.9
./configure --host=i686-redhat-linux-gnu --build=i686-redhat-linux-gnu --target=i386-redhat-linux --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-libdir=lib --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --disable-debug --with-pic --disable-rpath --with-bz2 --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr --with-openssl --with-zlib --with-layout=GNU --enable-exif --enable-ftp --disable-magic-quotes --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-wddx --with-kerberos --enable-ucd-snmp-hack --enable-shmop --enable-calendar --with-libxml-dir=/usr --enable-xml --with-apxs2=/usr/sbin/apxs --with-mysql --with-gd --enable-xmlreader --enable-xmlwriter --enable-json --enable-mbstring --enable-mbregex --with-xsl=/usr/lib
make
make install
で、確認 php -v
PHP 5.3.9 (cli) (built: Jan 31 2012 02:21:02)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
というわけで、CLI版は問題なさそうだったんだけど、モジュール版(?)のphpinfoを見てみたらバージョン変わってなくて、しばしハマることになる。
グーグル先生の話ではlibphp5.soがバグで生成されないとのことだそうで
下記のサイトなどを参考にlibphp5.soを生成してからインストールという手順でいくことにした。
PHP5インストールでのlibphp5.soバグ対応
すると今度は
error: Could not find pcre.h in /usr
とかなんとか言い出した。
こちらを参考にしたが、すでにPCRE自体はインストールされていた。
rpm -qs pcre
インストール先を確認して、パスを指定する。
しかし上手くいかないのでいっそ何も指定せずにインストールしたらうまくいった・・・。
参考
で、libphp5.soが生成できて、もう一度コンフィグ作りなおして、インストールして終わりだったと思う。 すでにうろ覚えなのでこの記事の正確性は保証できません!
はい、おつ。

2011年11月8日火曜日

pukiwiki設置 & google Analytics webmaster tool adsense を配置

忍者ディフェンダーズの攻略サイトがまだないようだったので作ってみた。
忍者ディフェンダーズWIKI
最初はFC2でWIKIつくってみたのだが、どうも既存のWIKIサービスはアドセンスとか貼れないようだったので自鯖にpukiwikiを設置してみた。

DNSの反映に二日ほどかかった。
名前ベースのバーチャルホストなのでドメインで接続する必要があったので
DNSが反映されるまではhostsファイルにアドレス書いて編集してました。
WindowsXPではC:\WINDOWS\system32\drivers\etcにあったお。

DNSが解決されないとanalyticsとかウェブマスターツールは使えないだろうからとりあえずアドセンスを貼り付けました。
プラグインとして作成してた方がいたので、最初ちょっと真似してみたんですが、「いやコード書き換えられたらダメだからこれじゃダメじゃね?」って思って別に設定ファイル作って呼び出し時に選ぶような形にしてどの広告貼り付けるか選べるようにしました。(今3つ貼ってるます)
まぁ今思えばスクリプトコード直貼りで全く問題なかった気がしますね。(ぉw
それから上記の方のプラグインだとスクリプトに引数埋め込んじゃってるので非常に危険なんじゃないですかね。サニタイズしないと?


DNSが無事解決されるようになったら、Analyticsをまずは設置しましたよ。
コードをskin/pukiwiki.skin.phpの中に貼り付けておしまい。

ウェブマスターツールはアナリティクスのコード貼ってあると簡単に確認できるのでそれでおしまい。あぁおしまい。簡単なにも言うことなし。

この記事は何を言いたかったんでしょう?
まぁいいか。