FireWatir

テストするときに便利なものを探していたら、FireWatirなるものを見つけました。

FireWatirは、RubyからFireFoxを操作するプログラムが書けるライブラリです。

例えば、画面のテストで、多くのパターンを検証しなきゃいけないときに、FireWatirにそのロジックを書けば、後は自動実行してくれます。

まずは、この辺を参考にインストール。
http://wiki.openqa.org/display/WTR/FireWatir+Installation

あとは、書き方が超簡単。
↓のような感じで、書くだけでOK。

例えば、システムにログイン、ログアウトするサンプル。


require 'firewatir'
ff = FireWatir::Firefox.new
# まずは、指定したURLに行こう!
ff.goto("http://example.com/")
# テキストフィールドのnameがloginのところに、iddesuの文字をセット
ff.text_field(:name, 'login').set("iddesu")
# 同じくテキストフィールドのnameがpasswdのところに、passwordesuの文字をセット
ff.text_field(:name, 'passwd').set("passworddesu")
# nameがsubmitって名前のボタンをクリック!
ff.button(:name, 'submit').click
# ログアウトするときは、aタグのidがlogoutのリンクをクリック!
ff.link(:id, 'logout').click

どうですか?簡単じゃないですか?
これは、便利っす。

Seasar2

最近、Seasar2を使う機会があり、いろいろとやっています。

元々Railsを使ったことがあったので、seasar2Javaですが、似たような感じで使うことができました。

http://www.seasar.org/

RailsSeasar2を比較してみると、MVCは下記の感じです。(見づらくてすみません・・)

                                                    • -

Rails Seasar2

                                                    • -

Model Entity
Controller Action
View jsp( or mayaa

                                                    • -

前々は、Railsいいなーと思っていたのですが、最近では少し不便に感じるようになりました。
rubyの普及がまだ、正直いまいちなのです。

例えば、googleに関連するサービスでRubyが使えるのは、僕の知る限りありません。
多くがpythonで、後はやっぱりJavaphpなどになってきます。

ライブラリなんかも、Javaだと豊富なのですが、Rubyはまだまだ少ないように思うのです。
もしくは、あっても、資料が少なく理解するのが大変だったりします(僕が未熟なこともあり・・)

検索周りなんかは、Javaだとluceneとか便利です。他にも、senna、nutch、solrなどなどたくさん使えるものがあります。

cometを使ったサービスもrailsだとshooting starとかあるんですが、これが最初理解するのがだいぶ大変でしたが、tomcat6.0から使えるcometはけっこう分かりやすかったです。すぐに実装できました。

と、言いつつも、プライベートではrails中心なのですけどね。

sagool.tv

面白い動画サイトありました。

http://sagool.tv/

今まで音楽をだらだら聴いたりするときは、DARAOを使っていたのですが、このサグールテレビも良さそうです。

検索にヒットした動画をまとめて再生したりできます。
けっこう使いやすいです。これからは、これもたまに使ってみようかと思います。

Apache + mod_proxy_balancer + mongrel_cluster のApacheの設定

Apacheの設定について、忘れないようにメモ。
ちなみに環境は、こんなです。
CentOS 5.1
Apache 2.2.3
mongrel_cluster 1.1.4(たぶん)
mongrel 1.0.5(たぶん)


Apacheのmod_proxyとmod_proxy_balancerは使えるのが前提で。2.2以上だったら、たぶん大丈夫そう。
mongrel_clusterも動くようにしてあるってことで。


1./etc/httpd/conf/proxy.confを下記の内容で作成する

とりあえず↓は基本的にはオフにするみたい


ProxyRequests Off


↓も今のとこはあまり気にせず・・とりあえず書いておく。
たぶん、Deny from all とAllow from 192.168.xx.xxみたいにすれば、ここにアクセスできるIPを限定できるものだと思う。



Order deny,allow
Allow from all


で、次。↓で1行目の最初のスラッシュが、http://xxx.xx.com/ とかのこと(xxx.xx.comの部分は、設定によります。要はApacheのURL)。ここに、例えば、/sample/ とか書けば、http://xxx.xx.com/sample/ のこと。
そこへのアクセスを、balancer://mongrel_cluster/に読み替える。
2行目のは、よく分かりません。。とりあえず1行目と同じのを書いておく。


ProxyPass / balancer://mongrel_cluster/
ProxyPassReverse / balancer://mongrel_cluster/


で、さっき読み替えた部分(balancer://mongrel_cluster/)が↓の一行目に出てくる。
こう書くことで、http://xxx.xx.com/にアクセスがあると、BalancerMemberに設定したURLにアクセスすることになる(ここでは、Apacheと同じサーバにmongrel_clusterで3つ作成している状態)。
loadfactorはアクセスされる優先順位みたい。とりあえず今は全部同じにしておいた。



BalancerMember http://127.0.0.1:4000 loadfactor=10
BalancerMember http://127.0.0.1:4001 loadfactor=10
BalancerMember http://127.0.0.1:4002 loadfactor=10


最低限必要なのはたぶん↑まで。
で、追加で↓を書けば、http://localhost/balancer-managerにアクセスすることで、バランサの管理ができるみたいだけど、まだ使ってはない。。とりあえず、書いておいた。



SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from 127.0.0.1


2.proxy.confの取り込み
基本的なことなのだと思うけど、エンジニア素人な自分はこれで1時間くらい悩んだ・・
/etc/httpd/conf/httpd.confの中に↓を書かないと、proxy.confが機能しないみたい。


Include conf/proxy.conf


3.APACHEの再起動
で、↓のコマンドで再起動すれば、とりあえず使えるようになるはず。


# /etc/rc.d/init.d/httpd restart


細かいところは、まだまだいろいろ勉強しないと。

エンジニアの社会的地位

僕は、エンジニアは価値の高い職業だと思ってる。
日本では評価とか給料が安いのは分かるし、ツラい仕事になってたりもする。

だけど、それでもそれを分かってエンジニアになろうと思った。

「時を告げるのではなく、時計をつくる」(ビジョナリーカンパニーより)

今が、何時何分かを正確に言えることよりも、時計を作り出すことの方が価値があるっていう話。

今の社会は、「時を告げる」ような仕事をしている人がまだまだたくさんいる。
というより、ほとんどの仕事がそうだ。

もちろん時計ができることの弊害もあるかもしれない。

時計ができることで、時を告げる人の仕事がなくなるとか、サービスは人から受ける方が心がこもってていいとか。

でも、それ以上に新しい技術が生まれることの価値は大きいと思う。

だから、時を告げる仕事を、できる限り時計に置き換えていきたい。
そう思ってエンジニアになることにした。

時計もエスカレーターも電子レンジも掃除機も・・新しい製品はそうして生まれてきた。

そして、これから先の未来に生まれる製品の多くは、「ロボット」と呼ばれるものになると思う。

ドラえもん鉄腕アトムみたいなものは、すぐにはできないけど、ルンバとかmiuroとか、魅力的なロボットは少しずつ実用化されてきてる。

多くの仕事をロボット化できるようになるとすれば、世の中の仕事の多くはロボットの開発だったり、保守だったりがメインになってくる。

だから、エンジニアが必要なのだ!と。

DARAO

開発しているときには、いつもDARAOで音楽を聴いてる。

http://darao.tv/

例えば、検索に「絢香」って入力すると、YOUTUBE絢香の動画がずっと繰り返される。

なので、ここ1年くらい全然音楽を買わなくなった。
この方法だと、パソコンを使ってないときには音楽を聴けないけど、音楽を聴くのは家にいるときと仕事をしているときくらいなので、十分だったりする。

それに、人気のある曲ならほとんどYOUTUBEにアップされてたりするので、いつでも聞きたいものが聴けるっていう、昔から理想だったミュージックフリーな状況ができてる。

ただ、そのうちまた著作権とかが厳しくなると、そうもできなくなるのかなぁ・・

そこでよく思うのが、一回音楽を再生するごとに5円払うとかそういう仕組みがあればいいのになって。

100回聴きたい音楽もあれば、1回だけ聴いてみたいとかもあるし、不意に聴きたくなるときとかもあったりするので、買った音楽しか聴けないというのは、あんまり嬉しくない。

もっとユビキタスな感じになって、ケータイとかでもいつでも聴ける感じの、そういう仕組みができたらいいのにな。