2007年05月09日

JsUnit

JavaScript用の単体テストフレームワーク、さっそく調べてみると、JsUnitが見つかりました。おなじみのJUnit.org系列です。

日本語のドキュメントとしては、NRIのオブジェクトワークス | オープンソースドキュメントの「[PDF]jsUnit利用ガイド」 が優れています。(PDFファイルへの直接リンクは避けておきます)

JsUnitなかなか良いです。

ひとつだけハマりました。私のミスなんですが、テストケース内でJsUnitのライブラリjsUnitCore.jsを読むときのURLを間違うと、テストがタイムアウトする動きになります。どうしてなのか理由がわからず、しばらく悩みました。

何もせずにタイムアウトする時は、テストケースを書くHTML(もしくはHTMLをレンダリングする、アプリケーションのソース)内のJavaScriptの読み込みパスをチェックしましょう。

投稿者 iwazawa : 15:05 | コメント (0)

JavaScripのUnitTest

仕事でJavaScriptのコードを書くことが増えてきたのだが、単体テストが大変な気がする。

Java生活が長かったので、全部をUnitTestしまくるUnitTestジャンキーほどではないにしても、ライブラリ的に何度も呼ばれるメソッドについては、厳重に境界テストを含めたUnitTestを書く癖が付いてる。

これが気軽に出来るのはEclipseとJUnitのおかげだったのだが、さて最近は仕事ではPHP、JavaScriptを書くことが多い。特にPHPは元々あるコードへの追加修正が主で、その上、元の作りがアレな事もあり、メソッドレベルの単体テストを殆どやっていない。というかメソッド(関数化)されてたらラッキー。グローバルな異存関係がありすぎてリファクタリングも大変といった有様。

JavaScriptに関しては、これからという感じなのが幸いして、まだ手の打ちようがありそうだ。そこでJavaScriptのJUnitみたいなのが欲しい。今日は、もう眠いので探すのは明日ですが(笑)

投稿者 iwazawa : 01:22 | コメント (0) | トラックバック

2007年05月08日

Subversion

Subversionを入れた。

連休中はRuby on Railsのお勉強だったので必要なかったが、実際にコードを書き始めると、一人でもバージョン管理システムがあれば非常に便利だ。

このサーバが Fedora だった時はビルドしてインストールしてあったのだが、CentOS を一から入れ直したので入っていなかった。
前に入れたときのビルドが非常に面倒だったので、今回はパッケージを使って入れる。

以下、やり方。
#とは言っても、とりたてて、載せるほどでもないのだが…

# yum install httpd # yum install subversion # yum install mod_dav_svn

コレで入ってしまう。
Apacheを改めて入れている理由は、稼働しているのが Apache 1.3系で、パッケージのSubversionを使うのは面倒だから。というか出来ないかも。
なので、パッケージで入れたApache 2.0系を別ポートで起動することにした。

Subversionの設定をする。

# mkdir /home/svn # svnadmin create /home/svn/repos # chown -R apache:apache /home/svn/repos # htpasswd -c /home/svn/dav_svn_passwd hogehoge New password: <enter password> Re-type new password: <enter password>

/etc/httpd/conf.d/subversion.confを修正。

<Location /repos> DAV svn SVNPath /home/svn/repos AuthType Basic AuthName "Project Repository" AuthUserFile /home/svn/dav_svn_passwd Require valid-user </Location>

/etc/httpd/conf/httpd.confを編集し、Listenするポートを変更。(仮に9999とする)

... Listen 9999 ...

そして、サービスが自動起動するように設定して、httpd起動。

# chkconfig --level 345 httpd on # /etc/init.d/httpd start

これで全て準備OK。コマンドラインでテストしてみます。

$ svn log http://localhost:9999/repos 認証領域: Project Repository 'hogehoge' のパスワード: <enter password> リビジョン 0 のコミットはありません。 ------------------------------------------------------------------------ $
投稿者 iwazawa : 01:37 | コメント (0)

2007年05月04日

Instant Rails 1.7のphpMyAdmin

もう日付が変わってしまったか。
昨日からやり始めたRailsでのコード書き。コードを書くところまで言ってません><

「まず最初の作業はMySQLのrootユーザにパスワードを設定して、開発用DBユーザを作成する事からか。」

っていう、まずのところでいきなりはまりました…

phpMyAdminでrootのパスワードを変えて、定義ファイルconfig.ini.phpのパスワードを合わせて変えても、接続できないのだ。

いろいろ試した結果、mysql/bin/mysql.exeを使ってコンソールで

./mysql -u root -p

とやって、変更後のパスワードを入れればちゃんと接続できる。

途中、飽きてWebをサーフィン(死語?)したりしながら数時間、悩んだあげく、見つけました。

MySQL 4.1 リファレンスマニュアル :: 4 データベース管理 :: 4.3 一般的なセキュリティ関連事項と MySQL アクセス制御システム :: 4.3.11 MySQL 4.1 のパスワードハッシュより引用

パスワードハッシュメカニズムは MySQL 4.1 で更新され、セキュリティが向上し、パスワード盗難の危険性が少なくなっています。 ただし、この新しいメカニズムは 4.1 サーバと 4.1 クライアントしか理解できないため、互換性の問題があります。 4.1 クライアントはパスワードハッシュの新旧メカニズムの両方を理解できるので、4.1 より前のサーバにでも接続できます。しかし、4.1 より前のクライアントが 4.1 サーバに接続しようとすると、問題が発生する可能性があります。たとえば、4.0 mysql クライアントが 4.1 サーバに接続しようとすると、以下のエラーメッセージが表示される可能性があります。

Client does not support authentication protocol requested
by server; consider upgrading MySQL client

Instant RailsのMySQLのバージョンは5.0.27。PHPが参照しているMySQLクライアントのバージョンは3.23.49。もろに当てはまります。
サーバが覚えているパスワードを古い形式に再設定してみると、

update user set password=old_password('hogehoge') where user='root';
FLUSH PRIVILEGES ;

見事接続できました。

しかし、クライアントのバージョンが古すぎないだろうか…なにかミスったのかしら?

投稿者 iwazawa : 00:42 | コメント (0)

2007年05月03日

日曜大工

いくつか考えているアイディアがあるので、この休み中に公開できる辺りまでこぎつけたい。

仕様がだいたい固まっている、簡単なサービスを作ろうと思うが、開発言語でやっぱり悩む。

Javaはわりと好きで一番習熟しているのだが、ちょっと億劫というか身軽さが足りないというか、面倒というか。どうせならTeedaを使ってサクサク作りたいとも思うし。
Teedaがあまり悩まずに、評判どおりサクサク行ければ、決まりなんだが、どうもやっぱりそんなには甘くない様子だ。もっと前から考えているほかのアイディアではTeedaでGoしているので、今回は速さを重視して別の言語で。

そこで赤丸急上昇なのがRuby on Rails。いや、もういまさらとも言えなくはないが。
実際はRoR自体まだ詳しくは知らないため、Java(というかTeeda)の場合と同様の懸案が存在するわけですが、こちらには本やWebに情報が多い。そこが違い。本質的に違うところは別なんでしょうが、開発者のやる気をどれだけ削がないかという面で重要だと思われる。
弱点としては運用サーバを作るのが難しいらしいという点か。あ、あと繰り返しですがRoR自体を詳しくは知らないということ。

Perl。素敵にクールなPerlで書くというのも最有力候補。フレームワークなし、CGIとTemplateモジュールだけでもそれなりにいける。どうせ今回作る奴は小さいアプリだし。でもなんか新しく作ろうとすると、ツール側にも新しいものを求めてまうのが開発者というものですから、フレームワーク探しとかを始めてしまい、なかなかコードを書き始めない。mod_perlにしないと負荷がとかも、負荷が高くなるほどアクセスが来て困りそうになったら考えればよい、のに考えてしまう。


まぁ、「まぁ」は使ってもいいと思います。(巷で話題になっているそうですな)
まぁ、「まぁ 結論」でググッた結果を見ればさもありなん、という気もしないでもないが。

まぁ、結論としてはRoRに傾いているわけです。(ウザ?)

投稿者 iwazawa : 14:08 | コメント (0) | トラックバック

2004年07月28日

clone

Javaについて知らないことはほとんどないと思っていたんだけど、cloneの仕組みを知らなかったことを思い出した。
そして知った。

間違ったことを書いているWebページが結構多くて惑わされたので、時間ができたら、まとめたページを作ってみようかな。

投稿者 iwazawa : 00:54 | コメント (0)

2003年12月23日

たまにはコーディングするか

仕事ではめっきり、まとまったコーディングをする機会がなくなってしまったので、
この年末休みになんか作ろうかなっと。
ちょいと考えているアプリがあるんですが、自分しか楽しめないネタですw
細かな仕様を考えないとなぁ。楽しみだなっと。

投稿者 iwazawa : 22:01 | コメント (0)

2003年10月13日

株銘柄スクーリング

かなり難しそうだが、テクニカル手法に基づく株銘柄のスクーリングシステムを作る。

投稿者 iwazawa : 14:38 | コメント (0)