作ったツールの感想を見る方法まとめ

photo by Clover_1

twitterにメイドめーる(http://www.maidmail.jp/)に対する質問をつぶやいたら,30分後に開発者から返事が来た.
早すぎ!びっくり!
以前にもmixiでアイマスのMADについて日記を書いたら,作者の足跡がついたことがあったけど,どうやってキャッチしてるんだろ.
常に検索かけてる?
自動検索ツールとか使ってる?
(朝のリレー 2008-12-09

30分は偶然ですけど、自分の作ったツールについての感想やご意見は興味があるので、いくつか検索ツールをつかってウォッチしています。

ブログを検索するツール

いずれも、キーワードが登場したサイトについてのRSSを出力してくれます。
ツールによって拾ってくれるサイトの傾向が異なるので、全部RSSリーダーに入れておくと漏れがでなくていい感じです。
あえて一個にするなら、Yahoo!ブログ検索がわりと安定して言及を拾ってくれているように思います。

アクセス解析

Google Analyticsとか。
参照元サイトというのを見ると、リンクしていただいている人を発見することが出来ます。
RSSはとれないので、アクセス解析のついでに見るくらいですね。
あ、Macfanに掲載されてる!

そのほか

Twitter検索 : Search

twitterのつぶやきを検索できます。メイドめーる公開した日にユーザー登録できないトラブルに気づいたのはこの検索のおかげ。
はてなブックマーク
ブックマークコメントをRSSで見ることが出来ます。

mixiの日記

 一番普通の人の意見が出ていると思うので是非みたいのですけど、RSSで取る方法がない。
何か発表した翌日くらいに自分でキーワードを入れて調べるしかありません。SNSだからしょうがないのかなぁ。

名前大事。

 いずれのツールも、要するにキーワードで引っかかったものを見ているだけなので、なるだけユニークな名前であることがポイントになります。
メイドめーるが秘書メールでないのは、秘書メールというサービスはすでにたくさんあって、全然関係のないツールの感想とかも混じってしまうからです。
それまでGoogleで一件とか二件しか出なかったキーワードが突然メジャーになって、自分のツールについての話題で埋め尽くされるのを見るのが楽しいです!
メイドめーる – Google 検索
いいめも – Google 検索

駄目じゃん、というコメントで埋め尽くされる可能性だってあるわけですけどね。

[rails]自分のドメイン名をとるためにはrequest.domainがいいらしい

photo by  flyzipper
 rails上で自分のドメイン名をつかってナンヤカンヤしたい時というのがあって。

ENV[‘HOSTNAME’]

 これは論外っぽい。

[default] ENV
[default] :{“HOSTNAME”=>”xxxx.mogya.com”,

仮想ドメインの設定を無視してホスト名を返してくれます。HOST_NAMEという値ですから、当たり前か。

request.env:[‘SERVER_NAME’]

request.env:{“SERVER_NAME”=>”maidmail.jp”,

 ねらい通り、ドメイン名を返してくれます。ただ、このヘッダも、あとrequest.env[‘HTTP_HOST’]も、ちょっとしたことで簡単に偽装されてしまうので、迂闊につかえません。

request.domain

[default] request.domain:maidmail.jp

 こっちを見ると、request.env:[‘SERVER_NAME’]が偽装されてしまうような場面でも、正しいドメイン名がとれました。
ソースを見ると、HTTP_X_FORWARDED_HOSTというヘッダを使うみたいです。

# File vendor/rails/actionpack/lib/action_controller/request.rb
318: def domain(tld_length = 1) 319: return nil unless named_host?(host) 320: 321: host.split('.').last(1 + tld_length).join('.') 322: end 280: def host 281: raw_host_with_port.sub(/:\d+$/, '') 282: end 271: def raw_host_with_port 272: if forwarded = env["HTTP_X_FORWARDED_HOST"] 273: forwarded.split(/,\s?/).last 274: else 275: env['HTTP_HOST'] || env['SERVER_NAME'] || "#{env['SERVER_ADDR']}:#{env['SERVER_PORT']}" 276: end 277: end

HTTP_X_FORWARDED_HOSTがとれなかった場合に限り、env[‘HTTP_HOST’]やenv[‘SERVER_NAME’]を見てくれるので、HTTP_X_FORWARDED_HOST非対応のサーバでも、request.domainを見ておけば悪いようにはしない実装になっているみたいです。

HTTP_X_FORWARDED_HOSTのうまい説明が見つけきれなかったのですが、これってどういう環境変数なのかなぁ?どれくらい信用のおける値なのでしょう?

[メイドめーる]時刻がとれるようになりました

calendar by iheartlinen

1. 時刻がとれるようになりました。

 これまで、メイドさんに予定をメールしても、日付しか拾ってくれなかったのですが、時刻もある程度拾ってくれるようになりました。
たとえば、「12月6日午後3時15分から午後4時30分まで、株主総会」というメールを送ると、
2008/12/06 15:15 ~ 2008/12/06 17:15の予定が登録されます。

#他にも各種書き方が読めたり読めなかったりすると思われます。
 「こういうフォーマットも読めるようになってほしい」等のご要望を聞かせていただけたら、ボクからもメタデータさんにお伝えするようにします。

2.メールのサブジェクトも見るようにしました。

 予定のタイトルが思ったように入らないことが多いので、取得に失敗した時はメールのサブジェクトを採用するようにしました。
これで多少マシになるんじゃないかと思うのですが、どうでしょう?

3.パスワードリセット機能がつきました。

 ログインに失敗した時、「パスワード忘れちゃった」のリンクをたどると、パスワードをリセットすることが出来ます。

お試しくださいませ☆

ちなみに、予定にあるけどまだ対応できていない機能としましては
・標準以外のカレンダーを見たい
・GoogleAppsへの対応
があります。がんばりまする。

萌えるRailsアプリの作り方

第31回 Ruby/Rails勉強会@関西で、メイドめーるについてお話しさせていただきました。

メイドめーる

View SlideShare presentation or Upload your own. (tags: ruby関西)

会場で教えていただいたこと。

rake statsで統計情報がとれる

+----------------------+-------+-------+---------+---------+-----+-------+
| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers | 389 | 315 | 5 | 33 | 6 | 7 |
| Helpers | 36 | 34 | 0 | 2 | 0 | 15 |
| Models | 360 | 288 | 9 | 17 | 1 | 14 |
| Libraries | 37 | 32 | 0 | 2 | 0 | 14 |
| Integration tests | 0 | 0 | 0 | 0 | 0 | 0 |
| Functional tests | 159 | 126 | 6 | 24 | 4 | 3 |
| Unit tests | 173 | 144 | 6 | 7 | 1 | 18 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total | 1154 | 939 | 26 | 85 | 3 | 9 |
+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 669 Test LOC: 270 Code to Test Ratio: 1:0.4

テスト少なすぎ、とスルドいつっこみをいただきました^^; 書かないとね。

あと、プレゼンの最後にもつけてありますが、今日話に出てきたサイト一覧です。

Railsでのメール処理に関するサイト

GCalAPIに関するサイト

GoogleカレンダーAPIに関するサイト

Mextractrに関するサイト

GoogleAuthSubに関するサイト

[mextractr]gemでインストールできるようになりました。

先日公開したmextractr_webapi.rbが、gem経由でインストールできるようになりました。

こんな具合にして使うことが出来ます。

[daisuke@snares ~]$ sudo gem install mextractr_webapi
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed mextractr_webapi-0.0.1
1 gem installed
[daisuke@snares /var/maidmail]$ script/server
>> require "mextractr_webapi"
>> mextractr = MextractrWebApi.new(API_KEY)
>> res = mextractr.parse("11/29(土) 京都で紅葉を楽しむオフ会を開催します。秋深い京都を撮り歩きましょう。 ")
>> pp res
{"id"=>"20081202_0001",
"where"=>
[{"georss:point"=>nil, "valueString"=>"京都"},
{"georss:point"=>nil, "valueString"=>"京都"}],
"what"=>[{"valueString"=>"オフ会"}],
"when"=>[{"valueString"=>"11/29(土)", "startTime"=>"2008-11-29"}],
"updated"=>"2008-12-02T12:16:50+09:00"
"content"=>
"11/29(土) 京都で紅葉を楽しむオフ会を開催します。秋深い京都を撮り歩きましょう。 ",
"response"=>
"\n\n  Mextractr WebAPI results\n  2008-12-02T12:16:50+09:00\n  \n    Mextractr\n  \n  20081202_0001\n  \n    \n    20081202_0001\n    extracted event metadata\n    \n      Mextractr WebAPI\n    \n    2008-12-02T12:16:50+09:00\n    11/29(土) 京都で紅葉を楽しむオフ会を開催します。秋深い京都を撮り歩きましょう。 \n    \n    \n    \n    \n  \n\n",
}

enjoy!