11 Mar 2015, 15:35

Emacs からビッグデータの叡智へ瞬速アクセスだ! 新しい Emacs Evernote Cleient の geeknote がイイ

はじめに

Emacs の Evernote を 2 つ紹介します.

  • evernote-mode
  • geeknote

きっかけ

数年前に Evernote を Emacs でつかう記事をかいた.

記事をかいてしばらくして, Evernote API の仕様変更で一時期使えなくなってしまった.(アクセス token)

メイン PC が Linux に変えたら, Evernote すら利用をしてなかった.

最近, 久しぶりに Evernote にアクセスしてみて, また Evernote を触りたく なってきた.=geeknote= という新手の Evernote クライアントが登場したため, 最近の Evernote 事情について調べてみた.

evernote-mode

本家のリポジトリはメンテされてない.

install

基本は, doc 配下にある readme を読む.

ポイントは ruby 1.9 が必要!! 以下を実行.

$ gem-1.9 install evernote_oauth
$ ruby-1.9 ruby/setup.rb

/usr/bin/enclient.rb error

/usr/bin/enclient.rb がないとエラーする件は, readme に解決方法がかいてあった. 複数 ruby バージョンインストール時に発生.

setup.rb 実施後に, マニュアルでコピーする.

$ sudo cp /usr/bin/ruby1.9/bin/enclient.rb /usr/bin

auth token

事前にトークンを取得して, 以下のようにかく必要あり.

(setq setq evernote-developer-token "Your developer token.")

config

(setq evernote-ruby-command "ruby-1.9")

(require 'evernote-mode)
(global-set-key "\C-cec" 'evernote-create-note)
(global-set-key "\C-ceo" 'evernote-open-note)
(global-set-key "\C-ces" 'evernote-search-notes)
(global-set-key "\C-ceS" 'evernote-do-saved-search)
(global-set-key "\C-cew" 'evernote-write-note)
(global-set-key "\C-cep" 'evernote-post-region)
(global-set-key "\C-ceb" 'evernote-browser)

感想

頑張って導入してみたものの, あまり使えない子だった.

  • スピードが遅い.
  • 通信中のしばしハングが苛立つ.
  • ときどき動かない.
  • evernote-mode でかいたものしか見れない. (これは w3m をつかうと解消できるが)

geeknote

コマンドラインベースのツール. geeknote.el は Emacs の Evernote クライアント.

Geeknote の設定

以下からダウンロードしてインストール.

git clone git://github.com/VitaliyRodnenko/geeknote.git
cd geeknote
sudo python setup.py install

geeknote login
geeknote settings --editor "emacsclient"

Emacs の設定

Emacs は server モードで立ち上げておく必要あり.

(requier 'geeknote)
(global-set-key (kbd "C-c g c") 'geeknote-create)
(global-set-key (kbd "C-c g e") 'geeknote-edit)
(global-set-key (kbd "C-c g f") 'geeknote-find)
(global-set-key (kbd "C-c g s") 'geeknote-show)
(global-set-key (kbd "C-c g r") 'geeknote-remove)
(global-set-key (kbd "C-c g m") 'geeknote-move)

geeknote コマンドを eshell 経由で emacs からコールして, 結果を eshell buffer に出している.

geeknote の elisp wrpper といったところか.

感想

コマンドラインからの検索の サクサク感に驚いた.

  • 早い
  • 簡単
  • 便利

というわけで, すぐに気に入ってしまった.

そして, もう一点気に入ったのは, テキストはすべて Markdown 形式に変換されて表示される こと.

自分は twtitter や ブログや はてぶを全部 Evernote につっこんでいるのだが, これらの情報源から, 単語をもとにサクッと検索できる.

  • 未知のものは eww で Google 検索.
  • 既知のものは geeknote で Evernote 検索.

この二つの情報源に Emacs から素早くアクセスできることは素晴らしい.

さらに, Emacs から geeknote を呼べるというこで, カスタマイズ次第では追加機能を簡単に実装できそうなところも気に入った.

19 May 2013, 01:04

会社でつかえそう?!ローカル管理・ Evernoteライクなメモ管理ツール NixNoteを試してみた

Evernoteを会社で使いたいのだけれども、セキュリティの問題でそういうツールは利用を禁止されている。(´・ω・`)

Evernoteをローカルだけで使う方法もたしかにあるが、アカウント同期のためにネット上に情報をださなければならない。チキンでマックでチキンクリスプマフィンばかり食べている自分にはそんなことは滅相もない。(´・ω・`)

そんなこんなで、3年くらい暮らしていたのだが、今日はふとネットサーフィンをしていたら、Evernoteライクなメモ管理ツールを発見!(^O^)

早速試してみた。

NixNoteでローカルメモ管理

NixNote(旧NeverNote)は、Evernote用のオープンソースなクライアントソフト。

Nevernote – An Open Source Evernote Clone

なので、Evernoteと機能は全く同じ!EvernoteはLinuxに対するクライアントソフトを用意していないようで、LinuxからEvernoteを利用するには、このツールが決定版の必須らしい。Windowsユーザは Evernote for Windowsがあるので、このようなソフトとは無縁。

ダウンロードは以下から最新版を落とす。Windowsの場合は、インストーラが用意されているので、それを落とす。もちろん、Macでもインストールできる。

インストールはインストーラを実行するだけ。どや!

SnapCrab_NixNote_2013-5-19_9-47-28_No-00.png

 

完璧にEvernoteだ。そして、ログインせずともなんでも自由に操作できる。PDFのインライン表示だってできる。

ただ、軽く使ってみたところ、PDFの文字列検索が引っかからなくて、検索が重い気が。。まあいいや。もう少し遊んでみよう。

19 May 2013, 00:06

Cygiwnでの操作ログをevernoteにライフログする方法

ライフログ大流行の昨今、やっぱりコンソールの履歴もライフログしたいです。

ブログを書くときとか、操作したことを自動的に記録出来ればいいとおもった。さらには、Evernoteに自動転送してログできればいいなと思ったので、方法を調べてみた。

Evernoteに自動転送する方法

Evernoteに自動転送するには、インポートフォルダの設定をすればよい。

  1. 任意の場所にログを保存するフォルダを作成。
  2. Evernoteにログを保存したフォルダを作成。
  3. Evernoteのツールバーから、ツール -> インポートフォルダを選択。
  4. 追加を選択して、作成したWindows上のフォルダを指定する。
  5. 「ノートブック」欄を選択して、Evernoteフォルダを選択する。

evernote_mintty

Cygwin上でログを記録をする

起動と終了をシェルでまとめました。

ログ開始

ログを取るには、scriptコマンドを利用します。script  -a で追記モードで起動。ついでに、起動したときの日付をファイル名にします。

#!/bin/bash

LOG_TEMP_DIR=$HOME/log/evernote/temp
DATE=`date +%y%m%d`

script -af $LOG_TEMP_DIR/$DATE.txt

ログ終了

Evernoteへはログ終了時に転送します。まずはコマンドラインからscriptを終了させることが前提。

制御文字をcolコマンドで削除します。Evernoteの文字コードがShift-Jisなため、Shift-JISでなければ、変換が必要。nkfコマンドで変換します。なお、拡張子はtxt形式にしないと、evernote上で開けない。

#!/bin/bash
LOG_DIR=$HOME/log/evernote
LOG_TEMP_DIR=$HOME/log/evernote/temp
DATE=`date +%y%m%d`

# 制御文字削除
col -bx < $LOG_TEMP_DIR/$DATE.txt > $LOG_TEMP_DIR/$DATE.col.txt

# 文字コード変換 Shift-JIS
nkf -s $LOG_TEMP_DIR/$DATE.col.txt > $LOG_TEMP_DIR/$DATE.sjis.txt

# Evernoteへ移動
mv $LOG_TEMP_DIR/$DATE.sjis.txt $LOG_DIR/$DATE.txt

# 一時ファイル削除
rm $LOG_TEMP_DIR/$DATE.col.txt

画面制御文字は妥協した

ちなみに、画面制御文字はどうしても取り除けなかかった。33m~や0;など。これは、minttyを色なしで表示すればいいが、それはやりたくないので妥協。

Cygtermを使う

シェルでガンパラなくても、Cygtermのログ機能を使えば、画面制御文字も取り除ける。

minttyでの出力結果をcygtermからtail -f で表示させるとか。まあ、いろいろと方法を探したけれども、Cygtermを利用するのが一番簡単そうだ。minttyを捨てて、Cygtermにするかどうか、悩むところだ。。。

ツールバーの設定 -> その他の設定 -> ログを選択。

標準ログファイル名で、strftimeフォーマットに従った名前を書く。ここでは、%y%m%d.txtとした。これで今日の日付が入る。

保存先ディレクトリでevernoteと連携しているフォルダを指定。

自動的にログ採取を開始するにチェックをいれると、Cygterm起動時にログが開始される。

SnapCrab_Tera Term その他の設定_2013-5-19_15-5-22_No-00

その他

これを、ログインシェルとログアウトシェルに書いて自動的にログするかは検討中。そんなにログは必要かな?

28 Oct 2012, 03:50

EvernoteでEmacsを使う(emacs-evernote-mode)

Evernote、いつも常用しているけれども、なにしろ

エディタが使いにくい!

毎日Emacsを使っている自分としては、是非Emacsの入力がしたいと思った。

毎度、Google先生にお伺いをたてたら、こんなツールを見つけたので、使ってみた。

その名も、emacs-evernote-mode(そのままの名前だぁ)

emacs-evernote-modeのダウンロードとインストール方法

Windowsユーザなので、CygwinでEmacsを利用しています。

なので、ここではCygwinでのインストール方法で。

ダウンロードは以下のサイトから

emacs-evernote-mode

インストール方法と使い方の日本語訳は、以下のサイトから見ることができる(感謝)

http://emacs-evernote-mode.googlecode.com/svn/branches/0_21/doc/readme_ja.html

解凍したら、適当な場所において、おいたディレクトリで以下のコマンドを実行。

Rubyスクリプトインストール

[text]

ruby ruby/setup.rb

[/text]

ただし、注意が必要だ。

evernote-mode-0_41.zip では、バグが2つくらいあった。

下に書いたエラーメッセージがでたときは、Rubyスクリプトを手動で修正する必要がある。

evernote-mode.el をロードパスにコピーする

[text]

cp evernote-mode.el (load-path)

[/text]

(load-pathってなんだよって人は以下のサイト参照)

http://d.hatena.ne.jp/sandai/20120304/p2

evernote-mode設定を.emacs に追記

.emacsでもいいけれでも、自分の場合は~/.emacs.d/init.elファイルに書いた。

[text]

(add-to-list ‘load-path “”)

(require ‘evernote-mode)

(global-set-key “\C-cec” ‘evernote-create-note)

(global-set-key “\C-ceo” ‘evernote-open-note)

(global-set-key “\C-ces” ‘evernote-search-notes)

(global-set-key “\C-ceS” ‘evernote-do-saved-search)

(global-set-key “\C-cew” ‘evernote-write-note)

(global-set-key “\C-cep” ‘evernote-post-region)

(global-set-key “\C-ceb” ‘evernote-browser)

(setq evernote-username “USERNAME”) ; Evernote アカウント名

[/text]

使い方

動画で説明。

[http://www.youtube.com/embed/Z6yCFAcOyh0]

evernote-modeのバグを手動修正しよう

evernote-mode-0_41.zip では、Cygwin環境で使おうとすると、バグがあるっぽい。

そのままでは、以下のエラーが出て使えなかった。

以下のサイトを参考にして、直接Rubyソースを修正し、再度 ruby setup.rbを実行するとできた。

バグ修正(その1)

error in process sentinel: enclient.rb exited abnormally with code 1

-e:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END

:1: Use RbConfig instead of obsolete and deprecated Config.

http://code.google.com/p/emacs-evernote-mode/source/detail?r=198

バグ修正(その2)

SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

http://code.google.com/p/emacs-evernote-mode/issues/detail?id=16

http://code.google.com/p/emacs-evernote-mode/issues/detail?id=17