Ruby

Java vs Ruby(?)、その先へ

Ruby(Ruby on Rails)はJava一辺倒だったWebの世界に新風を吹き込んだ。 (Ajaxもそうだが、今は置いておく。) RubyとJavaはどっちがすぐれているかという議論に行きがちだが、 むしろお互いに補い合う関係にあるような気がしてならない。 さらにいうとPerlも…

XRuby

いまさら? Ruby(ソースファイル) → XRuby → Java(バイトコード) というもの。 JRubyとはまた違ったアプローチで、Rubyの可能性を広げるものと言える。 一気にRubyが広がるきっかけになるかも。

for 〜 inはRubyとJavaScriptでは違う

Rubyの場合 array = %w{ inariya kato nakamoto takagi shimura } for e in array puts e endと書けるが、 JavaScriptの場合 var array = ["inariya","kato","nakamoto","takagi","shimur"]; for(i in array) { alert(array[i]); }と書かなければならない。 …

クロージャの復習

しつこいようだが、もう一度。 Procを使ったやり方 def closure1 arr, &proc print "start !\n" proc.call arr print "end !\n" end p = Proc.new {|arr| arr.each do |m| puts "put #{m} !" end } @curry = %w{ garlic ginger red-pepper onion tomato spic…

CodeGear Ruby IDE

Matz:コード補完を実現しているのがすごい--CodeGear Ruby IDE - ZDNet Japan いつのまに。 コード保管機能がついている。ありがたい。

Ruby on Railsで、RSSを読み込む

RubyでRSSシリーズ最終回(笑) 外部のRSSを取り込んで、DBに格納するアクションを追加 def read url = params[:url] rss_source = nil open(url) {|u| rss_source = u.read } @rss = nil begin @rss = RSS::Parser.parse(rss_source) rescue RSS::InvalidRSSE…

テーブル間の関連(リレーション)がある場合の登録処理

RSSを生成するWebアプリケーションで、以下のような関連があるとする。 Channel:1 -> Item:N この場合のスキーマとモデルクラスは以下のようになる。 db/schema.rb create_table "channels", :force => true do |t| t.column "about", :string, :limit => …

Rubyにも欠点が?

あまりにも自由なため、個人差のあるコーディングになってしまう気がする。 Javaの場合はある程度限られているため、そういうことはそんなにはない。 やはり欠点の無い言語など無いのである。

Ruby版Plaggerだそうです

http://journal.mycom.co.jp/articles/2007/05/09/Pragger/index.html Plagger自体つかったこと無いのに、知ったかすみません。

JRubyと関数型言語

「Javaに並列処理と関数型言語の要素を」、ティム・ブレイ氏 − @IT 「本家Rubyより速い」、JRuby開発者に聞く − @IT ↑こんな記事がでてますな。 Ruby on Railsがそのまま使えるということで、JRubyは今後注目されそうな予感がする。 関数型言語が並列化に…

RubyでOracle

Ruby DBIというものがあるらしい。 Ruby DBI モジュールを使う RubyからいろいろなDBにアクセスできる。すばらしい。 次の仕事で使おうかな。

Ruby on Railsを高速にするWebサーバ2

rails-asyncweb http://rails-asyncweb.sourceforge.net/ JRuby上でRubyを動作させることで、WEBrickの約10倍の速度をたたき出す。 ただし、Java動作環境が必要となる。

Ruby on Rails-1.2.3、Ruby-1.8.6公開

http://journal.mycom.co.jp/news/2007/03/15/016.html 加速してきましたね。もはやこの流れは止められない(?)

楽天がRuby on Railsを採用

テクノロジー : 日経電子版 ついにここまで来たか。しかし、どうやって速度を出すか、見ものである。 俺の仕事が増えれば良いが。ま、楽天からは呼ばれないとは思うが。

Ruby on Railsを高速にしてくれるWebサーバー続々

少し前までは、RoRを速くすると言えば、FCGI+lighttpdが多かったような気がするが。 最近メジャーになりつつあるMongrelだけではなく、 LiteSpeed(次期Apacheといわれる) Nginx(ロシア製) というのが出てきている。 これらはRubyだけでなく普通のCGIも速くし…

Ruby on RailsにはApache-2.x + Mongrel + Pound

この組み合わせで実用的な処理速度が得られそうである。 Apache-1.3 + lighttpd + FastCGIでもいいが、Apache-1.3では負荷分散ができないという。 ようやくRuby on RailsによるWebアプリケーションが実用段階に入ってきたといえるかも。 と思ったら、近頃Pyt…

ブロックの使い方

yield()を使う場合 def block1 yield end block1 do puts "ok" end call()を使う場合 def block2(&b) b.call end block2 do puts "ok" end引数を使う場合は、定義文でyieldまたはcallメソッドに引数を付け、 ブロックの中のdoまたは{}の始めのところで、|p|…

メタプログラミングの普及は正常な進化

メタプログラミングとは、クラスなどのメタ情報を処理の中で操作するプログラム手法で、 Java等ではあまり使われない。なぜならコンパイル時にクラスの情報は固定化されてしまうため で、せいぜいリフレクションでメタ情報を読み出す程度である。 処理中にメ…

Rails-1.2.2 & GetText-1.9.0でOKらしいが

自作の_()を書き込むテンプレートも修正無しでもうまくいった。 ありがたい。だがしかし、もはやUTF-8以外ではまともに動かなそう。 世の中これでいいのだろうか?

Ruby-GetText用のscaffoldを自作

例の_()が面倒なので何とかならんかと、gettext_scaffoldのプラグインを インストールしようとしたらなぜかインストールできない。 しかたが無いのでRailの中のscaffoldのソースを眺めていたら、 テンプレートを書き換えればうまく行くことに気が付いた。 早…

GetTextのpoファイルはpoEditで編集

こんないいものがあったとは知らなかった。 しかしホームページがリンク切れ状態で参った。 ↓ここなら大丈夫そう。 Poedit download | SourceForge.net 翻訳メモリを使うと、過去に作ったmoファイルを読み込んでくれるので一回作ったものが 生かせて幸せにな…

Selenium on RailsがEUC-JPで動かない?

と思ったら、*.selファイルはEUC-JPではなく、UTF-8じゃないとだめだった。 半日、はまってしまった。とりあえず、動いてよかった。 しかし、我ながら、レアな使い方で自らはまる才能には、あきれる。

Selenium on Rails

なかなか良さそうだ。 まず、テスト用のデータベースを作る。 mysql> create database ***_test;Selenium on Railsのインストール > ruby script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-railsTestスイートの作成 > script…

Ruby on Rails 1.2.1

出たか。今まで作ったやつ(1.1.6)がうまく移植できると良いが。

Windows版Railsで開発したWebアプリケーションをLinux上のApacheで動かす

まる2日費やしました。orz Linux(Debian)上で動かす場合は以下のようにする。 RubyのCGIが動く設定をする(mod_ruby)。 /etc/apache2/apache2.confを編集して、Railsのトップ画面(public/index.html) が表示されるように設定 (Alias or リンク)と、Directory…

ブロック構文(クロージャ)を使ってみる

かなり簡単に出来る。しかし、良い場面が見つからない。 # 定義:do end でもよし closure = Proc.new {|e| p e } # 呼び出し closure.call "Hello."基本的に、戻り値は返せないようである。 とりあえず、同じソース内で、コピペが連なっているような場面で…

メタプログラミングとは

Part1 なぜ仕事で使うとうれしいのか | 日経 xTECH(クロステック) Javaで言うところの、リフレクション、JavaScriptでいうと、Prototypeを使ったプログラムって ことですか。なるほど。 しかしこれがあるゆえに、RadRailsにはリフレクションリファクタリン…

RubyでRSS

Ruby-1.8.4から標準でRSSパーサ(生成も可)が入っているので、それを使ってみる。 http://www.cozmixng.org/~rwiki/index.rb?cmd=view;name=RSS+Parser%3A%3ATutorial.ja RSSのパース require 'rss/1.0' require 'rss/2.0' require 'rss/dublincore' require …

Railsのエディターに過度な期待は禁物

EclipseのJavaのときのような至れり尽せりな機能は期待できない。 例えば、リファクタリング、メソッドの宣言を探したり、変数名、メソッド名の補完 などの、タイピングが遅い俺には一番ありがたい機能が無い。 なので、ひょっとすると、mule(meadow)辺りの…

フレームワークを使う場合に注意すべきこと

ある処理をライブラリとして外出しにしたいとき、単体で動くようにしなければならない。 その場合、今までフレームワーク独自のものを使って作ってきたものを直す必要が出てくる。 特にサービスのように再利用を前提としているものは注意が必要である。