Try Ruby

投稿者 nanki 2005-11-29 09:26:00 GMT

Try Ruby

すごい・・・すごい・・・

すごいなこれ。

ところで、babieさんを参考にプチメモ生活が始まった今日この頃、机の上の紙に「ホワイトボードの余白」と書いてある。

なんのことだろう?

ものすごく眠いときにメモしたものなので、記憶に無い。

ホワイトボードの余白にGoogle広告でも出すつもりだったんだろうか。

参考:

遅レス。


rails generatorsの位置

投稿者 nanki 2005-11-27 07:20:00 GMT

script/generate のヘルプによると、 ”#{RAILS_ROOT}/generators/[a-z]*” でいいらしいけど、ソースコードを追ったら

"#{RAILS_ROOT}/lib/generators/[a-z]*"
"#{RAILS_ROOT}/vendor/plugins/**/generators/[a-z]*"
"~/.rails/generators/[a-z]*"

の三つが対象みたい。


UTF-16LE

投稿者 nanki 2005-11-24 23:28:00 GMT

久々に文字コード関係ではまった。

Sakuraエディタなどで、保存形式にUnicodeを指定するとUTF-16で保存されることがあるみたいで(UTF-8を指定すればいいんだけど)貰ったファイルが、どう開いても開けない。

もちろん、UTF-16も試したんだけどだめ。 先頭に変な文字が付いていたのでBOM(ByteOrderMark)かと思い、検索してみたけど、どうもコードが違う。

結局、一時間ほどいじり回してわかったのは、UTF-16LEで保存されたファイルがさらに文字化けしたものであるということだった。 最初に開いたときに変な開き方をして上書きしてしまった模様。 Subversionのレポジトリから取り直したら、普通のUTF-16LEだった。

参考:

UCSとUnicode


Rails 新機能

投稿者 nanki 2005-11-19 18:46:00 GMT

つい先日、Rails1.0 RC4 がでたので、気になる点を(今回の新機能に限らず)ピックアップしようとおもったけど、数が少ないので随時追加予定。

  • redirect_to :back
  • has_many …, :include => …
  • encoding option

learning on vnc

投稿者 nanki 2005-11-15 05:20:00 GMT

vnc で同じ画面をシェアして、作業する機会があった。

これが中々おもしろくて、相手の作業が刻々と見えるから、何をしようとしているかわかりやすいし、口では伝えきれない事まで伝わるので、素早い問題解決ができる。

口でどこがまずいか、ということを説明できない初心者には最適だろうし、上級者同士なら、よりよい議論ができるはずである。 と、これは、ペアプログラミングの利点そのものである。

ペアプログラミングでは、同じ画面をのぞき込んで対話しながら作業するわけだが、マウスの動きやキーボードの叩きかたなんて見ることはないので、実際には画面だけみている。

だから、vnc のようなソフトで再現できるわけだ。

ただ、操作の排他制御をもうちょっと手軽にできるとよいな、と思った。


Five Cutting-Edge UserInterfaces.

投稿者 nanki 2005-11-14 00:13:00 GMT

Five Cutting-Edge UserInterfaces.

Googleの広告を間違えて押してしまって、forbes のページに飛ばされた先で発見。

  • Straw-Like User Interface(Inami Lab. at University of Tokyo)
  • TouchLight(Microsoft Andy Wilson)
  • Virtual VJ(Philippe Gérard)
  • Haptic Video(Tachi lab. at The University of Tokyo)
  • Shaking The World(NTT Communication Science Lab.,Taro Maeda)

の五件らしい。 こうして見ると、えらく日本勢が多い気がする。

Straw-Like User Interface

圧力などを制御して、ストローのようなインターフェースを作ったという話。 確かに、印象的かもしれないけど、10年後とかにみんながこれで機器を操作している未来はなしだな。 写真の画面がどんなものなのかわからないけど、みかんの写真の上にコップを置いて吸うと、みかんジュースが出てくるとかだったらドラえもんの道具みたいにくだらなくていい。

TouchLight

マイノリティ・レポートにでてくるインターフェースのようなもの。 カメラを数台とプロジェクタで構成されている。 どういう仕組みなのか興味がわく。 これは近い将来使われるようになってもおかしくない。

Virtual VJ

よくわからん。がんばれフランス。

Haptic Video

これまた東大、舘先生というと、ケーブみたいなのでNHKに出てた先生かな。 これって、ファントム使っただけと違うんかな・・・

Shaking The World

これはちょっとすごい。 伊藤家の食卓ネタだったか、針金のハンガーを頭にはめると、どっちかに傾きたくなるというのがあったが、これはそれの電気版。 Galvanic Vestibular Stimulation として知られている事象で、耳の後ろに弱い電流を流すと、平衡感覚が変わってしまうということらしい。

全体の感想としては、日本勢が多い割りに内容が寂しいと感じる。Cutting-Edge なんてタイトルをつけるのがいけないんだけど・・・

やはり、ビデオゲームなどのエンターテイメントが発達しているというのが、日本におけるこの辺の研究の裾野を広げている気がする。

2,5 あたりがすごいなぁ。 後はまあいっか。

今度、頭に電気流してみようかなぁ。


Enterprise Ruby.

投稿者 nanki 2005-11-12 15:47:00 GMT

Rails勉強会@大阪にて。 開発、デプロイ環境の話を、silver egg のストヤンさんがアドリブ講演。

要するに、効率のいい開発環境、デプロイ環境、運用環境、という話。

web サーバとして、lighttpd を動かし、lighttpd の機能でmod_rewrite のreverse proxy みたいにして、裏にいる各サービス単体で動くマシンに繋ぐというやりかた。

  • 複数のマシンでfcgi を直接起動(supervise で死ねない体)
  • 複数のOSでの開発
  • サービスの拡張

などが楽になる。

また、SwitchTower(gem にあり)を使う事で、迅速で柔軟なdeployが可能になっている。

rakeで、deploy,rollback などができるらしい。


飛び出す絵本

投稿者 nanki 2005-11-08 04:36:00 GMT

一枚の写真から、地面、空を認識して、垂直線などから立体を推測する、という手法。

うまくいった写真を載せてるんだろうけど、それでもすごい。

Automatic Photo Pop-up


agiledox with rails

投稿者 nanki 2005-11-06 17:50:00 GMT

rails のwiki を眺めていたら、こんなページ(TDDinRails)を発見。(見つけるの遅い)

この中で、rails のrake に agiledox 風の機能を追加するという小技が紹介されている。 要は、テストクラスのメソッド名を説明的に書いて(test_should….)、テストを書くと同時にクラスの仕様のリストまで作成してしまおう、というやり方のようだ。

task :agiledox do
  tests = FileList['test/**/*_test.rb']
  tests.each do |file|
    m = %r".*/([^/].*)_test.rb".match(file)
    puts m[1]+" should:\n"
    test_definitions = File::readlines(file).select {|line| line =~ /.*def test.*/}
    test_definitions.each do |definition|
      m = %r"test_(should_)?(.*)".match(definition)
      puts " - "+m[2].gsub(/_/," ")
    end
    puts "\n"
  end
end

の様なコードをRakefile に追加することで、

$ rake agiledox
user_controller should:
 - store user in session on successful login
 - not store user in session on unsuccessful login
...

という使い方ができるようになる。 テストに失敗しても、メソッド名から何がどう失敗しているかがわかりやすいし、TODO 管理の様にも使える。

なるほど、これならテスト駆動開発が楽しいものになりそうだ、と心の中でわくわくした。

さらに、ruby ではメソッド名に日本語が使えるので、

def test_ログインに成功したらsessionにuserが保存される。
...
end

ともできる。

これは良さそうということで、早速後輩に勧めたら、テストコードが書きたくてしょうがなくなったようだ。 テスト駆動開発定着までの近道として参考になる。

参考


Web2.0

投稿者 nanki 2005-10-16 08:10:00 GMT

最近、ajaxやGoogle のおかげで、RIA,SOA が開発者に浸透してきた感がある。 次世代のplatform としてのweb という可能性が現実味を増してきた。

Microsoft がほぼ独占していたデスクトップ市場も、リッチなweb application の登場で、デスクトップOSに依存しないアプリケーションが登場すれば、かげりが見えてくるかもしれない。

かつてはその線に一番近かったJava は、ランタイムをWindows に標準搭載しないことで押さえ込まれた感じがするが、果たして今度はどうするのか。

いまさらブラウザを搭載しないわけにはいかないし。 こんどこそ、真っ向からの勝負になるんだろうか。

今のweb はちょうどWeb2.0に向けて、アプリケーションが出始めている状態だ。 これらを統合する今のデスクトップOSのようなものが現れるに違いないと思う。

それがどんな形をとるのか、まだわからないが、今のblog が一番それに近い気がした。 著名なblogツールはプラグインという形でさまざまなサービスをひとつのページに収めているが、これはまさに、今のデスクトップOSの役割そのものだ。 (ポータルサイトのカスタマイズサービス(MyYahoo!とか)も近いものがあるけど、完結してしまっているので、ちょっと違うかな)

そういう視点でこれからの動向を眺めたら、もうちょっといろいろなことが見えてくるかもしれない。

参考: