最近、 NeverBlock の周辺の動きが面白い。

What is it all about?

NeverBlock is a Ruby library that allows developers to write non-blocking, concurrent code in a transparent manner. Meaning that you will keep coding in your traditional ways while you get the benefit of non-blocking IO operations.

LL futureの講演者控え室で、まつもとさん、高橋さんから、 その辺の話を伺う機会がありましたが、 NeverBlockはRuby-1.9普及の引き金になるかもしれない。 なぜなら、NeverBlockはRuby-1.9のFiberに依存したライブラリで、 Ruby-1.9が無いと利用できないからだ。

Building the Never Blocking Rails, Making Rails 12X Faster

They told you it can't be done, they told you it has no scale. They told you lies!

What if you suddenly had the ability to serve mutliple concurrent requests in a single Rails instance? What if you had the ability to multiplex IO operations from a single Rails instance?

No more what ifs. It has been done.

NeverBlockを使うとRailsが12倍速くなるらしい。

MySQLPlus: A Non-Blocking MySQL Driver for Ruby 1.8 and 1.9

MySQLPlus is billed as a new general purpose MySQL driver that supports "threaded access and async operations"

NeverBlockを使うために作られたMySQL用の新しいドライバらしい。

See Also

posted by Png genki on Thu 4 Sep 2008 at 09:32

Formula を使って、Ubiquityから数式を投稿するUbiquityコマンドを作ってみました。 こんな感じに、Previewも実装しています。

formula_u.png

これを使えば、いつでもどこからでも、数式を投稿することができます。 コマンドを実行すると、Formula上の数式ページにジャンプするので、 埋め込みようタグを使ってブログに投稿することも簡単にできます。

インストール

formula用Ubiquityコマンドは、以下のページからインストールできます。

配布には拙作の Gist Ubiquitifier を使っています。

ご注意

スパムプログラムからの投稿などを避けるために、 SSL+Basic認証による認証をかけています。

本コマンドを最初に実行する時に、Basic認証のダイアログが出ます。 Basic認証に使うユーザ名とパスワードは、 Formula上でコメントをする時に使ったものをご利用ください。 Formula上に1つでもコメントがあれば、本コマンドが利用可能になります。

posted by Png genki on Thu 4 Sep 2008 at 02:54

Rails-2.0.2以降から存在するBasic認証機能ですが、 この挙動をテストする方法をメモしておきます。

   1  request.env['HTTP_AUTHORIZATION'] =
   2    'Basic ' + Base64::encode64("name:password")

テストコードのなかで、上記のように環境変数を設定してから アクションを実行すればOkです。

posted by Png genki on Wed 3 Sep 2008 at 09:09

早速 GoogleのChrome を使ってみました。 Firefoxでは3秒かかるこのブログのレンダリングも、 2秒程度で完了するなど、非常に軽快に動作しますね。 デフォルトでFirebug的な開発環境がついてくるのも素晴らしいです。

Google ChromeのFAQ を読んでみたところ、

18. How can I include my site's search in Google Chrome's search options?

By providing an OpenSearch description document (OSDD), you enable Google Chrome to include your site in the list of search engines in the browser. For more information about OpenSearch, please visit http://www.opensearch.org.

と書かれていたので、XMLファイルを色々変更して試してみましたが、 なぜかまだOpenSearchを検出してくれないようです。 Beta版だからでしょうか。

自動検出はしてくれませんでしたが、 アドレスバーを右クリックして「検索エンジンを編集」から、 検索エンジンを追加することで、同様のことが実現できそうです。

ちなみに、s21gブログの検索をGoogle Chromeから実現するためには、 キーワードとともに、URLを以下のように指定すればOkです。

  • http://blog.s21g.com/?query=%s

これによって、以下のようにアドレスバーから、 指定したキーワードに続いて検索ワードを入力することにより、 s21gブログ内を検索できるようになります。

s21gsearch.png

必要な機能は実装されているようなので、 あとは自動検出ができたらいいんですけどね。 何か方法があるのかな。

posted by Png genki on Wed 3 Sep 2008 at 05:45

s21gブログが、記事の投稿時と記事を修正した時に Google Blog Search にPingを送るようになりました。

よろしくお願いします。

posted by Png genki on Wed 3 Sep 2008 at 02:08

たびたび参照したくなるのでチートシート的にまとめておきます。 より詳細な情報は Phusion Passenger users guide をご確認ください。

  • PassengerRoot <directory>
  • RailsBaseURI <uri>
  • RailsAutoDetect <on|off>
  • RailsAllowModRewrite <on|off>
  • RailsRuby <filename>
  • RailsEnv <string>
  • RailsSpawnMethod <string>
  • RailsMaxPoolSize <integer>
  • RailsPoolIdleTime <integer>
  • RailsMaxInstancesPerApp <integer>
  • RailsUserSwitching <on|off>
  • RailsDefaultUser <username>

See Also

posted by Png genki on Tue 2 Sep 2008 at 05:42

LLfutureで使用した端末用プレゼンツールをリリースいたしました。

利用法は、 READMEファイルsample/ディレクトリの中身 をご覧ください。

   1  
   2  
   3  
   4  
   5        _                  _
   6       |_)   |_     _ ._  |_) _.o| _
   7       | \|_||_)\/ (_)| | | \(_|||_>
   8                /
   9  
  10       The Web Application Framework
  11  
  12             s21g LLC 瀧内元気
  13  
  14  
  15   1/15|**                          |00:02

こんな感じでプレゼンできます。

posted by Png genki on Mon 1 Sep 2008 at 06:05

LLfutureこと、 Lightweight Language Futureサイコー?!フレームワーク のセッションで、Ruby on Rails担当ということで講演いたしました。 お聞きくださった皆様、ありがとうございました。

プレゼンで使った資料を公開いたします。

llfuture.pt

ファイル形式は自作のPuTTY用プレゼンテーションアプリ(Ruby製) のものですが、テキストファイルとして読めるようになっています。 プレゼンテーションアプリは、そのうちGitHubにUpします。

それでは、よろしくお願いします。

posted by Png genki on Sun 31 Aug 2008 at 00:49

rabbitのソースコードハイライトをするために必要なruby.stを探していたのですが、 各所でデッドリンクになっていたので、見つけたファイルの場所をメモしておきます。

http://support.rubyforge.org/svn/trunk/support/ruby.st

See Also

posted by Png genki on Thu 28 Aug 2008 at 19:50

やっつけで作ってみました。

Gist Ubiquitifier

Gist上のJavaScriptコードをUbiquityコマンド化してインストール可能にするサービスです。これを利用することで、Ubiquityコマンドインストール用のHTMLファイルを設置するサーバを持っていない場合でも、 コマンドを公開することができます。

USAGE:

まずは、Gist上でUbiquityコマンドをJavaScriptで登録します。 例えば、Gist上のURIが

http://gist.github.com/7630

の場合、

http://ubiquity.s21g.com/7630

がインストールページなります。 コマンド名は、nameパラメータで指定できます。

http://ubiquity.s21g.com/7630?name=s21g-blog-search

使えそうであれば、もうちょっとちゃんとしたデザインにしようと思います。

posted by Png genki on Thu 28 Aug 2008 at 13:54