Finderから直接Evernoteへファイルを読み込む方法

Evernoteにファイルを添付してく作業は、簡単とはいえなかなか面倒な作業です。なんかいい方法ないかなーと、海外のサイトを見ていたら、OSXのサービスを利用して、Finderから直接Evernoteへファイルを読み込む方法が紹介されていました(Use Mac OS X Services to Import Files into Evernote)。実際にやってみるとなかなか便利だったので紹介します。

この方法を使うと、Finderでファイル上で右クリックすると「ファイルをEvernoteへ読み込み」というメニューが表示されます。実行すると、Evernoteに新規ノートが作成され、ファイルの中身を読み出だした結果が貼付けられます。


Finderで右クリックメニューしたところ


それでは設定方法です。
まずは、Automatorを立ち上げます。ワークフローのテンプレート選択画面が表示されるので、「サービス」を選択します。

次に、ワークフローウィンドウの右上にある「サービスはこの項目を受け取ります」という部分を変更します。

  • "サービス”は、次の選択項目を受け取ります: ファイルまたはフォルダ
  • 検索対象:すべてのアプリケーション

と設定します。

アクションを選択し、「Applescriptを実行」をワークフローウィンドウにドラッグ&ドロップします。

下記のコードを「AppleScriptを実行」ウィンドウの中に貼付けます。

on run {input}
     tell application "Evernote"
          repeat with x in input
               try
                    create note from file x
               on error error_message number error_number
                    display alert "Send to Evernote Failed" message "Error:          " & error_message & "
" & "Error Number:     " & error_number as warning
               end try
          end repeat
     end tell
end run

別名で保存します。ここで設定した名称が右クリックで表示するメニューになります。

システム環境設定のキーボードを開きます。「キーボードのショートカット」から「サービス」をクリックし、ファイルとフォルダの項目を開きます。

「ファイルをEvernoteへ読み込む」というメニューが追加されていますね。

後はFinder上でファイルを選択し、右クリックすると「ファイルをEvernoteへ読み込む」という機能が追加されているはずです。
注意: ファイルサイズが大きい場合、ノートに貼付るまでに時間がかかります。じっくり待ってください。

関連するページ

Evernoteの日本語化。

OSX版Evernoteの日本語化 その3

本日、OSXEvernote の最新版(1.5.0 build:60140)が公開されました。いろいろと改善点があるのですが、僕が注目しているポイントは2つあります。

  • ベータ版の提供
  • ローカライゼーションの提供開始(イタリア語、ドイツ語、フランス語、スペイン語)

それぞれ見ていきたいと思います。

ベータ版の提供

ベータ版が一般ユーザにも提供されることになりました。もちろん人柱向けなのでデータがロストしても自己責任ということになります。

僕は、ベータ版を提供することの意味は大きいと考えています。なぜなら、ユーザも開発に参加できるからです。
ベータ版をEvernote社が提供することで、リリース前にユーザから直接素早いフィードバックを得ることができます。ベータ版を触ったユーザは「バグがあるよ」とか「もっとこうして欲しい」といった生の声をフィードバックすることができます。生の声からEvernote社が改善を考え、ユーザにフィードバックすることができます。こうした双方向にフィードバックする環境ができたことで、僕達ユーザも開発に直接参加できるようになったのです。
ちなみに、ベータ版のバグ、フィードバックはEvernoteMac フォーラムに報告することになります。

ローカライゼーションの提供開始

実は、v1.4.9のEvernoteでもロシア語向けリソースが提供されていました。しかし、ようやく本格的にさまざまな言語のリソースが提供されるようになりました。リリースノートにも

Our translation project is beginning to bear fruit.
私たちの翻訳プロジェクトが実を結び始めている

とあるので、これからどんどん新しい言語向けのリソースがでてくるのでしょう。

ローカライズといってもなかなか難しいもので、英語を日本語に翻訳するだけで、アプリをローカライズできるものでもありません。たとえばEvernoteの場合、ステータスバーには

Viewing 349 notes from hogehoge notebook matching All of the following: contains words starting with Evernote

といったような検索条件が表示されます。日本語と英語圏では語順が異なるので、単純な翻訳では修正しきれません。僕が作成した日本語リソースでも、ステータスバーは英語のままにしてあります。この修正はソースコードからの修正が必要になるので、開発元じゃないと修正できないのです。
開発元は日本びいきらしいので、時間はかかるかもしれませんが、きっと適切に修正してくれることでしょう。

ダウンロード

いつか提供されるとはいっても、日本語メニューがあるだけでも全然使い勝手は良くなります。そこで、バージョン 1.5.0 (60140) 向けに日本語リソースを作ってみました。訳も以前より、若干こなれたのではないかと思っています。

インストールは、関連する記事を参照してください。うまくリソースが適用できないとか、妙な訳などありましたら、コメントにてご指摘お願いします。

関連する記事

日本語化の方法は関連する記事を参照してください。

OSX版Evernoteの日本語化 その2

OSX版Evernoteの日本語化 で、アプリ本体はほぼ日本語化されたのですが、象マークのメニューとスクリーンキャプチャーが日本語化できていませんでした。

よくよく調べてみると、この部分はEvernoteHelper.appというアプリケーションで実現されており、別途日本語リソースを用意する必要があるのでした。ここも日本語化できたので、公開します。

スクリーンショット

EvernoteHelperメニュー

スクリーンキャプチャーメニュー

インストール方法

  1. 象アイコンをクリックし、メニューからQuitを選択して、Evernoteを終了します。
  2. EvernoteHelper.20091010.Japanese.lproj.zip 直をダウンロードします。
  3. EvernoteHelper.20091010.Japanese.lproj.zipを展開します。Japanese.lprojというフォルダが作成されます。Evernoteの本体向けと同じフォルダ名なので、コピー元を間違えないよう注意してください。
  4. Finderから、/Application/Evernoteを選択し、右クリックし、コンテキストメニューを表示します。「パッケージの内容を表示」を選択します。
  5. 新しいFinderウィンドウが開きますので、そのウィンドウからContents/Resources/EvernoteHelperを選択します。
  6. 再度右クリックし、「パッケージの内容を表示」を選択します。
  7. 新しいFinderウィンドウが開きますので、そのウィンドウからContents/Resources/を選択します。
  8. このフォルダに展開したJapanese.lprojフォルダをコピーします。
  9. Evernoteを起動すると、象アイコンをクリックすると、日本語メニューが表示されます。

アンインストール方法

コピーしたJapanese.lprojを削除してください。

関連する記事

OSX版Evernoteの日本語化

Evernoteに関連する本

「超」情報検索・整理術 「整理しない」「覚えない」で効果抜群! (ソフトバンク文庫NF)仕事するのにオフィスはいらない (光文社新書)Gmail超仕事術―効率と生産性が飛躍的にアップする!

OSX版Evernoteの日本語化

「超」情報検索・整理術 「整理しない」「覚えない」で効果抜群! (ソフトバンク文庫NF)仕事するのにオフィスはいらない (光文社新書)Gmail超仕事術―効率と生産性が飛躍的にアップする!
OSXEvernoteの日本語リソースを作成してみました。
退屈しのぎに作っていたものですが、個人的に使っている分には問題もなさそうなので公開します。公式版がでるまでのつなぎにしかなりませんが、興味があれば使ってみてください。コメント等いただけるとありがたいです。

スクリーンショット

アカウント情報

環境設定



ツールバー

制限事項

  • 公式の日本語リソースではありません。使用については、自己責任でお願いします。
  • 動作確認はMac OSX 10.6.1で行っています。
  • 日本語がいまいちな部分があります。
  • 個人的に良く見るものは日本語化したつもりですが、一部英語が残っています。(ログインパネル、エラーメッセージ等)(対応予定)
  • Webクリッパー、スクリーンショットツールは日本語化されておりません。(対応未定)
  • Evernote v1.4.9 (57356)で動作します。

インストール

1. Japanese.lproj.20091009.zip 直をダウンロードし、展開する。Japanse.lprojというディレクトリが作成されます。
2. Evernoteノートのバージョンを確認する。

3. Evernoteを終了する。
4. Evernoteのリソースを表示します。Finderでアプリケーションフォルダ以下のEvernoteを選択する。右クリックし「パッケージの内容を表示」を選択する。

5. 新しいFinderウィンドウが開くので、Contents/Resourcesの下に先ほど展開したJapanese.lprojを展開する。

6. Evernoteを起動する。
メニューとツールバーが日本語化されていれば、インストール完了です。

アンインストール

Evernoteを終了し、Japanese.lprojを削除してください。

追記

ネタフルさんのEvernote」CEOと会食して日本語化の話を聞いた!によると、

昨夜、既にモブログで速報した通り、2010年第2四半期には日本語ローカライズを予定しているというビッグニュース!

Evernoteの日本語化が2010第2四半期リリースを目指して作業されているそうなのであまり意味が無いかもしれません。もっとはやく情報公開してよ、もう。

Evernoteで気分転換に遊んでみた

「超」情報検索・整理術 「整理しない」「覚えない」で効果抜群! (ソフトバンク文庫NF)仕事するのにオフィスはいらない (光文社新書)Gmail超仕事術―効率と生産性が飛躍的にアップする! Evernoteに関連する書籍。

Evernoteのリソースを気分転換にいじってみた。nibファイルの変更が面倒だな。バージョンアップにどうやって追随するかも課題かあ。

興味ある人います?

EvernoteにGoogleReaderの記事を送る

Googleを支える技術 巨大システムの内側の世界 (WEB+DB PRESS plusシリーズ) [ 西田圭介 ]Google App Engine for Java [実践]クラウドシステム構築 (WEB+DB PRESS plus) (WEB+DB PRESSプラスシリーズ) (WEB+DB PRESS plusシリーズ)
GoogleReaderにはSendToという機能があります。
この機能はGoogleReaderで読んだ記事をブログやTwitterなどに送る(Send to)機能です。この機能が超便利なので紹介します。

英語版のGoogleReaderでのみ使える機能です。Google Japanさん、早く日本語版にも実装してください。お願いします。

では、設定を説明します。

  1. GoogleReaderを開きます。
  2. 設定を開き、各種設定タブから言語:英語-Englishを選択します。
  3. 英語設定でGoogleReaderが開きます。
  4. Settingsを開き、SendToタブを開きます。
  5. Create Custom Linkをクリックし、以下を設定します。
Name: はてなブックマーク
URL: http://b.hatena.ne.jp/add?url=${url}
Icon URL: http://b.hatena.ne.jp/favicon.ico


あとは記事を読んでお気に入りがあれば、Shift + tと入力し、矢印キーで選択すれば記事をブックマークすることができます。
注意点が二つあります。

  1. 新しいウィンドウを開くため、ブラウザでポップアップを開く設定にしてください。
  2. feedproxyではじまるサイトはオリジナルのURLではないので、ブックマークしない方がよいです。

ちなみにEvernoteへ投稿するなら、

  1. Create Custom Linkをクリックし、以下を設定します。
Name: Evernote
URL: http://s.evernote.com/grclip?url=${url}&title=${title}
Icon URL: http://www.evernote.com/favicon.ico

で、Evernoteへ転送することができます。
こういう素敵なマッシュアップが生活をどんどん便利にしていきますね。ほんと良い時代になりました。

[tech][Java]Unix系JavaでRuntime.execをつかうときの落とし穴

JavaではJVMやライブラリの実装がWindowsMacOSLinux等で共通の実装だけを採用する方針だったりします。
なので、シンボリックリンクをはったりといったような、使いたくなるような気の利いたOSの機能はAPIでは用意されていません。しかたがないので、lnコマンドといったような外部コマンドを呼び出したい気分になるのですが、UnixJavaでRuntime.exec()を使って外部コマンドを呼び出す際には注意が必要です。意外な落とし穴が待っています。

もし今サーバーがUnix系OSJavaでRuntime.exec()を使おうと思っているなら、今すぐ別の方法を検討してください。後でとんでもない目にあいますよ。

いったいどういうことなんでしょうか?とりあえず、こんなプログラムを考えてみます。

package org.kazumi007;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ExecuteCommand {

	public static void main(String[] args) {
		// 400Mbyte確保
		int[] list = new int[2000000];
		list[0] = 1;
		String cmd = "sleep 1";
		while (true) {
			try {
				Process process = Runtime.getRuntime().exec(cmd);
				InputStream is = process.getInputStream();
				BufferedReader br = new BufferedReader(
						new InputStreamReader(is));
				String line = null;
				while ((line = br.readLine()) != null) {
					// なにもしない
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}
}

内容は単純です。巨大な配列を確保してsleepコマンドを1秒おきに起動しているだけの単純なプログラムです。これのどこが問題なのでしょうか?

実行中のJavaプロセスのメモリをみてみましょう・・・。何度か取得した結果の一部です。

$ ps -a -o vsz,comm,args,pid,ppid |grep java
75732 grep grep java 22292 20554
1300640 /usr/bin/java /usr/bin/java -Xmx512m org.kazumi007.ExecuteCommand 22086 10150
1300640 /usr/bin/java /usr/bin/java -Xmx512m org.kazumi007.ExecuteCommand 22290 22086

OSX 10.6.1のjava version "1.6.0_15"でテストしました。

同じメモリサイズのJavaのプロセスが2つありますね。なにこれ?!

実はUnix系のJVMはRuntime.execが実行されると、内部でfork()を呼び出しプロセスのコピーを作成し、exec()でコマンドを実行しているのです。この実装のために、コマンドを生成すると必ず起動元のプロセスと同じサイズの空きメモリがなければなりません。さらに自体を悪くするのが、Windowsでは実装が異なるので通常開発環境では問題にならないのです。本番ではOutOfMemoryErrorが出るんだけど、再現しない・・・。ということになってしまうのです。

大切なことなので、もう一度書きます。

UnixJavaでRuntime.execを使うなら、起動元のプロセスで使用しているメモリと同量の空き容量が必要です。可能な限り、Javaから外部コマンドを呼び出さずに別の方法を検討しましょう。

これってJavaで開発するときの常識なんですか?