Jazzと読書の日々

iPadを筆記具として使う方法を模索します

「違和感」はいつもネタになる

Yellow Boot|600 Backlink | Photo by Colton Sturgeon on Unsplash

最近外出するのが億劫である。 今年は知らないうちに桜も散ってしまった。 寒暖の差が激しいからかな。 寝るときも毛布が要るのやら要らないのやら。

違和感

振り返ってみると、ブログのネタにしているのは「違和感」だと気づきました。 アプリの話にしても本の感想にしても「どうもしっくり来ない」が根底にある。

生きづらいんですよね、幸いなことに。 根が変人なので「世の標準」に居心地悪さを感じるらしい。 それが「書くこと」の原動力になっています。

アプリにしても本にしても、そこに込められているのは「ライフハック」です。 考案者から「これがあると人生が楽になるよ」という提案がされている。 ということは、その考案者も「生きづらい」を抱えているのでしょう。

同類ですね。 同じ変人。 問題意識があるから、そのためのノウハウを考えたわけです。

すると、その問題意識が何か。 それを曖昧にしたまま真似たところでぴったりは来ません。 三日坊主になるのは見えている。 ライフハックには「問題」が潜んでいます。 その「問題」を捕まえて、自分にもあるかどうか検討しないとハックが生きてきません。

「問題」は本を読めば出てきます。 「こんなことで困りませんか」と書いてある。 それは作者が「こんなこと」で困る人だからです。 そこに「違和感」を持って生きづらかった。 そうした告白が隠れています。 これに共感するかどうか。

共感しない「こんなこと」であれば、そのハックを採用しても自分には合いません。 スケジュールに押しつぶされてないし、進捗状況を伝えるべき共同作業者もいない。 その方面に「困ったこと」がないなら、そのアイデアを使うバトルフィールドがない。

「じゃあ、無縁か」と言えば、そうとも言えない。 もしも自分の「違和感」の参考になるなら、そのハックは有効な道標です。

とすると自分の「違和感」を捉えることが先決になります。

依り代メソッド

自分の「違和感」を捉えること。 これが難しい。 ひとりでやると堂々巡りに陥ります。

信頼できる相談相手がいれば上等ですが、まあ、いちいち他人の手を煩わせるわけにもいかない。 となると「人に相談する」を仮想的に行うこと。 ヴァーチャル・カウンセリング。 そうしたテクニックが必要になります。

これも「箱」ですよね。 違和感を「箱」に入れ「私」がインタビューする。 対話場面をセッティングします。 「私」を「語り手と聞き手」に分けてロールプレイする。 どちらかというと「私」が聞き手、カウンセラー側。 インタビューアー。

「心」には実体がないので、いったんイメージの中で「実体」を持ってもらいます。 ほら、神さまに話しかけるとき「依り代」を立てるじゃないですか。 あの感じです。 姿形のないものと対話するには「媒体」が必要となる。 そのための「箱」を用意します。

実物でもいいし、イメージでもいい。 その「違和感」の感触に合う箱を目の前に置く。 桐箱に収めたら似合うだろうか。 鋲付き皮バンドでグルグル巻きにしたらどうだろう。 「違和感」に合う箱を考えるだけで「違和感」が喜びます。 そしてインタビューを始める。 「あなたは誰ですか」と。

気持ちは町工場の社長さん。 社員からの目安箱に手紙が入っていた。 それを読むような、あるいはその社員さんを社長室に呼んで尋ねるような心持ちでインタビューします。

現場の現状を知っているのが「違和感」です。 心置きなくその話をしてもらう。 聞き手の「私」はそれを箇条書きにログしていく。 社長としての意見は棚に上げする。 言いたいことがあってもあとに回し、まずは「箱」に語ってもらいます。

ひと通り聞いて疑問が湧いてきたら尋ねてみる。 いま「頭でわかっているのに心がついてこない」という事態を思い浮かべています。 この「頭」が「私」ですね。 「心」の言い分を聞く。 向こうが現場のプロ。 「この身」の専門家として「心」に敬意を払う。

そんな感じ。

実験的思考

「問題」が見つかれば実験しやすくなります。 「実験」とは「仮説を立て検証する」という態度を指します。

まず「仮説」を立てる。 この場合の「仮説」は関数の姿をしています。 z = f(x, y)。 「問題 z」を、変数 x と y の関数として記述してみる。

変数は2つと限りませんが、3つとわかってから3つに増やす方針で。 1つにしないのは、少なくとも「役割」と「期待」の2つがあるからで、 たとえばツールを使うなら、ツールが課してくる「ユーザーの役割」とユーザーが暗黙に抱く「ツールへの期待」の2つの側面があり…。 あ、これ書き始めるとややこしいな。

「仮説」についてはあらためて別に書きます。

「検証」は「とりあえずやってみる」ということ。 変数を変えて変化するかどうか、それを試してみる。 危なそうだったらすぐやめる。 変化がなかったら仮説を見直す。 それが「検証」です。 「試みること」が「心を見ること」になる。

望ましい方向に変化が起これば、当面その「仮説」でやってみます。 ちょっとマシになるあたりがこの「実験」の効果です。

まとめ

で、今回の「違和感」は「歩きづらい」でした。 靴の底を見ると、踵が片方割れて穴が空いてました。 そりゃあ、バランスが崩れて気持ち悪かろう。

ということで、新しい靴を新調。 もちろん体調までは治りませんが、外出が苦にならない範囲にはなりました。

Obsidianで小説や論文をマージする方法

ObsidianはPKM。 つまり「知識 Knowledge」のネットワークを構築するツールなので、実は「執筆 Writing」に弱い。 大リーグボール2号が水に弱いくらい弱い。

それでPWM(Personal Writing Management)には一工夫必要となります。

分割執筆

章立てをファイルに分けて書き、あとから連結する方法。 ScrivenerやUlyssesでお馴染みですが、これをObsidianでもやってしまおう、という作戦です。

TemplaterとDataviewプラグインを使っています。

Playlist.md

下記スクリプトをTemplaterのHotkeyに登録してください。 個人的にはCommanderでTab Barのボタンにしています。 ここが呼び出しやすい。

Import Obsidian: Playlist

<%*
const PLAY = "playlist"
const MERGE = "merge"

p = tp.file.folder(true) + "/"
q = PLAY
const t = tp.file.title
if(t == PLAY){
  s = tp.file.content
  if(/^\- /m.test(s)){
    if(/\- \[x\]/.test(s)){
      q = MERGE
      const a = s.split("\n")
      s = ""
      for(i=0; i<a.length; i++){
        if(/- \[x\] /.test(a[i])){
          const m = a[i].split("- [x] ")
          s+= m[0].replace(/\t/g, "    ").replace(/\s{4}/g, "#").replace(/\s+/g, "#") + "## "
          f = m[1].replace(/.*\[\[(.+?)\]\].*/, "$1")
          s+= f + "\n\n"
          f = p + f + ".md"
          b = app.vault.getAbstractFileByPath(f)
          if(b){
            const c = await app.vault.read(b)
            s+= c.replace(/([^!])\[\[(.+?)\]\]/mg, "$1$2") + "\n"
          }
        }
      }
    }else{
      s = s.replace(/\t/mg, "    ")
      s = s.replace(/^ {4} +- /mg, "#### ")
      s = s.replace(/^ +- /mg, "### ")
      s = s.replace(/^- /mg, "## ")
    }
  }else{
    s = s.replace(/^#{4} /mg, "        - ")
    s = s.replace(/^#{3} /mg, "    - ")
    s = s.replace(/^#{2} /mg, "- ")
    s = s.replace(/\n+/g, "\n")
    s = s.replace(/\n/, "\n\n")
  }
}else{
  const d = DataviewAPI.pages('')
   .filter(x => p == (x.file.folder + "/"))
   .filter(x => !x.file.name.includes(q))
   .filter(x => !x.file.name.includes(MERGE))
   .sort(x => x.file.name)
   .map(x => `- [ ] [[${x.file.name}]] `)
  s = `[${p}](obsidian://new?file=${encodeURI(p)}) \n\n`
  s+= d.join("\n")
}
f = p + q + ".md"
p = app.vault.getAbstractFileByPath(f)
if(p){
  if(t != PLAY && q == PLAY){
    s = await app.vault.read(p)
    if(t != MERGE && s.indexOf(`[[${t}]]`) < 0) s+= `\n- [ ] [[${t}]] `
  }
  await app.vault.modify(p, s)
}else{
  p = await app.vault.create(f, s)
}
app.workspace.activeLeaf.openFile(p)
%>

不具合を修正しているので、このバージョンをお使いください。

使い方

連結したいファイルをフォルダにまとめます。 その中のファイルを開きPlaylistを実行してください。 するとplaylist.mdという名のフォルダ内リストが作成されます。

リストの順番は並べ替えて構いません。 ファイル名をタップすれば元のファイルが開きます。 そのファイルでPlaylistを実行すればplaylist.mdに戻ります。

チェックボックスをチェックし再度Playlistを実行すると、チェックされたファイルがマージされmerge.mdになります。 このmerge.mdをPDFにすれば一丁上がり。

新規作成

同じフォルダにファイルを作るときは、1行目のフォルダ名をタップしてください。 新規ファイルが開きます。

タイトルを書いてからPlaylistを実行するとplaylist.mdに追加されます。

並べ替え

チェックのないplaylist.mdでPlaylistを実行すると、並べ替えモードになります。

サイドパネルの「アウトライン」で項目をドラッグし、順番を入れ替えることができます。 階層構造をつけても大丈夫。

再度Playlistを実行すると元の状態に戻ります。

まとめ

PWMってコンセプトが今回の発見。 従来「コンポーザー」と呼んでたけど、これからはこっちを使おう。

LifeLogで「日々の暮らし」をログしよう

レシピ内の最後のところで保存先を設定します。 Obsidianのフォルダを指定してください。 もちろんLogseqのフォルダを設定すればLogseqにも対応します。

LifeLog

Obsidianのデイリーノートにメモを残すショートカット・レシピ。

Safariからブックマークもできるのですが、最近Kindleの取得に失敗するので調べたら、またアマゾンのソースが変わってました。 とりあえずの対応版。

Import Shortcut RecipeLifeLog

使い方

基本形は「ホーム画面に追加」でアイコン化し、それを起動します。 入力画面にメモを書けばそれが追記される。 Obsidianを起動しないので保存が速い。

1行目を空行にすると、それ以降の項目をチェックボックス付きリストにします。 この方法でタスクの追加も簡単。

Safariから

Safariの共有から起動するとデイリーノートにブックマークします。 はてなブログカードを採用しサムネ付きになります。 もしサイト内の記事を選択していたときは、その部分も転記します。 Webクリップの簡略版だけど、たいていこれで事足ります。

YouTubeだと動画プレーヤーになり、アマゾンだと書影付きカードを作成します。 これをコピペすればブログの記事も書きやすい。

図も組み込む?

Thinoと同じ形式なのでThinoからも確認できる。 Thinoがブログカードの表示にも対応したので、その日何を見、何を考えたか振り返りやすくなりました。

ただ紙の手帳もよく使いますね。 図を描いて考えることも多い。

そういうのは何枚も似たような図を描くので、デジタルは不向きです。 いくつも描いて比較して、だんだんと考えがまとまってきます。 「書き捨てる」という使い方です。

「手を動かすところ」に何かが関与するのかもしれない。 「頭」だけでは完結しないものが参入してくる。 「図を描く」はそんな発想法だと思います。

こういうのも写真に撮ってデイリーノートに残せばいいのかもしれませんが、まだ実験していません。

まとめ

手数を減らすことができたらいいのかな。

「利他・ケア・傷の倫理学」の違和感

最近「利他」という言葉を見かけるようになった。 もしかしたら、そのこと自体に違和感を感じているのかもしれません。

利他・ケア・傷の倫理学

本屋さんで気になったので読んでみました。 ケアの現場についての考察かと思っていたのですが、どうもそうではありませんね。 もっと基礎的なところを哲学的に深める内容になっています。

「利他」や「ケア」という言葉が最近よく使われるが、その内実はなんだろうかと考えていく。 キーワードに「言語ゲーム」を用いることで「ゲーム間の飛躍」を取り出し、他者や多様性について安易な結論に飛びつかないような道筋を探っています。

とくに「叱る」について肯定的に語られることが多いけど、「相手をコントロールしたい」という支配欲なんだから、そこに「ケア」はない。 「ケア」とは「ケアする側の言語ゲームが変わる体験」だ、と。 ここが切れ味のいい指摘だと思いました。

心が傷つく

でも根本的なところがピンと来なかったです。 「道徳的にはAせざるをえないけれど、それは倫理的にどうなんだろう」という論の進め方なのですが、この「A」がわからない。 道徳と倫理を分けるのは倫理学の常道なので、そこは置くとしても、「道徳」とされるところに実感が湧きませんでした。 それはなぜだろう。

たぶん、ある世代から「道徳」が変質してますね。 大平先生の『やさしさの精神病理』で「やさしさの意味が変わってきている」と言われていたけど、変わったあとの世代がいま社会の中心になったのかもしれません。 というのも近内先生が「傷」として挙げる例がことごとく「それでなぜ傷つくのだろう」と不思議に思うからです。

教科書を忘れて授業に出たら、隣の席の子が教科書を見せようかどうか悩んでいる。 そのとき「相手を傷つけないために」寝たふりをしてその場を過ごした。 それを「利他」の例として挙げられても「見せてもらったらいいやん」としか思えない。 これのどこが「やさしさ」なのか、オジサンわかんなかったです。

「心」のイメージが「ガラスか何かの固形物」なんだよなあ。 固くて脆い固体でできていて、衝撃を受けると割れたり砕けたりする。 ここがピンと来ない。

自分自身の体感では「心」は「気の流れ」のような流動体です。 渦を巻いたり淀んだりはするけれど「傷つく」とはなりません。 衝撃があとを引くことはあっても不変ではない。 日本語の用例で「気詰まり」はあっても「気が傷つく」はない。

「傷つく」と言われて連想するのは「家名が傷つく」です。 まだ「イエ制度」が残っていて「イエの名前に泥を塗る」とか言われ、それと戦ってきたのが「私ら」です。

といっても団塊の世代とも違います。 団塊の世代は「マイホームパパ」とか呼ばれ「男は仕事、女は家事」という男尊女卑な価値観を残している。 この世代の人たちは「プライドが傷つく」と言ってました。 元は「男のプライド」というつまらないものです。 そのあと「自己肯定感」と言い換えられても、やはりつまらない。

「イエ」も「プライド」も捨てた世代がしばらくあって、それが「私ら」。 夜の校舎、窓ガラス壊して回った世代。 でもそのあと阪神淡路大震災が起こります。 そこあたりから「トラウマ」が語られるようになった。 「心が傷つく」はその言い換えでしょう。 スクールカウンセラーが急速に認知され、何でもかんでも「傷つく」と言い始める。

そして「心の傷」の時代が到来した。 英語とかでも「I'm hurted」と言うから「傷つく」は外来語的な発想でしょう。 それが社会に刷り込まれることで海外から輸入された「ケア」が効力を持ち始めた。 「毒」をばらまかれてから「薬」が届く。 エビデンスがあって当たり前。 マッチ・ポンプです。 そうした時代を今の人たちは生きている。

近内先生はそこに無自覚なまま「このゲームはおかしい」と言ってるけど、そりゃあ、おかしな「ゲーム」をしてるからですよ。 渦中にいて抜け出せないのが今風だけど、前提がそもそも「特殊」じゃないでしょうか。

ミュトス

今回勉強になったのが「だったことになる」という考え方です。 これはすごいな。 「ケア」の本質をついている。 この感覚は中動態ですよね。 自分自身が変化することは自分自身ではできない。 他者からの呼びかけで「自ずからそうなる」という形を取ります。

長年アリストテレスの『詩学』に出てくる「ヒストリア」と「ミュトス」の違いについて悩んでました。 どちらも「物語」という意味ですが、これをアリストテレスは使い分けている。 ヒストリアは「伝記物」のことです。 ホメロスの『オデュッセイア』のような長編文学を指し「ヒストリー」や「ストーリー」の語源になっている。

ミュトスは「神話」と訳されることもありますが「ミステリー」の語感でしょう。 ギリシア悲劇のプロットを論じるとき「ミュトス」が使われます。 ミュトスはヒストリアにない構造を持ち、それが物語に浄化(カタルシス)をもたらす。 このときポイントになるのが「再認」で、これが何を指すかわからなかった。

「再認」を「だったことになる」と取ると「なるほど」と思います。 ラカンが「ルコネッサンス」と呼び検討しているのも、それが「ケア」の核にあるからですね。 ヒストリアは因果関係の連鎖です。 過去の出来事によって現在の出来事が生じる。 因果応報の固定した「ルールの世界」を生きています。 生きとし生けるものに逃れるすべはない。

対してミュトスではその因果性が逆転します。 現在の出来事によって過去が再解釈される。 「今こうなって気づいたけれど「あのときのアレ」はこのためだったのか」と了解する。 これがギリシア悲劇に埋め込まれている構造です。 説明ではなく了解。

これを「ミュトス」と呼ぶ。 なるほど「伏線の回収」が物語の命。 もう涙無しには見られない。 ミュトスが起きるとき、そこまでの出来事すべてが肯定される。 「なんてこった」もあるし「ああ、良かったね」もあるけど、決して無駄なものは一つもなかった。 物語が癒される瞬間に立ち会う。 それがカタルシスです。 まず物語が救われる。

アリストテレスが「哲学的なのはミュトスのほう」と言うのもうなずける。 バカボンのパパみたいに「それでいいのだ」と世界を言祝ぐ。 たとえ苦しい悲劇であっても「生きてきたこと」自体は肯定できる。 なるほど、長年の謎が氷解しました。

もちろん「現状肯定」ではありませんよ。 人は変化する。 その変化によって「過去」も含めた世界が変化する。 その変化を肯定することです。

まとめ

この本を読んで良かったなあ。 また「私」が変化した。

Obsidianで画像のサムネールを一覧表示する

古いネタを発掘しています。

dataviewでフォルダ内の画像を一覧表示。 タップすると元画像が開く仕組みです。

ファイル名を見ても中身はわからないですからね。 表示してみて「君かぁ」となる。 とくにassetsフォルダはごちゃごちゃしやすいので整理に必須です。

変更点

更新日順に並べることにしました。 新しいファイルが先に表示されます。

```dataviewjs
const folder = dv.current().file.folder + "/"
const cache = Object.entries(dv.app.metadataCache.fileCache)
const d = dv.array(cache)
    .filter(([x,y]) => x.includes(folder))
    .filter(([x,y]) => /\.[jpg|jpeg|png|gif]/i.test(x))
    .limit(1000)
    .sort(([x,y]) => y.mtime, "desc")
    .map(([x,y]) =>  `[![[${x}|220]]](${encodeURI(x)})` )
dv.paragraph(d.join("\n"))
```

dataviewプラグインをインストールしてお使いください。

使用例

assetsフォルダにgallery.mdという名のファイルに作り、上記スクリプトを貼り付けます。 するとフォルダ内のサムネ一覧の出来上がり。 タップすれば元ファイルが開きます。 gallery.mdは自分のいるフォルダをターゲットにします。

サムネを長押しするとポップアップメニューが出ますが、そこを無視し、サムネをもう一回タップするとファイル操作のメニューが出ます。 サムネ一覧のままリネームや共有が使えます。 削除はできないので、そのときは元画像を開いてください。

まとめ

PDFも表示されるけど、埋め込み扱いでサムネにならない。

ObsidianのデイリーノートはThinoにおまかせ

「Obsidian Memos」で検索してる人が多いみたい。

Thino

「ティノー」と読むのかなあ。 ハリーポッター用語らしい。 MemosはいまThinoになっています。 これは呟くためのプラグインで、デイリーノートにタイムスタンプ付きで記録されます。 ローカルで完結する旧Twitterみたいなもの。

「Obsidian デイリーノート」で検索するとTemplaterでカスタマイズする方法がヒットしますが、そうした仕込みが不要になるのがThino。 呟いていれば、そのままデイリーノートが更新される仕組みです。

インストール

インストールは下記リンクをタップしてください。

Import Obsidian: Thino

Obsidianが起動し、Thinoプラグインが表示されます。

「インストール」をタップすればOK。 あ、先に設定の「コミュニティプラグイン」で「コミュニティプラグインを有効化」してくださいね。

「コミュニティプラグイン」の「Thino」でスイッチをONにします。 左サイドパネルのリボンに電球マークが追加されるので、それをタップ。

これでThinoが使えるようになります。

設定

有料版はネット上で共有する場合ですね。 中国版Twitterみたいなサービスと連動します。 Obsidian内で使う分には無料のままで構いません。

「Thino」のところの「Use Tags In Vault」をONにすると、本体と同じタグが付加できるようになります。

「Interface」の「Theme for Thino」は「Classic」にします。 「Modern」は有料版用のインターフェイス

「Advanced」の「Default Editor Mode」は「Source」に変更。 「Live-preview」の動作がいまいち安定せず、頻繁に修正されているからです。

とここまで書いて気づきましたが、最初にThinoを起動すると、これらの項目を尋ねるようにアップデートされてました。 わざわざ設定を開かなくてよくなってます。

サイドパネルに移す

左サイドパネルにThinoを移すと、ほかの文章を書いている最中でもアイデアを残すことができます。 右肩にある「…」にコピーボタンがあるから引用もしやすい。

サイドパネルに移すには、まずサイドパネルをピンで留めます。 それからThinoのタブを長押ししてドラッグ。

上の図のように、サイドパネルの下半分が選択状態のときに指を離してください。 これでThinoを追加できます。

サイドパネルの右肩にある拡大ボタンを押すとフル画面になります。

Queryで検索できるしタイムラインの表示もできる。 デイリーノートを分析するのにもってこい。 書きためたメモが無駄になりません。

まとめ

LifeLogと一緒に使うとSafariのブックマークも残せます。

Textwellにコルクボードの仕組みを込める

テキストを「箱」の集まりと見なす。 すると文章の組み立てが楽になります。

アウトライナーだと記事に変換するのが面倒じゃないですか。 それなら記事のままアウトライナーの所作ができるに越したことはありません。

箱メソッド

「見出し+内容」をセットに書く方法。 Markdownを装飾ではなくテキストの構造化に使う作戦です。 アウトライナーの作法を応用し、文章を組み立てる。

Obsidianの方法論は固まったのでTextwellにも広げてみます。

Zoom

アウトライナーのズームに当たるアクション。 カーソル位置に応じて現在の「箱」のみを表示/編集します。 スライドカーソルが使える。

Import Textwell ActionZoom

今回の変更点は「メニューをやめた」です。 内蔵ブラウザを閉じるとキャンセル扱いになります。 書いた文章を保存するのは「キーボードを閉じる」だけにしました。 この疾走感がいい。 メニューは思考を中断するんじゃないかと思う。

空行で実行したときはタイムスタンプを見出しにしました。 「見出しはあとから考えてもいい」という割り切りです。 中身が固まってからタイトルを決めてください。

Index

Obsidianの「アウトライン」に当たるもの。 文中の見出し(ただしレベル4のみ)を一覧表示します。 内容も二行ほど表示する。 左上の「▶︎」で中身のブロックも展開。 タップすればその「箱」にカーソルを移します。 そのままZoomで編集に移ることもできます。

Import Textwell ActionIndex

こちらもメニューは廃止しました。 閉じればキャンセルになります。 並べ替えなどの変更を有効にするには、カードをタップして「箱」を開いてください。

範囲選択していると、その部分の検索になります。 「▶︎」で一括置換に対応。

コルクボードの思想

Markdownを長く使ってきて、これを装飾だけに使うのはもったいないなと思ってきました。 通常のテキストを書くとき強調とか斜体とかは使いません。 引用も出番が少ないですね。 リストは時々使う。 するとメインになるのは見出し記法です。

Obsidianの「アウトライン」が転機かもしれません。 そこにはScrivenerのコルクボードと同じ発想があります。 章立ての順番は流動的で、それを入れ替えることも表現技法である。 論理的に並べるのでなく、読者の予想を裏切る順列でも構わない。

テキストを区切って、それぞれ情報を担うカードにする。 それがコルクボードの思想です。 その区切り記号にMarkdownの見出し記法が流用できる。 Paperにも採用されていて並べ替えもできるので、これからメジャーになる予感がします。

マークダウン・エディタに「アウトライン」が標準になる。 それはただの追加機能ではなく「書くこと」を一変する革命です。 アウトライナーのノウハウをエディタに転用できる。 Scrivenerのような特殊フォーマットを使わなくてもいい。 も少しデザインがコルクボードに似るといいかな。 こちらの方面に進化するとうれしいな。

まとめ

Textwellは階層構造に対応できないけど、ブログを書くなら十分。