now can add your comment to doc.okkez.net

投稿者 okkez 2010-04-10 02:27:00 GMT

Ruby reference manual (beta) の BitClust 版にコメント機能が付きました。

デザインとかちゃんと出来てないけど、動くようになっているので「一言、言いたいけどチケットを起票するのはちょっと。。。」という人はコメントしてみてください。

カテゴリ ,  | タグ  | コメントなし | トラックバックなし

そろそろるりまを使ってみませんか?

投稿者 okkez 2009-12-18 13:32:00 GMT

この記事は Ruby Advent Calendar jp: 2009 : ATND の 18 日目です。前日は @tad さん でした。

愛用しているものの一つに るりま があります。 みなさんはもうお使いですか?

まだの人は以下の説明を読んでぜひ使ってみてください。

利用方法はいくつかあるので順番に紹介していきます。

web ブラウザを使って見る方法

http://doc.okkez.net/ にアクセスします。3 カラムになっていて左から順番に、BitClust, Static HTML, Download となっています。BitClust はるりまプロジェクトで作ったリファレンスマニュアルを見るためのウェブアプリケーションです。 doc.okkez.net では nginx + thin で動かしています。nginx がキャッシュするようにしているのでまあまあの速さで動くと思います。

Static HTML はあらかじめプログラムで生成した HTML ファイルを置いています。ウェブアプリケーション版とは少しレイアウトが異なりますが内容は同じです。参照したいクラスやメソッドが既に決まっている場合に使うと高速に参照することができます。ウェブブラウザのページ内検索機能を使用すると快適に閲覧できるでしょう。

Download は月一回肉の日(毎月29日)に作成したスナップショットを置いています。http://www.ruby-lang.org/ja/man/archive/ にも同じものを置かせていただいています。

ダウンロードしたアーカイブを使用する方法

  • http://www.ruby-lang.org/ja/man/archive/
  • http://doc.okkez.net/archives/

どちらかから、ダウンロードしたアーカイブを適当な場所に展開します。 アーカイブの中には以下のようなものがあります。

  • bitclust/ ライブラリ
  • db-1_8_7/ Ruby1.8.7 向けのデータベース
  • db-1_9_1/ Ruby1.9.1 向けのデータベース
  • readme.html このアーカイブの説明
  • refe-1_8_7 Ruby1.8.7向けの refe
  • refe-1_8_7.cmd Windows 用の Ruby1.8.7 向けの refe
  • refe-1_9_1 Ruby1.9.1 向けの refe
  • refe-1_9_1.cmd Windows 用の Ruby1.9.1 向けの refe
  • server.exe Windows 用の実行ファイル
  • server.exy server.exe を作るための exerb のレシピファイル
  • server.rb *nix などで使用するスクリプト

データベースというのは、指定したバージョン向けに前処理を施したテキストファイル群のことです。

このディレクトリにパスを通して使うのが一番簡単ですが、適当なスクリプトを書いたりするのもいいでしょう。例えば、以下のような感じで書くといいのではないでしょうか。

#! /bin/sh
DOC_BASE=$HOME/ruby-refm
exec ruby -Ke -I $DOC_BASE/bitclust/lib bitclust/bin/refe.rb -d $DOC_BASE/db-1_8_7 "$@"

Windows な人は *.cmd を参考にしてバッチファイルを書くといいのではないでしょうか。

また server.exe というファイルがありますが、Windows を使っている人はこれをダブルクリックすると、ローカルで web server が起動して、自動的にウェブブラウザが起動してリファレンスマニュアルを表示します。ローカルで動いているのでネットワークにつながっていないときでも使用できます。

ダウンロードした chm ファイルを使う方法

  • http://www.ruby-lang.org/ja/man/archive/
  • http://doc.okkez.net/archives/

先ほどと同様に、ダウンロードします。 chm はバージョン別になっているので自分が使いたい方をダウンロードすればいいでしょう。1.8.7, 1.9.1 以外のバージョンを使いたい人は、自分で chm ファイルを作るといいでしょう。(ここでは説明しません)

Windows Vista 以降の人は、ダウンロードしたファイルをダブルクリックしたときに出てくる警告ダイアログのチェックボックスを外すとちゃんと見られるはずです。

Windows を使っていない人はそれぞれ自分の好きな chm viewer をインストールして使ってください。意外と色々あります。

まとめ

個人的におすすめなのはコマンドラインから使用する refe です。すごく速いです。 とりあえず使ってみてください。古いリファレンスには書いていないこともたくさん書いてあります。 足りない部分はありますが、古いリファレンスよりはかなり進化しています。使わないと損です。 そして、使ってフィードバックをください。みなさんのご協力をお待ちしています。

明日は、たこ焼き仮面の中の人ではないかと噂されているあの人が書きます!

カテゴリ  | タグ ,  | コメントなし | トラックバックなし

update backend of doc.okkez.net (webrick -> mongrel)

投稿者 okkez 2009-03-15 07:32:00 GMT

doc.okkez.net のバックエンドを更新しました。 今回の更新内容は以下のとおり。

  • 以前、znz さんが Rack 対応にしてくれたのでそれを使用して Rack 対応にしてみました。
  • AP サーバは Mongrel 一個
  • 静的なファイルは nginx から返すようにしたつもり。(といっても CSS くらいしか無いですが。。。)

速くなってるといいんですが、遅いようなら thin cluster か mongrel cluster にしてみる予定。

カテゴリ ,  | タグ ,  | コメントなし | トラックバックなし

るりまの今月の進捗

投稿者 okkez 2008-12-15 11:32:00 GMT

$ svn log -r{2008-12-01}:{2008-12-16} -q | grep okkez |wc -l
71

我ながらなかなか頑張ってる。

  • RubyGems 一通り書いた。けどまだ書いてないメソッドエントリがあるし説明不足。todo タグも消してない。
  • Rake 一通り書いた。todo タグを消してない。
  • minitest 書き始めた。意外と量が少ない模様。

最新ドキュメントは http://doc.okkez.net/ から (毎日 01:00 ころ更新予定)

うまく行けば今週中に上記三つを完了させられるかもしれない。

カテゴリ  | タグ  | コメントなし | トラックバックなし

nginx + webrick でるりまを公開する方法

投稿者 okkez 2008-10-30 15:31:00 GMT

nginx と webrick を使用してるりまを公開しているので手順と使っているスクリプトを公開しときます。

nginx の設定は以下。

Debian 風に設定ファイルが分かれているのでそれ以外の人は適当に想像して読み替えてください。

server {
    listen 80;
    server_name doc.okkez.net;
    access_log /var/log/nginx/doc.okkez.net-access.log combined;

    root /var/www/doc.okkez.net;
    index index.html;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    #proxy_redirect off;

    location / {
       root /var/www/doc.okkez.net;
       index index.html;
    }

    location /archives {
       autoindex on;
    }
    location /180 {
        include maintenance;
        proxy_pass http://localhost:8180;
        break;
    }
    # ... 180 から 191 までの設定がありますが略
}

以下の点に注意します。

  • location /archives は月次リリースのファイル置き場です
  • location /180 は Ruby1.8.0 用のパスです
    • location は バージョン番号からドットを取り除いたもの
    • proxy_pass の最後に指定しているポート番号は 8000 + 上で作成した数値

webrick 起動スクリプト

書いてあるとおりなんですが、ポイントは以下。

  • DB の作成場所などを工夫してパラメタライズしやすくした
  • –baseurl オプションを指定すると CGI で作成されるパスがそのパスを起点にしたパスになる
  • バインドされる IP アドレスは localhost なので安全
  • port は nginx の設定で使用したものを使う
#!/bin/sh
DB_BASE=$HOME/ruby/rubydoc/refm/api
BITCLUST_DIR=$HOME/ruby/bitclust

for v in 180 181 182 183 184 185 186 187 188 191
do
  ruby ${BITCLUST_DIR}/standalone.rb \
         --baseurl=http://doc.okkez.net/${v} \
         --port=8${v} \
         --pid-file=${DB_BASE}/pids/standalone-${v}.pid \
         --database=${DB_BASE}/db${v}
done

こんな感じです。

DB を全て再作成するスクリプト

#!/usr/bin/ruby

BITCLUST = '/home/xxxx/bin/bitclust'

VERSIONS = %w[
 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8
 1.9.1
]

REF_BASE='/home/xxxx/ruby/rubydoc/refm/api'

def setup_db(version)
  db = "#{REF_BASE}/db#{version.gsub(/\./, '')}"
  `rm -rf #{db}`
  `#{BITCLUST} -d #{db} init version=#{version} encoding=euc-jp`
  `#{BITCLUST} -d #{db} update --stdlibtree=#{REF_BASE}/src`
  puts "#{version} is done"
end

system "svn up -q #{REF_BASE}"

VERSIONS.reverse_each do |version|
  setup_db(version)
end

なんとなく Ruby で書いてみた。

cron に登録してるスクリプト

  • このスクリプトが動いている間はメンテナンス中の画面になるようにあらかじめ nginx にも設定しておく
  • あとは上で作ったスクリプトの組み合わせ
  • メンテ中でも archives 以下はアクセス可能
#!/bin/sh

DOC_BASE=/var/www/doc.okkez.net

mv ${DOC_BASE}/system/maintenance.html.no ${DOC_BASE}/system/maitenance.html 

for f in $(find $HOME/ruby/rubydoc/refm/api/pids -name '*.pid' -print)
do
  kill $(cat ${f})
done

$HOME/bin/bc-setup-all
$HOME/bin/bc-view-all

mv ${DOC_BASE}/system/maintenance.html ${DOC_BASE}/system/maitenance.html.no 

こんな感じです。

まとめ

webrick を 10 個も起動しているのがちょっとダサいところなんですが、まあメモリもたくさん積んでいるのでいいのかな、と。

もっといいやり方があったら教えていただけるとうれしいです。

カテゴリ ,  | タグ ,  | コメントなし | トラックバックなし

るりまを書くのに工夫していること

投稿者 okkez 2008-10-12 00:05:00 GMT

試しに見てみるサーバ。

#!/bin/sh
cd $HOME/ruby/rubydoc/refm/api
ruby $HOME/ruby/bitclust/standalone.rb \
       --baseurl=http://localhost:10088 \
       --port=10088 \
       --database=./db \
       --debug

るりまの DB をコンパイルする。

#!/bin/sh
VERSION=${1:-'1.8.7'}
cd $HOME/ruby/rubydoc/refm/api
rm -rf ./db
bitclust -d ./db init version=$VERSION encoding=euc-jp
bitclust -d ./db update --stdlibtree=src

全てのバージョン。

#!/usr/bin/ruby

BITCLUST = '/home/kenji/bin/bitclust'

VERSIONS = %w[
 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7
 1.9.0
]

REF_BASE='/home/kenji/ruby/rubydoc/refm/api'

def setup_db(version)
  db = "#{REF_BASE}/db#{version}"
  `rm -rf #{db}`
  `#{BITCLUST} -d #{db} init version=#{version} encoding=euc-jp`
  `#{BITCLUST} -d #{db} update --stdlibtree=#{REF_BASE}/src`
  puts "#{version} is done"
end

system "svn up -q #{REF_BASE}"

VERSIONS.reverse_each do |version|
  setup_db(version)
end

こんな感じです。

カテゴリ  | タグ ,  | コメントなし | トラックバックなし

るりま進捗 @ RubyGems

投稿者 okkez 2008-09-25 05:29:00 GMT

るりまで RubyGems のドキュメントを書いてます。

あと 23 ファイルで一通り終わります。 まだ、内容の精査は必要なのだけど、 RubyGems のリファレンスが日本語で読めるのはるりまだけ!(と思いたい)

カテゴリ  | タグ  | 2 comments | トラックバックなし

るりまに検索機能とかいろいろ付きました

投稿者 okkez 2008-06-12 07:52:00 GMT

羊堂本舗 脳ざらし紀行 (2008-06-11)

sheepmanさん++

俺も、1.8.7対応頑張ろう。まだ 1/3 も出来てない。

Ruby reference manual (beta)

カテゴリ  | タグ ,  | コメントなし | トラックバックなし

るりまをwebから見えるようにした

投稿者 okkez 2008-05-01 00:39:00 GMT

Rubyの各バージョンに対応させてコンパイルしたるりまをwebから見えるようにした。

http://doc.okkez.net/

一日一回更新するようにしてある。

るりま自体は CGI で動かしているので反応が遅いけど気にしないでください。

カテゴリ  | タグ  | 2 comments | トラックバックなし

るりま進捗

投稿者 okkez 2008-04-26 14:32:00 GMT

もう少しで 1.8.6 向けの組込みライブラリのレビューが完了する。 これで4/29リリースの目標は達成できた。 あと少しだけタスクが残っているのでこの週末で片付けよう。

これが終わったら、1.8.7に合わせて修正していく作業がある。

カテゴリ  | タグ  | コメントなし | トラックバックなし