Updates from 8月, 2007 Toggle Comment Threads | キーボードショートカット

  • fujison 20:51 on 2007/08/04 パーマリンク | 返信  

    DreamHostの新しい仮想サーバホスティング 

    DreamHostから、新しい仮想サーバのホスティングを開始したとアナウンスがあった。これはちょっと今までと違う毛色のサービスで、VPSの様な物なんだけどルート権限が無い。

    その代わり、共有ホストと同じレベルの管理が可能で、なんとDreamHostのコントロールパネルがそのまま使える。通常VPSはroot権限があってマシンを丸ごとコントロールできるけど、自由な反面セットアップは自分で全て面倒を見る必要がある。これは結構大変だし時間もかかる。

    それに適当にセットアップして放っておくのも危険。いつのまにか進入されていたら、もっと大変な事に・・・。

    この点で共有ホストはホストの管理者が行ってくれるので、非常に楽だ。DNS 、メール、Webサーバ、その他いろいろ・・・。ほとんど揃っているから、ちょっと実験したい時はありがたいサービスだ。Dreamhostはドメインも無制限に増やせるし、セットアップも簡単なので気軽にWebアプリケーションの公開が可能。Railsには結構良く対応してくれる。
    しかしそんな共有ホストも、みんなが同じマシンを共有しているので。それなりのデメリットがある。/homeディレクトリを覗けば他のユーザが沢山。自分のファイルが覗かれる心配も。誰かが負荷をかければ自分への影響も大きい。たまにshellが重くなる事もある。(といっても概ね困っていないが。)

    そんな両者の 間を取った様なサービスが、今回DreamHostの新しいサービスDreamHost P.S.。(P.S.はPrivate Serversの略)

    先に書いた様に各ユーザ毎に仮想マシンが起動、root権限無し、DreamHostと全く同じコントロールパネルで操作可能。料金はCPUとメモリの割当次第でフレキシブルに設定ができ、リブート無しでいつでも変更可能らしい。これならセキュリティの心配も減るし、遅かったら割当を増やして対処できる。なかなか面白いサービスだと思う。

    で、早速様子を見るために最低割当の150 MB / 150 cialis 5mg Mhzで申し込んでみた。10MB/10Mhz毎に$1/月なので、月$15になる。最大は2300 MB / 2300 Mhz。コントロールパネルを見ると、単にPrivate Serversのメニューが増えているだけだった。という事は、いま動いているサービスがそのままPrivate Serversになるって事か??マシン名を自分で設定したから、サーバは別になるはずなので。この辺は後でどうなるかお楽しみ。

    結構嬉しいのは、プロセスをずっと起動し続けてもkillされない事。例えばRailsだったらscript/serverで起動してそのままにしておけるんだと思う。(まぁそんな事あまりしないけど・・・。)他にも何かデーモンを起動しておきたかったけど諦めた事のある人には、嬉しいサービスなのでは。他にもマシン名を自分で付けられたり、有料だけど2つまで固定IPを設定できるらしい。

    このサービス、契約をしているユーザしか申し込めないので、契約してない人はまずDreamHostを契約する必要あり。契約後にコントロールパネルのPrivate Serversから申し込みが可能。

     
  • fujison 01:08 on 2007/03/06 パーマリンク  

    Mac OS XでRMagickをインストール 

    Mac OS XでRubyの画像処理ライブラリ”RMagick”をインストールする時、本家サイトのとおりに行ったらスムーズにできた。

    Installing RMagick on OS X

    スムーズにできたとはいえインストールする物が多く、大抵の人は面倒に感じるのでは。ざっと並べてみると。

    • X11 (Mac OS X付属CDにインストーラが収録されている。)
    • Xcode ToolsとX11 SDK(Xcode ToolsはADCからダウンロード、X11 SDKはXcode Toolsに含まれている。)
    • MacPorts(インストーラをダウンロードして実行する。)
    • jpeg、libpng、libwmf、freetype、ghostscript(Mac Portsでインストールする。)
    • ImageMagickGraphicsMagick(ソースからコンパイルする。)
    • RMagick(gemでインストールする。)

    自分の場合はこのリストで言うとMacPortsのインストールまで完了していたため、そんなに面倒は感じなかった。 X11やXcode Tools、MacPorts等はMacで開発をしていると必要になる事も多いので、これらをインストールしておいて損はないはずだ。

    実は、自分はもっと別の部分でRMagickのインストールができずに困っていた。原因はFinkでインストールしたImageMagickを使おうとしたからだ。FinkでインストールしたImageMagickではRMagickのインストール時に、”magick/xwindow.hが見つからない” というエラーが出てしまうトラブルに合っていた。

    fink list -i | grep imagemagick でバージョンを確認してみると、imagemagick-devのバージョンが古い事がわかった。ImagiMagickの最新版である6.3.3ではmagick/xwindow.hは収録されていたので、恐らく古いバージョンではこのファイルが無かったのでは?と推測している。

    i imagemagick 6.2.8-1002 Image manipulation tools
    i imagemagick-dev 6.1.8-1007 Image manipulation tools

    ※”fink list -i” は、finkでインストールされたファイルの一覧を表示する。コマンドの詳細は”fink list –help”を参照。

    本来であれば、なぜimagemagick-devのバージョンが古いのかを調べるべきなのだが。今回は時間も無くて、上記の本家サイトの説明にしたがう事で簡単に解決できた。

    本当はFinkでも新しいパッケージが配布されていて、設定さえすればFinkでもインストール可能なはず。安定したパッケージしか扱わない設定なのかもしれない。だからFnkユーザが同じトラブルを抱えても、諦めないで設定を確認して欲しいと思う。

    それにしてもFinkとMacPortsを混在させているのは良くないかもしれない。うーん、どちらが良いのだろう。

     
  • fujison 00:42 on 2007/03/02 パーマリンク  

    gem install mysqlでの問題 

    MacでMySQLのネイティブアダプタのインストールでエラーが出た時の対処方法。

    [Rails] gem install mysql – problem

    このMLで言われているのと全く同じ事が起こった。最初は

    sudo gem install mysql

    とやっても必要なライブラリが見つけられずにエラーになったが、

    sudo gem install mysql — –with-mysql-config

    としたら問題無くインストールが完了した。

    2008/06/05 追記:

    この記事、自分が対象にした環境を全く書いてなかったですね・・・たぶんUbuntuの6.04あたりを使っていた時に書いたと思うのですが。もう忘れました。

    ちなみにUbuntu 8.04LTS では、libmysqlclient15-dev を入れたらすんなりインストールできました。

    sudo apt-get install libmysqlclient15-dev
    sudo gem install mysql

    ここを見ながらPassengerをインストールしていて、コメントを参考にしました。

     
  • fujison 00:29 on 2007/02/13 パーマリンク  

    ActiveRecordでデフォルトの値を指定する 

    Overriding attributes in ActiveRecord

    class Account < ActiveRecord::Base
      def notification_address
        super || email_address
      end
    end

    notification_addressにデータが無い場合、email_addressを返すというサンプル。これがうまく動くのは、superメソッドを呼ぶとActiveRecord::Base#method_missingが呼ばれて、レコードデータを取得しに行くから。という理解でいいのかわからないけど。これがうまく動くなら使ってみようかなと思ったので、ひとまずメモ。

    しかし・・・見た目は奇麗だけど、挙動が良くわからない人にとってはちょっとトリッキーなテクニックにも思える。これについての議論が元記事のコメントにいろいろあった。(自分では読んでないけど。)

    自分としてはどちらかというと、初心者でも理解しやすいコードを書くべきかなと思う。他人とコードを共有する場合は特に。なのでやっぱりこの書き方はどうかなぁ、見た目美しいし格好いいけど。Rubyistからしたら何も問題無い書き方だけど、そうで無い人にはちょっと敷居が高くなってしまう。

     
  • fujison 20:42 on 2007/02/12 パーマリンク  

    マッシュアップの更なる可能性(fabicon2dots、国際化) 

    ネット上にはさまざまなAPIが公開されて、それらを組み合わせたサービスもいろいろ出てきている。それぞれのAPIは学習が難しくない物が多いが、本格的に利用するとなるとある程度まとまった時間を確保して調査する必要があるのが現状。

    それぞれのAPIは簡単にRESTやJavaScript等で利用できる物が多い。しかしドキュメントもバラバラだし利用方法もサービス毎に違うのだから、それを調べるのに時間がかかるのは当然だと思う。しかしこれらのAPIのドキュメントや利用方法がもっと統一されれば、更にマッシュアップされたサービスが構築される速度が加速されるはず。PerlのCPANやRubyのGEMの様に、Webに公開されるサービスが簡単に検索できて利用できたらいいなと思う。そうなればマッシュアップは今後もっともっと、カジュアルに利用できる様になるはず。

    カジュアルなマッシュアップが加速されるために、統一的な利用方法が作られるだけではなくて、マッシュアップされるサービスの構築スピードも進化する必要があるはず。
    この構築スピードという点で、secondlifeさんが最近公開したサービスが面白い。彼は2つのサービスを最近立て続けに公開した。

    そのサービスの1つが、指定したURLをアクセスした時に表示されるfabicon(ブラウザのURLの左に出てくる小さいアイコン)を、dot’s風の画像に変換するサービス。

    favicon を dot’s ぽく変換する – favicon2dots
    http://favicon2dots.com/

    このサービスはRubyの画像処理ライブラリRMagickによって作られている。

    二つ目はfavicon2dots公開の少し前にリリースされたPolaroizeというサービス。これもRMagickによる物。しかも驚きなのが、RMagickに出てくるサンプルをそのまま応用した所。見つけたネタをすぐサービスにして公開してしまう姿勢は見習うべきだと思う。あのサンプルはRMagickのマニュアルに出てくるのだけど、これを使わない人は素晴らしい画像の加工ができる事すら知る事ができないのだし。fabicon2dotsの様なサービスもRMagickで作れる事を示してくれた。こういうちょっとしたサービスが短期間に続けて公開される事の意義が大きいと思う。

    Polaroize – ポラロイド風に画像を加工するサービス
    http://lab.rails2u.com/polaroize/

    更に国際化手法も参考になる。
    Rails のためのものぐさな Web アプリケーションの国際化手法

    これらのサービスはSOAPやRestのAPIのドキュメントは公開されていないが、もしこういうサービスが統一的な方法で利用できたら素晴らしいと思う。そう思いませんか?もちろん、サービスがプログラムから利用された場合はAdSence等の広告収入があてにできるわけでもなし。こういう問題は解決しないといけないし難しい問題だけど。サーバの能力も通信コストもまだまだ下がって行くはずなので、今からこういう観点でサービスを準備していくのも悪くは無いはず。気がついたらこういうのが当たり前、という事自体が最近はあたりまえになっているから。というより、そのペースが最近早くなっていて、それは誰もが感じている事だと思う。

    TeraMashupという、仮想のライブラリ、ライブラリの統合サイトを考えてみた。
    TeraMashupにはデベロッパがAPIを登録し、各言語のライブラリを使って簡単にそれらのAPIにアクセスするための補助をする。ドキュメントもこのサイト上で検索確認、またはAPIによって取得できる。

    Rubyによる上記のsecondlifeさんのライブラリを扱うにのは、こんな感じ。

    require 'teramashup'
    include TeraMashup# ローカルイメージを自分のサーバにアップロード。
    
    # Rails::someeda はTeraMashupサーバに登録された自分のネームスペース。
    # このネームスペースに server_a の情報を登録しておく。
    #
    # 下の例ではローカルファイルの /usr/someeda/mypicture.jpg を
    # server_a のimagesにアップロード。
    image = Upload('/usr/someeda/mypicture.jpg', 'Rails::someeda/server_a/images')
    polaroize_image = Rails::secondlife::Image.polaroize(image)
    image.save!
    
    google_dots = Rails::secondlife::Image.fabicon2dots('http://www.google.com')
    google_dots.save('/usr/someeda/google_dots.png')
    
    

    他にも認証とかいろいろ必要だけど、とにかく簡単にカジュアルに利用できるといいなぁと思う。SOAP関連で同じ様な仕組みがありそうだけど、ちょっとドキュメント読んだだけで扱えるレベルの物はまだなさそう。Webの技術を使ったAPIだから、もちろん各種言語から利用可能。

    コンピューティングパワーや転送料金はAmazon EC2で安く押さえるとか、もしくはGoogleが無料で提供してくれたら本格的になっていいかもしれない。

     
c
新規投稿作成
j
次の投稿 / 次のコメント
k
前の投稿 / 前のコメント
r
返信
e
編集
o
コメントを表示する / 隠す
t
トップへ移動
l
go to login
h
show/hide help
esc
キャンセル