<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>荒井省三のBlog : IronRuby</title><link>http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx</link><description>Tags: IronRuby</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Rack ベースの Web アプリを IIS で動かしてみました</title><link>http://blogs.msdn.com/shozoa/archive/2009/06/11/running-rack-based-web-application-on-iis.aspx</link><pubDate>Thu, 11 Jun 2009 10:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9726062</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9726062.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9726062</wfw:commentRss><description>&lt;P&gt;前回にご紹介した Railsカンファレンスの IronRuby on Railsセッションで、Rails以外のWebフレームワークとして&lt;A href="http://rack.rubyforge.org/" target=_blank mce_href="http://rack.rubyforge.org/"&gt;rack&lt;/A&gt;が紹介されていました。rackは、Ruby向けの Webインターフェースを提供するフレームワークで、Ruby on Rails 2.3.x系も内部でrackと統合されています。このrackをIronRubyを使って、IISで動かしてみました。その動かし方を以下に記載します。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.必要なもの&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://ironruby.codeplex.com/" target=_blank mce_href="http://ironruby.codeplex.com/"&gt;IronRuby 0.5.0&lt;/A&gt; 
&lt;LI&gt;rack 1.0.0 
&lt;LI&gt;&lt;A href="http://github.com/jschementi/ironruby/tree/a271880bc1aef4a7845291535524df76882ec9b4/Merlin/Main/Hosts/IronRuby.Rack" target=_blank mce_href="http://github.com/jschementi/ironruby/tree/a271880bc1aef4a7845291535524df76882ec9b4/Merlin/Main/Hosts/IronRuby.Rack"&gt;IronRuby.Rack&lt;/A&gt; 
&lt;LI&gt;Ruby 1.8系&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;2.rackのインストール&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「igem install rack」コマンドでインストールします。&lt;BR&gt;私の場合は、PATHとGEM_PATH環境変数を設定後に実行しました。実行すると以下のようなメッセージが出力されます。&lt;BR&gt;&lt;PRE&gt;C:&amp;gt;igem install rack
Successfully installed rack-1.0.0
1 gem installed
Installing ri documentation for rack-1.0.0...
Installing RDoc documentation for rack-1.0.0...
mscorlib:0:in `GetBytes': 値が有効な範囲にありません。
              (System::Text::EncoderFallbackException)
        from :0:in `write'
        from :0:in `puts'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/
             user_interaction.rb:227:in`alert_error'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/
             user_interaction.rb:103:in`alert_error'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/
             command_manager.rb:77:in `run'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/
             gem_runner.rb:39:in `run'
        from C:/IronRuby0.5.0/bin/igem:24&lt;/PRE&gt;&lt;BR&gt;このエラーはIronRubyのバグのようで、riとrdocのインストールに問題があることを示しています。このエラーを発生させないためには、--no-ri --no-rdocオプションでriとrdocをインストールしない方法があります。&lt;BR&gt;インストールが終了すると、IronRuby 0.5.0のライブラリパスへとrackがインストールされます。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;3.HTTPハンドラをビルドします&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;githubからダウンロードしたIronRuby.Rackをビルドします。 
&lt;LI&gt;私の場合は、以下のような手順で作業を行いました。&lt;BR&gt;git clone git://github.com/jschementi/ironruby.git&lt;BR&gt;コピーしたソースコードの中から、C:\Users\shozoa\wk\ironruby\Merlin\Main\Hosts\IronRuby.Rackフォルダを作業用フォルダへコピー。&lt;BR&gt;IronRuby.Rack.slnファイルをVisual Studioで開いて、IronRuby.RackプロジェクトとIronRuby.Rack.Exampleプロジェクト以外のプロジェクトを削除(環境によって、IronRuby.Rack.Exampleプロジェクトは無効になっているかも知れません)&lt;BR&gt;IronRuby 0.5.0の7つのアセンブリに対して参照をIronRuby.Rackプロジェクトへ追加しました。&lt;BR&gt;これでIronRuby.Rackプロジェクトをビルドできるようになりました。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;4.IISの環境を作成します&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;管理ツールのIISマネージャを開きます。 
&lt;LI&gt;Default Web Sitesの下へ新規のアプリケーションを作成します。&lt;BR&gt;エイリアスを「IronRuby.Rack.Example」にします。&lt;BR&gt;物理パスにコピーしたソースコードの「IronRuby.Rack\IronRuby.Rack.Example」を指定します。 
&lt;LI&gt;IronRuby.Rack.Example\web.config の configセクションを編集します。&lt;BR&gt;&lt;PRE&gt;&amp;lt;section name='microsoft.scripting'
type='Microsoft.Scripting.Hosting.Configuration.Section,
Microsoft.Scripting, Version=0.9.6.10, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'
requirePermission='false' /&amp;gt;&lt;/PRE&gt;&lt;BR&gt;この変更は、アセンブリのバージョン番号とパブリックキートークンが異なるために行っています。 
&lt;LI&gt;Visual Studio で IISのWebプロジェクトを編集するには、IISにいくつかのオプションが必要になります。このオプションとは、Windowsの機能のことです。追加されるには、アプリケーションの追加で以下の機能を追加します。&lt;BR&gt;セキュリティ-要求フィルタリング、Windows認証&lt;BR&gt;管理ツール-IIS6と互換性のある管理－IISメタベースとIIS6構成との互換性&lt;BR&gt;管理ツール-IIS管理コンソール、IIS管理サービス、IIS管理スクリプトとツール&lt;BR&gt;(注)Visual Studio 2008で編集しないのであれば、この作業は必要はありません。私は、IIS7で動作確認を行っています。 
&lt;LI&gt;IronRuby.Rack.Example\Binフォルダへ必要なアセンブリを配置します。&lt;BR&gt;IronRuby.Rackプロジェクトでビルドして出来たアセンブリ(私の場合Debug\Binフォルダにある8つ)をコピーしました。 
&lt;LI&gt;RubyとIronRubyのライブラリに対して、IISを起動するアカウント(Network Service)に対してアクセス権限を付与します。&lt;BR&gt;「C:Ruby」と「C:\IronRuby-0.5.0」へ読み取り権限を私は付与しました。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;5.ブラウザでテストします&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「http://localhost/IronRuby.Rack.Example」へアクセスします。&lt;BR&gt;&lt;PRE&gt;IronRuby running Rack says "Hello, World"
 at 木 6 11 16:22:32 +09:00 20&lt;/PRE&gt;
&lt;LI&gt;上記のように表示されれば成功です。この表示は、IronRuby.Rack.Example\app.rbに記述されたスクリプトを実行して出力しています。config.ru(rackの構成ファイル)などをカスタマイズすれば、別のアプリケーションへURLをマップしたりすることもできます。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;6.IronRuby.Rackの制限事項&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GEM_PATH環境変数が「C:\ruby\lib\ruby\gems\1.8」固定になっている(Application.cs)ため、ruby 1.8系のインストールフォルダが「c:\ruby」で無ければならないということです。 
&lt;LI&gt;rackの構成ファイルが、Webアプリケーションのルート直下に無ければならない 
&lt;LI&gt;制限ではないですが、HTTPハンドラは内部でRackupを行っています。&lt;BR&gt;(注)この個所を応用すれば、別のフレームワークもサポートできるかも知れません。 
&lt;LI&gt;Visual Studioの開発用Webサーバーには対応していません。&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9726062" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>IronRuby で Ruby on Rails を動かしてみました</title><link>http://blogs.msdn.com/shozoa/archive/2009/06/09/running-ruby-on-rails-on-ironruby.aspx</link><pubDate>Tue, 09 Jun 2009 09:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9713435</guid><dc:creator>shozoa</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9713435.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9713435</wfw:commentRss><description>&lt;P&gt;昨年のRailsカンファレンスに続いて今年のRailsカンファレンスでは、「&lt;A href="http://en.oreilly.com/rails2009/public/schedule/detail/7883" target=_blank mce_href="http://en.oreilly.com/rails2009/public/schedule/detail/7883"&gt;IronRuby on Rails&lt;/A&gt;」というセッションが行われました。このセッションでは、公開されたIronRuby 0.5.0とRuby on Rails 2.3.2を使って実際にRailsをIronRubyで動かしています。少し(大分かも)前から、IronRubyでRailsを動かすための&lt;A href="http://ironruby.net/Documentation/Rails" target=_blank mce_href="http://ironruby.net/Documentation/Rails"&gt;ドキュメント&lt;/A&gt;が公開されています。このカンファレンスで何を紹介したかというサマリーが、&lt;A href="http://blog.jimmy.schementi.com/2009/05/ironruby-at-railsconf-2009.html" target=_blank mce_href="http://blog.jimmy.schementi.com/2009/05/ironruby-at-railsconf-2009.html"&gt;Jimmyさんのブログ&lt;/A&gt;で紹介されています。Railsを動かすドキュメントを使って、実際にRailsを動かしてみましたので、その手順を以下に記載していきます。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.環境構築&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://ironruby.codeplex.com/" target=_blank mce_href="http://ironruby.codeplex.com/"&gt;IronRuby 0.5.0&lt;/A&gt; 
&lt;LI&gt;Ruby 1.8系 (私は、&lt;A href="http://rubyforge.org/projects/rubyinstaller/" target=_blank mce_href="http://rubyforge.org/projects/rubyinstaller/"&gt;OneClick Installer 1.8.6-27&lt;/A&gt;を使用しました)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;IronRuby 0.5.0をダウンロードしてC:\IronRuby-0.5.0フォルダへ展開し、OneClick Installerで使ってC:\RubyへRubyをインストールしました。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2.Rails 2.3.2 の導入&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RubyGems のアップデート 
&lt;LI&gt;Ruby on Rails 2.3.2をRubyGemsを使ってインストール&lt;/LI&gt;&lt;/UL&gt;&lt;PRE&gt;#コマンドプロンプトで作業
gem update --system
gem install rails --v2.3.2 --include-dependencies
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;　(注)RubyGemsを利用するために、Ruby 1.8系が必要になります。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3.環境変数の設定&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PATH環境変数へ IronRubyのBinフォルダへのパスを追加します。 
&lt;LI&gt;GEM_PATH環境変数へRubyGemsのパスを設定します。&lt;/LI&gt;&lt;/UL&gt;&lt;PRE&gt;SET PATH=%PATH%;C:\IronRuby-0.5.0\bin
SET GEM_PATH=C:\ruby\lib\ruby\gems\1.8&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4.IronRubyの構成ファイルである「ir.exe.config」のLibralyPathsの値にRuby1.8のライブラリパスを設定します。&lt;BR&gt;&lt;/STRONG&gt;&lt;PRE&gt;&amp;lt;set language="Ruby" value="..\lib\IronRuby;
       c:\ruby\lib\ruby\site_ruby\1.8\;
       c:\ruby\lib\ruby\1.8\" option="LibraryPaths" /&amp;gt;
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;(注)valueの値は読みやすいように改行していますが、実際に設定する場合は改行を含めないで下さい。またir.exe.configは、IronRuby 0.5.0を展開した中のBinサブフォルダに存在します。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4.SQL Server のActiveRecord Adapter の導入&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://github.com/jschementi/activerecord-mssql-adapter/tree/master" target=_blank mce_href="http://github.com/jschementi/activerecord-mssql-adapter/tree/master"&gt;MS SQL Server Adapter&lt;/A&gt; 
&lt;LI&gt;ダウンロードした「mssql_adapter.rb」を「C:\Ruby\lib\ruby\gems\1.8\gems\activerecord-2.3.2\lib\active_record\connection_adapters」フォルダーにコピーします。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(注)もちろん、SQL Serverをインストールしておく必要があります。私の場合は、&lt;A href="http://msdn.microsoft.com/ja-jp/sqlserver/default.aspx" target=_blank mce_href="http://msdn.microsoft.com/ja-jp/sqlserver/default.aspx"&gt;SQL Server 2008 Express Edition&lt;/A&gt;で確認を行いました。このアダプターでは、以下のようなデータ型の対応付けが行われています。&lt;BR&gt;&lt;PRE&gt;:primary_key =&amp;gt; "int not null identity(1,1) primary key ",
:string      =&amp;gt; { :name =&amp;gt; "varchar", :limit =&amp;gt; 255 },
:text        =&amp;gt; { :name =&amp;gt; "text" },
:integer     =&amp;gt; { :name =&amp;gt; "int" },
:float       =&amp;gt; { :name =&amp;gt; "float" },
:decimal     =&amp;gt; { :name =&amp;gt; "numeric" },
:datetime    =&amp;gt; { :name =&amp;gt; "datetime" },
:timestamp   =&amp;gt; { :name =&amp;gt; "datetime" },
:time        =&amp;gt; { :name =&amp;gt; "datetime" },
:date        =&amp;gt; { :name =&amp;gt; "datetime" },
:binary      =&amp;gt; { :name =&amp;gt; "varbinary", :limit =&amp;gt; 'MAX' },
:binary      =&amp;gt; { :name =&amp;gt; "image" },
:boolean     =&amp;gt; { :name =&amp;gt; "bit" }
&lt;/PRE&gt;&lt;BR&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;5.WEBrickに対するパッチを投入します&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「C\Ruby\lib\ruby\1.8\webrick\httprequest.rb」へパッチを投入します。&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;パッチは、&lt;A href="http://gist.github.com/111988" target=_blank mce_href="http://gist.github.com/111988"&gt;githubから&lt;/A&gt;入手します。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;　パッチの内容は、２か所あります。最初に、163行目のHttpRequestクラスのto_sメソッドです。&lt;BR&gt;&lt;PRE&gt;#      ret = @request_line.dup
#      @raw_header.each{|line| ret &amp;lt;&amp;lt; line }
       ret = @request_line ? @request_line.dup : ""
       @raw_header.each{|line| ret &amp;lt;&amp;lt; line } if @raw_header
&lt;/PRE&gt;&lt;BR&gt;&lt;BR&gt;次は、8行目(require)の直後に追加します。&lt;BR&gt;&lt;PRE&gt;# IronRuby bug: IO#read seems to chop off the first char
class TCPSocket
  def read size
    recv size
  end
end
&lt;/PRE&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;6.Railsからエンコード指定を取り除きます。2.3.2のRailsはデフォルトがUTF-8のエンコーディングです。が、IronRubyではUTF-8エンコーディングの文字列が組み合わさるとバグが発生するためです&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「C:\Ruby\lib\ruby\gems\1.8\gems\rails-2.3.2\lib\initializer.rb」の「initializ_encoding」メソッドの実装をコメントアウトします。&lt;BR&gt;407行目の「$KCODE='u' if RUBY_VERSION &amp;lt; '1.9'」をコメントにします。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;ここまでで、準備が完了です。ここからは、Railsアプリケーションを作成していく作業となります。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;7.新しいRailsアプリケーションを作成します&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「irails IronRubyOnRails」コマンドを使用します。&lt;BR&gt;「3.環境変数」を設定したコマンドプロンプトで作業を行います。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(注)成功すれば、コマンドプロンプトに「create ....」というログが表示されます。IronRubyでは、各種のコマンドの先頭に「&lt;STRONG&gt;i&lt;/STRONG&gt;」というプレフィックスが付きます。インタラクティブRuby(irb)なら、「iirb」となります。これらのコマンドは、Windows向けにはBATファイルがあり、Linux向けには拡張子無しのシェルスクリプトファイルが提供されています。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;8.データベースの設定を行います&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IronRubyOnRails\config\database.ymlファイルを編集します。&lt;/LI&gt;&lt;/UL&gt;&lt;PRE&gt;development:
  adapter: mssql
  host: (local)\SQLEXPRESS
  database: ironruby_dev
  integrated_security: true
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;上記のように設定するか、host、database、integrated_securityパラメータを「connection_string」パラメータで置き換えます。&lt;/P&gt;
&lt;P&gt;続いて「ironruby_dev」という名前のデータベースをSQL Serverで作成します。&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b"&gt;SQL Server 2008 Management Studio Express&lt;/A&gt;を使用するのが簡単です。 &lt;BR&gt;(注)このパラメータ形式は、SQL Serverをご存じな方には馴染み易いことでしょう。ADO.NETなどで、指定する接続文字列をパラメータとして指定しているのです。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;9.Scaffolding を使ってサンプルのアプリケーションを作成します&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「ir script/generate scaffold post title:string body:text published:boolean」コマンドをIronRubyOnRailsフォルダで実行します。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(注)成功すればコマンドプロンプトに「create....」というログが表示されます。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;10.アプリケーションコントローラーのバグ対応を行います。&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「app\controllers\posts_controller.rb」で「default_url_options」メソッドをpublicに定義します。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;&lt;PRE&gt;class PostsController &amp;lt; ApplicationController
...
...
  # 私の場合は、最後に追加しました
  public :default_url_options
end

&lt;/PRE&gt;
&lt;P&gt;(注)この変更は、&lt;A href="http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1354" target=_blank mce_href="http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1354"&gt;IronRubyのバグ1354&lt;/A&gt;に対する対応です。rails 2.3.2では、default_url_optionsメソッドがprotectedとして定義されています。IronRubyでは、publicである必要があります。publicに変更しないでWEBrickを起動すると、http リクエストに対するレスポンスが帰ってきません。default_url_optionsメソッドのエラーがコンソールに出力される場合もあります。&lt;/P&gt;
&lt;P&gt;11.データベースのテーブルを作成します&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「irake db:migrate」コマンドを実行してテーブルを作成します。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;&lt;PRE&gt;C:\IronRubyOnRails&amp;gt;irake db:migrate
(in C:/IronRubyOnRails)
==  CreatePosts: migrating =================
-- create_table(:posts)
   -&amp;gt; 0.0550s
   -&amp;gt; -1 rows
==  CreatePosts: migrated (0.0990s) ========&lt;/PRE&gt;成功すれば上記のように「create table...」などのログがコンソールに出力されます。失敗すると以下のように「System::Text::EncoderFallbackException」が出力されます。&lt;BR&gt;&lt;PRE&gt;C:\IronRubyOnRails&amp;gt;irake db:migrate
(in C:/IronRubyOnRails)
rake aborted!
rake aborted!
mscorlib:0:in `GetBytes': 値が有効な範囲にありません。
          (System::Text::EncoderFallbackException)
        from :0:in `write'
        from :0:in `puts'
.....&lt;/PRE&gt;&lt;BR&gt;失敗した場合は、「config\database.yml」の設定内容を見直してください。host: (local)\SQLEXPRESSなどを書き間違えると、このエラーが出力されます(私も書き間違いをしていて、このエラー原因を探すのに苦労しました)。&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;11.WEBrickを起動してテストを行います&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;「ir script/server」コマンドを実行します。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;&lt;PRE&gt;C:\IronRubyOnRails&amp;gt;ir script/server
=&amp;gt; Booting WEBrick
=&amp;gt; Rails 2.3.2 application starting on http://0.0.0.0:3000
=&amp;gt; Call with -d to detach
=&amp;gt; Ctrl-C to shutdown server
[2009-06-09 17:14:17] INFO  WEBrick 1.3.1
[2009-06-09 17:14:17] INFO  ruby 1.8.6 (2008-05-28) [i386-mswin32]
[2009-06-09 17:14:17] INFO  WEBrick::HTTPServer#start:
                                            pid=4568 port=3000
&lt;/PRE&gt;&lt;BR&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;正常に起動すれば、上記のようなログが出力されます。しかしながら、私の環境(Windows Vista with SP2)では少し時間がかかります。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ブラウザで「http://localhost:3000/」へアクセスすれば、railsのページが表示されることでしょう。&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/rails%20aborted_2.png" mce_href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/rails%20aborted_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="rails aborted" border=0 alt="rails aborted" src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/rails%20aborted_thumb.png" width=244 height=178 mce_src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/rails%20aborted_thumb.png"&gt;&lt;/A&gt; 
&lt;LI&gt;「about your application's environment」をクリックします。&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/about%20application%20environment_2.png" mce_href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/about%20application%20environment_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="about application environment" border=0 alt="about application environment" src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/about%20application%20environment_thumb.png" width=244 height=178 mce_src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/about%20application%20environment_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;正常に実行されれば実行環境が上記のように表示されます。が、この情報はRailsのInfoControllerが処理する関係で、IronRubyとは表示されることはありません。あくまでも、Ruby 1.8系として表示されるだけです。 
&lt;LI&gt;次に「http://localhost:3000/posts」へブラウザでアクセスします。&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/Listing%20posts_2.png" mce_href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/Listing%20posts_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Listing posts" border=0 alt="Listing posts" src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/Listing%20posts_thumb.png" width=244 height=178 mce_src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/RunningRubyonRailsonIronRuby_D6F3/Listing%20posts_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;上記のようにpostsテーブルの一覧が表示されます。new postsのリンクをクリックしてデータを追加していけば、問題なく動作することを確認していくことができます。&lt;BR&gt;この時点で、コンソールを確認すると以下のようなログが出力されていました。&lt;BR&gt;&lt;PRE&gt;Processing Rails::InfoController#properties
 (for 127.0.0.1 at 2009-06-09 17:21:5) [GET]
Completed in 584ms (View: 189, DB: 0) | 200 OK
             [http://localhost/rails/info/proerties]


Processing PostsController#index
 (for 127.0.0.1 at 2009-06-09 17:25:21) [GET]
Rendering template within layouts/posts
Rendering posts/index
Completed in 735ms (View: 540, DB: 0) | 200 OK
            [http://localhost/posts]&lt;/PRE&gt;&lt;BR&gt;これらのログが表示されるのが、私の環境では少し遅くなっています。ブラウザでは問題なく動作しているのですが、WEBrickのログ出力が遅くなるという問題があるようです。もしかすると、環境依存かもしれません。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;ここまでの動作で、IronRubyを使ってRuby on Rails 2.3.2が動作していることを確認することができました。データベースとしては、SQL Serverです。まだまだパフォーマンス的な問題や、バグが残っているにしてもIronRubyによる Ruby on Railsの実現が近くなってきたのを感じ取ることができます。是非、皆さんも試してみてください。そしてバグを見つけたら、フィードバックをしてください。&lt;/P&gt;
&lt;P&gt;PS.昨年のRailsカンファレンスでもIronRubyでrailsを動かしていますが、日本では情報が少ないように感じています。是非、皆さんも動かしてみてください。&lt;/P&gt;
&lt;P&gt;追記:WEBrickへのパッチを投入するファイル名を追加しました。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9713435" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Silverline を試してみました</title><link>http://blogs.msdn.com/shozoa/archive/2009/03/23/tried-silverline.aspx</link><pubDate>Mon, 23 Mar 2009 09:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9500613</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9500613.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9500613</wfw:commentRss><description>&lt;P&gt;昨年のRails Conference 2008 でデモが行われた Ruby on Rails のプラグインである Silverline を試してみました。このプラグインは、RoR 上で Silverlight アプリを生成するためのものです。&lt;A href="http://silverline.schementi.com/" target=_blank mce_href="http://silverline.schementi.com/"&gt;Web上でのデモ&lt;/A&gt;も確認することができます。この環境を構築するの使用したのは、以下のものになります。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://rubyforge.org/projects/rubyinstaller/" target=_blank mce_href="http://rubyforge.org/projects/rubyinstaller/"&gt;One Click Ruby Installer&lt;/A&gt;&amp;nbsp; 1.8.6-27 RC2 
&lt;LI&gt;Ruby on Rails 2.0.2&lt;BR&gt;gem install rails --version 2.0.2 --include-dependencyでインストール 
&lt;LI&gt;&lt;A href="http://github.com/jschementi/silverline/tree/master" target=_blank mce_href="http://github.com/jschementi/silverline/tree/master"&gt;Silverline&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://github.com/jschementi/silverline-demos/tree/master" target=_blank mce_href="http://github.com/jschementi/silverline-demos/tree/master"&gt;Silverline-Demos&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://rubyforge.org/frs/?group_id=254&amp;amp;release_id=25302" target=_blank mce_href="http://rubyforge.org/frs/?group_id=254&amp;amp;release_id=25302"&gt;sqlite3-ruby 1.2.4&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://sqlite.org/" target=_blank mce_href="http://sqlite.org/"&gt;SQLite&lt;/A&gt; 3.6.11&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;BR&gt;Ruby on Rails をgemでインストールした時に問題になったのが、proxy設定です。これには、「--http-proxy http://&amp;lt;サーバのIPアドレス&amp;gt;:&amp;lt;ポート名&amp;gt;」オプションを指定することで対応しました。必要なモジュールのインストールが完了したという前提で、Silverline-demosに含まれるサンプルを動作させた方法を以下に記述します。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;新規のRailsアプリケーションを作成する&lt;BR&gt;コマンド「rails new-silverline」を使って新規のrailsアプリケーションを作成します。 
&lt;LI&gt;以下はrailsの環境設定です&lt;BR&gt;&lt;PRE&gt;config\database.ymlファイル
development:
  adapter: sqlite3
  encoding: utf-8     # 追加
  database: db/development.sqlite3
  timeout: 5000
&lt;/PRE&gt;&lt;BR&gt;&lt;PRE&gt;config\environment.rbファイル

Rails::Initializer.run do |config|
  #
  :略
  :
  # 以下を追加
  config.action_controller.default_charset='UTF-8'
end&lt;/PRE&gt;&lt;BR&gt;
&lt;LI&gt;Silverlineプラグインのインストール&lt;BR&gt;gitを使ってcloneしたsilverlineフォルダを vendor\pluginsフォルダへコピーします。 
&lt;LI&gt;app\controlers\client_controller.rbを準備&lt;BR&gt;silverline-demos\app\controlers\client_controller.rbをコピーします。この理由は、silverlineプラグインがclient_controller.rbをチェックするためです。 
&lt;LI&gt;app\views\layouts\client.html.erbを準備&lt;BR&gt;silverline-demos\app\views\layouts\client.html.erb をコピーします。これが、先程のコントローラーに対するビューになります。&lt;BR&gt;この時点で「ruby script/server」でサーバーを起動して、http://localhost:3000/clientへ アクセスすることで動作を確認することができます。「Show Time」をクリックすることで、時刻を取得した新しいページがレンダリングされると思います。 
&lt;LI&gt;私の場合は、public\silverline.html(demosで提供されるindex.html)とpublic\clientaccesspolicy.xmlを準備しました。&lt;BR&gt;両方ともsilverline-demos\publicにあります。&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;ここまでで、本当に基本的なSilverlightアプリケーションが動作しました。UIとしては、HTMLでコードとしてはIronRubyというものです。この動きの延長として、Read Evalute Print Loop(略してrepl、Web上のコンソール)のサンプルとして「TryRuby」があります。このTryRuby環境の作り方を以下を記述します。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;必要なファイルをsilverline-demosからコピーします。&lt;BR&gt;app\controllers\tryruby_controller.rb&lt;BR&gt;app\helpers\tryruby_helper.rb&lt;BR&gt;app\views\layouts\tryruby.html.erb&lt;BR&gt;app\views\tryruby(_evalute.rb、index.html.erb)&lt;BR&gt;app\public\images(loading2.gif、loading.net.gif)&lt;BR&gt;app\public\javascripts(scrolling.js)&lt;BR&gt;app\public\stylesheets(error.css) 
&lt;LI&gt;index.html.erbの11行目を以下のように修正します&lt;BR&gt;シングルクオーテーションが抜けているためです&lt;BR&gt;&lt;PRE&gt;&amp;lt;a href="javascript:void(0)" mce_href="javascript:void(0)" id="next" onclick="alert('next')"&amp;gt;&lt;/PRE&gt;
&lt;LI&gt;&lt;PRE&gt;config\route.rb に JSON のマップを追加します&lt;BR&gt;map.connect "tryruby/instructions.:format",
 :controller =&amp;gt; 'tryruby', :action =&amp;gt; 'instructions'&lt;BR&gt;&lt;BR&gt;これで &lt;A href="http://localhost:3000/tryruby" mce_href="http://localhost:3000/tryruby"&gt;http://localhost:3000/tryruby&lt;/A&gt;へアクセスすることで動作を確認&lt;/PRE&gt;
&lt;LI&gt;&lt;PRE&gt;することができます。&lt;/PRE&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;PRE&gt;このTryRubyサンプルは、&lt;/PRE&gt;
&lt;P&gt;起動時にSilverlightからRoRのtryruby\instructionsへリクエストします。そして、返ってきたJSON形式のデータを使って、操作のガイドを表示するようになっています。&lt;/P&gt;
&lt;P&gt;silverline-demos自体を動作させるためには、以下の2つの操作が必要になります。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;「raike db:migrate」コマンドでsqlliteの環境を作成する。&lt;BR&gt;これは、postsというサンプルがDBを使用するためです。&lt;/LI&gt;
&lt;LI&gt;vender\plugins\silverlineフォルダへ、silverlineプラグインの内容をコピーする。&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;他にも動作のおかしな所もありますが、基本的な動作を以上の操作で確認することができます。これが、Ruby on Railsに対するプラグインであるsilverlineの動作になります。&lt;/P&gt;
&lt;P&gt;silverlineが行っている動作は、2つあります。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;サーバー側で必要なコンテンツを生成すると同時にclient.xapを生成して、コンテンツをブラウザに返す&lt;/LI&gt;
&lt;LI&gt;クライアント側のｌclient.xapに含まれたIronRubyスクリプトを使って、XAMLやJSONへのリクエストをサーバーへ投げること。&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;これらの動きを行うために、コントローラーやビュー(サーバー側とSilverlight側)を提供しているのがSilverlineとなります。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9500613" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>IronPython 2.0 リリース</title><link>http://blogs.msdn.com/shozoa/archive/2008/12/11/ironpython-2-0-release.aspx</link><pubDate>Thu, 11 Dec 2008 06:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9194508</guid><dc:creator>shozoa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9194508.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9194508</wfw:commentRss><description>&lt;P&gt;ついに&lt;A href="http://www.codeplex.com/IronPython/" target=_blank mce_href="http://www.codeplex.com/IronPython/"&gt;IronPython 2.0&lt;/A&gt;がリリースされました。それと同期するように&lt;A href="http://www.codeplex.com/dlr/" target=_blank mce_href="http://www.codeplex.com/dlr/"&gt;DLR&lt;/A&gt;も公開されています。ふむDLRのバージョンは0.9となっていますが、12/10にUpされているのでRC2に同期した0.9から、どの程度更新されたかは不明です。&lt;/P&gt;
&lt;P&gt;DLR-0.9をダウンロードしてみると、中にIronRuby、ToyScript、IronPythonも含まれています。IronPython.dllのバージョンを見ると2.0.11121.0なのでIronPython 2.0に含まれているのと同じバージョンになります。異なるのはタイムスタンプだけです。また、DLRに関するドキュメントがWORD文書で5つほど含まれています。DLRをホスティングするには、dlr-spec-hosting.docという文書が有益です。&lt;/P&gt;
&lt;P&gt;PS:Silverlight Dynamic Lamguage SDKに含まれているバイナリと同じものが、DLR-0.9に含まれています。今回のソースコードに対応したものは、まだ公開されていないようです。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9194508" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Silverlight Dynamic Language SDK の使い方4</title><link>http://blogs.msdn.com/shozoa/archive/2008/10/28/silverlight-dynamic-language-sdk-4.aspx</link><pubDate>Tue, 28 Oct 2008 08:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9019735</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9019735.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9019735</wfw:commentRss><description>&lt;P&gt;今回は、 Chiron.exeの/bや/z、/mオプションで作成されるアプリケーション・マニフェストを説明します。例題とするのは、&lt;A href="http://silverlight.net/samples/sl2/dlrconsole/index.html" target=_blank mce_href="http://silverlight.net/samples/sl2/dlrconsole/index.html"&gt;DLR Console&lt;/A&gt;で使用されているAppManifest.xamlです。&lt;BR&gt;&lt;PRE&gt;&amp;lt;Deployment 
  xmlns="http://schemas.microsoft.com/client/2007/deployment"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  RuntimeVersion="2.0.31005.00" 
  EntryPointAssembly="Microsoft.Scripting.Silverlight"
  EntryPointType=
  "Microsoft.Scripting.Silverlight.DynamicApplication"
&amp;gt;
  &amp;lt;Deployment.Parts&amp;gt;
    &amp;lt;!-- Add additional assemblies here --&amp;gt;
    &amp;lt;AssemblyPart Source="Microsoft.Scripting.Silverlight.dll"/&amp;gt;
    &amp;lt;AssemblyPart Source="Microsoft.Scripting.Core.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="Microsoft.Scripting.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source=
          "Microsoft.Scripting.ExtensionAttribute.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="IronPython.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="IronPython.Modules.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="IronRuby.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="IronRuby.Libraries.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="Microsoft.JScript.Runtime.dll" /&amp;gt;
    &amp;lt;AssemblyPart Source="Microsoft.JScript.Compiler.dll" /&amp;gt;
  &amp;lt;/Deployment.Parts&amp;gt;
&amp;lt;/Deployment&amp;gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;最初に取り上げるのが、Deployment要素のEntryPointAssembly属性とEntryPointType属性です。ここには、以下のように記述されています。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;EntryPointAssembly="Microsoft.Scripting.Silverlight"&lt;/STRONG&gt; 
&lt;LI&gt;&lt;STRONG&gt;EntryPointType="Microsoft.Scripting.Silverlight.DynamicApplication"&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;属性名が表しているようにSilverlight2.0対応のランタイムが起動するプログラムが格納されたアセンブリと開始するクラスを指定しています。このDynamicApplicationクラスこそが、SilverlightとDLRを結びつけるものです。このエントリポイントのモデルは、DLRに限った話ではなくC#やVBを使ったSilverlightアプリケーションでも使用されているものです。そして、DynamicApplicationクラスはSystem.Windows.Applicationクラスを継承しています。&lt;/P&gt;
&lt;P&gt;Deployment.Parts要素内のAssemblyPart要素にSilverlightランタイムが読み込むアセンブリをSource属性で指定します。ここで指定しているアセンブリを以下に示します。&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=519 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=210&gt;アセンブリ名&lt;/TD&gt;
&lt;TD class="" vAlign=top width=303&gt;説明&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=210&gt;Microsoft.Scripting.Silverlight.dll&lt;/TD&gt;
&lt;TD class="" vAlign=top width=303&gt;Silverlight 2.0ランタイムのエントリポイントです。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=210&gt;Microsoft.Scripting.Core.dll&lt;/TD&gt;
&lt;TD class="" vAlign=top width=303&gt;DLRの本体です。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=210&gt;Microsoft.Scripting.&lt;BR&gt;ExtensionAttribute.dll&lt;/TD&gt;
&lt;TD class="" vAlign=top width=303&gt;IronPython 2.0RC1から追加されたDLRの補助アセンブリです。ビルド時のSystem.Core.dllとの衝突を回避するために導入されました。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=210&gt;Microsoft.Scripting.dll&lt;/TD&gt;
&lt;TD class="" vAlign=top width=303&gt;DLRを使用するための各種ヘルパーです。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;これ以外のアセンブリが、動的言語のためのものです。アセンブリ名から、IronPython、IronRuby、Managed JScript用がどれかというのは自明でしょう。そしてSource属性は、上記のような書き方以外にURLによる記述も可能です。URLを使った表記の場合は、相対パスではなく絶対パス(http://で始まる)の記述になります。URLで記述した場合は、xapファイル内に対象のアセンブリを含める必要はありません。&lt;/P&gt;
&lt;P&gt;プログラムを開発する上でSilverlight SDKなどで提供される拡張アセンブリを使用する場合は、AssemblyPart要素に記述する必要とxapファイルに含める必要があります。Visual StudioのSilverlightプロジェクトでは、この一連の作業をVisual Stduioが行ってくれます。動的言語で開発する場合は、自分でAppManifest.xamlへの記述とxapファイルへのアセンブリをパッケージングする必要があります。後は、使用される動的言語によって追加したアセンブリに対する参照を記述するれば、スクリプトの中から使用することが可能になります。&lt;BR&gt;&lt;PRE&gt;#IronPython
import clr
clr.AddReference(アセンブリ識別子かアセンブリ名)
import文かfrom -- import 文で参照を行う&lt;/PRE&gt;&lt;BR&gt;&lt;PRE&gt;#IronRuby
require 'アセンブリ識別子'
&lt;/PRE&gt;&lt;BR&gt;
&lt;P&gt;上記のように参照を行うことで、スクリプトの中から自由に参照したアセンブリを使用することができるようになります。ちなみに、アセンブリ識別子とは「System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e」という形式のことです。&lt;/P&gt;
&lt;P&gt;最後に添付のapp.pyは、最初にご紹介したDLR Consoleのキーマッピングを日本語キーボード用に変更(TextInputHandlerクラス)したものです。ライセンスは、Silverlight Dynamic Language SDKがMS-PLですので、それに準拠したご使用をお願いいたします。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9019735" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/shozoa/attachment/9019735.ashx" length="75184" type="application/octet-stream" /><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Silverlight Dynamic Language SDK の使い方3</title><link>http://blogs.msdn.com/shozoa/archive/2008/10/27/silverlight-dynamic-language-sdk-3.aspx</link><pubDate>Mon, 27 Oct 2008 10:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9017698</guid><dc:creator>shozoa</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9017698.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9017698</wfw:commentRss><description>&lt;P&gt;Dynamic Language SDK で提供されるスクリプトのserver.batとは、chiron.exeをラップしただけのものです。このため指定できるオプションを確認するには、「/?」か「/h」オプションを指定します。指定できるオプションを以下に示します。&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=506 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=145&gt;オプション&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;
&lt;CENTER&gt;説　　　明&lt;/CENTER&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=149&gt;/d:パス 又は /dir、/directory&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;アプリケーション(スクリプトやプログラム)を格納しているフォルダを指定します。デフォルトは「app」になります。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=153&gt;/x:xapファイル 又は /xap、/xapfile&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;xapファイルを作成する場合に「/x:app.xap」のようにxapファイルを指定します。/dで指定したフォルダの中身がxapファイルに格納されます。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=156&gt;/n 又は /nologo&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;バナーの表示を抑制します。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=158&gt;/s 又は /silent&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;コンソール出力を抑制します。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=160&gt;/z:xapファイル 又は /zipdlr&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;DLRアプリケーション向けのxapファイルを生成します。/dで指定したフォルダにAppManifest.xamlが存在しなければ自動的に生成します。/xオプションとの違いは、スクリプトファイルを解析して必要なアセンブリと生成したAppManifest.xamlをxapファイル内に含めることです。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=161&gt;/w 又は /webserver&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;テスト用のWebサーバーを起動します。デフォルトのポートは、2060になります。ポートを指定する場合は、/w:ポート番号と指定します。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=162&gt;/b 又は /browser&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;テスト用のWebサーバーを起動して、ブラウザを起動します。開始時のURLを指定するには、/b:パスオプションを指定します。/dオプションを組み合わせれば、WebサーバーのトップURLの場所を指定することができます。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=163&gt;/m 又は /manifest&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;アプリケーション・マニフェスト(AppManifest.xaml)を生成します。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=164&gt;/? 又は /h、/help&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;ヘルプを表示します。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=164&gt;/r:パス 又は /refpath&lt;/TD&gt;
&lt;TD class="" vAlign=top width=359&gt;参照するアセンブリへのパスを指定します。デフォルトは、Chiron.exeが存在するフォルダを参照します。&lt;BR&gt;このオプションは、ヘルプに表示されません。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;オプションの使い方は、ヘルプコマンドで確認するか、SDKに含まれるReadme.txtに記述されています。&lt;BR&gt;&lt;BR&gt;前回に解説したプログラムをテスト実行するだけであれば、「chiron.exe /b /d:アプリケーションフォルダ」を実行することでブラウザで実行することができます。&lt;/P&gt;
&lt;P&gt;配布用にXAPファイルを作成するには、以下のようにコマンドを入力します。&lt;BR&gt;&lt;PRE&gt;chiron.exe /d:アプリケーション・フォルダ /z:app.xap
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;これでXAPファイルが出来ますので、index.htmlとjavascriptフォルダ、stylesheetsフォルダ、作成したXAPファイルをWebサーバーへ配置すれば本番環境への移行が完了します。&lt;/P&gt;
&lt;P&gt;chiron.exe&lt;STRIKE&gt;に&lt;/STRIKE&gt;は/xオプションでXAPファイルを作成できますが、このオプションは動的言語に特化したものではありません。どういう場合に使うかというと、既存のXAPファイルを展開して、中身のリソース(画像など)を入れ替えた場合などの再XAP化に使用することができます。つまり、リソース入れ替えでVisual StudioのリビルドなどをしなくてもXAPファイルを作成できるのです。具体的には、以下のようなコマンドを入力します。&lt;BR&gt;&lt;PRE&gt;chiron.exe /d:アプリケーション・フォルダ /x:app.xap
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;/dオプションで指定したフォルダに配置したファイル(AppManifest.xaml、dllなど)をそのままxapファイルにパッケージ化します。&lt;BR&gt;&amp;nbsp;&lt;BR&gt;/bオプションや/wオプションでWebサーバーを起動した場合は、ブラウザ・リクエストによるログがコンソールに表示されます。このコンソールを終了する場合は、コンソールで「CTRL+C」を入力するか、ブラウザで「&lt;STRONG&gt;http://localhost:2060/bye!&lt;/STRONG&gt;」のように「bye!」コマンド入力してください。これで、Webサーバーが終了します。&lt;/P&gt;
&lt;P&gt;追伸：&lt;A href="http://www.codeplex.com/IronPython/" target=_blank mce_href="http://www.codeplex.com/IronPython/"&gt;IronPython 2.0 RC1&lt;/A&gt;が先週にリリースされました。今回はToyScriptのサンプルも公開されていますので、DLRの使い方を調べやすいと思います。&lt;/P&gt;
&lt;P&gt;追記：RednaxelaFXさんのご指摘で、/nologの書き間違いを/nologoに訂正しました。それと/zオプションに/xオプションとの違いを追記しました。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9017698" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Silverlight Dynamic Language SDK の使い方2</title><link>http://blogs.msdn.com/shozoa/archive/2008/10/22/silverlight-dynamic-language-sdk-2.aspx</link><pubDate>Wed, 22 Oct 2008 05:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9010646</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9010646.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9010646</wfw:commentRss><description>&lt;P&gt;今回は、SDKで提供されるテンプレート集の構造を説明します。最初にindex.htmlのobjectタグを解説します。&lt;BR&gt;&lt;PRE&gt;&amp;lt;object data="data:application/x-silverlight,"
        type="application/x-silverlight-2" 
        width="100%" height="100%"&amp;gt;
  &amp;lt;!-- 
     XAPファイルを指定します。指定したファイル名が
      開発中に使用するフォルダ名になります。
    --&amp;gt;
  &amp;lt;param name="source" value="python.xap"/&amp;gt;

  &amp;lt;!-- 
      "initParams"はkey=valueの形式で、カンマ区切りで複数の
       パラメータを指定できます。
    --&amp;gt;
  &amp;lt;param name="initParams" value="debug=true,
         reportErrors=errorLocation" /&amp;gt;
        
  &amp;lt;!-- Silverlightランタイムのエラーを処理する
        javascript関数を指定します。この関数は
        javascripts/error.js で定義されています。 --&amp;gt;
  &amp;lt;param name="onerror" value="onSilverlightError" /&amp;gt;
      
  &amp;lt;!-- 
      他のパラメータは、Silverlightのプロパティです。
   --&amp;gt;
  &amp;lt;param name="background" value="white" /&amp;gt;
  &amp;lt;param name="windowless" value="true" /&amp;amp;lg;

  &amp;lt;!-- 
      Silverlight ランタイムのインストール用のリンクです。
    --&amp;gt;
  &amp;lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" 
 　　　　 style="text-decoration: none;"&amp;gt;
    &amp;lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" 
         alt="Get Microsoft Silverlight" 
         style="border-style: none"/&amp;gt;
  &amp;lt;/a&amp;gt;
&amp;lt;/object&amp;gt;&lt;/PRE&gt;&lt;BR&gt;
&lt;P&gt;以下に指定しているパラメータの説明を記載します。&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=487 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top align=middle width=122&gt;パラメータ名&lt;/TD&gt;
&lt;TD class="" vAlign=top align=middle width=363&gt;説　　　明&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=125&gt;objectタグのtype&lt;/TD&gt;
&lt;TD class="" vAlign=top width=363&gt;"application/x-silverlight-2"がSilverlight2.0の指定です。HTTPサーバーのMIMEタイプに拡張子xapを設定する必要があります。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=127&gt;source&lt;/TD&gt;
&lt;TD class="" vAlign=top width=363&gt;xapのファイル名を指定します。開発中の場合は、ファイル名(拡張子除き)のフォルダを作成します。この例では、「python」フォルダになります。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=128&gt;initParams&lt;/TD&gt;
&lt;TD class="" vAlign=top width=363&gt;DynamicApplicationに対してカンマ区切りで複数のパラメータを指定します。これが動的言語を起動するために必須のものです。&lt;BR&gt;&lt;STRONG&gt;start:&lt;/STRONG&gt;複数のスクリプトファイルがあれば、エントリーポイントとなるスクリプトファイルを指定します。defaultは、「app」になっています。&lt;BR&gt;&lt;STRONG&gt;debug：&lt;/STRONG&gt;エラー時にスタックトレースを出力するかどうかを指定します(デバッグ用です)。defaultは、falseです。&lt;BR&gt;&lt;STRONG&gt;reportError：&lt;/STRONG&gt;エラーが発生した場合にエラー内容を出力するHTML要素のIDを指定します。この例では「errorLocation」を指定しており、HTML内でdivタグで定義しています。defaultはnullです。&lt;BR&gt;&lt;STRONG&gt;exceptionDetail：&lt;/STRONG&gt;例外の詳細情報(マネージ スタックトレース)を出力するかどうかを指定します。defaultは、falseです。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=129&gt;onerror&lt;/TD&gt;
&lt;TD class="" vAlign=top width=363&gt;Silverlightランタイムのエラーを処理するjavascript関数を指定します。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;Silverlight2.0で動的言語を使う上で重要なのが、initParamsパラメータになります。ここで動的言語の起動用の様々な指定を行っています。このパラメータは、Microsoft.Scripting.Silverlight.DynamicApplicationクラスのコンストラクタに渡されます。独自のパラメータを指定した場合は、DynamicApplicationクラスのInitParamsプロパティを使って辞書オブジェクトへアクセスすることができますので、起動時に自分用のパラメータを指定することも可能です。&lt;/P&gt;
&lt;P&gt;python言語のテンプレートでは、python.xapが指定されていますのでpythonフォルダ内にapp.pyがあることになります。このapp.pyの内容を以下に示します。&lt;BR&gt;&lt;PRE&gt;from System.Windows import Application
from System.Windows.Controls import UserControl

class App:
  def __init__(self):
    root = Application.Current.LoadRootVisual(
                         UserControl(), "app.xaml")
    root.Message.Text = "Welcome to Python and Silverlight!"

App()
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;Pythonコードで、Appクラスを定義してからAppクラスのインスタンスを作成するようになっています。ここでのポイントは、System.Windows.Applicationクラスの使い方にあります。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;from 文は、C#のusing文、VBのImports文に相当します。 
&lt;LI&gt;Application.CurrentプロパティでApplicationクラスのインスタンスを取得します。このインスタンスがDynamicApplicationクラスになっています。 
&lt;LI&gt;LoadRootVisualメソッドを使ってXAMLファイルを読み込んでいます。このメソッドの1つ目の引数がUserControlのインスタンスで、2つ目の引数がXAMLのファイル名です。戻り値に、XAMLファイルで指定したルートオブジェクトが戻ります。1つ目の引数に指定するオブジェクトは、XAMLファイルのルートで指定したものになります。よって、Canvasタグが指定されている場合はCanvasオブジェクトになります。 
&lt;LI&gt;root.Message.Textプロパティに文字列を指定しています。Messageオブジェクトは、XAMLファイルで定義されたTextBlockのインスタンスです。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;以下にapp.xamlを示します。&lt;BR&gt;&lt;PRE&gt;&amp;lt;UserControl x:Class="System.Windows.Controls.UserControl"
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&amp;gt;
  &amp;lt;Grid x:Name="layout_root" Background="White"&amp;gt;
    &amp;lt;TextBlock x:Name="Message" FontSize="30" /&amp;gt;
  &amp;lt;/Grid&amp;gt;
&amp;lt;/UserControl&amp;gt;
&lt;/PRE&gt;&lt;BR&gt;このapp.xamlをapp.pyと同じフォルダに配置します。従ってPythonのコードで指定しているXAMLファイル名を変更すれば、app.xamlである必要はありません。テンプレート集では、スクリプトファイルの名前がdefaultでappになっているために、XAMLファイルも同じように合わせていると思われます。&lt;BR&gt;app.pyをユニコードのエンコードにして、設定している文字列を日本語にしてみてください。問題なく、日本語が表示されます。Silverlightで日本語を含むマルチバイトの言語を使用するには、スクリプトファイルのエンコードをユニコードにする必要があります。これは、使用する言語に左右されません。Silverlight上の言語実装が、このようになっている模様です。事実、IronPython2.0ベータのインタラクティブシェルなどで試すとファイルエンコーディングを指定して様々なエンコードのスクリプトファイルを処理することができます。よって、Silverlightで動作させるために削減された機能の1つが、スクリプトファイルのエンコーディング指定のようです。 
&lt;P&gt;追伸：サンプルのcollateraldamageのPython版について&lt;BR&gt;ゲームのサンプルですが、Python版を試すとエラーが発生します。リーソースが見つかりませんというものです。エラーが発生しても継続することはできます。このエラーを回避するには、index.html内のonSilverlightError関数に以下を追加する必要があります。&lt;BR&gt;&lt;PRE&gt;  else if (errorType == "ImageError")
  {
      // ImageErrorを握り潰す
      return;
  }
&lt;/PRE&gt;これでリソースイメージエラーが発生しなくなります。&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9010646" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Silverlight Dynamic Language SDK の使い方1</title><link>http://blogs.msdn.com/shozoa/archive/2008/10/19/silverlight-dynamic-language-sdk-1.aspx</link><pubDate>Sun, 19 Oct 2008 10:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9006099</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9006099.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9006099</wfw:commentRss><description>&lt;P&gt;既にご案内したようにSilverlight 2.0に対応したDynamic Language SDKがリリースされています。&lt;A href="http://www.codeplex.com/sdlsdk" target=_blank mce_href="http://www.codeplex.com/sdlsdk"&gt;Codeplexのサイト&lt;/A&gt;には、以下の5種類が公開されています。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;sdlsdk-0.4.0(Everything)：バイナリ、サンプル、ソースが含まれています。&lt;/LI&gt;
&lt;LI&gt;sdlsdk-0.4.0-bin：バイナリのみ。&lt;/LI&gt;
&lt;LI&gt;sdlsdk-0.4.0-samples：サンプルのみ。&lt;/LI&gt;
&lt;LI&gt;sdlsdk-0.4.0-src：ソースコードのみ。&lt;/LI&gt;
&lt;LI&gt;sdlsdk-0.4.0-symblos：デバッグなどで使用するシンボル。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;開発に利用するには、sdlsdk-0.4.0(Everything)がお勧めでしょう。このパッケージには以下のようなフォルダ構造が含まれています。&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=133&gt;bin&lt;/TD&gt;
&lt;TD class="" vAlign=top width=265&gt;chiron.exeや使用するdllが含まれます&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=133&gt;samples&lt;/TD&gt;
&lt;TD class="" vAlign=top width=265&gt;サンプルプログラム&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=133&gt;script&lt;/TD&gt;
&lt;TD class="" vAlign=top width=265&gt;起動用のスクリプトと開発用のテンプレート集(templatesフォルダ)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=133&gt;src&lt;/TD&gt;
&lt;TD class="" vAlign=top width=265&gt;ソースコード(Managed JS除き)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=133&gt;ルート直下のファイル&lt;/TD&gt;
&lt;TD class="" vAlign=top width=265&gt;Readmeとライセンス&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;テンプレート集を試すには、scriptフォルダでコマンドプロンプトを開いて、「&lt;STRONG&gt;server /b&lt;/STRONG&gt;」を実行するとブラウザが開きます。templates/言語フォルダ/index.htmをブラウザで開くことで、テンプレート集で提供されているプログラムを動かすことができます。&lt;/P&gt;
&lt;P&gt;　テンプレート集で提供されている構造は以下のようなものです。&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=487 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=138&gt;javascriptフォルダ&lt;/TD&gt;
&lt;TD class="" vAlign=top width=347&gt;error.js：Silverlightランタイムのエラー時に指定するonSilverlightError関数が定義されています。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=140&gt;言語フォルダ&lt;/TD&gt;
&lt;TD class="" vAlign=top width=347&gt;app.言語拡張子、app.xaml：言語のコードサンプルと単純なXAML(GridとTextBlockだけ)が定義されています。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=141&gt;stylesheetsフォルダ&lt;/TD&gt;
&lt;TD class="" vAlign=top width=347&gt;screen.css、error.css：error.cssはSilverlightランタイムのエラーなどを表示するスタイルシートで、フォントがCourier Newになっています。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=142&gt;index.html&lt;/TD&gt;
&lt;TD class="" vAlign=top width=347&gt;Silverlightを起動する指定がobjectタグで記述されています。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;このテンプレートを使ってカスタマイズして、動的言語を使ったSilverlight2 アプリを開発できるようになっています。&lt;/P&gt;
&lt;P&gt;このテンプレートを使って開発するには、scriptフォルダにある「&lt;STRONG&gt;sl.bat&lt;/STRONG&gt;」ファイルを使用するのが簡単です。sl.batの使い方は、scriptフォルダでコマンドプロンプトを開いて以下のようにコマンドを入力します。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;　sl&amp;nbsp; 言語&amp;nbsp; アプリケーションフォルダ&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;言語には、「&lt;STRONG&gt;python&lt;/STRONG&gt;」「&lt;STRONG&gt;ruby&lt;/STRONG&gt;」「&lt;STRONG&gt;jscript&lt;/STRONG&gt;」を指することができます(要は、templatesフォルダ内にある言語フォルダの名前です)。アプリケーションフォルダとは、開発するアプリケーションを格納するフォルダのことです。これで上記のコマンドを実行すると、templatesフォルダで提供されているテンプレート集を指定したアプリケーションフォルダにコピーしてくれます(xcopyです)。これで、必要なコードを記述していけばよいということになります。&lt;/P&gt;
&lt;P&gt;提供されているサンプルを試す場合は、scriptフォルダでコマンドプロンプトを開いて以下のようにserver.batにオプションを付けて実行します。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;server /d:..\samples /b&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;/dオプションで、開始するフォルダを指定しています。/bオプションは、ブラウザを開く指定です。後は、ブラウザを使って提供されているサンプル(jscript、python、ruby)のフォルダをナビゲートしてindex.htmlを開けば、サンプルプログラムが動作します。&lt;/P&gt;
&lt;P&gt;次回は、実際の開発時の注意点などを含めてまとめていきます。&lt;/P&gt;
&lt;P&gt;#この時点で試されるかたは、スクリプトファイルのエンコードをunicodeにするようにしてください。日本語を扱うには、エンコードがunicodeになっている必要があるからです。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9006099" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Silverlight 2.0RTM 用のDynamic Language SDKが公開されました</title><link>http://blogs.msdn.com/shozoa/archive/2008/10/16/dynamic-language-sdk-for-silverlight-2-0rtm.aspx</link><pubDate>Thu, 16 Oct 2008 06:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9001362</guid><dc:creator>shozoa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/9001362.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=9001362</wfw:commentRss><description>&lt;P&gt;　Silverlight 2.0 RTM対応のDynamic Language SDKが、もうまもなく公開されるようです。JimmyさんのBlogで、&lt;A href="http://blog.jimmy.schementi.com/2008/10/dynamic-languages-in-silverlight-2-rtw.html" target=_blank mce_href="http://blog.jimmy.schementi.com/2008/10/dynamic-languages-in-silverlight-2-rtw.html"&gt;リリースの案内&lt;/A&gt;が掲載されています。日本時間では、明日でしょうか。codeplexの&lt;A href="http://www.codeplex.com/sdlsdk/" target=_blank mce_href="http://www.codeplex.com/sdlsdk/"&gt;サイト&lt;/A&gt;で公開されますので、今日・明日にでもUpされるのでしょう。&lt;BR&gt;と書きながらチェックしたらUpされました。バージョンは、10月初めに公開された0.4.0のままです。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9001362" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Dynamic Language SDK 0.4.0 が公開されています</title><link>http://blogs.msdn.com/shozoa/archive/2008/10/03/release-dynamic-language-sdk-0-4-0.aspx</link><pubDate>Fri, 03 Oct 2008 07:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8974984</guid><dc:creator>shozoa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/8974984.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=8974984</wfw:commentRss><description>&lt;P&gt;Silverlight2.0 RC0に対応した&lt;A href="http://www.codeplex.com/sdlsdk/" target=_blank mce_href="http://www.codeplex.com/sdlsdk/"&gt;Dynamic Language SDK 0.4.0&lt;/A&gt;が公開されています。&lt;BR&gt;&lt;BR&gt;お知らせまで。&lt;BR&gt;&lt;BR&gt;追伸:まだ、DLRの変更点とかまで調べきれていません。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8974984" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>DLR ベータ5 について</title><link>http://blogs.msdn.com/shozoa/archive/2008/09/19/dlr-beta5-s-detail.aspx</link><pubDate>Fri, 19 Sep 2008 11:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8958318</guid><dc:creator>shozoa</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/8958318.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=8958318</wfw:commentRss><description>&lt;P&gt;IronPython 2.0ベータ5がリリースされてから、DLRにどのような変更が行われているかを調べてみました。一番、大きな変更はネームスペースの変更なのですが、ベータ4に対して以下のようになっています。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;System.Scripting-&amp;gt; Microsoft.Scripting&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Systemというネームスペースが廃止されて、元のMicrosoftというネームスペースに戻っています。それからScriptRuntimeクラスからCreateメソッドが廃止されて、コンストラクタがScriptRuntimeSetupクラスの引数を取るようになっています。この関係でWell Known Languageを指定するScriptRuntimeSetupクラスのコンストラクタからbool引数が廃止されています。この代わりにReadConfigurationメソッドが追加されています。この変更に伴ってScriptRuntimeクラスにもCreateFromConfigurationメソッドが追加されています。この追加されたメソッドを使用するには、app.configに以下の記述を行います。&lt;BR&gt;&lt;PRE&gt;&amp;lt;configuration&amp;gt;
  &amp;lt;configSections&amp;gt;
    &amp;lt;section name="microsoft.scripting"
        type="Microsoft.Scripting.Hosting.Configuration.Section,
              Microsoft.Scripting, Version=1.0.0.5000,
              Culture=neutral, PublicKeyToken=null"
              requirePermission="false" /&amp;gt;
  &amp;lt;/configSections&amp;gt;

  &amp;lt;microsoft.scripting&amp;gt;
    &amp;lt;languages&amp;gt;
      &amp;lt;language names="IronPython;Python;py"
                   extensions=".py"
                   displayName="IronPython 2.0 Beta"
                   type="IronPython.Runtime.PythonContext,
                   IronPython, Version=2.0.0.5000,
                   Culture=neutral, PublicKeyToken=null" /&amp;gt;
    &amp;lt;/languages&amp;gt;

    &amp;lt;options/&amp;gt;
  &amp;lt;/microsoft.scripting&amp;gt;
&amp;lt;/configuration&amp;gt;
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;languageタグに&lt;STRIKE&gt;仕様&lt;/STRIKE&gt;使用する言語を記述しておくことで、ReadConfigurationやCreateFromConfigurationメソッドでScriptRuntimeSetupクラスをWell Known Languageで初期化することができます。IronRuby svn 148のソースツリーは、既にこの対応が行われていて、Python、Ruby、JScript、VB、ToyScript&lt;STRIKE&gt;の&lt;/STRIKE&gt;が記述されています(VBのリリース状況がどうかは不明です)。&lt;/P&gt;
&lt;P&gt;それからObjectOperartions.GetMemberNamesメソッドは正常に動作するようにバグ対応が行われていました。また、Expressions.ExpressionクラスからCodeContextメソッドが削除され、Microsoft.Scripting.Ast.UtilsクラスにCodeContextメソッドが追加されています。細かな変更は他にもありますが、ホスティングする上では上記の内容程度で対応することができます。TechEdの独自言語サンプルなどのベータ5への移植は、それほど手間がかかりませんので、試される方は試してみてください。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8958318" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>DLR Console を使って時計をドラッグするサンプル</title><link>http://blogs.msdn.com/shozoa/archive/2008/09/03/dragging-clock-on-dlr-console.aspx</link><pubDate>Wed, 03 Sep 2008 11:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8921656</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/8921656.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=8921656</wfw:commentRss><description>&lt;P&gt;前回のエントリで Silverlight Dynamic Language SDK 0.3.0がリリースされたと記載しました。このSDKで提供されているサンプルにDLR Consoleがあります。もっともDLR Consoleは、SDK 0.2.0(Silverlight 2.0 ベータ2と一緒に提供されたものです)で動作するようになっています。SDK 0.3.0に含まれているDLRを調べると、IronPythonのChangeset38029以降のもののようです。このためIronRubyプロジェクトで今日時点で公開されているSVN138よりも新しいDLRになります。このDLRでは、ホスティングAPIなどの細かな変更やネームスペースの変更が行われています。&lt;/P&gt;
&lt;P&gt;SDK 0.3.0のDLR Consoleでは、時計をドラッグするというRuby用のスクリプトが含まれています。時計をドラッグするサンプルは、&lt;A href="http://blog.jimmy.schementi.com/2008/08/dragging-elements-in-silverlight-with.html" target=_blank mce_href="http://blog.jimmy.schementi.com/2008/08/dragging-elements-in-silverlight-with.html"&gt;Jimmyさんのブログ&lt;/A&gt;に解説があり&lt;A href="http://www.flickr.com/photos/jschementi/2802715720/" target=_blank mce_href="http://www.flickr.com/photos/jschementi/2802715720/"&gt;ビデオのリンク&lt;/A&gt;やDLR Consoleを試すリンクなどがあります(英語キーボードなのでご注意ください)。このサンプルを動かしているのが、以下の画像になります。&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/DraggingClockonDLRConsole_FABE/DLR%20Console_2.png" mce_href="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/DraggingClockonDLRConsole_FABE/DLR%20Console_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=204 alt="DLR Console" src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/DraggingClockonDLRConsole_FABE/DLR%20Console_thumb.png" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/shozoa/WindowsLiveWriter/DraggingClockonDLRConsole_FABE/DLR%20Console_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;ここで入力しているコードを以下に記載します(Jimmyさんのブログには、一か所不足しているコードがありますので)。&lt;BR&gt;&lt;PRE&gt;require 'lib/clock'
$clock = Clock.show
require 'lib/drag'
Drag.new($clock.canvas).enable
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;これで私は上記のサンプルを動作させることができました。&lt;BR&gt;ちなみに今日時点でIronPythonの最新のChangesetは38690がUpされています。&lt;/P&gt;
&lt;P&gt;追伸:実はTechEdでこのデモをお見せしようとしたのですが、時間が足りなくて忘れてしまいました。Peer Talkで一部の方に受けていたのが、このサンプルです。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8921656" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>Dynamic Language SDK 0.3.0 がリリースされています</title><link>http://blogs.msdn.com/shozoa/archive/2008/09/01/release-dynamic-language-sdk-0-3-0.aspx</link><pubDate>Mon, 01 Sep 2008 11:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8916007</guid><dc:creator>shozoa</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/8916007.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=8916007</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.codeplex.com/sdlsdk/" target=_blank mce_href="http://www.codeplex.com/sdlsdk/"&gt;Dynamic Language SDK&lt;/A&gt; のVer0.3.0がリリースされています。Dynamic Language SDKとは、DynamicSilverlight SDKと呼んでいたものの名称が変更されたものです。実行環境として、Silverlight 2.0 ベータ2が必要になります。ソースコードも公開されていまして、含まれているDLRのソースコードを見るとIronPython2.0 ベータ4よりも開発が進んだものになっています。含まれるバイナリには、IronRuby、IronPython、ManagedJScriptがあり、そのままでSilverlight2.0ベータ2環境で動作させることができます。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8916007" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>DLR B4 対応の MyCalc サンプルです</title><link>http://blogs.msdn.com/shozoa/archive/2008/08/30/dlr-b4-based-mycalc-sample.aspx</link><pubDate>Sat, 30 Aug 2008 16:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8909669</guid><dc:creator>shozoa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/8909669.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=8909669</wfw:commentRss><description>&lt;P&gt;TechEd 2008 Yokohamaでお話したようにDLRのホスティングのサンプルを公開します。今回は、1)MyCalc、2)Toolサンプルの2種類が含まれています。どちらもIronPython 2.0ベータ4のDLR対応ですので、DLRは&lt;A href="http://www.codeplex.com/IronPython/" target=_blank mce_href="http://www.codeplex.com/IronPython/"&gt;IronPythonプロジェクト&lt;/A&gt;からダウンロードしてください。TechEdに参加して頂いた方には、事後になりますがカンファレンスDVDにも収録しますので、そちらを見ていただいても結構です。もっともDVDが届くのまで時間がかかりますので、早く知りたいという場合は、ここからダウンロードしてください。&lt;/P&gt;
&lt;P&gt;それから当日にお話したと思いますが、IronPythonプロジェクトとIronRubyプロジェクトに含まれるDLRの状況を記載しておきます。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IronPython 2.0ベータ4に対応したIronRubyのソースを私は見つけていません。&lt;/LI&gt;
&lt;LI&gt;IronPython Changeset37512とIronRuby SVN138のDLRは同期しています。&lt;/LI&gt;
&lt;LI&gt;IronPython Chnageset38029のDLRは、37512から変更されていますのでご注意ください。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;TechEdでお見せしたオブジェクト共有のデモの環境は、Silverlight2ベータ2とIronPython Chnageset37512、IronRuby SVN138です。それぞれのソースコードは、TechEd期間中にサブミットされた最新を使用しています。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8909669" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/shozoa/attachment/8909669.ashx" length="571266" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item><item><title>本日はTechEdのセッション当日です</title><link>http://blogs.msdn.com/shozoa/archive/2008/08/28/I-will-speak-my-session-in-TechEd-Yokohama.aspx</link><pubDate>Thu, 28 Aug 2008 02:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8901886</guid><dc:creator>shozoa</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/shozoa/comments/8901886.aspx</comments><wfw:commentRss>http://blogs.msdn.com/shozoa/commentrss.aspx?PostID=8901886</wfw:commentRss><description>&lt;P&gt;何とか「.NETにおけるLightweight Language」のデモ準備が終わりました。最終的に利用するものは、Iron Ruby SVN 138とIronPython Changeset37512です。これにIronRuby アルファ、IronPython 2.0 ベータ4です。IronPythonのChangeset 38029が昨日にアップされていますが、含まれているDLRがIronRubyよりも新しくなっているために、Changeset37512にしました。これらのChangesetをビルドして試すと、ベータ5と名付ける予定だということがバージョン番号から理解できます。&lt;/P&gt;
&lt;P&gt;Changeset38029では、LanguageContextクラスに変更が入っている模様なのですが、まだ詳細を調べきれていません。お時間のある方は調べてみてください。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8901886" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/shozoa/archive/tags/DLR/default.aspx">DLR</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/Python/default.aspx">Python</category><category domain="http://blogs.msdn.com/shozoa/archive/tags/IronRuby/default.aspx">IronRuby</category></item></channel></rss>