Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
個人的には、以前からMockテストの実装の簡単さから、SimpleTestを使っていたのだが、継続的統合をやろうとすると、必然的にphpUnitになってしまうような気がする。
一方で、PHPのソースコードをeclipse上で書いている。
当然unitテストはeclipse上から簡単に実行したい、ということで、SimpleTestが提供しているeclipseプラグインを利用しているのだが、これがSimpleTestで実装したテストはちゃんと動くが、phpUnit2は対応しているといいつつ俺の環境では動作しない。eclipseのバージョンによる可能性もあるけど。
ということで選択肢は2つ。
あー、どうすっかな~。
先日作ったプラグインだが、IEだと動かなかった。普段IEなんて使わないので、全く気づかなかったよorz
ということで、修正した。ダウンロード
前回は、JAVAScriptで、window.onsubmitの時にチェックを行っていたんだけど、IEがこのイベントを通ってくれない(何かと競合?)ので、明示的にDOMからsubmitするフォームを取得して、そいつに対して、onsubmitを割り当てることで解決。
なお、新規登録はこれでOKだったが、チケット更新については、更新用フォームにidがついていないので、そのままだとうまく行かない。
ちゅうことで、テンプレートのticket.csについて、
<?cs if:trac.acl.TICKET_CHGPROP || trac.acl.TICKET_APPEND ?>の後の
<form action="<?cs var:ticket.href ?>#preview" method="post">
について
<form action="<?cs var:ticket.href ?>#preview" method="post" id="newticket">
のように変更すると、更新時もチェックできるようになる。
なんだかんだで意外と面倒。
なお、改めて、Firefox、Opera、Safari、GoogleChrome、IEで動作確認をした限りは問題なさそう。
前回のエントリを受けて、とりあえず初めてプラグイン書いてみた。
機能:予めtrac.iniに指定した条件に従って、チケットの新規作成および更新時に、入力フィールドのチェックをJavaScriptで行う。
ダウンロードはこちら(validation-0.0.1.zip)から。対象Tracのバージョン:0.10系のみ。
#不要なファイルが混じっていてインストールに失敗する不具合を修正しました(11/11)
インストールはpython setup.py installとし、trac.iniで、validator.* = enabledに設定するだけ。
trac.iniの設定の例は以下の通り。
入力チェックは10個まで設定可能で、rule_0からrule_9までが有効。利用しない場合は未設定で可。
rule_xは、実際の判定条件で、正しい入力値の状態をJavaScriptで記入する。
message_xは、判定条件に合致しなかった場合のメッセージ本文をそのまま記入する。
precond_xは、実際の判定条件に入る前の事前条件をJavaScriptで記入する。(主にOwnerとかで利用する)
個々の設定値の妥当性はチェックしてないので、この設定を間違えるとTracがエラー起こしたりするよ。
※なお、初めてプラグイン作ったので、作り方があっているのかも良く分からんし、設計思想が正しいのかも分からん。もっと言えば、作った機能はそもそもTracに存在するとかいう可能性もある。そういう前提でご利用は自己責任で。
CodeIgniter(以下CI)では、標準では、QUERY_STRINGは全て無効化されてしまう(与えても消去される)という豪快な仕様になっている。
一応以下のオプションがあり
標準では無効になっているが、これをTRUEにすることで、QUERY_STRINGを扱える。$this->input->get('foo');としてデータを取得するのも可能。
しかしながら、中途半端なことに、データ検証メカニズムは使えないので、Validationチェックは自前で作りこんでやらないといけない。要はPOSTでデータを引き渡すと以下のように出来るのに、
GETでデータ引き渡すと、そもそも上記のvalidationのルールが適用されないってことだ。(system/libraries/Validation.phpのrunメソッドを見ると分かるが、$_POSTしか処理してない)
色々考えてみた結果、邪道な方法が一番楽だと気づいた。hook機能を使うやり方。hooksディレクトリに以下のようなモジュールを配置する。
んでもって、application/config/hooks.phpにてフックの定義を行う。
これで無理やり$_GETの中身を$_POSTに追加してしまって、その後にCI側での処理を行わせている。フックによってCI側に制御が渡る前にデータを変換してしまっているので、これならCI側では何も意識することが無い(はず)。他のやり方としては、Validationクラスを継承して、自前のValidationクラスを作り、runメソッドをoverrideするって手もありそうな。
#参考
Geez in the universe: CodeIgniter その5
標準のPaginationをQUERY_STRINGに対応させたものを作ってみた。
XSS MeはFirefoxの拡張で、現在表示している画面から入力項目(テキスト、リストボックス、ボタン、hidden)を抽出し、クロスサイトスクリプティングが存在しないかどうか確認するプラグイン。最新版は0.3.0ベータ。入手はこちらから。
使い方
ここではテスト用でまったくサニタイジングをしないアプリケーションを用意してみた。なので警告がちゃんと出ている。
ちなみに、このツールを使って自分のものではないアプリケーションに対してチェックをかけてはいけないので注意が必要だ。

かんばん@Webは、トヨタ生産方式でよく言われる「カンバン」をWeb化したもの。
入手はこちらから可能。
非常に使い方は簡単で、新規にタスクを入力し、todo(やること)、doing(仕掛)、done(終わった)にタスクを配置するだけ。Ajaxで実装されているので、読み込み毎のストレスがない。(一方で同時に複数人が使うにはどうするのかな?という疑問はあり)
日々のタスクを管理する(GTD)のにも有効。
JRA-VANではレーシングビューワーってサービスがあって、レースの動画を月額定額制で見放題な素敵なサービスなんだが、ただ一点毎週ライセンス認証を繰り返し、同じIDとパスワードを何回も入力させるってのが、ユーザビリティ的にはかなりイマイチ。
毎週面倒な作業を繰り返すのは開発者としては許しがたいのでソフトを作った。
■このソフトで出来ること
このソフトはJRA-VANのレーシングビューワー機能で1週間に一度行われるライセンス認証を簡単にするソフトウェア
■使い方
1.競馬ソフトでレーシングビューワー連携の機能等を使ってメディアプレイヤーを表示する。
2.一週間に一度ライセンス認証の画面が開きますので、そのタイミングでこのソフトを実行する。
3.実行すると予め設定しておいたユーザIDやパスワードを自動入力しライセンス認証を完了させる。
■現時点での問題
認証用のIDとパスワードは端末に保存していますので、セキュリティ上問題のある端末(不特定多数が利用する端末)では利用しないでください。
最新版の0.1.0.58を公開しました。
今回の変更点は下記の通り


最新版の0.1.0.44を公開しました。
今回の変更点は1点だけ。
これにより、携帯サイトなんかもキャプチャー取れます。単にユーザーエージェントを偽装しているだけなので、当たり前ながら携帯のブラウザと同じ見え方をするわけではありませんが。
なお、ユーザーエージェントを追加したい場合は、アプリケーションと同じフォルダにある、ua.txtを好きに編集すれば良い。UAの一覧はこの辺を見ると詳しい。
Windows標準のデフラグは時間もかかるし、進捗状況もよく分からんし、ということで、フリーなものを試してみた。
結果としてはかなり良好。もうWindows標準のデフラグは使う気がしない。
日記 PHP オープンソース Linux Trac Perl wordpress フリーソフト Agile 自宅サーバ phpMyFaq Plugin 書評 Delphi apache プラグイン Subversion アジャイル mojavi セキュリティ Ruby Firefox Ajax/Web2.0 eclipse サーバ Zope フレームワーク CakePHP 文字化け scuttle OpenVZ 自宅 phpBB CMS 翻訳・日本語化 Excel ApacheDS 生産性向上 仮想化 hacks CodeIgniter XAMPP LDAP SBM taskfreak Ajax 修正 言語ファイル mod_security ダウンロード HTML::FillInForm 情報共有 格安 メンテナンス 移転 アンケート レンタル PhpScheduleIt 翻訳 API