RubyからGeocodingサービスを利用する
GoogleのGeocodingサービスを利用して、住所から緯度・経度を取得するためのクラス『Geocoder』をRubyで書いてみました。
久々の”プログラミング関連エントリー”ですね~(^^;
『Conferences Map』のデータ作成用です。
GoogleのGeocodingサービスを利用して、住所から緯度・経度を取得するためのクラス『Geocoder』をRubyで書いてみました。
久々の”プログラミング関連エントリー”ですね~(^^;
『Conferences Map』のデータ作成用です。
diggから公開されたAPIをRubyから利用する方法を紹介します。
Net::HTTPのクラスメソッドとインスタンスメソッドを混同して使っていたのが問題のようでした。
両方getというメソッドがあります。
また、net/http には、バージョン1.1と1.2があって、現在は、1.2推奨ということなので、今回からは意識して1.2を使うことにしました。
それでは、コードを紹介していきます。
「楽天トラベル情報API」をつかってみました。
言語はRubyです。
ためしに次のようなことをしてみました。
ある場所を緯度と経度で指定します。
指定した場所を起点として、ある半径内(今回は1km)にで利用できる宿泊施設の
"名前"、"場所"、"宿泊施設の詳細"が確認できるサイトのURL"を取得する。
今回も、コードを紹介します。
と、いいますか、余計な説明をするよりコードを見たほうが理解がはやいですよね(^^;
Flickrの画像検索結果をつかって、試してみたいことができたのでFlickrのAPIを復習してみました。
まず、「Rubyで「Flickr API」を利用する」の記事で紹介したプログラムをクラス化しました。
次に、「RubyでCGIにチャレンジ」を参考にして、画像を検索して、検索結果をまとめて表示するアプリケーションを作成しました。
これまで、作ったアプリケーションはどこか物足りなかった。
そこは、動作がインタラクティブでなかったからだと思います。
Webサイトでユーザとインタラクティブなやり取りをするためには、やはりCGIでしょうか?
今日は、いままで、やっていそうでやっていなかったRubyでCGIを作るということに挑戦してみました。
CGIを作るには、次の作業をおこないます。
(1)FORMをつくります
(2)FORMの入力を変数に代入して、その入力を処理するプログラムにおくります
(3)処理プログラムで入力に受け取って、処理(検索など)をします
(4)処理した結果を表示します(HTMLを生成するなど)
作業が一定なので、コードも一度作ってしまえば、ほとんどの部分が再利用できます。
あるURLを指定して、そのURLが「del.icio.us」ブックマークサービスでどのくらい登録されているか調べるプログラムをRubyで作ってみたいと思います。
「del.icio.us」から、データを取得するためには、「JSON URL Feeds」サービスを利用します。
「JSON URL Feeds」の特徴は、次のとおりです。
○調べたいURLのmd5ハッシュをパラメータとして渡す必要がある
○返されるデータ形式が「JSON」形式である
そこで、準備としてRubyで「JSON」形式のデータを扱えるようにするために、「JSON library for Ruby」をインストールします。
インストールするには、次のコマンドを実行してください。
gem install json
これで、準備完了です。早速、ソースコードを示したいと思います。
どのサイトに有益、信頼性のある情報があるかを、調べるようという話のつづきです。
今回は、「はてなブックマーク」と「livedoorクリップ」サービスの力をおかりしようと思います。
2つのブックマークサービスでは、使えそうなページ、面白そうなページをユーザが自分のお気に入りとして登録することができます。したがって、登録件数の多いページ(記事)やサイトほど、有益かつ信頼性のある情報が提供されている可能性が高いといえます。
そこで、まず、あるサイトが、「はてなブックマーク」と「livedoorクリップ」に登録されている件数を調べます。
次に、調べた件数を基準に、そのサイトを注目するかどうかを決めることで、目的の情報に効率的にたどりつけるのではないか、というのが今回紹介するプログラムをつくったモチベーションです。
では、早速コードを示したいと思います。
続きを読む "Ruby XML-RPCで「はてなブックマーク」と「livodoorクリップ」からの被リンク数を調べる" »
「Technorati APIをRubyで利用する (Search Query編)」では、Technorati APIの「Search Query」で、目的のブログをキーワード検索する方法を紹介しました。
今回は、「Cosmos Query」を利用して、検索してみつかってブログに関する情報を取得する方法を紹介します。
取得できる情報として、以下のものがあります。
○ランク(ブログの場合)
○被リンク数
○リンクしているブログのタイトル
(注)他にも取得できる情報があります。詳しくは、「テクノラティジャパン APIの使用に関して」を
ご覧ください。
以下では、「Cosmos Query」をRubyから利用するコードを紹介します。
「Technorati APIをRubyで利用する (Search Query編)」の反省でも書いたとおり、Technoratiの「Search Query」をRubyから利用するクラスを作成しました。
また、「Search Query」によって得られた検索結果のXMLを解析するための簡単なパーサクラスも作りました。
それぞれのクラスの名前は、以下のとおりです。
○SearchQueryクラス
○SQParserクラス
以下では、まず、クラスのコードを紹介します。
次に、簡単な使い方を示したコードを紹介します。
「Tedhnorati API」を利用すると、キーワードを指定して、ブログを検索することができます。
今回は、2回に分けて、以下のことを試してみたいと思います。
(1)キーワードを指定して、ブログを検索する(Search Queryを利用する)
(2)見つかったブログのランクを調べる(Cosmos Queryを利用する)
「Search Query」を利用してブログを検索すると、多くのブログを見つけることができます。
しかし、そのブログが有用な情報を含んできるブログかどうか判断できかねません。
(注)被リンク数などの情報が提供されるので、判断の基準として利用することは可能です。
そこで、「Search Query」を利用して、ブログのURLを見つます。
次に、見つかったURLに対して「Conmos Query」を利用することで、そのURLに対する評価(ランク)を
取得します。
見つかったブログをみるか見ないかは、そのランクを基準に判断しようというわけです。
「(1)キーワードを指定して、ブログを検索する(Search Queryを利用する)」では、キーワードを指定して、ブログを見つけるRubyのコードを紹介します。
今回は、偶然見つけた「ruby-gtk2」パッケージを、インストールしてみました。
「ruby-gtk2」パッケージは、Rubyから「GTK+-2.x」のライブラリです。
せっかくですので、インストール方法を簡単に紹介しておきます。
「windows」プラットフォームにインストールすることを前提とします。
Googleからは、多くのWeb APIが提供されています。もちろん検索用のAPIも公開されています。その名も「Google AJAX Search API」です。
しかし、「REST」形式のAPIは公開されていないようです。「REST」形式のAPIは直感的でとても利用しやすいので残念です。
そこで、「勝手にREST API」を利用してみようと思います。「勝手にREST API」とは、Googleで検索をした際に検索結果が表示されるURLをプログラムで作ってアクセスし、その検索結果(HTML形式)をうまく利用しようというプロジェクト名です(笑)。
「Java SE 6」には、Javaプログラムからスクリプト言語を実行するための機能(JSR 223)があります。
一番面白そうなこの機能に、これまで触れていませんでしたので、今回は満を持してJavaからスクリプト言語を実行してみたいと思います。
実行するスクリプト言語として、「Ruby」を選んでみました。
金曜の夜に出発して、日曜の夜まで、スキーにいってきました。
今年の初すべりです。
安宿でしたので、ネット環境などなく更新はお休みでした。
もし、宿にネット環境があったとしても、たぶん更新できなかったと思います(^^;
今回のスキー旅行は、非常にハードでした。基礎体力なさすぎです(><)。
さて、まだまだ疲れの残る体に鞭をうって、更新開始です。
今日は、rubyから「Flickr API」を利用して画像を検索する方法(コード)を紹介します。
「Flickr API」には、REST形式で利用する方法とxml-rpcで利用する方法の2通りの利用方法が提供されています。
今回は、RESTを利用する方法をつかって画像検索に挑戦です。
「Flickr API」を利用するためには、Flickrのアカウントが必要です。お持ちでない方は、こちらからアカウントを取得してください。
アカウントを取得したら、「Sign In」した状態で、さらに「API Key」を取得してください。
コーディングの内容は、大きく分けて次の2つです。
(1)画像検索API「flickr.photos.search」をつかって画像を検索する。
(2)検索によって得られた情報から、画像のあるURLを作成する。
では、早速コードを示します。
Amazonの「ECS」から商品リストを取得して、商品を発売日順に「Timeline」で表示してみました。
作業内容は、以下のとおりです。
(A)「ECS」から商品リストを取得する
(B)「ECS」から取得した商品リストのXMLフォーマットを「Timeline」で利用するXMLフォーマットに変換する
(C)「Timeline」で商品リストを表示する
今回の作業(A)(C)についての詳しい説明は、次の記事を参照してください。
「Amazon E-Commerce Service(ECS) Ruby編」
「「Timeline」 - スケジュール管理、年表作成だっておてのもの」
(B)についても、コードを見ていただくのが早いと思いますので、以下にコードを示します。
「これからの情報コミュニケーションはRSSだ」ということでRSSを作成してみました。
いまさらながらという声が聞こえてきそうですが・・・(笑)
これからさらに、いろいろな面で利用されるようになっていくと思います。
RSSの生成には「Ruby」を利用します。
今回の記事の内容は、以下のとおりです。
(A)「Ruby」でRSSを生成する
(B)生成したRSSにスタイルシートを適用して表示する
それでは、早速、取り掛かりましょう。
Amazonの「ECS」にアクセスするコードをRubyで書いてみました。
ECSにアクセスするために、RESTプロトコルを利用しました。RESTを利用する方法の詳細については、「Amazon E-Commerce Service(ECS) 第1回」を参照してください。
早速ですが、コードを示します。
RubyからMovable Type(以下、MTと表記する)のXML-RPC APIを利用して、MTがサポートしているXML-RPCのメソッド一覧を取得してみたいと思います。
驚くほどシンプルに実現できます。まずは、なによりそのシンプルさを感じていただきたいと思います。
早速ですが、サンプルコードを示します。
OpenLaszloとRuby on Railsの夢の協演をためしてみました。
「OpenLaszlo Rails PluginでOpenLaszloとRuby on Railsが夢の協演?」で、なんとかOpenLaszlo Rails Pluginをインストールでき、前座が終了、いよいよ本公演といきたいところなのですが。。。
以下で、実際に行った作業を紹介していきます。
非常に豊かなユーザインターフェースを実現することができるOpenLaszloと非常に簡単かつスピーディーに、データベースを利用したWebアプリケーションを構築すことができるRuby on Rails。この両者を繋ぐことができれば、非常に強力なWebアプリケーションを開発することができるのではないか?
そう思い調べてみると、面白そうなものがみつかりました。その名もOpenLaszlo Rails Pluginです。
OpenLaszlo Rails Pluginでは、
○OpenLaszloのアプリケーションを作成するための仕組み[generator]
○OpenLaszloアプリケーションとRailsアプリケーションを繋ぐための仕組み[controller]
○Railsアプリケーションの中にOpenLaszloアプリケーション(UI)を表示するための仕組み[view]
を提供しているようです。
(注)[ ]内は、Railsでいうところのどの機能かということを個人的に分類したものです。
これは、利用しない手はないですね。早速、インストールしていきましょう。
続きを読む "OpenLaszlo Rails PluginでOpenLaszloとRuby on Railsが夢の協演?" »
Ruby on Railsには、Webアプリケーションに開発するうえで必要になる機能を提供する多くのpluginが提供されています。そのなかでも、ユーザ登録・認証という機能は、多くのWebアプリケーションにおいて重要とされる機能の一つです。
そこで、Ruby on Railsでユーザ登録・認証の機能を実現するためのpluginを探してみました。いろいろ検索してみた結果ですが、LoginGeneratorあるいは、Rails Enginesに含まれるlogin_engineを利用するのがよさそうです。
「Ruby on Rails + PostgreSQLで出発進行!」でRuby on Railsを利用した最初のWebアプリケーションを作成しました。
作成したWebアプリケーションでは、データの追加、編集、削除を行うことができました。今回は、データを検索する機能を追加してみたいとおもいます。
作業手順は、次のとおりです。
(1)キーワードを入力して検索を行うフォームをViewに追加する
(2)検索結果のリスト表示画面から、全リストを表示する画面へのリンクをViewに追加する
(3)検索キーワードを取得して、データベースのデータを検索するControllerを追加する
それでは、順番にコーディングしていきましょう。
Ruby on Railsの開発環境を整えて(eclipse + radrailsでRuby on Railsの開発環境を整えるを参照)、さらに、データベースを利用することができるようなりました(PostgreSQLをWindowsにインストール、pgAdminIIIでpostgreSQLを操作するを参照)。
ここまでが、ひじょ~に長かった気がしますが、なんとか準備完了です。
さぁ、Ruby on Railsの世界へ出発進行です。
今回は、開発の流れを簡単に追うために、「pgAdminIIIでpostgreSQLを操作する」で作成したデータベース「test」をつかって、記事を投稿、修正、削除できるWebアプリケーションを作成してみます。
eclipseにplig-inを追加して、Ruby on Railsの開発環境を整える方法を紹介します。
具体的には、eclipseにRuby on Railsの開発環境を提供するradrailsと、Rubyの開発環境を提供するRDTのplug-inを導入します。
(注)RDTは、「Ruby Development Tools」の略称です。
利用したeclipseのバージョンは3.3M2です。
それでは、plug-inをインストールしていきましょう。