カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年
知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。
Python Library Reference をざっと眺めてみました。メソッドの説明などを読んだ限りでは、内容の質の面では Ruby リファレンスマニュアルが劣っているわけでもないなというのが感想です。
比較して Python のそれが良い点は、
といったところでしょうか(マニュアルとして当たり前なところですね)。この辺は今回の整備で解消されるはず。
ドキュメントの話とはずれますが、CPAN を使っていて思うのは、一箇所で済むのは楽だということです。ドキュメントやプログラムが集約されている場として、リファレンスマニュアル、るびま、RAA、RubyForge などがありますが、CPAN のような「そこでだけ調べれば良い感」のあるサイトがほしいですね。
env 派は結構多い模様。ただ、Ruby に関しては、捕獲されているコードの絶対数が少ないような気がします。
日本全国7万3000人(適当)のシステム管理者のみなさん、あなたのサーバとシステムを守るために何をしていますか?
サーバ運用部門がいて強力なバックアップをしてくれる、便利な監視ツールなどが揃ったアプリケーションサーバを使っている、運用フェイズも当然契約に入っている業務システム、といったケースと違い、新しいウェブサービスを立ち上げようという場合には、自分たちで管理/監視ツールを用意しなくてはいけません。そうしないと夜にちゃんと眠れなくなります。
開発よりもその後の運用の方が大変なわけですが、開発に注力しているときには運用まで気が回らないのが世の常です。後の祭りです。
そこで FiveRuns です。Web 2.0 Systems Management を標榜する FiveRuns では painless な、つまり苦痛を伴わないシステム管理を可能にします。
……とここまで書いて気がついたのですが FiveRuns を使わずにTourだけ見て妄想していました。ということで、ちゃんと使ってレビューします。
signup してもアカウントはすぐには発行されません。申し込んでから一日くらいで、30日間のトライアルアカウントのログイン情報のメールが来て使えるようになります。
ログイン画面はこんな感じです。****.fiveruns.com というサインアップの時に指定したサブドメインの URL にアクセスします。
ログインしたらまずはセットアップです。3 STEP の手順に従って作業を行うと設定が完了します。
STEP 1 はクライアントソフトのインストールです。FiveRuns は管理対象のホストにクライアントソフトをインストールし、サーバへ情報を送ります。賢い方法ですが、業務で使うには抵抗がありますね……Windows クライアントソフトもありますので、試しに使うなら自宅のデスクトップにインストールしてみるのも手です。
クライアントソフトは、Mac OS X、Linux(RPM)、Linux(RPM 以外)、Intel Solaris、Sparc Solaris、Windows 版が用意されています。インストーラつきなのが嬉しいところです。ダウンロードページは Javascript が使えるブラウザでないとたどり着けませんので、手元のデスクトップやノートの PC でダウンロードして、サーバにばら撒くのが良いと思います。
インストーラのサイズが 30MB ちょいと大きいのは、クライアントソフトが Java 製で JRE 同梱のせいですね。インストール自体は実行するだけですぐ終わります(Gentoo Linux と Debian GNU/Linux 3.1 と Windows XP で試しましたが問題なくインストールできました)。
クライアントソフトをインストールしたら STEP2 です。管理対象にするホストを選びます。ここでは、OS、CPU の種類、メモリ、ディスクなど基本的な情報が表示されています。Windows だとうまく情報が取れないようですね。うちだけかな。管理対象にしたければ、「Manage this system?」にチェックを入れます。
最後に STEP3 で、サーバをグループ分けします。デフォルトでは OS ごとに分かれますが、本格的に使うなら役割ごとサービスごとに分けるのが良いと思います。
クライアントソフトのインストールと管理対象を選択すれば使い始めることができます。もちろんクライアントソフトをインストールさえすれば後からでも管理対象のホストは追加できます。
システムの健康状態を人目で確認できます。グループ/ホストごとのイベントの発生件数、イベント一覧、Availability (稼働率?)などが表示されています。
スクリーンショットの右上に Messages という枠があるのが分かると思います。FiveRuns はいくつかのアプリケーションをサポートしており、それに特化した監視もしてくれます。いまのところ、Apache 2.x、MySQL 5.0.x、JBoss AS 4.0.x、Tomcat 5.5.x に対応しています(MySQL 4.x も認識してくれます)。FiveRuns ではこういったアプリケーションを Subsystem と呼んでいるようです。
Add your MySQL, Apache systems といったリンクをクリックすると、最初の設定の STEP2 で見たホストごとの設定画面に飛びます。ここで Subsystem を監視対象にするのかを選択します。
Apache を監視可能にするには mod_info や mod_status の設定が必要だったりと Subsystem ごとに設定が必要ですが、丁寧なヘルプがあります。
CPU 負荷やトラフィックといったリソース情報をグラフで確認できます。Mac OS X のファインダみたいにして表示対象を絞り込みます。
Apache では、Error Responses/sec, Requests/sec, Capacity(何だろう), Page Response Time の 4 項目があります。前者二つは mod_info や mod_status を有効にしていないとログファイルの場所が規定のパスでないと採れない模様。
Linux では、CPU Busy、Available Memory, Memory Page-in Swap per Sec., Memory Page-out Swap per Sec., Disk Transfer Speed (AVG), NIC - Total Bandwidth があります。NIC ごとにグラフ化してくれるのかは不明。I/O Busy もあるといいのに。View:All にすると、とれそうなデータはすべて確認できることがわかりました。これはすばらしい。
MySQL では、Buffer Pool Free, Tables waiting for Locks Count, Active Threads, Queries/Sec (Avg), Key Buffer Used(%), Open Client Connections, QCache Free Memory(%), QCache Hit Rate, Innodb TX Count, Tables Open などがありますが、MySQL に詳しくないので適切な項目なのかは良く分かりません。
Code Golf をはじめてみました。今のところ、99 Bottles Of Beer を Ruby で書いて 229 bytes です。Ruby でトップの人が 183 bytes なわけですが、どうやって縮めてるんだろう。まずは 200 bytes 切るのを目標にします。
しかし、楽しいですね、これ。可読性なんてまったく無視してとにかく短く書くというのは。パズルを解くのに似ている感じ。
まずは入力を数字の配列にして後は長いメソッドチェーンが一つというコードを書いたら、一応 pass はしたものの 194 bytes と膨れ上がりました。配列操作だけで片付けずに端から順番に処理していく方が短くなるんでしょうね。
ロジックは変えずに collect を map にしたりなど表現の置き換えをしたところ、164 bytes まで減りました。
通称「るりま」ことRuby のリファレンスマニュアルを刷新するプロジェクトですが、いつのまにか第二段階になっていました(いや、私が ML を読むのをさぼっていただけなのですが)。
第一段階では、リファレンスマニュアルのソースを旧形式 (rwiki) から新形式 (bitclust) への変換を行いました。この第二段階ではマニュアルのソースに足りていない項目を補完します。
準備作業は青木さんの書いた第 2 段階の作業方法の通りですが、ちょっとメモっておきます。
少なくとも以下のソフトウェアがインストールされている必要があります。
適当に作業用のディレクトリを作ります。ここでは rubydoc とします。
$ mkdir rubydoc $ cd rubydoc
新リファレンスマニュアル用のプログラムを svn レポジトリからチェックアウトします。
$ svn co http://i.loveruby.net/svn/rubydoc/bitclust/trunk bitclust
新リファレンスのソース(これが作業する対象)を同じくチェックアウトします。
$ svn co http://i.loveruby.net/svn/rubydoc/doctree/trunk refm
ここからが手順書に書いてある内容です。
$ bitclust/bin/bitclust.rb -d ./db init version=1.8.5 encoding=euc-jp $ bitclust/bin/bitclust.rb -d ./db update --stdlibtree=refm/refm/api/src
この段階で rubydoc ディレクトリ以下には、
$ ls bitclust db refm
の 3 ディレクトリが存在します。
1.8.0 - 1.8.5、安定版 HEAD、開発版 HEAD の 8 つをダウンロード/チェックアウトします。これを src ディレクトリに置くとします。
$ mkdir src $ cd src $ for i in 0 1 2 3 4 5;do wget http://www.t.ring.gr.jp/archives/lang/ruby/1.8/ruby-1.8.$i.tar.gz; tar fvxz ruby-1.8.$i.tar.gz; done $ wget http://www.t.ring.gr.jp/archives/lang/ruby/snapshot.tar.gz $ tar snapshot.tar.gz && mv ruby ruby-1.8 # 安定版 HEAD $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src login $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/src co ruby # 開発版 HEAD $ mv ruby ruby-1.9.0 $ rm *.tar.gz
さらに rdoc データベースを作成します。
$ for i in 1.8 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9;do rdoc --ri --op ris/$i ruby-$i;done
これで準備完了です。
rubydoc ディレクトリ以下には、
$ ls bitclust db refm src
の 4 ディレクトリが存在します。
1.8.4 以下だと BitClust の一部コマンドが動かない(rdoc 関係)ので「必要なソフトウェア」を修正しました。
試しに Ruby 関連のいくつかのサイトだけ検索対象とした検索エンジンを作ってみました。Google のアカウントを持っていれば数分で作れます。簡単。
基本的には全文検索エンジンを自前で用意する代わりに使われていくのでしょうね。検索ボックスだけでなく検索結果も自分でデザインしたページに埋め込めますし、確実に全ページを検索対象にしたいとか、ページが更新されたら 5 分以内に検索対象にしたいとか、特定のページだけ対象外にしたいといった細かい制御が必要でなければ十分かな。
単純な検索以外の活用方法が色々発見されるかも。例えば、特定の語句の検索結果ページをその語句の索引ページとして使うとか。
Google Co-op は特定の領域の不特定のサイトを対象とした検索も目的にしているので(というかこっちがメインかな)、検索対象を追加したりなどエンジンのカスタマイズ作業を複数人で協力してできるようになっています。例えば、試しに作った Ruby 検索エンジンに「プログラミング言語 Ruby」に関連するサイトだけ登録していけば、宝石の Ruby やハンドルネームの Ruby を含まない、ノイズの少ない専門検索ができます。
一方、閉じた検索エンジンになってしまうので、Perl の人や Python の人が Ruby について触れた記事は検索できないというデメリットも生じます。やはりそこのフォローもあって、登録サイトだけを検索対象とするのではなく、登録サイトで検索結果へバイアスをかける設定にもできます。そうすれば、「プログラミング言語 Ruby」関連サイトは上位に出やすいけれど、それ以外も検索結果に出るようになります。
RubyInsideがさっそくGoogle-powered Ruby Searchを作ってました。Firefox 用の検索プラグインも用意されています。
RubyInside によれば、Ruby Logos Available to Download ということで、今の公式サイトに使われているロゴをダウンロードできるようになりました。
このロゴを使ったステッカーがほしいですね。ノートパソコンに貼り付けたいです。
最近のコメント:
RSS
![]()
This work is licensed under a
Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).
_ ささだ [あぁ、そんな罠だったんですねぇ。こちらでなんとかできないか検討します。]