フォーチュンサモナーズ
最新 追記

Don'tStopMusic

2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|02|03|04|05|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|

カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年

知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。


2007-10-02 この日を編集

_ [Ruby] 先取り!Ruby 1.9.1 を勝手に補足 このエントリーを含むブックマーク

先取り!Ruby 1.9.1 は、ささださんによる新しい Ruby の解説です。

「Ruby 1.9(実際の予定)」で挙げられている項目のうち、記事ではあまり触れられていないものについて少し。

新しいパッケージ機構の導入(RubyGems)

RubyGems が標準で添付される予定です。Rubyist Magazine - シリーズ パッケージマネジメント 【第 1 回】 RubyGems (1) で書かれているように、Ruby のパッケージ管理はいくつか選択肢がありました。が、Rails が RubyGems を採用したために現在では RubyGems が Ruby のパッケージ管理のデフォルトになっています。これを受けて、次のバージョンの Ruby では RubyGems を取り入れることになりました。

新しいライブラリの追加

標準添付ライブラリの追加と削除が行われます。他のライブラリに置き換えられたライブラリ、機能が Ruby 本体に組み込みなったライブラリ、メンテナンスをする人がいなくなったライブラリなどが削られます。一方 JSON のようなよく使われるであろうライブラリが追加される予定です。

何を追加して何を削除するかについては、ML で話し合われています。興味のある方は [ruby-dev:31320] Import RubyGems to Ruby 1.9 のスレッドを確認してみてください。削除予定ライブラリの最新のリストが [ruby-dev:31924] にあります。

若干の文法の変更

先取り!Ruby 1.9.1 で紹介されているChanges in Ruby 1.9 が一番まとまった情報です。文法および組み込みライブラリへの変更点ですね。Ruby2 とあるものは将来のバージョン 2.x へ持ち越し、EXPERIMENTAL とあるものは実験的に導入されただけなので、1.9.1 に入るかもしれませんし入らないかもしれません。1.9 を試して分からない挙動に出会ったらこのページを参考にすると便利です。

バージョン番号について

追加でこれも。1.9 からはバージョン番号の付け方が変わります。今までは 1.7(開発系)1.8(安定系)と、マイナーバージョン番号が奇数か偶数かで開発版と安定版を区別していました。1.9 系は 1.9.0(開発版)、1.9.1 1.9.2...(安定版)となる予定です。バージョン番号に関するやりとりのまとめページ:リリース予想

_ [適当] ANA のマイレージポイントを楽天ポイントに交換 このエントリーを含むブックマーク

年末でマイルが無効になるというので、楽天ポイントに変換してみました。ポイント口座に反映されるまで1週間から4週間かかるとのこと。

反映までかかる時間と、楽天ポイントの口座番号手入力で指定するだけというところから、おそらく人手で処理しているのだと推測しました。おそらく楽天はポイント交換者リストを日毎か週毎で ANA からもらって、ポイント付与ツールみたいなウェブアプリでぽちぽちとポイントを付与させているのだろうなあと。ポイントという擬似マネーを扱うので例外系の作りこみが大変になるので、システムだけで連携させるには初期コストがかかりすぎます。

表はスマートに見えても内部の運用はバタ足というのは多いですよね。やっぱ。あ、ANA と楽天の件は 100% 想像ですけども。


2007-10-04 この日を編集

_ [Rails] 2.0 preview このエントリーを含むブックマーク

先月末に Rails 2.0 preview がリリースされました。Resources 周りが一番の変更点でしょうね。メジャーバージョンアップですが後方互換性も高いようで、劇的な変化というよりは正常な進化という印象です。

変更点について原文を読むのが面倒な方は、Rubricks Project - Rails2.0Preview登場 がまとめてくれていますので参考になると思います。

_ [適当] NHK 時計 このエントリーを含むブックマーク

NHK 時計がすごいです。何がすごいのかといいますと、新技術への対応スピードです。

NHKは4日、Adobe Systemsのアプリケーション開発環境「AIR」を利用したアプリケーション「NHK時計」のテクニカルプレビュー版を公開した。

AdobeのAIRに対応した「NHK時計」のテクニカルプレビュー版が公開

アプリとしてはおなじみの NHK の地味な時計を表示するだけなのですが、

と、およそ留まることを知りません。

ところで Silverlight 版が出ないのは NHK 時計の選択眼なのでしょうか。

_ [Ruby] net/httpsライブラリに脆弱性 このエントリーを含むブックマーク

Rubyに標準で添付されているnet/httpsライブラリ(net/https.rb)において、このライブラリを使用してhttpsプロトコルを発行した場合、中間者によるなりすまし攻撃(man-in-the-middle attack)を検出できないという問題が発見されました。

http://www.ruby-lang.org/ja/news/2007/10/04/isecpartners-com-2007-006-rubyssl/">net/httpsライブラリにおける「中間者によるなりすまし攻撃」に対する脆弱性について

open-uri には元々問題はないとのことです(2007/10/05追記)。net/https あるいは open-uri で HTTPS 通信をしているプログラムは脆弱性があるということですね。

チェックを有効にするには Net::HTTP#enable_post_connection_check = true しましょうとありますが、1.8.6-p111 の open-uri はちゃんとそうなっています。

なお、Gentoo Linux では 9/30 に提供された ruby-1.8.6_p110-r1 で対応済みでした。

本日のツッコミ(全2件) [ツッコミを入れる]

_ akr [open-uri はもともと問題ありません]

_ だて [すみません。訂正しておきました。]


2007-10-05 この日を編集

_ [サイト運営] /dev/random でブロックしてました このエントリーを含むブックマーク

apache の再起動を繰り返してたらエントロピーが足りなくなった模様です。apache 起動時に /dev/random 使うので read がブロックしていました。とりあえず /dev/random を作り直して対応。

# rm /dev/random
# mknod /dev/random c 1 9

2007-10-06 この日を編集

_ [Ruby][Firefox] Tamarin で IronPython や IronRuby プログラムを動かす IronMonkey プロジェクト このエントリーを含むブックマーク

IronMonkey: Bringing Ruby and Python support to Tamarin 経由。

IronMonkey は IronPython や IronRuby を Tamarin 上で動かしちゃおうというプロジェクトです(多分)。

Tariman とは

Tamarin は Adobe から Mozilla Foundation に寄贈された ActionScript のエンジンを元に ECMAScript 4 エンジンを開発するプロジェクトです。Mozilla Foundation の ECMAScript エンジン(Javascript エンジン)は SpiderMonkey と呼ばれ、Firefox などに使われています。将来の Firefox (Firefox4?)の Javascript エンジンが Adobe の高速な VM エンジンベースになることで、IE に比べて遅かった Javascript 実行速度も改善するのではと期待されます (詳細は TamarinjQuery/MozillaのJohn Resig氏が語るFirefoxの未来 を参照ください)。

IronMonkey で何を実現しようとしているのかの推測

はじめたばかりのようで、IronMonkey のページにはほとんど情報がないのですが、CLR(.NET の共通言語ランタイム)のバイトコード(CIL/共通中間言語)を Tamarin のバイトコードに変換する方法を採るようです。バイトコードにコンパイル済みの IronPython や IronRuby のプログラムを Tamarin 上で実行ということになるのでしょう。IronMonkey がバイトコードの変換だけを担うと考えるならば、Javascript のようにソースを HTML に埋め込んで実行するのではなく、Flash や Java Applet のようにコンパイル済みのコードをロードして実行する形になるのではないでしょうか。

さらに、Tamarin プロジェクトのページに書かれた Tamarin のソースコードは今後も、Adobe によって、Adobe©Flash©Player に含まれる「ActionScript™Virtual Machine」の一部として利用される予定です。 という言葉を楽観的に捉えれば、Flash 記述用の言語として ActionScript だけでなく Python や Ruby も使えるようになる可能性も技術的にはなくはないでしょう。

リアルタイムに変換すると実用的な速度を得るのが難しそうなので、事前に変換しておく使い方になるのかなあ。それとも IronRuby のコンパイラを使ってソースをバイトコードにコンパイル → それを Tamarin 用のバイトコードに変換 → Tamarin がバイトコードを実行、という流れをウェブページを開いたときに実施するのかな。コンパイル済みのバイトコードの実行しかできないなら、ソースをそのまま実行できる Silverlight の方が個人的には嬉しいかも。

_ [後で調べる] OAuth ― An open protocol to allow secure API authentication in a simple and standard method from desktop and web applications このエントリーを含むブックマーク

宮川さんの del.cio.us 経由の OAuth: Share Your Ideas, Not Your Password 経由。OAuth は OpenID のようなオープンな認証プロトコルで、ウェブだけでなくデスクトップアプリなどでも対象としているようです。しっかりとした 仕様のドラフト がありますが、この量を読むのは骨ですね。ということで後で調べるタグ。


2007-10-07 この日を編集

_ [Ruby] M17N の詳細が煮詰まってきた件 このエントリーを含むブックマーク

|m17n の全貌が分からないけれど、まずどこを見ればいいのかな?
|    * matz: 2007年9月末までには何か用意します
|
|という言葉がありました。
|今日で9月末が終わりそうですが、何か用意できましたか?
 
私の頭の中には。今週いっぱいくらいでテキストにダンプします。
日経Linuxの原稿に圧倒されなければ。 
[ruby-dev:31922] Re: m17nの全貌に関する何か

ということでしたが、進捗があったようです。

この時期になるもまだ詳細が未確定で、ショーストッパーになりかねないM17N開発を加速するべく開発会議を開催した。

Matzにっき(2007-09-26) - M17N開発会議

大きな方針は決まっていても、実用に耐えうるように詳細を煮詰めるのは確かに茨の道のようですね。今年中に 1.9.1 リリースが間に合うのかは、M17N 開発の行方にかかっていそうです。

Ruby M17N の情報

M17N に関するリンクをいくつか。下二つはこの日記の過去記事です。

_ [] ブックハウス神保町 このエントリーを含むブックマーク

販契約で定価販売を義務づける出版業界で、「売れ残った本」をインターネット上で値引き販売しようという試みが、12日から本格的に始まる。これまでの絶版本や期間限定の割引販売から一歩進め、小学館や集英社、講談社、文芸春秋などの大手出版社が、絶版の一歩手前の「在庫僅少(きんしょう)本」を提供し、半額で通年販売する。

「売れ残った本」半額に 出版社17社、ネットで本格販売

これは本読みには嬉しい試みですね。古本以外では入手の難しい本でなければ古本で買うのは抵抗があるので個人的にも良。どんな本が並んでいるのか、ざっと眺めてみました。

皆川博子作品精華「迷宮」−ミステリー編ー が半額。持ってなかったら買ってましたね。しかしこれも在庫希少本なのか。

小栗 虫太郎の紅殻駱駝の秘密−覆刻 はすでに在庫 0 冊。好事家に人気がありますからね。

バートン版のアラビアンナイトがバーゲン。一冊 630 円なら買い揃えてもいいかという気分になります。ただし、1 巻、2 巻はなくて、空飛ぶ黒檀の馬−アラビアンナイト3船乗りシンドバッドの冒険−アラビアンナイト4巨蛇の女王−アラビアンナイト5インドのジャリアッド王と宰相シマス−アラビアンナイト6 のみ。

出版社から調べることもできるので、国書刊行会金の星社山と溪谷社 というように趣向にあった出版社の本だけ調べるという手も。


2007-10-11 この日を編集

_ [Ruby] Ruby に比べて Python の面倒なところ このエントリーを含むブックマーク

言語の指向しているところや慣れの問題が大きいので、面倒すなわち優劣ではないですね。self や return が強制されている方が表記の揺れがないし、瑣末なところに気をまわさなくていいという考えもありますし。

個人的には Python に比べて Ruby の面倒なところ、というか変なところという記事が読みたいですね。


2007-10-12 この日を編集

_ [Ruby] HTML5 パーサ html5lib 0.10 がリリースされたとのこと このエントリーを含むブックマーク

10月9日、Web Hypertext Application Technology Working Group(WHATWG)は、次世代のHTML仕様として策定中の「HTML5」に対応したパーサ「html5lib 0.10」をリリースした。

html5libはそのHTML5のパーサ。RubyとPythonのバージョンが用意されており、(以下略)

次世代HTML「HTML5」に対応したパーサ「html5lib 0.10」リリース:ニュース - ZDNet Japan

Ruby/Python 版だけ用意されているというのも珍しいですね。

しかし、ZDNet の記事は一切リンクがないですが、自分でぐぐれということなのでしょうか。リリースの告知は WHATWGブログ上でされています。コードはGoogle Code 上でホスティングされています。

Ruby 版は gem で配られています。文字コード判別ライブラリ chardet に依存していますので、インストールは順番にします。

# gem install chardet
# wget http://html5lib.googlecode.com/files/html5-0.10.0.gem
# gem install html5-0.10.0.gem

gem をインストールすると html5 というコマンドもインストールされます。これに HTML ファイルをオプションで指定すれば簡単にパースできます。ライブラリとして使いたい場合には rdoc が多少助けになりますが、あんまり資料がないですね。


2007-10-14 この日を編集

_ [Ruby] マイクロベンチマーク性能で JRuby が YARV に近づいてるケースがある件 このエントリーを含むブックマーク

別名、Sun が全力で作っている JVM 上の Ruby よりも、ささださんが一人で作っている YARV 上の Ruby の方がまだ速い件(「全力で作っている」は JVM にかかります。YARV は専用 VM じゃんというつっこみは聞き流します)。

JRubyが遅いという話は過去のものになるかもしれません。

試してみたのは http://ja.doukaku.org/55/lang/ruby/ にある立方根を求める計算です。

trunkのJRubyがヤバいことになってる件 (recompile.net)

という高井さんの記事を読んで YARV(1.9) でも試してみました。

環境

OS / Kernel
Gentoo Linux / linux-2.6.17-gentoo-r4
Java
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
Ruby MRI
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux]
Ruby YARV
ruby 1.9.0 (2007-10-11 patchlevel 0) [i686-linux]
JRuby
ruby 1.8.5 (2007-10-14 rev 3876) [i386-jruby1.1]

コード

ロジックは http://ja.doukaku.org/55/lang/ruby/ のままです。メソッド内メソッドはいちいちメソッド再定義をしてパフォーマンスが悪化するので外に出しました。また、ベンチマークには Benchmark を使用。

require 'benchmark'
 
def close_enough?(x, y)
  (x - y).abs < 5.0E-13
end
 
def search(f, negp, posp)
  midp = (negp + posp) / 2
  if(close_enough?(f.call(midp), 0.0))
    return midp
  else
    test_value = f.call(midp)
    case
    when test_value > 0
      search(f, negp, midp)
    when test_value < 0
      search(f, midp, posp)
    else
      midp
    end
  end
end
 
def half_interval_method(f, a, b)
  a_value = f.call(a)
  b_value = f.call(b)
  case
  when a_value < 0 && b_value > 0
    search(f, a, b)
  when a_value > 0 && b_value < 0
    search(f, b, a)
  else
    puts "error"
    exit
  end
end
 
def cube_root(n)
  half_interval_method(lambda{|x| x*x*x - n}, -0.001, n+1)
end
 
Benchmark.bm do |x|
  x.report{ 50000.times{ cube_root(100.0) ** 3 } }
  x.report{ 50000.times{ cube_root(100.0) ** 3 } }
  x.report{ 50000.times{ cube_root(100.0) ** 3 } }
end

結果

Ruby MRI
$ ruby18 -v cube_root.rb
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux]
      user     system      total        real
 76.740000   2.970000  79.710000 ( 82.289728)
 76.480000   2.890000  79.370000 ( 82.535441)
 76.350000   2.930000  79.280000 ( 82.735216)
Ruby YARV
$ ruby19 -v cube_root.rb
ruby 1.9.0 (2007-10-11 patchlevel 0) [i686-linux]
      user     system      total        real
 16.400000   0.020000  16.420000 ( 16.425822)
 16.360000   0.040000  16.400000 ( 16.395199)
 16.430000   0.000000  16.430000 ( 16.438130)
JRuby
$ ./bin/jruby -v -O -J-server cube_root.rb 
ruby 1.8.5 (2007-10-14 rev 3876) [i386-jruby1.1]
      user     system      total        real
 23.121000   0.000000  23.121000 ( 23.110000)
 20.084000   0.000000  20.084000 ( 20.084000)
 22.273000   0.000000  22.273000 ( 22.273000)

実アプリでのベンチマークがほしいですね。


2007-10-15 この日を編集

_ [Rails] サンプルにアニメや漫画のキャラを使う on Rails このエントリーを含むブックマーク

コード例にアニメや漫画のキャラを使うというソフトウェア開発におけるあるあるネタが Rails でも発動した模様です。

You wouldn’t think that Konata Izumi (a character from the anime, Lucky Star) and Ruby on Rails (a web MVC framework) would somehow be associated, but they are!

Konata Izumi in Edge Rails - redemption in a blog

ということで、revision 7905.をご覧ください。しかし、redemption 氏大喜びですね。


2007-10-17 この日を編集

_ [Ruby] デザインパターン実装例 このエントリーを含むブックマーク

dzone The GoF patterns implemented in Ruby 経由。

I just finished implementing almost all of the GoF patterns in Ruby.

  • Googlecode project: rubygof
  • PDF on scribd: rubygof (pdf)
clipboarded: The GoF patterns implemented in Ruby

GoF のデザインパターン(の例)を Ruby で実装したとのことです。標準ライブラリに存在するものは省かれていますね。PDF で読むと手っ取り早いです。

デザインパターンそのものの説明は無いに等しいので、パターンは大体知っているものの実際に書くにあたって取っ掛かりがほしい、というくらいの理解度の人向きです。

_ [ネットサービス] PORTA(国立国会図書館デジタルアーカイブポータル) このエントリーを含むブックマーク

はてブなどで話題になっている PORTA ですが、単純に文献検索としても便利ですね。雑誌記事索引からの検索ができるので、例えば「まつもとゆきひろ」で検索すると日経バイトの連載記事がヒットします。これくらいのことは、私が知らなかっただけで昔からできたのだとは思いますが。

ただ、Ajax をふんだんに使ってるためか、検索結果に URL がないのが残念です。せめて検索結果をブックマークできるようにしてほしいですね。


2007-10-24 この日を編集

_ [Ruby] NaCl 謹製 Ruby認定試験対策問題 このエントリーを含むブックマーク

2007年10月27日に行われる第一回 Ruby認定試験 の対策として、NaCl の有志で模擬試験問題を作成しました。

Ruby認定試験対策問題

これら問題が全く的外れだったとしても責任は持てません。ご了承ください。 とのことです。

個人的には、コマンドラインオプションの仕様や irb の挙動など普段あまり気にしてない部分が穴になりそうです。1.4.4 とか試したことなかったですねえ。


2007-10-25 この日を編集

_ [Ruby] TMail のメンテナが代わったようです このエントリーを含むブックマーク

TMail は青木さん作のメール統合ライブラリです。最近 RubyForge のニュースに Tmail の名前が出てくると思ったらメンテナが Mikel Lindsaar さん達に代わった ようですね。

TMail の最終リリース版は 2004 年 2 月でしたが、Rails の ActionMailer でも使われているのでバグ修正など手を入れたいところがあったのでしょう。

昨日リリースされた TMail 0.11.0 では Rails コアチームが ActionMailer のバンドル版に対して行ったパッチを取り込んだそうです。


2007-10-31 この日を編集

_ [Ruby] Ruby の新ロゴ このエントリーを含むブックマーク

Ruby Associationは2007年10月29日、Ruby公式ロゴ選定コンテスト「Rubyロゴコンテスト」の結果を発表した。Rubyの公式ロゴにはTom Schaub氏の作品が採用された。

Rubyの公式ロゴ決定! | エンタープライズ | マイコミジャーナル

公式ロゴが決定しました。おなじみのルビーを使っているせいか、そんなに代わり映えしないような。

Ruby公式ロゴ

まつもとさんが [ruby-list:44161]Ruby公式ロゴコンテスト結果発表 で選考基準を述べていますが、それぞれうなずける理由です。

興味深いと思ったのが、『「かわいい」ものは除く』という項。「エンタープライズ」という言葉も囁かれ始めている今日この頃、Rubyもそろそろ大人として扱われるようにという親心なのかもしれませんね。

_ [Ruby] 第二回Ruby認定試験を受ける予定 このエントリーを含むブックマーク

研修扱いにして会社のお金で受けることにしました。受かったら社内で試験対策勉強会でも開こうかな。試験問題を覚えられたらですけども。

_ [Rails] とりあえずDB分割するだけなら驚くほど簡単だった件 このエントリーを含むブックマーク

Q. Rails で DB 分割というものを試してみたいのですが
A. Magic Multi-Connections を使いましょう

Magic Multi-Connections は例の Twitter 騒ぎのときに Dr NIC さんが、Rails から複数データベースに接続するのもこんなに簡単にできるよ、ということで作ったライブラリです。

仕事の話なのですが、Ruby ではない某言語で作られたアプリケーションのデータベースがあって、これはユーザをキーに複数のデータベースに分割されています。統計情報採ったり、運用ツール作ったりをしたいのですが、某言語を使うのは(個人的に)面倒でしたので、どうにか Ruby+ActiveRecord で何とかならないかなと思っていました。が、はてブで見かけた Magic Multi-Connections を試されている方の記事を読んで解決しました。しかもコードほとんど書かずに。楽すぎて落とし穴があるんじゃないかと思う次第です。

Magic Multi-Connections が実サービスに使えるかまでは検証していませんが、とりあえず運用ツールを作るくらいの用途では十分そうです。コネクションの切った張ったもあんまり気にしなくていいですし。

参考にさせていただいた記事は以下の通りです。


最近のコメント:

  1. だて (10-05)
  2. akr (10-05)

RSS
Creative Commons License
This work is licensed under a Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).