ラベル todo の投稿を表示しています。 すべての投稿を表示
ラベル todo の投稿を表示しています。 すべての投稿を表示

2013-02-17

やっぱりオムニフォーカスすごいね

以前、わざわざメールで iCal のリマインダに登録できるスクリプトを作って、OmniFocus はやめたっていうハナシをしました。

で、今はどうしてるかっていうと、結局 OmniFocus に戻りました。
なぜ戻っちゃったのかというと、タスクの見せ方の違いというか、考え方の違いかな。
OmniFocus の場合、これから先のタスクをずらっとリストするんじゃなくて、今やるべきことに集中させてくれるんですね。
OmniFocus では、アラートは普通2回来ます。
タスクの開始が可能になったときと、タスクの期限のときです。
この、タスクの開始可能のアラートが結構効果的で、これがくるまではそのタスクのことを完全に忘れてていいんです。

これ、とても重要なことです。
タスク管理で大事なのは、タスクをすべて把握しておくことではなくて、必要になるまで忘れておけるようにすることです。
把握するのはツールに任せておいて、自分は今のことに集中すること。

これは GTD (Getting Things Done) という TODO 管理手法からくる考え方です。
GTD についての情報は、 GTD のサイトとか Wikipedia を見てみるなり、ググってみればたくさんあります。

OmniFocus は、今もっとも GTD に忠実なツールです。
そのため、他の TODO 管理ツールとはちょっと方向性が違う、独特な雰囲気を持っています。
場合によっては、この独自性のために最初とっつきにくさを感じる方もあるようです。
でも、ちょっと使い慣れてくると、この「忘れておける」ということがまるで空気のように、普段は気にもしないけど、実はとても自然で大事なことになってきます。

実際、僕も iCal リマインダーではそれが十分でなくて、なんだか窒息したような気分になってOmniFocus に戻ってきました。

やっぱり大事なものは、失ってみないとなかなかわからないものです。
そんな自然さが、OmniFocus のすばらしさですね。

それからもうひとつ、「忘れておける」ということをより完全なものにするためには、タスクの実行が可能になったときには、確実に教えてもらえるということが大事です。
教えてもらえることが確実だからこそ、安心して忘れておけるようになるんです。

で、そのために便利なのが、OmniFocus 2 for iPhone と、OmniFocus for iPad です。
これらはすべて、Omni の同期サーバ経由で同期できます。
同期サーバの利用は無料です。
iOS デバイスのユーザにとっては、iOS デバイスの通知センターが、たぶん一番確実なアラートじゃないでしょうか。

やはり、タスク管理には OmniFocus が一番です。

ところで、つい先日 VoodooPad で GTD というハナシを書いたばかりなんですが、これとの関係はどうなんでしょうか?
はい、今は OmniFocusVoodooPad の 2 つで TODO 管理してます。
なぜ 2 つ必要なのかとか、これらの住み分けのことについては、また今度、気が向いたら書くかもしれません。

2013-02-08

VoodooPad で GTD 2回目

VoodooPadGTD っぽいことをやってみるハナシの2回目です。

前回は、voodoopad-gtd の導入と簡単な使い方について書きました。
で、ちょっと古いプラグインなので、導入するためにちょっとだけスクリプトを修正しました。

今回は、またちょこっとスクリプトを変更します。

やりたいことは2つ。
  1. Markdown のリストに対応
    ページのデフォルトフォーマットが Markdown になっている場合、プラグインが生成する @todo ページ、 @done ページ、および @later ページの内容を、Markdown のリストにする
  2. ショートカットキーを変更する

1. Markdown のリストに対応

voodoopad-gtd は、@todo: タグや @done: タグ 、@later: タグをつけた箇所の内容をリストにしたページを生成してくれますが、その内容は単なる改行区切りのプレーンテキストです。
Markdown を使用しているなら、リスト形式にするだけでちょっと見やすくなります。

以下の 3 ファイル全て、同じ箇所を変更します。
  • Update @todo List.py
  • Update @done List.py
  • Update @later List.py

変更内容は、こんなかんじ。
  def main(windowController, *args, **kwargs):
-     theList = ""
+     theList = [""]
      document = windowController.document()
    if line.find(tag_name) >= 0:
-     theList += page.displayName() + line.partition(tag_name)[2] + "\n"
+     theList.append(page.displayName() + line.partition(tag_name)[2])
- theList += "\n\n--\nUpdated at " + time.strftime("%d %b %Y %H:%M",time.localtime())
  page = document.createNewPageWithName_(tag_name)
- page.setDataAsString_(theList)
+ separator = "\n* " if page.uti().find("markdown") >= 0 else "\n"
+ page.setDataAsString_(separator.join(theList) + "\n\n--\nUpdated at "
+   + time.strftime("%d %b %Y %H:%M",time.localtime()))
  document.openPageWithTitle_(tag_name)
* スペースの都合で、タブ幅は圧縮してます。
手抜きしてるので先頭に空行が入っちゃいますが、むしろ見やすくていいので、放置です。

2. ショートカットキーを変更する

デフォルトでは "@todo:" 、"@done:" 、および "@later:" タグの挿入は、それぞれ "Control + t" 、"Control + d" 、"Control + l" に割り当てられています。
ところが、Emacs キーバインドを使い慣れてる人にとって、これらはどれも非常に都合が悪いです。
まるで狙ったかのように、多用するキーストロークばかり潰されています。
そこで、ショートカットキーを変更したいと思います。
"@todo:" タグの挿入は、デフォルトでは"@todo"リストページの生成に割り当てられるショートカット "Control + Shift + t" に割り当て、リストページ生成は "Control + Command + Shift + t" に割り当てます。
"@done" タグ、"@later" タグについても同様です。

変更するファイルはそれぞれ2つです。
  • TODO
    • Insert @todo.py
    • Update @todo List.py
  • DONE
    • Insert @done.py
    • Update @done List.py
  • LATER
    • Insert @later.py
    • Update @later List.py

変更箇所は、
  VPShortcutMask = "control"
- VPShortcutKey = "t"
+ VPShortcutKey = "T"
  
  import AppKit

  VPShortcutKey = "T"
- VPShortcutMask = "control"
+ VPShortcutMask = "control command"
  
  import AppKit
です。
DONE 、LATER についても、変更内容は同様です。

見れば察しがつくと思いますが、"VPShortcutKey" がショートカットキーの指定で、"VPShortcutMask" がモディファイアキーの指定です。
"VPShortcutMask" に指定できる値は
  • "control" 、または "ctrl"
  • "command"
  • "option" 、 "opt" 、または "alt"
  • "shift"
で、スペースで区切ります。
Shift キーについては、"VPShortcutMask" で指定してもいいですが、上記の変更内容のように、"VPShortcutKey" に大文字を指定することであらわすこともできます。
自分で使いやすいショートカットを割り当ててください。

ほんのちょっとした変更ですが、ぐっと使いやすくなると思います。


2013-02-07

VoodooPad で GTD

ひさしぶりの投稿ですが、オブジェクト指向ともプログラミングとも直接関係ないです。
Mac のパーソナル wiki アプリ VoodooPad 5 で、 GTD っぽいことをやってみようというハナシ。

今までは Emacs org-mode + MobileOrg + Dropbox で TODO 管理してました。
でも、最近なぜか MobileOrg の Dropbox ログインで
Bad username and password or network error.
なんて言われて(もちろん、Email/Password は何度も確認しました)、 sync できなくなってしまいました。
sync なしでも、org-mode 自体は僕の TODO 管理に最適なんですが、 iPhone で見られないのはちょっと痛いです。
いや、まぁテキストなんだから、見ようと思えばもちろん見られるんですが、フォールディングなしの長大な org ファイルで TODO 見る気にはならないです。

なので、これを機に別のやり方も試してみようということで、以前からメモとしてたまに使ってた VoodooPad を、 GTD にも使ってみたいなと。

VoodooPad なら、 VoodooPad for iOS で iPhone/iPad でも気軽に編集できます。
Markdown も使えるし。

さいわい、VoodooPad に GTD 的な機能を追加するプラグインを作ってくれてる親切なヒトがいました。
ここからダウンロードして入れれば OK 。

どこに入れるかは、ダウンロード元のページにも書いてあるし、同梱の README.markdown にも書いてあるんですが、この情報は古いです。
VoodooPad 5 では、 "~/Library/Containers/com.flyingmeat.VoodooPad5/Data/Library/Application Support/VoodooPad/Script PlugIns" です。

あと、スクリプト自体も古い(バージョン3.5用)ので、ちょっとだけ修正してやる必要があります。

  • Update @done List.py
  • Update @later List.py
  • Update @todo List.py

の 33 行目の
if page.uti() == "com.fm.page":
を、
if page.isText():
に書き換えれば OK 。

使い方は、ダウンロード元のページと、同梱の README.markdown に書いてあります。

一応、簡単に書いておくと
  • 何かメモる (すきなやり方で)。
    Take notes (in a somehow chaotic way).
  • メモの中にやるべきこと (タスクとか) を見つけたら、それの前に "@todo:" (Ctrl + T で入れることもできる) か、 "@later:" (Ctrl + L) と書く。
    Whenever you find something to be done (i.e: a task) you just add "@todo:" (Control + T) or "@later:" (Control + L) in front of it.
  • タスクリストが見たかったら、 Ctrl + Shift + T を押せば、 "@todo" というページ (なければ生成されます) に、今開いてるドキュメント内の "@todo:" タグが全てリストアップされる。 (それぞれ元のページへのリンク付き)
    When you need a task list, hit Control + Shift + T and all "@todo:" tags in the current document are listed on a "@todo" page (with a link to the page where the task is)
  • タスクを完了させたら、 "@todo:" タグを "@done:" に書き換える。同梱の"Insert Date"スクリプト (Ctrl + Shift + J) を使って完了日を記録することもできる。
    When you complete a task, replace the "@todo:" tag with a "@done:" tag. I use the "Insert Date" script (bound to Control + Shift J) to record the date.
  • 最近完了したタスクをチェックしたいなら、 Ctrl + Shift + D を押せば、 "@done" というページが作られて、 "@done:" のタスクがリストアップされる。
    When you need to check what you've acomplished recently, hit Control + Shift + D, and a "@done" page is created with a list of "@done:" tasks.
  • 時間が空いた?それなら Ctrl + Shift + L を押せば、全ての "@later:" タスクがリストアップされた "@later" ページができる。
    Spare time? Hit Control + Shift + L and you'll get a "@later" page with all your "@later" tasks.

ということらしいです。

さて、これからこいつを使ってみます。
気が向いたら、使ってみた感想とか、また書くかもしれません。

2011-11-11

メールからiCalリマインダ登録するAppleScript

信メールの内容を、iCalのリマインダに登録するAppleScriptです。
ダウンロード

使い方はカンタン。
メーラの振り分けルールでお好きな条件を指定して、アクションにこのスクリプトを指定するだけで、準備OK。
Related Posts Plugin for WordPress, Blogger...