第4回RHGの逆襲(RHG 片手に Ruby 1.9 を読む集い)に参加しました。以下にレポートを上げてあります。

RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(4) - 第4回 RHG の逆襲
http://www.hakkaku.net/articles/20080513-204

今回の内容はガーベージコレクションです。今回は実験的に勉強会の動画をニコニコ動画にうpしてみました。ぜひご覧ください。

マイリスト RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)‐ニコニコ動画(SP1)
http://www.nicovideo.jp/mylist/6648730


Posted by あかさた
第3回RHGの逆襲(RHG 片手に Ruby 1.9 を読む集い)に参加しました。以下にレポートを上げてあります。

八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(3) - 第3回RHGの逆襲http://www.hakkaku.net/articles/20080408-183

今回の内容は Ruby のクラス・メソッド・モジュールの定義に関する部分を勉強しており、特異メソッドやメタクラスなど処理系好きのみならずオブジェクト指向好きにはおすすめの内容となっています。是非ご覧ください。

Posted by あかさた
第2回RHGの逆襲(RHG 片手に Ruby 1.9 を読む集い)に参加しました。以下に記事を作成しましたので、興味のある方はご参照ください。

八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(2) - 第2回RHGの逆襲
http://www.hakkaku.net/articles/20080226-155

主催者の yugui さんの記事はこちらです。

Posted by あかさた
Ruby 1.9 を読む勉強会「The RHG Strikes Back」に参加しました。詳細は以下に書いてあります。

八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(1) - 第1回 RHG の逆襲

また、主催者の Yugui さんの該当記事は以下のとおりです。発表資料があります。

第1回RHGの逆襲 発表資料 @ 2008年01月 @ ratio - rational - irrational @ IDM

上記記事によると開催方法をどうするかは悩みのようです。道具立てはいくつも改善案が出ているので、本質的には「人数が集まりすぎた場合の複数拠点開催は難しい」「ターゲットが分かりにくい(増えすぎ?)」あたりが問題のようです。

この辺、主催の Yugui さんがどこに価値を持っているのか(多くの人に Ruby の実装を知ってもらうとかとにかく難しいと評判の YARV の実装を知りたいとか)次第ではあるのですが、個人的には本当に RHG を書きなおす方向で勉強会が進むといいかなと思いました。

RHG は読めば私のような Ruby 初心者でもコードを理解できますし、RHG 書く側は相当わかる人にならないと書けません。勉強会として成果物も残ります。

問題はかなり重労働になりそうなことでしょうか。(^^; 私はまぁ、時間は裁量できるので多少重労働になってもあまり問題ないのですが、あまり戦力にならんしなぁ・・・。

Posted by あかさた
Kodougu のテストを RSpec で書いてみようと思ったので、RSpec をインストールしてみました。

どうしたわけか、Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)のやり方では,
RSpec on Rails がインストールできなかったので、以下を参考にインストールしてみました。

RSpec-1.1.1: Installation
http://rspec.info/documentation/rails/install.html

ruby script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec
ruby script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec_on_rails

URL が多少変わっていますが、そのせいですかね??? どうも、RubyForge の事情には疎いのでわかりかねます。(--;

そして、こちらの記事のやり方でテストデータを作成して、今テストを書いています。今のところ、RSpec のメリットは全くわからないのですが(オイオイ)、書いていて気持ちいいですね。

Posted by あかさた
そろろろRailsについて本音を書いてみるかについてです。ひがさんはよほど Ruby/Rails の心配をしてくださっているようなので、Rails ユーザの一人として非常にありがたく思うのと同時に、ひがさんの心配のいくつかは取り除くべきかなと感じました。

続きを読む

Posted by あかさた
Ruby言語パーサのruby_parser 1.0.0が初リリースによると、Ruby による Ruby パーサが公開されたようです。安定すれば相当便利に使えるでしょうから、勉強がてらさっそく触ってみることにしました。

■ ruby_parser とは?
Ruby で記述された Ruby パーサ。Ruby の構文を受け取って S 式を返します。Lisp 使いにとってはなじみのある形式です。

ホームページ
http://parsetree.rubyforge.org/

RubyForge のプロジェクトサマリ
https://rubyforge.org/projects/parsetree/

■ テスト環境
OS : Windows Vista
CPU: Code2Duo E6850
Mem: 2GB

■ インストール
gem を使えるので、楽ちんです。
gem install ruby_parser --include-dependencies


■ テストコード
実行するのは以下のコードです。

ENV['HOME'] = ''
require 'ruby_parser'

@processor = RubyParser.new
p @processor.parse("p 'Hello RubyParser World!'")


結果は以下のとおりです。

s(:fcall, :p, s(:array, s(:str, "Hello RubyParser World!")))


■ 注意
私の環境では環境変数「HOME」が空文字でもいいので宣言されていないと、require で失敗します。なぜそうなるかは、調査していないのでわかりません。あとで潜ってみるかもしれません。

■ 感想
「楽」の一言に尽きます。Kodougu に組み込んで、Ruby2JavaScript とか実装すれば、クライアントも Ruby で書けるかも、、、などと危ない妄想をしています。どれくらい安定しているのかなどは全くわからないので、しばらく使いこんでみたいと思います。


Posted by あかさた
Kodougu は、こちらの手順で国際化しています。Rails で国際化するのによく使われる Ruby-GetText-Package ですが、PC を新しくしたら、ちょっとはまってしまいました。Windows Vista 上で rake updatepo したら、msgmerge が見つからないというエラーが出ました。前のマシンでは GTK+ をインストールしていたのでこの辺の設定をしていたのですが、今回はまだやっていないことに気がつきました。なんという間抜け。(--;

以下を参照しつつ、対応しました。
http://www.yotabanana.com/lab/20060910.html

新しい PC をセットアップすると、何かしらミスをしますね。。。orz

Posted by あかさた
業務用途でRubyを使う上での課題という記事を読んで、Ruby を楽しさで図ってはいけないと思いました。この話自体は、ささださんの成果報告会のパネルネタなので、私はリアルタイムに聞いていたわけですけど、そのときは感じなかった違和感を記事から感じてしまいました。

今 Ruby が楽しい理由は、Ruby の本質とは関係ないところにあるような気がしています。

パネルディスカッションで印象的だったのは、楽天の森氏も、CTCの小島氏も“Rubyの楽しさ”を強調したことだ。小島氏は言う。「Rubyを使うようになってから、プログラマが幸せそうに働いているんですよ。このインパクトは大きい。朝から黙々とキーボードを叩いている姿は、今日も会社に行くの嫌だなと思うのとは大きな違いです」。森氏も異口同音だ。「エンジニアが楽しそうで仕事が活発になった。Rubyが広がることで日本が元気になればいい」。


今、Ruby をやって楽しい理由は三つあります。

一つ目は、Ruby 自身が楽しい言語であることです。書いて動かして試すまでのサイクルが、Java などと比較すると短いです。Python でもいいじゃんって言われそうですが、Python は Ruby のようにさまざまな書き方はできません。(いや、同程度の記述能力は持っていると思うのですが、Python の思想的にそれは合いません。)Perl や PHP は私はコードを見ただけで吐き気がします。マイナーな言語の中には、Ruby と同じ要件を備えた言語もあると思いますが、メジャーな言語では Ruby こそが楽しいプログラミング言語といえるでしょう。

二つ目は、つまらない仕事は Java プログラマ(C# プログラマでもいいが)がやってくれていることです。言い方は悪いですが、つまらないシステム開発は、言語を何を選んでもつまらないのです。

三つ目は、Ruby はまだコモディティ化していないので、Ruby をやることによって注目を集めることができることです。とかく、日陰者になりやすいプログラマが、光を浴びる良いチャンスです。また、皆が知らない新しいことをやるのは楽しいものです。

さらにもう一つ言うと、今 Ruby をやっている人は Ruby 好きの人が多いでしょうから、楽しくて当然でしょう。もし、あなたが Ruby から楽しさを得ようとしているのであれば、上記の三つを良く考える必要があります。一つ目にコミットできているなら問題ありません。二つ目、三つ目の理由が隠れているとすれば、引き際が肝心です。特にこれから参入を考えるなら、引き際を誤る可能性があります。(だからといって、つまらなくなるというだけで実質的なデメリットは何もありませんけどね。)

Ruby は楽しさだけで図ってはいけません。IT エンジニアの全てがプログラミングが好きなわけではないし、ビジネスなので楽しさ以外のメリットをちゃんと考える必要があります。

という私は Ruby 好きですけど。

Posted by あかさた
このブログの左側のメニューにはてブの人気エントリを表示してみました。はてなブックマークからサイトの注目記事を RSS で取得して、HTML に変換して表示しています。コードはざっと以下のような感じです。

require 'rss'
require 'net/http'
Net::HTTP.version_1_2

hotentries = ''
url = 'http://www.rmake-labo.com/akasata/'
rss_source = Net::HTTP.get('b.hatena.ne.jp', 
  "/entrylist?cname=&url=#{CGI.escape(url)}&sort=count&mode=rss")
rss = RSS::Parser.parse(rss_source)

rss.items.each do |item|
  hotentries += <<-EOS
    
  • #{item.title}
  • EOS end

    実運用する際は、はてなの RSS をキャッシュしたりしないと、はてなが重くなっちゃうので気をつけましょう。

    Posted by あかさた