iPod touch を買ったので Day One を使い始めている。Android 版が出ることを期待してるんだけれど、それまで iPod touch (と iPad 2) からだけだと使わなくなりそうな予感。Mac 使ってないしね。
Dropbox 同期なのでもしかしたら Linux からちょっとは編集できるんじゃないかなと思ったら、データ形式がシンプルで簡単にできるということがわかった。
Day One のサイトにデータ形式などが説明されているのが非常に好感が持てる。 あー、なんとなく人気な理由がわかった気がする。
Dropbox で同期していると
Day One/Journal.dayone/entries/<UUID>.doentry
という構成で1エントリ毎に1ファイルが作られる。XML プロパティリスト (plist) 形式で、普通に XML ファイルとして編集できる。Linux 側で編集すると、わりとすぐに iPod touch の Day One で表示しているエントリにも定期的に反映される。いい感じ。
ということで既存のものなら普通に Emacs で編集しちゃえばOK。
UUID を生成してファイルを作る必要があるので簡易的に以下のようなスクリプトを作った。
実行すると note と書かれたエントリファイルを作成した後 emacsclient -n でそのファイルをオープンする。Creator のところはいじっても良さそうだけれど、良くないかもしれないのでとりえあえず iPod touch で生成したのと同じままで。
#!/usr/bin/perl use strict; use warnings; use File::Spec; my $DIR = '/path/to/Dropbox/Apps/Day One/Journal.dayone/entries'; my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time); my $date = sprintf( "%04d-%02d-%02dT%02d:%02d:%02dZ", $year + 1900, $mon + 1, $mday, $hour, $min, $sec ); my $file_name; my $uuid; while (1) { $uuid = `uuidgen`; chomp $uuid; $uuid =~ s/-//g; $uuid = uc($uuid); $file_name = File::Spec->catfile($DIR, "$uuid.doentry"); last unless -e $file_name; } my $plist =<<__ENDSTR__; <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Creation Date</key> <date>$date</date> <key>Creator</key> <dict> <key>Device Agent</key> <string>iPod touch/iPod5,1</string> <key>Generation Date</key> <date>$date</date> <key>Host Name</key> <string>オレのiPod touch</string> <key>OS Agent</key> <string>iOS/6.1.3</string> <key>Software Agent</key> <string>Day One (iOS)/1.11.3</string> </dict> <key>Entry Text</key> <string>note</string> <key>Starred</key> <false/> <key>Time Zone</key> <string>Asia/Tokyo</string> <key>UUID</key> <string>$uuid</string> </dict> </plist> __ENDSTR__ open my $file, '>', $file_name or die $!; print $file $plist; close $file; exec "emacsclient -n '$file_name'";
Linux 用で UI をもつ clone 見つからなかったので、とりあえず howm の検索パスに前述のディレクトリを追加して、howm から検索できるようにした。これでワードがわかれば最低限さっとエントリファイルを Emacs で開ける。
ここ最近プライベート日記はスマートフォンアプリを使っていて、今は Day One を使っている。一方公開日記は Web 日記としてこの nDiki をつけている。前者は完全非公開、後者は全体公開。
たまに特定グループ向けに公開したいなと思ったりするのだけれど、身近に使えるのはやはり自分の場合mixi日記かな。ただ日記メディアとして便利なんだけれど、自分はローカルホスト上で grep できるように手元にも記事ファイルを置いておきたい(Emacs + howm で検索したい)。
ということでグループ公開したい日記は Day One で書いて、mixi日記に上げるようにしてみようかなと。これならスマートフォンでも草稿かけるしアプリ上でプライベート日記と同じタイムラインに並べて見られるし、 Dropbox に XML エントリファイルが作られるので Linux 上で grep がかけられるし。
で一度手順を流してみた。iOS デバイス上で完結させるとどれぐらいの手順になるかどうか、 Publish 公開も含めてやったのが以下。
日時を統一したり permalink を取得して書き込み直したりしているので手順がちょっと多いけれど、実際にはグループ公開の場合は Publish しないのでもっと少ない手順になる(写真を載せると逆にもうちょっと手間がかかる)。あと PC 使っている普段の状況なら Emacs + Google Chrome でさっとやってしまうのでもっと楽。やれば自動化もできるとは思うけれどもそこまではいっかな。
iOS デバイス上での長文書き慣れない。ので iPod touch 5th で Day One 新規エントリ立てて、 Dropbox にアップロードされたところで Bluetooth キーボードをつないだ Android デバイスの Jota+ でその Day One エントリファイル (XML property list 形式)を開いて編集してみている。
ちょっと無理矢理感があるので早く Day One for Android が欲しい(Android エンジニアいなさそうだけど)。
Say Hello to Team Day One
https://t.co/zBcQm8Ypt8 pic.twitter.com/0a8p0Eh3vJ
— Day One Journal (@dayoneapp) November 11, 2014
日記アプリ(ジャーナルアプリ)は「Day One (iOS) + Narrate (Android)」をメインで使っているのだけれど、「別のテーマで日誌をつけるのに分けたい」のと「Web ブラウザでも編集・閲覧したい」というのがあって Journey が良さそげなので使ってみることにした。
Android アプリは Google Play では Journal (by Journey) になっている。
データは自分の Google ドライブに保存されるので端末がクラッシュしても大丈夫。開発元の 2 App Studio のストレージには保存されない。「Google か Dropbox か Evernote なら自分のプライベートなデータを置くのを許容する」という自分のルール的にも OK。
日記アプリは、ロックインされないことが重要で選択時の大きな基準。Journey の場合は Android アプリから「Export/Backup」で JSON ファイル群を ZIP アーカイブしたファイルで保存する機能がある。 常に XML ファイルとして普通にアクセス可能な状態になっている Day One より一歩劣るものの、 JSON なので移行が必要な時は自分で変換できるので許容範囲と判断。
Chrome アプリがあり PC から閲覧・編集ができる。PC 向けには公式には Mac アプリしかない Day One とは違って Windows や Linux でも使えるのが良い。なお Android アプリとは関係無しに Chrome ウェブストアから Chrome に追加して使えるので、PC のみで使うというのもあり。
ちなみに Journey Web ( http://journeyapp.me/ ) で Chrome アプリを入れなくても自分のジャーナルを閲覧できるようになっている。
ローカルホストから直接 Google ドライブにアクセスし 2 App Studio 側を経由しないと言明しているのでプライバシー的にも安心(信用する限り)。
Chrome アプリでは、いにしえの Evernote を彷彿させる巻物的表示(全文を時系列にスクロールで見ていける)なのがとても良い。個人的にこのタイプの表示が好きなのだけれど、現状少ないので嬉しい。
文字が大きく行間が広いのでかなりスカスカ感はあるので、もう少しタイトになるといいなとは思う。
Markdown をサポートしているのも良いところなのだけれど、見出しがセンタリングだったりするのがそこはかとなくダサい。
あとはまずまず良い感じ。
(画像は http://2appstudio.com/journey/ より。)
[ Android アプリレビュー ]
昨日 MacBook Pro が届いたので、早速 Day One の Mac アプリケーションをインストールしてみた。一昨日である4月3日に為替変動を受けての App Store 値上げがあったので、1,000円からちょっとお高くなって 1,200円。
入れてみて特に驚きは無かったんだけれど、公式アプリで編集できるというのは精神衛生上良いな (Emacs で直接 XML ファイルを編集するより)。
もうすぐ1,000エントリになるところ。
[ Mac アプリケーション ]
元日に出掛けたら例年より長い列だったので拝まずに帰ってきた神社にあらためて初詣に行き、あわせて図書館にも行ってきた7連休最後の日。去年は11連休だったのでちょっと短めの年末年始でした。過去3年「年末年始にやったこと」を書き出しているので今年もふりかえってみます。
電車に乗って出掛けたのは今日ぐらい。昨年同様日記まわりやデータの整理が中心でした。昨年の年末年始で Day One をやめて Evernote に集約することにしたのですが、その後テキストファイル化を決めたため日記データが3箇所に分散している状態になっていたのですがこの年末年始でまとめることができかなりすっきりしました。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。