5年前からメモアプリとしてSimplenoteを使っていましたが、こちらも思うところがあって
Notesnookに乗り換えることにしました。ゼロナレッジとかエンドツーエンド暗号化とか言われているタイプのサービスです。
このタイプのだと、サーバの運営側でも利用者のデータが読めないので、万一サーバをハッキングされてもデータを盗み見られる心配がほぼないとされています。
この前、ゼロナレッジなサービスのLastPassから盗まれたデータから中身が読まれたという話があったけれど、それは桁数の小さいパスワードが総当たり攻撃にやられたからということみたいです。
そんな総当たり攻撃にも負けないよう、パスワードには英数記号を混ぜた100桁以上のランダム文字列を設定しておきます。そしてユーザーアカウントに設定するメールアドレスも、このサービス専用のものを新規にひとつ払い出します。LastPassみたいに社内側から盗まれるケースには無力かもしれへんけど、2段階認証も設定。
Notesnookを選んだ決め手
ゼロナレッジ系サービスは、サーバ側でデータを読めないということで、Googleドライブのようにサーバ上でデータを検索することができません。
なので、ウェブアプリで操作するにしても、手元に一式データを落としてきて暗号解除して手元で検索するみたいなつくりになるはずなので、ゼロナレッジじゃないアプリと比べて動作がもっさりしがちなんですが、Notesnookはけっこう軽快です。
そしてデータをテキスト形式でもエクスポートできるので、次の引っ越しがあっても安心。
Simplenoteからのデータの移行
幸いにして、NotesnookにはSimplenoteからのデータ移行機能がありました。
そのまま移行すると、ノートのタイトルが本文の1行目にも繰り返し出てくる形式で移行されてしまって少し見苦しかったので、ひと工夫しました。
まず、SimplenoteのWebインタフェースからデータをエクスポート。notes.zipというファイルができます。
それをこのページで、notesnook-importer.zipというインポート用ファイルに変換します。
このzipファイルには、ページ数分のフォルダが入っていて、それぞれにnote.jsonというテキストファイルが格納されているんですが、その内容を書き換えます。
正規表現を使って、
“content”:{“type”:“html”,“data”:".*?</p>
↓
“content”:{“type”:“html”,“data”:"
このような置換をすれば1行目だけがカットできました。2000ファイル以上あったので、自分は秀丸マクロで一括処理しました。正規表現の最短一致に"?“を使うのは秀丸特有の仕様かも?
(何らかの方法で最短一致させないと、行末の</p>までまるごと消えてしまいます。)
そしてできた改造版notesnook-importer.zipをNotesnook側でインポートすれば完了です。
日本語検索の問題
Simplenoteからインポートしたノートだけの問題なんですが、検索機能で本文の日本語がヒットしません。件名はヒットするし、本文でもアルファベットはヒットするのに。
で、ノートの中身を全選択して"Clear all formatting"のボタンを押すと、そのノート中の日本語は検索でヒットするようになりました。
インポート前にいじったnote.jsonでは、本文の日本語が「&#xなんとか;」というHTMLの実体参照に変換されていたけど、それが元とは別の文字列だとみなされて検索でマッチしなくなってたってことかな。
メモはあとから検索するために書き溜めているので、これは痛いなあ・・・
ということで、だめもとで"Report an issue"からフィードバックを送ってみました。
そのまんまGitHubにIssueとして投稿されたけど、対応してもらえたりするんかな?
何かしてくれるのを待つより手を動かした方が早そうなので、ちまちまと2000以上ある過去のノートを手作業で"Clear all formatting"していっています。
2か月ほどでStandard Notesに乗り換えました。
Notesnookからテキストでエクスポートすると、
- HTMLタグの中のスペースが改行に置換される。
- メモのタイトルをファイル名に反映させる際、英大文字が小文字になったり、
スペースが-(ハイフン)に置換されたりする。
といった改変が入りました。Notesnookは少々引っ越し機能に難ありです。
コメント