TiddlyWiki の設定

TiddlyWiki の Tips を調べていたら、設定(使用しているプラグラインとか)を公開されている方がいたので自分も公開してみる。

TiddlyWiki とは

  • 開発者は Jeremy Ruston 氏
  • HTML ファイル1つでできている Wiki なので tiddlywiki.com からダウンロードしてくるだけで使える

この説明がわかりやすいかも

TiddlyWiki を何に使っているのか

TiddlyWiki はいろいろな用途で使われているけれども自分の場合はプログラミング関連の本やブログを読みながらメモするのに使っている。*1

Write once, read anytime

自分の TiddlyWiki のサブタイトルに書いてあった。*2
読んでみて、コードを書いてみて、実行して、まとめてみないと理解できない体質なので、本に書かれたコードを打ち込むのだけど、それを残している。
そして、必要になった時に貼り付けて実行。


例えば、今『プログラミング Clojure』を読んでいてこんな感じ。

(def foo 10)
; => #'user/foo
 
foo
; => 10
 
(.start (Thread. (fn [] (println foo))))
; => nil
; 10
 
; Clojure 1.3 から var はデフォルトでは dynamic ではない
(binding [foo 42] foo)
; => IllegalStateException Can't dynamically bind non-dynamic var: user/foo
 
; foo を dynamic にする
; (def #^{:dynamic true} foo foo)
 
; dynamic な foo を定義する
(def ^:dynamic foo 10)
; => #'user/foo
 
(binding [foo 42] foo)
; => 42
 
; let と binding の違いを見る
(defn print-foo [] (println foo))
; => #'user/print-foo
 
; let は自分のフォームの外側には影響を及ぼさない
; ルート束縛である 10 を表示する
(let [foo "let foo"] (print-foo))
; 10
; => nil
 
; binding は束縛の影響をそのボディから呼び出されるコードすべてに及ぶ
(binding [foo "bound foo"] (print-foo))
; bound foo
; => nil

使用中のプラグイン

tiddlyspace.com
  • コードが読みやすいように
  • はてなスーパーpre記法ほど種類がないが追加できる
  • ハイライトが存在しないとエラーになる
  • ハイライトが用意できたら適用されるように記述するときにとりあえず空で言語を増やしておくか運用を考慮中
SectionLinksPlugin
  • 本を読むときは目次が重要なので
NestedSlidersPlugin
  • コードが長かったりすると閉じたり開いたりできる方が便利
http://www.math.ist.utl.pt/~psoares/MathSVG.html
  • ときには数式が必要になることもあるので
Cafe de Shrimp
  • やるべきことにこれを適用すると大変なことになるので仕掛かり中のものに適用している
  • 先程の『プログラミングClojure』の例では書籍のバージョンではなく Clojure 1.3 で実行したのでエラーになった。その時点で一度 TODO にしておき、調べてわかったらそこから再開した。


今回調べていてタブ化するプラグインが便利そうだったので入れるかもしれない。*3

タグの運用

現在、3つの軸で管理している。

  • 言語 (.clj とか拡張子)
  • ジャンル (algorithm, tool とか全部小文字)
  • タイトル (書籍やブログのタイトルなど、大文字から始める)


『プログラミング Clojure』では章ごとに管理した。
以前は1つにしていたのだが、途中に書き加えるときに不便だったのでできるだけ小分けにするようにしている。
「Programming Clojure」 という tiddler を作成して、書籍に関連するサイトなどのリンクを書いておく。*4
そして同じ名前でタグ付け。*5

[[Programming Clojure]] .clj

各章ごとには

[[Programming Clojure]]

だけタグ付けしている。

TiddlyWiki ではタグにタグを付けられる。
タグ名の tiddler を用意するとそのタグでタグ付けされている一覧が表示されるので目次代わりにもなる。

終わりに

TiddlyWiki 使い始めた当初はインストールログやブックマークのまとめだけだったので、書いていることも変わってきている。
運用してみて、自分で書いたものを自分で読んでみることで自分のスタイルに合った使い勝手になってきた。


注意点としてはプラグインごとに記法がある場合、量が増えるに従ってプラグインの変更がしにくくなる。
両方適用するか、テキストファイルなので置換するという手もあるが最初から意識しておいた方がいいかもしれない。
自分の場合はプラグインJavaScript を修正したので今度はプラグインの更新が簡単にできなくなった。


もうひとつ Wiki なのでコンソールに貼り付けないとコードは実行できないという欠点がある。
このあたりは高機能エディタとかで snippet を管理する方が優れているのかもしれない。*6


とはいえ、非常に満足しているツールなので自分の設定と運用法を書いてみた。

2012-03-26 追記

タブ化プラグインは便利なので入れた。

前回表示されなかったのはスタイルの設定が足りなかったかららしい。


Dan Ariely 氏の『予想どおりに不合理』を読んで面白かったのでもう少し追記しておく。
氏の実験と観察から得られた結果を自分なりにまとめると

  1. 人間は相対評価しかできない
  2. 目先のことで判断を誤るのは優秀な頭脳でも同じ

の2点だ。
2番目は特筆に価する。
理解すること自体が難しい問題はともかく、問題に対する判断力は頭脳で決まるわけではないということだ。
結局地道な相対評価を繰り返して価値観を高めていくしかない。

本読んでまとめるのはアンチパターンの部分もあるかもしれないけど継続できているので今の自分に合っている。
参照したときに自分で書いたものを評価することになるので成長できているか判断できる点もいいと思った。

*1:プログラミング以外の本用もあるけど

*2:昔なのではっきりしないが Java のをもじったようだ

*3:入れてみたがスタイルシートのためかタブが隠れてしまったのでまだ

*4:2nd edition がでるらしい

*5:空白があるので括弧が必要

*6:ブログとか読んでいるとそうやって管理しているんだろうなと