Evernoteへの集約を自動化することを考える

2月 11th, 2010 by roguer 10 comments »

なんでも「Evernote」に入れることを基本とした場合に、手動で入れているとかなり面倒です。

一番目どうなのはクライアントの都合で、「このクライアントだとボタン一つでEvernoteに送信できるけどこっちの環境だと出来ない」という自体になる事です。

Evernoteに入れて置くデータのうち自分で作成する物以外の資料的なもの(特にWebクリップ)に焦点を当てて考えてみました。実際に、データの入力の候補としては

  1. 通常にWebをブラウジングしていて
  2. RSSリーダ(具体的には、Google Reader)を見ていて
  3. Twitterを見ていて

が主な情報源です。それぞれ現状サービスとしては以下の機能でマーキングしています。

  1. Web → Deliciousへブックマーク
  2. RSSリーダ → コメント付きノート(別の経路でTweet)、スター、共有
  3. Twitter → ファボ(スター)

クライアントの機能によってはRSSリーダなどでDeliciousへ登録してくれるものもありますが対応はまちまちなのであっちに入れたり、こっちに入れたりとなっています。

クライアントに依存せず、各機能でスターなどを登録時に自動的にメール送信経路でEvernoteに登録する方法を考えます。まだ個人的に試している段階なので公開出来る段階ではないのですが

  1. Yahoo Pipe により (a) Delicious (b) Google Readerの共有/コメント (c) Twitterのスター 等の情報をRSSとして取り込みユニークな情報に加工
  2. 取り組んだデータを、自作のメール送信サイトにリクエストする(Instapaper経由で情報を取得してメールで特定のアドレス(m.evernote.com)に送信)モジュールを中に組み込む
  3. 上記までの処理を最終的にはRSSとして出力
  4. 出力されたRSSを定期的に実行するため、Google Readerで購読をしておく(一応Instapaper経由の情報をDescriptionに入れて内容を見れるようにする)

という流れで作成してみました。

これにより、各機能でコメントなりスターなりをつけると定期的(Google readerのクルーラーの間隔)でEvernote宛にメールが送られるという事になります。

2010.02.11 追記
”さくらインターネットのスタンダートプラン”なんですが上記の処理を動かすとYahoo Pipeから正常にデータが取得出来ません(何割かのデータが503エラーになってしまいます)パフォーマンス的に考えないと使いもになりませんね。いまのままではかなりデータが漏れてしまって逆に面倒な事に。

蛇足

関係ないですが、Google App Engineを利用して作ろうと思ったのですがメール送信機能は結構コストが高いようなのでやめておきました。またYahoo PipeからGoogle App Engineへは接続出来ないみたいです。結局このブログのサイトの中でしようと思っていますがそれも大丈夫なのか不安大丈夫じゃなさそうだ。

おまけで Google App Engine で実施する場合の (2)のソース。初めてpythonを触りましたが面白そうでした。使えなくて残念。

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
import urllib
targeturl = ""
to = ""

class MainHandler(webapp.RequestHandler):

  def get(self):
    global targeturl
    global to
    targeturl = self.request.get("u")
    to        = self.request.get("t")
    self.response.out.write('Web clip using Instapaer is sent with mail. ')

def main():
  global targeturl
  global to
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  util.run_wsgi_app(application)
  url="http://instapaper.com/m"
  params = urllib.urlencode({'u':targeturl})
  f = urllib.urlopen(url + '?' + params) 

  body = ""
  line = f.readline()
  while line:
    body = body + line
    line = f.readline()
  f.close

  start = body.find('title')
  end = body.find('/title')
  title = body[start+len('title'):end]

  message.subject = title
  message.to = to
  message.body = body
  message.html = body
  message.send()

if __name__ == '__main__':
  main()

番号表示アプリ「My iPhone Number」を申請し直した。

2月 5th, 2010 by roguer 5 comments »

リジェクトされた後、ちょっと時間がたちましたがようやく再度申請しました。またリジェクトされるかもしれませんがw

そもそもは「電話番号ってどこにあったっけ?」から「電話番号などの情報をSDKで取得することができるのですがこれはAppStoreで公開できるのだろうか?」

というと頃からの好奇心だったのですが、案の定リジェクトされてほっとしているところ。そうでなければ勝手にアプリが電話番号などの情報を集めることができてしまいますからね。
リジェクトされてしまったので機能として、『電話番号』が表示されない(苦笑)というアプリになってしまい。「必要な機能が満たされておりません」とリジェクト理由に書かれました(苦笑)そのとおり。
そのまま放置するのも良かったのですが(コンパイルしたオレオレアプリは電話番号を表示できるため自分で利用する分には問題なし)折角なので公開する所までは頑張ろうと思って毎日1時間位コツコツと「絵」をいじっていました。

そう、ほとんど「絵」です。基本的なパーツはなにもないという技術的にはちょー適当な、教科書レベルのプログラムなのでした。時間がかかったわりにはという感じもしますがいかがでしょうね?

Default Pastebot 2010-02-04 23.58.50 午後 1

Pastebot 2010-02-04 23.58.50 午後 2 Pastebot 2010-02-04 23.58.50 午後 3

あと、そもそもは有料と思っていたのですが無料にしてみました。代わりにトラフィックゲートの広告が入ります。ただ読み込みが3G通信では非常に遅くてちょっと外そうかと思っています。。。方針としては次回のバージョンアップ時にオプションで広告外せるようにしますw。それかDLがさっぱりならいっそ有料にしてしまって誰かが忘れた頃に買ってくれるのを楽しみに待つつもりです。

このアプリを作るにあたり、あまりにも誰にもDLされないのは寂しいのでいちおう同業他社というか同種のアプリがあるかを調べてみました。結構ありますw 以外に需要があるのかもしれません。きっとみんな私のようにどこに電話番号が書いてあるかわからなくて困った作者の方々なのだと思います。どれも使っていないので画面のみですがご紹介。


Phone Number (¥115)
電話番号をメールで贈る機能があります。日本のストアでは「電話番号」という名称
スクリーンショット(2010-02-05 0.59.31)

My Number ? (¥115 )
スクリーンショット(2010-02-05 1.02.44)

Number? (無料)
mmNoteを作られている方のアプリでした。文字の位置やフォント自由に配置出来ます。
スクリーンショット(2010-02-05 1.04.59)

Show My Number (¥115)
スクリーンショット(2010-02-05 1.08.41)

MyNumber(無料)
全然関係ないけどこのアプリ名にしたいと思っていたのでした。。
スクリーンショット(2010-02-05 1.12.10)

メニュー+0(無料)
多機能な感じです。アドレス帳から登録してあるものを予備だせる。いいアプリですね。
スクリーンショット(2010-02-05 1.17.05)

といった感じです。カテゴリは、ユーティリティですね。その他にも電話番号計のものはありましたが単純に目的が一緒のものはこのくらいかと思います。日本製が2本もあるところがなんともそういう国柄なのかw。

情報整理 TwitterのDM/mentionを通知(PNS)する

1月 30th, 2010 by roguer 5 comments »

iPadの製品発表がされちょっとした興奮でした。

さて、前回の続きとして情報整理をしようと考えたときにちょっと自分の中で使っている事を忘れていたサービスがありましたのでここで整理として書いておきたいと思います。このサービスには非常に満足しており便利に利用しています。

iPhoneユーザの場合、通知サービスを一つくらいは設定しているかもしれません。一番その恩赦をうけているのはTwitterになるのですが私はクライアントに依存しないようにProwlというクライアントアプリ経由で受信しています。
このことはちょっと前にも記事にしていたので書いていたのですがすっかりその屋台骨?な PreyFetcher というサービスを忘れていました。

Untitled1
という流れで動作します。

これによりどのTwitterクライアントでも関係なくプッシュの恩赦をうける事ができるという理屈です。Prowlは単純な通知クライアントとサーバ機能(サービス)で成り立っています。ProwlのAPI経由であれば様々に通知する事が出来るのが特徴です。

http://prowl.weks.net/

iPhone/iPod Touch 用のクライアントアプリProwl: Growl Clientより購入(¥350)出来ます。

Prowlを利用している理由は

1)プッシュの時間を制御出来る。

これは設定画面の「QuietTime」で時間帯を指定する事により制御できます。また重要度が「Emergencies」で通知される場合にはプッシュをうけるという事が出来ます。従って、夜の間(0:00-7:00)はTwitterからの通知は受けないけどMailからの通知は受ける、と言った事が可能です。※Mail側及びTwitter側で重要度の制御が出来る必要があります。

Pastebot 2010-01-30 02.00.00 午前

2)通知を受けた後に起動するアプリを選択出来る。

これはProwl内では「Redirect」と表現されています。特定の通知が来た場合に「アプリケーション」に応じてiPhone内のアプリを起動可能です。これで特に専用クライアントを用いなくともワンステップ入りますが自動的に対象のアプリが起動する事が出来ます。※Prowlがサポートしている必要があります。

Pastebot 2010-01-30 02.02.20 午前 2 Pastebot 2010-01-30 02.02.20 午前 1
この設定をする事でiPhoneとの紐付けになります

以下のPreyFetcherからのアプリケーション名は

・ Prey Fetcher DM
・ Prey Fetcher mention

となります。のでこの値を Application Name に設定してください。

後は実際のTwitterからのDMやMentionをProwlに通知する為のPreyFetcherを紹介します。PreyFetcherは、ProwlAPIを利用したサービスでTwitter上のDMやMentionが発生するとProwlに対して通知が行う事が出来るというものです。

http://preyfetcher.com/ (無料)

設定は非常に簡単です。Twitterのユーザアカウントでログイン出来ます。Settingを選び先ほどのProwlのAPI番号を記入して完了です。これで通知がされます。

API(またはライブラリ)を利用して独自に通知を作ってみる事も非常に面白いと思います。仕事のメリハリを付ける上で時報を受けるとか。Gmailであればいくつかツールが出ているので環境が整えば利用出来ますね。Google App EngineにCron登録して実行するなどすればサーバも特に用意しないでも使えます。

実は、このツール以前にも記事「ProwlでPush Notification Serviceを試す」にしていたのですがあまりにも普通に使っていてすっかり忘れていたので再度記事を書いてみました。