RDE インストール

  • RDE を落としてくる

http://rubyforge.org/frs/?group_id=3959

  • インストール

特に何も気にせずに、そのままインストールしたものの、デバッグができない。調査したところデバッグ設定をしていないことに気づいたので、下記サイトを参考にしつつ日本語設定などする。
http://d.hatena.ne.jp/noborunrun/20080125/1201220983
# 日本語環境設定したらデバッグ設定もなぜかされた
しかし、それでも動かない。debug2 というのが存在しないからということなので、RDE をインストールした先のパスで install.rb したら debug2.rb がインストールされて動くようになりました。

ただもともと求めていた、Class 関係を見るためのツールではなくて、あくまでもデバッグするための開発環境というところでした。ここは楽せずに地道にコードを読んで Class 関係を把握した方が早いかもしれません。何より目的は RSS Lib のソースコード理解であるというのに、横道にそれ過ぎた感があります(−−;

RSS Lib の使い方

RSS Lib のソース解析をするに当たって動きをまずは見てみたいと思います。材料はこのサイトの RSS を使います。

RSS
http://d.hatena.ne.jp/bazz/rss2
#!ruby

require 'rss'
require 'kconv'

url = "http://d.hatena.ne.jp/bazz/rss2"
rss_cont = open(url) { |u| u.read }
rss = RSS::Parser.parse(rss_cont, false)

print "- channel\n"
print "-- title: " + rss.channel.title + "\n"
print "-- url: " + rss.channel.link + "\n"
print "-- description: " + rss.channel.description + "\n\n"

print "- item 1\n"
print "-- title:\n" + rss.channel.item(0).title.tosjis + "\n"
print "-- url:\n" + rss.channel.item(0).link + "\n"
print "-- description:\n" + rss.channel.item(0).description.tosjis + "\n"

# print "- items\n"
# i = 0
# rss.channel.items.each do |item|
# 	i = i + 1
#   print "item " + i.to_s + "\n"
#   print "title: " + item.title.tosjis + "\n"
#   print "url: " + item.link + "\n"
#   print "description: " + item.description.tosjis + "\n\n"
# end

items で全ての item にアクセスできますが、量が多かったので最初のひとつだけ表示するようにしました。
それから UTF-8 では文字化けしてしまうため(Windows のコンソールでは Shift-JIS であるため)、kconv を require し tosjis しています。
出力結果は以下の通りです。

- channel
-- title: window.closed
-- url: http://d.hatena.ne.jp/bazz/
-- description: window.closed

- item 1
-- title:
[Ruby][Program] RDE インストール
-- url:
http://d.hatena.ne.jp/bazz/20090501/1241184289
-- description:

		<div class="section">
			<ul>
				<li> RDE を落としてくる</li>
			</ul>
			<p><a href="http://rubyforge.org/frs/?group_id=3959" target="_blank">http://rubyforge.org/frs/?group_id=3959</a></p>
			<ul>
				<li> インストール</li>
			</ul>
			<p>特に何も気にせずに、そのままインストールしたものの、デバッグができない。調査したところデバッグ設定をしていないことに気づいたので、下記サイトを参考にしつつ日本語設定などする。</p>
			<p><a href="http://d.hatena.ne.jp/noborunrun/20080125/1201220983" target="_blank">http://d.hatena.ne.jp/noborunrun/20080125/1201220983</a></p>
			<p># 日本語環境設定したらデバッグ設定もなぜかされた</p>
			<p>しかし、それでも動かない。debug2 というのが存在しないからということなので、RDE をインストールした先のパスで install.rb したら debug2.rb がインストールされて動くようになりました。</p>
			<p>ただもともと求めていた、Class 関係を見るためのツールではなくて、あくまでもデバッグするための開発環境というところでした。ここは楽せずに地道にコードを読んで Class 関係を把握した方が早いかもしれません。何より目的は RSS Lib のソースコード理解であるというのに、横道にそれ過ぎた感があります(−−;</p>
		</div>

Parser の parse メソッドを使うだけで、準備完了し後は読み込むだけ。普段は C 言語使っているだけに、これだけ簡単にできるのは本当に気楽でいいところです。すばらしい。

Ruby 統合開発環境

vim-ruby

Ruby ではプログラムするときのタブ幅が 半角スペース x2 なので、
何かしらないかと検索してみたところ vim-ruby というものがあることがわかった。
vim-ruby ではシンタックスハイライトや自動補完にも対応しているとのこと。
で、入れてみたんだけどインデントが 4 のままでした orz
で、シンタックスハイライトも変わらず。。。今までのカラーリングどおり。。。
カラーリングどおり?そういえば既にシンタックスがカラーで表示されている。
落ちとしては gvim には vim-ruby が最初から入っているようでした。
なのでシンタックスハイライトは既にできているということ。。。


気になるのは vim-ruby が入っているにも関わらず、インデントが 4 のままであること。
調べてみるとファイルタイプによって、動的に読み込まれる Plugin があるので、
そこに以下の設定を追加しました(今回の場合は ftplugin/ruby.vim へ追加)。

setlocal tabstop=2
setlocal shiftwidth=2

参考サイト
http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/filetype.html


これで他のファイルではインデントが 4 のまま、
ruby ファイルだけ編集時には自動的にインデントが 2 となるようになりました。


でも、自動補完ができない。。。
色々サイトを見ているのだけど、どこにも Ctrl+x, Ctrl+o とかってしか書いていない。
Shift も一緒に押すのかとか色々試してたんだけど、
単純につなげて Ctrl+x, Ctrl+o と押せば補完候補が表示されることがわかった。
その後は Ctrl+n または Ctrl+p で候補を選んで Enter キーを押せばできます。
これは素晴らしいですね。

RDE

これから Rubyソースコードを読むに当たって、
Class 関係などが分かればいいなと思い、
VisualStudio の ClassView に近いものがあれば良いと思い、
Ruby統合開発環境を探してみた。
色々あるみたいで良く分からなかったので、
RDE というメジャーと思われそうなのを選んだ。
RDE
http://rubyforge.org/frs/?group_id=3959
まだ使っていないので、後日メモしておく。

Vim でスムーズにスクロールする

以前から気になっていたのだが、Vim のスクロールは iPhone のようにスムーズではなく、
どっちにスクロールしたのか視覚的によく分からなかった。
それを解決するために調査したところ、ちょうどいいプラグインがあったので入れてみました。


smooth_scroll.vim
http://www.vim.org/scripts/script.php?script_id=1601


ソースの中身は割りとシンプルで、
スクロールする分だけ j or k キーを押すのと一緒です。
ですが、それだけだと一瞬でスクロールしてしまうので
時間分ループすることで遅延させているようです(ここはソースに書いてあるようにカスタマイズ可能)。
# vimscript が分からないので何となく感覚で述べてます。。。


これで Ctrl+D, Ctrl+F で下方向へ、Ctrl+U, Ctrl+B で上方向にある程度視覚的にスクロールしてくれます。
微調整は下記の値を変えてやることでしてください。

let g:scroll_factor = 5000

フォントの変更

フォントのインストール

Vim のフォントを変更したくなり、ゆたぽんフォントを入れてみました。コーディング用のフォントというコンセプトが面白い。

  • ゆたぽんフォント

http://net2.system.to/pc/font.html


今までは特にフォントを意識したことがなかったのですが、
iPod Touch の綺麗なフォントを見ると美しいと思うように
毎日触れるものであれば実は重要なのではと感じたために入れてみました。


一画面分の情報量を今まで優先させていたので、
フォントサイズを 10px としていましたが、
ゆたぽんフォントに合わせて 12px としました(じゃないとフォントが潰れる)。
情報量の少なさに違和感がありますが、これで続けてみようかと思います。


以下躓いたところなど。。。

Windows でのフォントのインストール方法

今までフォントに関わることがなかったので知りませんでした。
流れとしては以下の通りです。

  1. フォントを落としてきます。
  2. コントロールパネルよりフォントを選択
  3. 上記に落としてきたフォントをドラッグ&ドロップ


参考サイト(さすがフォントのサイトだけあってとても見やすいフォント使ってます)。
http://fonts.web.fc2.com/k/

gvimrc で guifont が反映されない

gvimrc に下記フォント設定をしてもフォントが反映されませんでした。

set guifont=ゆたぽん(コーディング):h12:cSHIFTJIS


これで躓いたのでメモしておきます。
gvim の UI 上でフォントを設定することでフォントが変更されることは分かりました。
ということは何かしらの理由で gvimrc の設定が読み込まれていないことになります。
一番怪しいのは gvimrc で日本語を使っているところです。
しかもファイルの文字コードUTF-8 でした。
調査してみると案の定、同様の症状にあっている方がいました。
http://blog.kaihatsubu.com/archives/001322.html


cp932 というのは分からなかったため、とりあえず Shift-JIS にして保存しなおしました。

:set fenc=shift-jis
:wq

参考にしたのは以下のサイト。
http://advweb.seesaa.net/article/3074705.html

RSS Library

オープンソースで勉強したいと思い、
いい教材がないか探していたところ rubyRSS Library があることを思い出した。
ruby の RSS Lib

学習がてら、この Library の解読をしばらくしてみようかと思います。
ひとまず上記 URL から 0.2.3 を落としてきました。

フォルダ構成は下記の通り。
最上位層には説明関係のファイルとフォルダ郡があります。
大事なところはきっと lib フォルダ下ですね。
そのほかは test がテスト用のコードで、sample がサンプルの rss ファイルと思われます。

│  README.en
│  README.ja
│  Reference.en
│  Reference.ja
│  setup.rb
│  Tutorial.en
│  Tutorial.ja
│  
├─lib
│  │  rss.rb
│  │  
│  └─rss
│      │  0.9.rb
│      │  1.0.rb
│      │  2.0.rb
│      │  atom.rb
│      │  content.rb
│      │  converter.rb
│      │  dublincore.rb
│      │  image.rb
│      │  itunes.rb
│      │  maker.rb
│      │  parser.rb
│      │  rexmlparser.rb
│      │  rss.rb
│      │  slash.rb
│      │  syndication.rb
│      │  taxonomy.rb
│      │  trackback.rb
│      │  utils.rb
│      │  xml-stylesheet.rb
│      │  xml.rb
│      │  xmlparser.rb
│      │  xmlscanner.rb
│      │  
│      ├─content
│      ├─dublincore
│      └─maker
│              
├─misc
├─sample
└─test
 

lib 下で気になったのは itunes.rb です。
きっと Podcast 用ですね。中を見てみるとどうやら itunes タグというものがあるらしい。
rssPodcast ができるとは知っていましたが、
深く考えてはおらず itunes タグというものがあることを知りませんでした。
以下のサイトに記載がありました。
iTunes で Podcast を公開

と何も見ずに推測してたら実際には itunes で便利なように著作者やカテゴリーなどの付属情報に関するタグでした。
実際のデータについては enclosure などに記載します。

とりあえず今日はここまで。