JoplinからObsidianへ:移行を決意した理由とその手順

JoplinからObisidianへの移行

私は長年、情報管理ツールを探し続けてきました。仕事でのメモ、学習ノート、プライベートのアイデア──これらを一元管理し、どこからでもアクセスできる環境を求めていたのです。その旅路はJoplinから始まり、今はObsidianに落ち着いています。

この記事では、なぜ私がJoplinからObsidianへ移行したのか、そしてその過程で学んだことを共有します。

JoplinとObsidian:両者に共通する魅力

JoplinとObsidianは、どちらもMarkdownベースのメモアプリとして、多くの共通点を持っています。私がこの二つのツールに惹かれた理由は、以下の点にあります。

マルチプラットフォーム対応

複数の環境で動作することは、私にとって譲れない条件でした。Windows、Mac、Linux、さらにはスマートフォンやタブレットでも同じノートにアクセスできること──これは現代の働き方において必須の機能だと考えています。

JoplinもObsidianも、主要なプラットフォームをカバーしており、デスクトップからモバイルまでシームレスに利用できます。

Markdownによるシンプルな記述

Markdown記法は、テキストベースでありながら、見出し、リスト、コードブロック、画像埋め込みなど、十分な表現力を持っています。私はこのシンプルさに惹かれました。

特に重要なのは、Markdownファイルはプレーンテキストであるため、特定のアプリケーションに依存しないという点です。将来的にツールを変更したくなっても、データの移行が容易です。

画像を含む豊富なコンテンツ管理

メモは文字だけではありません。スクリーンショット、図表、PDFなど、さまざまなファイルをノートに添付できることも重要です。両ツールとも、画像をMarkdown内に簡単に埋め込めるため、視覚的な情報も一元管理できます。

Joplin同期の問題点

Joplinを選んだ当初、私が魅力に感じたのはNextCloud経由での同期でした。自前のサーバーにデータを保存し、複数デバイス間で同期できる──セルフホスティング派の私にとっては理想的に思えました。

しかし、実際に使い始めると、いくつかの問題に直面しました。

タイムアウトエラーとの戦い

ノートが増えるにつれて、タイムアウトエラー(ETIMEDOUT)が頻発するようになりました。特に大きなノートや添付ファイルを含む場合、同期に時間がかかりすぎてエラーになることがありました。

この問題は、ネットワーク環境だけでなく、NextCloudサーバーの応答速度にも依存するため、根本的な解決が難しかったのです。

デスクトップとモバイルでの挙動の違い

さらに困ったのは、デスクトップ版では同期できるのに、モバイル版では失敗するという現象です。同じアカウント、同じ設定でも、デバイスによって挙動が異なることがありました。

安定した同期環境を構築するのは困難でした。

バージョン不一致と設定の煩雑さ

JoplinやNextCloudのバージョンが更新されるたびに、同期設定を見直す必要がありました。MKCOL errorPROPFIND errorといった技術的なエラーメッセージと格闘する日々が続きました。

同期の問題を解決するために費やす時間が、だんだんと負担に感じてきました。

Obsidianへの移行

移行を決意した理由

Obsidianに移行した理由は、大きく分けて三つあります。

  1. GitHubを使った同期方式への切り替え:GitHubを使った同期は、開発者にとって馴染み深く、信頼性が高い
  2. 豊富なプラグインエコシステム:コミュニティが活発で、必要な機能を柔軟に拡張できる
  3. ノート間リンクとグラフビュー:知識のネットワークを視覚化し、「第二の脳」として活用できる

移行手順:JoplinからObsidianへ

以下に具体的な手順を示します。

1. Joplinからのエクスポート

JoplinでMarkdown形式のノートをエクスポートします。

  1. Joplinを開く
  2. 「File」→「Export All」→「MD – Markdown + Front Matter」を選択
  3. 出力先のフォルダを指定

これにより、Joplinノートブックの構造を保ったまま.mdファイルが出力されます。添付ファイルは「_resources」フォルダにまとめて出力されます。

[!TIP] 「MD – Markdown + Front Matter」形式を選ぶと、タグなどのメタデータがObsidianでも認識される形式で保持されます。

2. Obsidian Vaultへのインポート

Obsidianでは、エクスポートしたフォルダをそのままVaultとして開くことができます。

  1. Obsidianを起動
  2. 「フォルダをVaultとして開く」を選択
  3. Joplinからエクスポートしたフォルダを指定

これだけで、Joplinのノートがすべて読み込まれます。

3. 添付ファイルの設定

Joplinから引き継いだ「_resources」フォルダを、Obsidianの添付ファイル保存先として設定しておくと、既存のリンクがそのまま機能します。

GitHubでの同期設定

NextCloudに代わる同期方法として、私はGitHubを選びました。

詳細な手順については下記の記事で述べたとおりです。

yourpalm.jubenoum.com

なぜGitHubなのか

  • バージョン管理:Gitの強力な履歴管理機能により、変更を追跡できる
  • 信頼性:クラウドサービスとしての安定性が高い
  • 無料:プライベートリポジトリも無料で利用できる

設定手順

  1. GitHubでプライベートリポジトリを作成
  2. ObsidianにGitプラグイン(Vinzent, Denis Olehov作)をインストール
  3. ユーザー名とPersonal Access Tokenを設定
  4. 自動プッシュ・プルの間隔を設定

この設定により、デスクトップ、スマートフォン、タブレット間でノートが自動的に同期されるようになりました。

[!WARNING] Personal Access Tokenには有効期限があります(通常90日)。期限切れになる前に再生成することを忘れないでください。

まとめ:自分に合ったツールを選ぶということ

JoplinからObsidianへの移行は、私にとって大きな決断でした。しかし、振り返ってみると、これは道具を自分の目的に合わせて選び直すという、とても自然なプロセスだったと思います。

Joplinは素晴らしいツールです。オープンソースであること、多様な同期オプションを持つこと、これらは大きな魅力です。しかし、私の環境では同期の問題が解決しきれなかったのもまた事実です。

Obsidianは、Gitで同期できるというのが大きな魅力でした。ノート管理の方法も生成AIとの相性がよく大変気に入っています。

どちらが優れているというわけではありません。自分のワークフローに合ったツールを選ぶこと、これが最も重要なのではないでしょうか。

と、無難にまとめて閉じたいと思います。JoplinからObsidianへの移行を検討している人の参考になれば幸いです。


参考資料

移行関連

jqコマンド入門:コマンドラインでJSONを自在に操る技術

はじめに:なぜjqを学ぶのか

私は日頃からさまざまなワークフローの自動化を試みています。その中で繰り返し登場するのが、JSONデータの処理という課題です。

たとえば、YouTube動画のメタデータを取得して整形したり、APIのレスポンスから必要な情報だけを抜き出したり。こうした作業を手作業で行うのは現実的ではありません。かといって、毎回Pythonスクリプトを書くのも少々重たい。

そこで活躍するのが jq です。

jqは「コマンドラインのJSON処理ツール」と表現されることが多いのですが、私はむしろ「JSONに対するSQL」のようなものだと捉えています。データベースからSQLでデータを抽出するように、jqはJSONから必要な情報を抽出・変換・整形できます。

この記事では、jqの基本概念から実践的な使い方までを解説します。これを読むと、シェルスクリプトとjqを組み合わせた効率的なワークフローを構築できるようになるはずです。

続きを読む

視覚的コンテキストの自動生成:Antigravityでブログのアイキャッチ作成を自動化する

アイキャッチ画像を作成するのは面倒

私は文章を書くことそのものには喜びを感じますが、それをWeb上の「記事」としてパッケージングする工程、とりわけアイキャッチ画像の選定には、常に一種の精神的摩擦を感じてきました。 (端的に言えば「めんどくさい」の一言です)

テキストエディタで文章を書いた後に、画像素材サイトを開き、検索窓にキーワードを打ち込む。あるいは、画像編集ソフトを立ち上げて文字を配置する。その瞬間、脳のモードは「論理的構築(Writer)」から「視覚的作業(Designer)」へと強制的に切り替えられます。このコンテキストスイッチこそが、執筆のフロー状態を断ち切る最大のノイズではないかと、常々感じていたのです。(繰り返しになりますが、端的に言えば「めんどくさい」の一言です。そして私には画像編集のセンスがないのであります)

Nano Banana Proを使えば、一貫性を保ったうえで、文字も含んだ画像生成ができる

これまでの画像生成AIは「きれいな絵」を作ることは得意でしたが、ブログのアイキャッチとして使うには2つの大きな壁がありました。

  1. 文字の壁: AIは意味のある文字列を描写するのが苦手で、結局あとからPhotoshopなどでタイトルを入れる必要があった。
  2. 一貫性の壁: 毎回画風が変わり、ブログとしてのブランドイメージ(トンマナ)が定まらない。

しかし、Antigravityに搭載されているモデル「Nano Banana Pro」を検証する中で、これらの壁が技術的に突破されていることに気づきました。

1. 「言葉」をそのまま描く能力

Nano Banana Proは、プロンプトに指定した日本語テキストを、驚くほど正確に画像内にレンダリングします。「上から文字を合成する」のではなく、「画像の一部として文字を生成する」のです。これにより、光の反射や質感を含んだ、違和感のないタイポグラフィが自動で完成します。

2. アバターによる「自己」の投影

さらに、自分自身の化身であるアバター(VRMキャラクターのレンダリング画像)を参照画像として渡すことで、生成される世界の中に「私」を存在させることができます。

これは単なる合成ではありません。AIは「ノートPCを操作する」という文脈を理解し、私のキャラクターにその演技をさせ、背景のサイバーパンクな世界観と馴染ませます。結果として、「テックブログである」という雰囲気を一貫して保てるようになります。

Application:ミニマリストのための自動化ワークフロー

私は以下のシンプルなワークフローを構築しました。複雑な画像編集ソフトはもう開きません。

  1. Prompting (Antigravity): 記事のタイトルと、私のキャラクター画像をAntigravityに渡します。「未来的なAIの世界で、このキャラクターがノートPCを操作している。中央に『視覚的コンテキストの自動生成』と書いて」と指示するだけです。

  2. Generation (Nano Banana Pro): 数秒後、文字入り・キャラクター入りの正方形画像が生成されます。

  3. Refining (Python Script): 16:9比率に合わせるため、Pythonスクリプト(create_eyecatch.py)を走らせます。これは単純なクロップ処理を行うだけの軽量なツールです。

完成したのが、この記事のトップにある画像です。

まとめ

私たちは今、「素材を探して加工する」時代から、「意味を伝えて生成する」時代へと移行しています。

文字入れも、キャラクターの配置も、AIが処理してくれます。これにより、執筆者は純粋な思考の出力に、より深く没入できるようになるのではないでしょうか。 (もっと記事を書きたい気持ちになれるといいな)


以下、 create_eyecatch.py の内容です。

#!/usr/bin/env python3
import sys
import os
from PIL import Image

# Usage: python3 create_eyecatch.py <input_image> <output_image>

def create_eyecatch(input_path, output_path):
    try:
        img = Image.open(input_path).convert("RGBA")
    except Exception as e:
        print(f"Error opening image: {e}")
        return

    w, h = img.size
    
    # Target 16:9
    target_ratio = 16/9
    
    # We want to keep the center, so we crop evenly from top/bottom
    # A 1024x1024 image cropped to 16:9 would be 1024x576
    
    new_h = w / target_ratio
    if new_h > h:
        # Image is too wide (unlikely for square), crop width
        new_w = h * target_ratio
        left = (w - new_w) / 2
        img = img.crop((left, 0, left + new_w, h))
    else:
        # Image is too tall (square case), crop height
        top = (h - new_h) / 2
        img = img.crop((0, top, w, top + new_h))
    
    # Resize to HD (1280x720) for consistency
    if hasattr(Image, 'Resampling'):
        resample_method = Image.Resampling.LANCZOS
    else:
        resample_method = Image.LANCZOS

    img = img.resize((1280, 720), resample_method)
    
    # Save
    img.save(output_path)
    print(f"Successfully saved 16:9 eyecatch to {output_path}")

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Usage: python3 create_eyecatch.py <input> <output>")
        sys.exit(1)
        
    input_f = sys.argv[1]
    output_f = sys.argv[2]
    
    create_eyecatch(input_f, output_f)

知識の自動化:AntigravityでYouTube動画をObsidianノートに変換

「あとで見る」リストに溜まっていくYouTube動画たち。 良質なコンテンツが増えた現代において、これらを消化しきれないことは、多くの人にとって共通の悩みではないでしょうか。私もその一人です。

ただ動画を流し見するだけでは、知識として定着しません。かといって、毎回メモを取りながら見るのは時間がかかりすぎる。 そこで今回は、Google DeepmindのAIエージェント「Antigravity」の手を借りて、YouTube動画を半自動的に「使える知識(Obsidianノート)」に変換するワークフローを構築してみました。

これが予想以上に快適だったので、備忘録としてまとめておきます。

続きを読む

10年前に仕事をゲームにたとえて書いていたことが今でも結構使えるなと思った件

10年から15年ほど前に自分が書いたブログを読み返す機会がありました。『信長の野望』や『ジンギスカン』、果ては『遙かなる時空の中で』や『金色のコルダ』(光栄のゲームばっかりや…)を持ち出して、仕事の進め方をとらえようとしていた自分の姿がそこにはありました。

今、ゲームのルールは少し変わったかもしれませんし、SlackやTeamsでのコミュニケーションが主になり、働き場所も自由になりました。けれど、仕事という「ゲーム」の根幹にあるOSのようなものは、実は何も変わっていないのではないか、と。

そこで今回は、あの頃の自分が書き散らした3つの記事を、一本の「統合版」としてまとめてみたいと思います。

yourpalm.jubenoum.com

yourpalm.jubenoum.com

yourpalm.jubenoum.com

続きを読む

Windows 11を買ったら最初にやるべき無効化設定:通知・広告・OneDriveを黙らせる

Windows 11をクリーンインストールした後、あるいは新しいPCを使い始めたとき、Microsoft 365のサブスクリプションやOneDriveの容量拡張など、さまざまな「おすすめ」が表示されることがあります。便利な機能の紹介である一方、不要な人にとっては毎回表示を断るのが面倒に感じることもあるでしょう。(もう見飽きたともいう…)

この記事では、Windows 11の各所に表示される「おすすめ」や「ヒント」といった通知を無効化し、よりシンプルなデスクトップ環境を構築するための設定手順を、備忘録としてまとめておきます。

続きを読む

As We May Think 我々が思考するように その8

https://yourpalm.jubenoum.com/entry/as-we-may-think-7yourpalm.jubenoum.com

その7の続き

元の英文テキスト https://www.w3.org/History/1945/vbush/vbush.txt

トレイルブレイザー


全く新しい形式の百科事典が登場するであろう。それらには連想の軌跡(トレイル)の網が張り巡らされており、memexに投入されてそこで増幅される準備ができている。弁護士は、彼の全経験、そして友人や権威者の経験からなる関連する意見や決定をすぐに手にすることができる。特許弁理士は、何百万もの発行済み特許に即座にアクセスでき、クライアントの関心のあらゆる点への使い慣れた軌跡を持っている。患者の反応に戸惑う医師は、以前の同様の症例を研究する際に確立された軌跡をたどり、関連する解剖学や組織学の古典へのサイドリファレンスとともに、類似の症例履歴を迅速に駆け巡る。有機化合物の合成に苦労している化学者は、彼の研究室で彼の前にあるすべての化学文献を持ち、化合物の類似性をたどる軌跡と、それらの物理的および化学的挙動へのサイドトレイルを持っている。

ある人々の広大な年代記を持つ歴史家は、それを顕著な項目でのみ停止するスキップトレイルと並行させ、特定の時代における文明の至る所に彼を導く同時代の軌跡(トレイル)をいつでもたどることができる。共通の記録の膨大な塊を通して有用な軌跡(トレイル)を確立する作業に喜びを見出す人々、トレイルブレイザーという新しい職業がある。師からの継承は、世界の記録への彼の追加だけでなく、彼の弟子たちにとっては、それらが構築された足場全体になる。

このようにして、科学は、人間が人種の記録を作成し、保存し、参照する方法を実装するかもしれない。ここで述べたように、現在知られており急速に発展している方法と要素に固執するのではなく、未来の手段をより壮観に概説することは印象的かもしれない。あらゆる種類の技術的な困難は確かに無視されてきたが、熱電子管の出現がそうであったように、技術の進歩を激しく加速させるかもしれないまだ知られていない手段も無視されている。既知のものの拡張に基づく予言には実体があるが、未知のものに基づく予言は二重に複雑な推測にすぎないため、絵があまりにもありふれたものにならないように、そのような可能性を1つ言及しておくのがよいであろう。予言するためではなく、単に示唆するためである。

記録の資料を作成または吸収する私たちのすべてのステップは、キーを触るときの触覚、話したり聞いたりするときの口頭、読んだりするときの視覚という、五感の1つを通して進む。いつの日か、その経路がより直接的に確立される可能性はないであろうか。

私たちは、目が見るとき、結果として生じるすべての情報が視神経のチャネル内の電気的振動によって脳に送信されることを知っている。これは、テレビセットのケーブルで発生する電気的振動との正確な類似性である。それらは、それを見る光電池から、それが放送されるラジオ送信機へと画像を伝える。さらに、適切な機器でそのケーブルに近づくことができれば、それに触れる必要はないことを私たちは知っている。電気誘導によってそれらの振動を拾い、送信されているシーンを発見して再現することができる。ちょうど電話線がそのメッセージを盗聴されることがあるようにである。

タイピストの腕の神経を流れるインパルスは、指が適切なキーを打つように、彼女の目や耳に届く翻訳された情報を彼女の指に伝える。これらの電流は、情報が脳に伝えられる元の形式で、またはそれが手に向かう驚くほど変形した形式で、傍受されることはないであろうか。

骨伝導によって、私たちはすでに聴覚障害者の神経チャネルに音を導入して、彼らが聞くことができるようにしている。電気的振動を機械的なものに最初に変換し、それを人体のメカニズムがすぐに電気的な形に戻すという現在の面倒くささなしに、それらを導入することを学ぶことは不可能ではないであろうか。頭蓋骨に2つの電極を置くと、脳波計は現在、脳自体で起こっている電気現象と何らかの関係があるペンとインクの軌跡を生成する。確かに、その記録は、大脳メカニズムの特定の重大な機能不全を指摘する場合を除いて、理解不能である。しかし、今、そのようなものがどこにつながるかに境界を置く人はいるであろうか。

外の世界では、音であれ視覚であれ、あらゆる形式の知性は、送信されるために電気回路内の変化する電流の形に還元されてきた。人体の内部でも、まったく同じ種類のプロセスが発生する。ある電気現象から別の電気現象に進むために、私たちは常に機械的な動きに変換しなければならないのであろうか。それは示唆に富む考えであるが、現実と即時性との接触を失うことなく予測を保証するものではほとんどない。

おそらく、人間が自分の怪しげな過去をよりよくレビューし、現在の問題をより完全かつ客観的に分析できれば、彼の精神は高揚するはずである。彼は非常に複雑な文明を築き上げたので、彼の実験を論理的な結論にまで押し進め、限られた記憶を酷使することによって途中で行き詰まるだけでなく、彼の記録をより完全に機械化する必要がある。彼がすぐに手元に置く必要のない多くのことを忘れる特権を再取得でき、それらが重要であることが判明した場合に再び見つけられるというある程度の保証があれば、彼の小旅行はより楽しいものになるかもしれない。

科学の応用は、人間に十分に供給された家を建て、そこで健康に暮らすことを教えている。それらは、彼が残酷な武器で大勢の人々を互いにぶつけ合うことを可能にした。それらは、彼が真に偉大な記録を包含し、人種の経験の知恵において成長することをまだ可能にするかもしれない。彼は、その記録を真の善のために振るうことを学ぶ前に、紛争で滅びるかもしれない。しかし、人間のニーズと欲望への科学の応用において、プロセスを終了したり、結果について希望を失ったりするには、まだ早い段階であるように思われる。


解説

トレイルブレイザー

前のセクションで「連想的インデックス付け」と「トレイル」の概念は現代のキュレーションの基礎となる考え方です。このセクションで導入される「トレイルブレーザー」の概念は、まさに現代の「キュレーター」の役割を定義しています。

彼らは、膨大な情報の中から意味のある経路(トレイル)を見つけ出し、整理し、新たな価値を付与して提示する専門家として描かれています。これは、現代のキュレーターが、情報の海の中から特定のテーマや目的に沿ってコンテンツを選定・編集し、ユーザーに提供する活動と本質的に同じです。 マスターの「遺産」が単なる情報だけでなく、その情報がどのように体系化され、結びつけられたかという「足場全体」であるという記述は、キュレーションが単なる情報の羅列ではなく、キュレーターの視点や解釈、思考プロセス自体に価値があることを示唆しています。 このように、memexの技術が社会に与える具体的な影響と、それが生み出す新しい知識労働者の姿を提示することで、現代のキュレーション活動の原型を明確に描き出しています。

実現可能性には疑問符が付く『示唆』

知識の創造や吸収が人間の感覚器を介さずに、より直接的な経路で確立される可能性について言及している部分は、文中でも「それは示唆に富む考えであるが、現実と即時性との接触を失うことなく予測を保証するものではほとんどない。」とされている通り、当時の技術の延長に基づくものとは異なるように区別されています。

ただ、2025年現在だと「マルチモーダル」という形で、機械のほうでは実装できていそうですね。 私たちの脳が、AIと直結するほうが先にくる未来なのかもしれません。

その1に戻る

yourpalm.jubenoum.com