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.

ということらしいです。

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

2012-03-16

正中頸嚢胞の手術と入院

以前、正中頸嚢胞ができたという記事を書きました。

XBox 360、延命成功!?


ウチのXBox 360が壊れたわけなんですが、ニューマシンが来るのは4/5でまだ半月も先だし、退院祝いにThe Elder Scrolls V : Skyrim買ってきちゃったし、去年から予約済みのマスエフェクト 3だってもう届くし。
せっかく自宅療養中なのにおあずけなのは、やっぱ痛すぎ。

てことで、巷で噂の「温めて冷まして直す」をやってみました。
「タオル療法」とか「タオル法」なんていう名前でも呼ばれてるやり方です。
  1. HDDなどの増設ハードウェアをすべて外し、ディスクが入っていないことを確認した上で、本体をバスタオルや毛布などで包み、電源を入れて20〜30分ほど放置します。
  2. 包んでいたバスタオルや毛布を取り除き、電源を切って20〜30分ほど放置。
以上。とても簡単です。

あとは、再度電源を入れてみて、正常に起動するかどうか確認するだけ。

Xbox 360の本体異常の原因のほとんどは、基板上のハンダのクラックや剥がれが原因なので、過熱状態にして一旦ハンダを溶かすことで、くっつけ直すという作戦です。

結果は...なんと、ほんとに直りました

驚きました。すごいことを思いつく人がいるもんですね。
もちろん、これはちゃんとした修理ではなくて、単なる延命措置なので、例の素敵なXbox 360 スター・ウォーズ リミテッド エディション の予約は取り消しません。
でも、それが来るまでのおあずけ期間が少しでも縮むのは、とても嬉しいです。

今回、僕が参考にしたのは、
とか
ゲーム翻訳者のブログ ~ゲームトランスレーター~ Xbox 360 Towel Trick 【Xbox 360 タオル法】
とかのあたりでした。

まぁ、直ったといっても、次はもう起動しないかもしれない。
いつまたRRoD (Red Ring of Death)状態に戻ってしまうかわからない。
下手したら、最初から直るどころか止めをさしてしまうかもしれないという、危うい民間療法です。
もう無償修理期間は終わってるし、修理不能になっても構わないという状況でなかったら、おすすめしません。

ハードウェア素人の僕でも、少なくとも2つのリスクが考えられます。
  • 過熱状態にするということは、CPUやGPUに過酷な試練を与えることになります。
    それで瀕死のXbox 360くんに止めをさしてしまいかねません。
  • こんな温度管理なっしんぐなハンダ付けしたら、問題が起こった箇所以外も含めて、全てのハンダが劣化します。
    劣化したハンダは、ほんのちょっとした衝撃でも、クラックや剥がれを起こしてしまいます。
    なので、一旦直ったとしても、再発する可能性はかなり大きいでしょう。
というカンジで、とてもオススメはできないやり方なんですが、ダメモトでいいならやってみる価値はありますね。

2012-3-17 追記: やっぱりダメでした

一時は成功かと思われましたが、結局ダメでした。
  • ディスクを入れていない状態でないと、起動しない
  • ゲームをHDDに取り込もうとすると、途中でハング
  • ゲームをディスクから起動すると、開始後数分でハング
  • すでにHDDに取り込み済みのゲームを起動すると、ディスクからの起動時より多少長くもつものの、やはり数分でハング
ということで、ダッシュボードまで起動するようにはなったものの、結局ゲームをプレイできる状態ではありませんでした。
がっつりヌカ喜びさせていただきました。
残念です。
Related Posts Plugin for WordPress, Blogger...