Posts tagged ‘Joplin note-taking app’

(突発的に?)光とモバイルのプロバイダを移ったり、窓の異臭漏れ防止シートを正式版に張り替えたりして停滞しているが、Zim+Joplinのシステムは概ね問題なく使えている。

前回から以下を修正・改良して、随分良くなった。

  • 行の(ソフト)ラップがないように振る舞う場合があるのを概ね解消した。
    • ノートに埋め込んでいる画像の表示幅が広過ぎることが主な原因だったので、設定した最大幅※より大きかったら、自動的に縮小するようにした。
      • ただ、設定値が不適切だったり、画像がインデントされていて、画像の幅+インデント量がペーンの幅を超える場合には駄目である。
      • ※本来、ペーンやウインドウの幅から画像の最大幅を求めるべきだが、まだそれらが取得できないので、設定に依存している。
    • また、テキストのラップ方法にも よるようだったので、単語単位から単語+文字単位に変更した。
      • 日本語では単語単位のラップは意味がないので、どうにかして「ちゃんと」したいが、これしか やりようがないのかも知れない。
        • そういう点では、このWordPressのエディタや表示は全く優れものだ。
    • 依然として、問題が起こった場合にHomeキーが思うように効かないので、何とかしたい。
  • ノートを開いた時に、より確実に前回のカーソル位置を復元できるようにした。
    • この処理は元々ハッキング的に実装されていたが、時々動作が不完全だったので、復元するための待ち時間(= スクロールする時間?)を結構長くした。
  • 起動するたびに/tmpにログディレクトリ(zim-xxxxx)が作られないようにした。
    • 特定のディレクトリ(例: /run/user/ID)にログファイルを作るようにした。
    • 以前のログは10個くらい残すようにした。
  • MDへのエクスポートの改良
    • 見出しのMDのタグを標準的なもの(Joplin= gfm?)に合わせた。
      • インポート時も同様な修正が要るようだが、未対処である。
  • ノート名のボタンのラベルの文字サイズを小さくし、なるべく多くの文字を表示できるようにした。
  • (特に書式のエクスポート・インポートのテスト用ノートで)ZimとJoplinの行き来を繰り返すとテストができなくなってしまうので、Joplin→Zimの一方通行だけにできるようにした。
    • 画像のインポート用ノートを無駄にZimからJoplinにエクスポートしないようにも使っている。
  • (以下、書いたあとでの追加: 12/18 12:43) Joplin→ZimとZim→Joplinの変換(エクスポート・インポート)処理を改良した。
    • [Joplin→Zim] コードブロックが正しく表示できない場合があるのを解消した。
      • MDをZimに変換するpandocの仕様で、コードブロックを囲むタグが ~~~の場合、ZimのSource Viewというプラグインを使うようになるが、うまく動かないようで、先頭に"{{{code: lang="(改行)"linenumbers="True""などと入り、ブロックの終わりが認識されず、最悪の場合はZimが強制終了する(ブロックが大きくなり過ぎるため)。
      • そこで、Joplin→Zimの変換プログラムで、MDの2種類のコードブロック(~~~, ```)をどちらもZimのもの(''')に変換するようにした。
    • [Joplin→Zim] 上と同様に、水平線(HR)も、Zimが認識する ---に統一するようにした。
    • [Joplin→Zim] 見出し(##など)に下線が付く場合があって煩雑なので、下線を削除するようにした。
    • [Joplin→Zim] 同様に、見出しの前後に余分な空行が入らないようにした。
    • [Zim→Joplin] ノート先頭に書いた見出しがなくなることがあるので、なくならないようにした。
      • 直すまでは、先頭の見出しの前に . のようなダミー行を入れて しのいでいた。修正も同様にしているが、Joplinにインポートする前に除去している。

それでも、依然として すごく気になる問題や改良したい点は残って居る。特に以下である。

  • 描画の更新がおかしいことがある。
    • 大きいノートを変更すると、その行が上下に重複して表示されることがある。
      • 他のアプリでは見たことがないのに、どうして起こるのか不思議だ。
      • ここにキャプチャを載せようと思って試すと、起こらないw
      • とりあえずは「軽い再描画」(ブラウザのF5のもっと軽いイメージ)ができるようにしたい。
  • 新しい画像が入ったノートのJoplinへのエクスポート
    • Zimで追加した画像をJoplinに取り込めるようにしたい。

前者については、いろいろいじってZimの内部構造やPythonでのグラフィック(GTK)のやり方が分かって来たので、調査・試行錯誤すれば できそうな気はするが、まだ原因が掴めていないので、根本的な対処は難しい。

後者はやり方は分かっているけど面倒なので、純粋に僕のヤル気の問題であるw

逆に言えば、大きな問題は もう2つしかなく、時々イライラはするものの充分実用的(Joplinより10倍以上使いやすい)なので、残った難しい・面倒な問題を片付ける気が なかなか起こらない。まあ、年末の宿題か来年の初仕事だ。

 

(12/18 12:17) Zimならではの良さの一つに、gitなどでバージョン管理できることがある。Joplinにも履歴機能はあるが、指定期間で削除されてしまうため、古いノートの履歴が参照できない。※ そのため、古いノートの変更に失敗して戻したくなってもできないのだ。

※少し前までは最大*日分残ると誤解して古くても残って居ると思い込んで居たが、そうでなくてがっかりした。

Zimではそんなことはなく、履歴は無限に残る(はず)。データ量は増えるが(それほど多くはないはず)、それよりも、確実に復活できることが重要だ。そして、汎用のツールを使っているので、好きなアプリで履歴を見られるのもうれしい。ただ、履歴を記録するのは定期的なので(ノートを保存した時にも記録されると思う)、残らない履歴もある。

それでも、なくなるよりはずっといい。当初はgitのようなものを使うのは安直だと思っていたが、Joplinのように いい加減な機能を内蔵してプログラムとDBを肥大化させるうえに、いざという時に役に立たずにがっかりさせられるよりはずっとマシだし、ずっといい考えだと思う。

 

PS. 意外にオリジナル版も少しずつ(残念ながら、細かいものばかり)修正されているので、まとめて適用したい。あと、僕の改良・改造もオリジナル版に入れてもらいたいが、説明や準備が結構な手間なので、やってもフォーク(分岐)程度かと思っている。いずれにしても、描画の更新がおかしいことがある問題が直ってからだ。

  •  0
  •  0
Keys: , ,

乗り換えたばかりのZettlrは使い込むと駄目だった。Electronのため、大きいノートの編集が遅くなるのが一番イライラする(日本語なんて、入力に追いつかなくて ひどい)。※あと、余計な補完だの書式を勝手に変える(勝手に破壊して、なかなか直せないことがある)とかも、やっぱりイライラする。

※JavaScript≒ブラウザでテキスト・画像その他を処理しているので、どうしても無理があるのではないか? 最新のマシンなら問題ないのかも知れないが、元々効率が悪いものだけど すごい環境で動かせばいいという思想なのだろうか? まあ、Intelには馴染みが良さそうだw

そもそもMDが嫌いだ。書いている途中で いちいち書式を思い出したり調べたり、(エディタのせいでプレビューがおかしくて)調整するなどと、本質でないことに手間が掛かって書くことに集中できないし、見た目も煩雑だ。※ 今は流行っているが、僕にすれば全く奇妙な現象で、そのうち もっといいのが出て来て廃れるのではと思う。

※文章に書式指定が混ざっていて、良く普通に読めるものだ。MD愛好家・信者は そういうのが透明にでも見えるものなのか。至るところに混在していても「ないもの」にできる? 全く器用だ。

そこで浮上したのがZimである。前にも書いたように、これはワープロほど高機能ではなく、"Desktop Wiki"を自称しているように とてもシンプルなものだが※、僕がノートを書くには必要充分で、まさに「こういうのでいいんだよ」だ。あと、(ElectronのJoplinに比べて)超省メモリ(約1/3-1/10!)なのも 好感が持てる。もちろん高速だ。

Zim:  「こういうのでいいんだよ」って感じ^^

※ツボは押さえており、ちゃんと上/下付き文字もできるw もちろん、画像も貼り込める。

気になるのは、作者が多忙(あるいは疲労?)で いつ終了するか分からず、そこまで行かなくても、この先も改良される期待ができないことだ(それでも、細かい修正は続いている)。まあ、オープンソースなので、終了する時はソースを引き取って自分で面倒見ることも可能だと考えて、使ってみることにした。

 

ただ、僕の使い方(スマフォからもアクセスしたい)としては、Zimはノートの共有・同期の機能、あるいは それを補助するような機能を持っていないのが困る。※

※実際にはwebサーバの機能が内蔵されていて確かに動くが、Zimの完成度や作者の状況を見るに、このサーバをインターネットで使うにはセキュリティ面でのリスクが高過ぎるので、「持っていない」と書いた。もちろん、使いたい人は使えば良い。

いろいろ検討したが、スマフォからのアクセスに関しては、どうにも いいものがない。Dropboxなどのファイル共有でZimのノートやMDなどを共有すれば、MDエディタで見られる(MarkorはZimのノートをサポートしている)。が、残念なことに画像が表示されない。事前に画像もスマフォに同期しておけばできるが、見るかどうかも分からないノートと画像など全部を常にスマフォに同期しておくのは余りにも効率が悪いし、電池や通信データ量を浪費する。

逆に、ユーザが指示した時だけ同期するソフトだと、ノートを見たいだけなのに、まず「同期」の操作をし(て、同期を待た)なくてはならず、面倒この上ない。そんなの忘れて古い情報を見てしまうか、面倒で使わなくなってしまうだろう。

もう一つ、ノートをHTMLに変換してwebサーバに置けば、スマフォからのアクセスはとても容易になる。上に書いたような同期は不要で、必要な情報だけがダウンロードされるし、特別なアプリも要らない。が、いろいろなノートを全部平文で格納してwebで公開(もちろん認証する)するのは多くのリスクがあって、かなりの勇気と慎重さが要る。

そこで出て来る(生き延びているw)のがJoplinだ。Joplinも実際にはノート全部をスマフォにダウンロードしておくようだが、画像はノートを開く時にダウンロードするので効率が良い。また、不具合のおかげなのだろうが、設定していてもバックグラウンドで同期しないので、アプリを開かない限り電池も通信量も消費しない。その代わり、アプリを開いた時に同期が終わるのを待たないと(そのあとで再度同期が要る場合が多い)、ノートが最新にならない(同じアプリなので、面倒さは少ない)。

という訳で、最新のシステム概要は以下のようになる。

  • PC
    • 僕: Zimでノートを作成・変更、表示する。
      • 当初はJoplinのノートを変換して取り込むことが多いので、そのためのプログラムを作成する。
    • ノート変換・更新プログラム: (スマフォで見たい)ノートが作成・更新されたらMDに変換し、Joplinに入れる(ノートが既にあったら更新する)。
      • 自動で行うようにする予定。
    • Joplin: サーバにノートを同期(アップロード)する。
  • サーバ: ノートを格納する。
  • スマフォ
    • Joplin: サーバからノートを同期(ダウンロード)する。
    • 僕: Joplinでノートを表示する。
      • ノートの更新はせず(Joplinが重いので諦めている)、記録は別のシステムを使う。

そして今は、いくつかのノートをZimに移して機能や操作性などを確認しつつ(ダメ出し+習熟)、ZimとJoplin間のノート変換・取り込み/更新プログラムを作っている。

システムを作る際にZimのいい点は、グラフィカルに(WYSIWYGで)書式設定できるにも関わらず、ノートのファイルが非常に単純なテキスト形式(MDに近い)なので※、テキスト処理ツールで自由に処理できることだ。

※紛らわしいが、ZimのファイルフォーマットはZIMというファイルフォーマットとは異なる。なので、前者は"Zim-wiki"などと書かれることがある。

また、意外なことにpandoc(テキストフォーマット変換プログラム)がZim形式での出力("zimwiki")に対応している(JoplinのMDを入力するには"gfm"を指定するのがいいようだ)※ので、MDからの変換が可能だ。また、Zim自体でMDへのエクスポートが可能なので※、pandocと併用すれば、一応はMDとの相互変換が可能だ(今までのところ、MD-Zimの変換・逆変換をしても書式は崩れていない)。

※なぜか、pandocはZim形式での入力はできず、ZimはMDのインポートができない。

 

今まで同様、このシステムも、いつ気が変わって「はい終わり」になるか分からないが、まあ、苦労して作ったからと言って特に固執せず、その時々で良い・使えるものが できれば・見つかれば良いスタンスだ。

永遠のプロト・PoCか、継続的スクラップアンドビルドか、あるいはシステムの焼畑農業か星一徹式開発か?w

 

PS. Zimを使っていたら、早速思わぬ欠点に気付いた。引用の書式がないのだ。あと、段落のちゃんとした(綺麗な)インデントもない。※ 良く使うものだが、ないものは仕方ない。作者なりの考えなのだろう。

※ちゃんとしたインデントはあった。MDにエクスポートする時になくなってしまったようだ。そうだ、EvernoteからJoplinに移行する時に、MDにはそういう概念がなくて困ったのを思い出した。その時は">"を使った。

代わりに、例えば、引用部をコードブロック(verbatim)にするとか、斜体にするとか、上下を目立つマーク(例: "+++")で挟むとか、MDのコードブロックの記号で挟む("```"などは そのままMDに行く)などの代替ができる。他には、単に段落をインデントさせるのもいいかも知れない。

作者としてはverbatimを使うことを想定したと思う。それは間違っていないのだが、そうすると引用部に書式が付けられなくなくなってしまうのが、不満なのだ。まったく、「シンプルなのでいい」と言っていた舌の根が乾かないうちにw

それから、インデントは、まあ、箇条書きで代替すればできるし、現状でも「綺麗でない」インデントは可能だ。

でも、何となく気に入らないので追加したい気もするが、やり過ぎだろう。 (11/9 19:16)

本体を改造するのはハードで やりたくないので、別件で見付かった余計な変換(例: "//...//"が"*...*"になる)を吸収するのと一緒に、MDへのエクスポート前にノートを変換して何とかした。

引用部はインデントすることにすると、ZimはインデントをTABで表現しているが、MDにエクスポートする時に削除されてしまうので、エクスポート前に、とりあえずMDのblockquote(">")のTABの数分繰り返しにして、MDに残るようにした。 (11/10 18:55)

  •  1
  •  0
Keys: , , , , , ,

「いつもイライラしてんな?」って言われそうだけど、実際そうなので仕方ないw

Joplin(ノートアプリ)を丁度1年くらい使ったが、近頃は乗り換えたくなって居る。以下に その理由を挙げる。

  • エディタがクソで、書くことに集中できず イライラする。
    • 大きい(といっても、サイズは100KBくらい)ノートの途中に1文字でも書く(置換でも挿入でも)と、ノートの表示位置がジャンプして場所が分からなくなってしまう。しかも、その挙動が不定(ジャンプしないこともあるし、ジャンプする位置も まちまち)。
      • それで何度も、似たようなことが書いてある別の場所に書き込んでしまった。
    • 遅い。: 大きいノートを開くのも編集するのも遅い。必ず数秒は待たされる。
  • メモリを馬鹿食いする。
    • すぐに2GBを超えて(大きいノート複数開いて編集すると すぐに超える)減ることがない。
      • それでPCのメモリを圧迫するので、一日に何度も(Joplinを)再起動している。
  • サポートの姿勢が今一つ。
    • 上のような問題はフォーラムに上がっていて(、それ以前に自分で使っていれば)作者は分かっているはずなのに、「仕方ない」みたいな姿勢で放置して サーバとか新しいことをやっている。
    • 自分のやりたいものだけ直している感じ。

 

それで ちょっと思い立って今朝探してみたら、以下の(以前は見落としていた)候補が見付かった。ただ、どちらも今ひとつだ。

  • Zettlr
    • ノートを共有・同期できない(そういう機能がない)。
      • Dropboxのようなファイル共有の仕組みを使えば共有は可能だが、複数で編集した時に競合する。
        • 例: どちらかの変更が失われてしまう。
      • 僕の使い方では編集するのはPCだけなので大きな問題はないが、ちょっと怖い。
    • スマフォアプリがない。
      • 他のユーザの例を調べると、別なMDのエディタを使っているようだ。
    •  編集(フォーマット)機能が今ひとつ。
      • 例: 取り消し線がない。 ← あった。メニューになかったためサポートしていないタグ(<s>)を試したのと、インポートしたファイルでうまく動いていなかったので誤解した。
        • 標準的なMDに準拠しているためだろうが、実用性に欠けていないか? ユーザーは不満でない??
  • Trilium
    • 作者が正体不明で怪しい。
      • 名前どころか、国すら不明。
        • ドキュメントの言語やGitHubのメンバーを見ると、中国系では?
      • Webページがなく、GitHubだけ。
        • 一方、Zettlrのページは しっかりしている。
    • リリース(2017年頃)から数年経っているのに、まだV1になっていない。
    • 同期できるのはいいけど、オフラインの時にどうなるか不明。
      • サーバが独自なので、インストールが手間。
    • ノートも画像も全部DB(SQLite)に入れるのでは、あとでとんでもないことになる気がする。

今のところはZettlrしかないが、もう少し検討したり探してみたい。

その後、やっぱりJoplinが遅過ぎて使い物にならないので、試しにTriliumに いくつかのノートを移して使おうとしてみたのだが、たった1個で不完全な点(例: インポートするとフォーマットが崩れることがある)が出てきたり、そもそもセキュリティや運用上の不安(全ノートが一つのDBファイルに入っている)があるので止めた。エディタの使い勝手はJoplinより10倍くらいいいのだが、実用性・現実性(?)に欠けるので仕方ない。

一方、しっかり・堅実に作られている印象のZettlr(実際、Triliumでのフォーマット崩れは起こらない)はスマフォでうまく使えないので すぐには移れないが、何とかならないか考えるとともに、他も探したい。 (10/17 11:04)

 

PS. 勘違いした取り消し線の件でZettlrのフォーラムをちょっと見たら、別なソフトだが、MediaElch(メディア管理ソフト)同様にドイツ人らしい真面目なサポート姿勢が垣間見えて、いい感じがした。

PS2. 「Triliumが怪しい」と書いて気付いたが、僕も、以前 正体を明かさずにソフト開発の仕事を始めようとしたが、その点だけでも論外だったのを実感した。

  •  2
  •  0
Keys: , , , , , ,