Windowsでruby-pgをコンパイルする

PostgreSQL用のRubyアダプタは、Rubyで書かれたpostgres-prと、Cで書かれたライブラリがありますが、Cで書かれた方は、名前がpostgres、ruby-postgres、ruby-pg、pgところころかわった上、Windows用のバイナリが提供されなくなったため、Windowsでは使いにくくRailsではMySQLが好まれる一因になっているような気がします。

一時はpgのメンテナがWindowsでコンパイルできる人を募集するなどしていたようですが、最近ではバイナリパッケージは出ていないものの、Windowsでのコンパイル方法がフォーラムで紹介されるなど、状況が改善されてきています。

http://www.microsoft.com/japan/msdn/vstudio/express/

私もいろいろ試してみたところ、最新版では通常のgemでもコンパイル導入ができるようなので、紹介しておきます。

1. PostgreSQLのインストール

最新版の8.3.5-1をインストールします。インストールオプションで開発用のモジュール(インクルードファイルとライブラリ)を追加しておきます。

2. Visual C++ 2008 Express Editionのインストール

下記のページから、Visual C++ 2008 Express Editionをダウンロードし、インストールします。
http://www.microsoft.com/japan/msdn/vstudio/express/

3. Rubyのconfig.hの修正

Ruby 1.8.6のヘッダファイルconfig.hには、Visual C++のバージョンを6.0に限定する下記のディレクティブが含まれているため、これをコメントアウトします。

/*
#if _MSC_VER != 1200
#error MSC version unmatch
#endif
*/

4. gemのインストール

環境変数を利用するため、Windowでスタート>すべてのプログラム>Microsoft Visual C++ 2008 Express Edition>Visual Studio Tools>Visual Studio コマンド プロンプトを起動します。
このコマンドプロンプトからgemをインストールします。

>gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.7.9.2008.10.13
1 gem installed
Installing ri documentation for pg-0.7.9.2008.10.13...
Installing RDoc documentation for pg-0.7.9.2008.10.13...

のようにインストールできればOKです。

Published on 2008/11/28 at 13:12 by いたさん, tags , , , , ,

Windowsでruby-pgをコンパイルする

PostgreSQL用のRubyアダプタは、Rubyで書かれたpostgres-prと、Cで書かれたライブラリがありますが、Cで書かれた方は、名前がpostgres、ruby-postgres、ruby-pg、pgところころかわった上、Windows用のバイナリが提供されなくなったため、Windowsでは使いにくくRailsではMySQLが好まれる一因になっているような気がします。

一時はpgのメンテナがWindowsでコンパイルできる人を募集するなどしていたようですが、最近ではバイナリパッケージは出ていないものの、Windowsでのコンパイル方法がフォーラムで紹介されるなど、状況が改善されてきています。

http://www.microsoft.com/japan/msdn/vstudio/express/

私もいろいろ試してみたところ、最新版では通常のgemでもコンパイル導入ができるようなので、紹介しておきます。

1. PostgreSQLのインストール

最新版の8.3.5-1をインストールします。インストールオプションで開発用のモジュール(インクルードファイルとライブラリ)を追加しておきます。

2. Visual C++ 2008 Express Editionのインストール

下記のページから、Visual C++ 2008 Express Editionをダウンロードし、インストールします。
http://www.microsoft.com/japan/msdn/vstudio/express/

3. Rubyのconfig.hの修正

Ruby 1.8.6のヘッダファイルconfig.hには、Visual C++のバージョンを6.0に限定する下記のディレクティブが含まれているため、これをコメントアウトします。

/*
#if _MSC_VER != 1200
#error MSC version unmatch
#endif
*/

4. gemのインストール

環境変数を利用するため、Windowでスタート>すべてのプログラム>Microsoft Visual C++ 2008 Express Edition>Visual Studio Tools>Visual Studio コマンド プロンプトを起動します。
このコマンドプロンプトからgemをインストールします。

>gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.7.9.2008.10.13
1 gem installed
Installing ri documentation for pg-0.7.9.2008.10.13...
Installing RDoc documentation for pg-0.7.9.2008.10.13...

のようにインストールできればOKです。

Published on 2008/11/28 at 13:12 by いたさん, tags , , , , ,

IronRuby初のバイナリリリース

Microsoftがオープンソースプロジェクトとして開発しているIronRubyが初のバイナリをリリースしました。

http://rubyforge.org/projects/ironruby

まだ、アルファ版ということですし、C版のRubyや、JRubyなどに比較しても「何倍も遅い」状態ですが、標準ライブラリを添付したバイナリリリースの登場は、大きなマイルストーンだったと思います。

開発者のJohn Lam氏がブログ("IronRuby at OSCON":http://www.iunknown.com/2008/07/ironruby-at-oscon.html )で紹介していますが、OSCONで発表された中には、オープンソースのリポジトリサービスとして急速に普及しているGithubで、Microsoft以外の開発者がコントリビュートするためのプロジェクトを立ち上げていくということです。第1弾は、SilverlightをRailsアプリケーションに組み込むためのPluginだそうです。

さらに、Microsoftにとって画期的なのは、IronRubyの開発中に行った、RubySpecのコードの修正版を、RubySpecプロジェクトにコントリビュートするということです。Microsoftが自社以外のオープンソースプロジェクトにコードを提供するということは、「Microsoft的には」大変な事だったようです。

Published on 2008/07/26 at 03:32 by いたさん, tags , , ,

IronRuby初のバイナリリリース

Microsoftがオープンソースプロジェクトとして開発しているIronRubyが初のバイナリをリリースしました。

http://rubyforge.org/projects/ironruby

まだ、アルファ版ということですし、C版のRubyや、JRubyなどに比較しても「何倍も遅い」状態ですが、標準ライブラリを添付したバイナリリリースの登場は、大きなマイルストーンだったと思います。

開発者のJohn Lam氏がブログ("IronRuby at OSCON":http://www.iunknown.com/2008/07/ironruby-at-oscon.html )で紹介していますが、OSCONで発表された中には、オープンソースのリポジトリサービスとして急速に普及しているGithubで、Microsoft以外の開発者がコントリビュートするためのプロジェクトを立ち上げていくということです。第1弾は、SilverlightをRailsアプリケーションに組み込むためのPluginだそうです。

さらに、Microsoftにとって画期的なのは、IronRubyの開発中に行った、RubySpecのコードの修正版を、RubySpecプロジェクトにコントリビュートするということです。Microsoftが自社以外のオープンソースプロジェクトにコードを提供するということは、「Microsoft的には」大変な事だったようです。

Published on 2008/07/26 at 03:32 by いたさん, tags , , ,

RubyKaigi 2008 The Day Two - PM 3

TuneCoreのAlex Kaneさんの事例紹介。

主にインディーズのメディアファイルの配信(iTunes, Amazon MP3 etcへの)ビジネスなのだそうです。

1日に100のアルバムをリリースしているそうです。

フロント(アーティスト側)は通常のアカウンティングサイト。ただし、大きなファイルのアップロードは、mongrelではなくてmerbを使っているとのこと。

配布エンジンはほとんどRuby。ただしエンコード変換は外部、XMLのValidateはJavaだそうです。

メッセージキューをYAML形式で実装しAmazonのサービスを利用。

Amazon EC2を使って配信サーバーを動的に管理している。700のサーバーを起動するのに5分。ストレージはAmazon S3。

前田修吾さんの話。「Rails症候群」

  • protectedの多用(誤用)
  • 既存クラスの再定義をしたがる
  • Rubyが何だか知らない
  • 文字列とシンボルの区別がつかない
  • !の誤用

でも、Rubyのせいかも?

  • protectedは不要?
  • selector namespace/classbox

多様性を保証するためにも言語仕様を。

RubySpecはいいけど、政府調達には…ISO化も考えているとのこと。

Published on 2008/06/22 at 08:00 by いたさん, tags , ,

RubyKaigi 2008 The Day Two - PM 3

TuneCoreのAlex Kaneさんの事例紹介。

主にインディーズのメディアファイルの配信(iTunes, Amazon MP3 etcへの)ビジネスなのだそうです。

1日に100のアルバムをリリースしているそうです。

フロント(アーティスト側)は通常のアカウンティングサイト。ただし、大きなファイルのアップロードは、mongrelではなくてmerbを使っているとのこと。

配布エンジンはほとんどRuby。ただしエンコード変換は外部、XMLのValidateはJavaだそうです。

メッセージキューをYAML形式で実装しAmazonのサービスを利用。

Amazon EC2を使って配信サーバーを動的に管理している。700のサーバーを起動するのに5分。ストレージはAmazon S3。

前田修吾さんの話。「Rails症候群」

  • protectedの多用(誤用)
  • 既存クラスの再定義をしたがる
  • Rubyが何だか知らない
  • 文字列とシンボルの区別がつかない
  • !の誤用

でも、Rubyのせいかも?

  • protectedは不要?
  • selector namespace/classbox

多様性を保証するためにも言語仕様を。

RubySpecはいいけど、政府調達には…ISO化も考えているとのこと。

Published on 2008/06/22 at 08:00 by いたさん, tags , ,

RubyKaigi 2008 The Day Two - PM 2

iKnowの開発者Zev Blutさんによる事例報告。

2週間のリリースサイクル。短い。

失敗談:ActiveRecord count/size/lengthの違い

失敗談:OpenIDの認証が遅くなった

失敗談:ファイルシステムext3の限界でキャッシュができない

継続インテグレーションツールKwalaのおまけつき。

食べログの京和さんの事例。

Windows/ASPからRailsへの移行だったのだそうデス。

メモリ喰い対策。

データベースの負荷分散。MMCはダメ。ActsAsReadonlyableで。

クエリーはテーブルを件数、ID、属性の3段階に分けてチューニング。

routeは書いていないがそれほど特別な事はしていない。大規模でも大丈夫。

jpmobileのしだらさん。

携帯向けアプリを作る上での数々の機能を、携帯キャリア・機種によらずAPIで提供。すばらしい。絵文字変換機能まで。

Published on 2008/06/22 at 06:40 by いたさん, tags , , ,

RubyKaigi 2008 The Day Two - PM 2

iKnowの開発者Zev Blutさんによる事例報告。

2週間のリリースサイクル。短い。

失敗談:ActiveRecord count/size/lengthの違い

失敗談:OpenIDの認証が遅くなった

失敗談:ファイルシステムext3の限界でキャッシュができない

継続インテグレーションツールKwalaのおまけつき。

食べログの京和さんの事例。

Windows/ASPからRailsへの移行だったのだそうデス。

メモリ喰い対策。

データベースの負荷分散。MMCはダメ。ActsAsReadonlyableで。

クエリーはテーブルを件数、ID、属性の3段階に分けてチューニング。

routeは書いていないがそれほど特別な事はしていない。大規模でも大丈夫。

jpmobileのしだらさん。

携帯向けアプリを作る上での数々の機能を、携帯キャリア・機種によらずAPIで提供。すばらしい。絵文字変換機能まで。

Published on 2008/06/22 at 06:40 by いたさん, tags , , ,

RubyKaigi 2008 The Day Two - PM 1

山本陽平さんによるRESTの話。

山本さん的にもっとも重要視するのが、アドレス可能性と接続性だそうデス。

リソース設計重要。ステートレスにこだわりすぎる必要はない。だそうで。

CTCの高井さんと大場さんがスーツで登場。

CTCのRuby関係売上は4.3億程度だそうです。

エンタープライズとは何か?業務!

SI会社にRubyを遣わせるためには、「開発者が楽しい」「生産性が高い」ではだめで、「新規顧客・案件の獲得」が武器に。

教育体制、SLCP2007開発標準(ISO/IEC 12207)、保守・運用フェーズサポート。

見積りはFC法で実績収集。Javaより3割から5割効率的。

Java開発者には3日のトレーニング。コードレビューがうまく行く秘訣。

検証センターで実証済み。

役員をパトロンに。

Published on 2008/06/22 at 05:56 by いたさん, tags , ,

Powered by Publify | Photo Startup stock photos