2018年04月18日

Radicale と CardDavMate

 Radicale の続き。DAVdroid を使った Android との連携はうまくいったが、Mac 上でも見られるようにしておきたい。カレンダーの方は以前から Thunderbird の Lightning アドオンを使っている。これは何も問題なくて、次のようにすればよい。

  • 「予定とToDo」から「カレンダー」を開く。
  • 「カレンダー」リストで右クリックして、「新規カレンダー」を選ぶ。
  • 「ネットワークのサーバーに保存」
  • フォーマット=CalDAV, 場所=http://localhost:5232/nagata/calendar, オフラインサポート=ON
  • カレンダーの名前・色・アラーム通知(私は無指定にしている)を決める
  • ログイン名とパスワードを要求されるので、入力する

 問題は連絡先の方。Mac 純正の「連絡先」は一応 CardDAV サーバにアクセスできるはずなのだが、うまくいった試しがない。Thunderbird の CardBook というアドオンも試してみたが、ふりがなが表示されないなど、いろいろと不便。そこで、CardDavMate というのを試してみることにした。これは Javascript で書かれていて、ブラウザ上で動作する。セットアップが複雑で理解するのに苦労したが、できてしまえば簡単だった。

  • CardDavMate をダウンロード・解凍する。
  • config.js を開き、var globalNetworkCheckSettings={ という記述を探して、以下のように変更。
    var globalNetworkCheckSettings={
    // 以下4行をコメントアウト
    //	href: location.protocol+'//'+location.hostname+
    //		(location.port ? ':'+location.port: '')+
    //		location.pathname.replace(RegExp('/+[^/]+/*(index\.html)?$'),'')+
    //		'/caldav.php/',
    	href: "http://localhost:5232/", // 追加
    
  • Radicale の config を開き、次の記述を追加。これは、クロスドメインによる Javascript の制約を回避するもの。
    [headers]
    Access-Control-Allow-Origin = *
    Access-Control-Allow-Methods = GET, POST, OPTIONS, PROPFIND, PROPPATCH, REPORT, PUT, MOVE, DELETE, LOCK, UNLOCK
    Access-Control-Allow-Headers = User-Agent, Authorization, Content-type, Depth, If-match, If-None-Match, Lock-Token, Timeout, Destination, Overwrite, Prefer, X-client, X-Requested-With
    Access-Control-Expose-Headers = Etag, Preference-Applied
    
  • CardDavMate の index.html をブラウザで開くと、名前とパスワードを入れる画面が出るので、入力する。うまくいけば連絡先のリストが出てくるはず。出てこなければ、ブラウザのエラーコンソールを見て対策を考える。

 ふりがなの表示には対応しているが、エントリの表示が「名前の漢字表記順」になっていて、「ふりがなの順」になっていないのは残念。まあ、Mac 上で連絡先を編集することはあまりないので、このぐらいは我慢しようか。

posted by toshinagata at 20:13| 日記

2018年04月14日

DAVdroid と Radicale でまたハマる

 だいぶ前に「DAVDroid と Radicale でハマる」というのを書いた。しばらく問題なく動いていたのだが、最近また同期がうまくいかなくなった。気がついてみると、Radicale のバージョンがずいぶん古い (0.8)。なるべく新しいバージョンにしておかないと、いろいろとまずいかもしれないな、と思って、バージョン 2 まで一気に上げてみた。

 インストールには Python3 が必要。Mac 用の Python3.6 をインストールする(3.5 だと、PyPI へのアクセスがうまくいかない)。その後、radicale, passlib, bcrypt をインストールする。

$ python3 -m pip install --upgrade radicale  #  Radicale 本体
$ python3 -m pip install --upgrade passlib bcrypt  #  ユーザー認証用の bcrypt

 適当な場所 (/path/to/radicale とする) に Radicale 用のディレクトリを作る。設定ファイル config を下の内容で作成。

[auth]
type = htpasswd
htpasswd_filename = /path/to/radicale/users
htpasswd_encryption = bcrypt

[server]
hosts = 0.0.0.0:5232

[storage]
filesystem_folder = /path/to/radicale/collections

[logging]
config = /path/to/radicale/log_config

 パスワード認証用のファイルは以下のように作成。

$ htpasswd -B -c /path/to/radicale/users nagata
New password: 
Re-type new password: 
Adding password for user nagata

 ログ用の設定ファイル log_config は次の通り。

[loggers]
keys = root

[handlers]
keys = file

[formatters]
keys = full

[logger_root]
# Change this to DEBUG or INFO for higher verbosity.
level = INFO
handlers = file

[handler_file]
class = FileHandler
# Specify the output file here.
args = ('/path/to/radicale/log',)
formatter = full

[formatter_full]
format = %(asctime)s - [%(thread)x] %(levelname)s: %(message)s

 これで、下のように実行する。

$ python3 -m radicale --config=/path/to/radicale/config

 ここからがちょっとハマったところ。ブラウザで http://localhost:5232 にアクセスすると、Web ベースでカレンダーなどを作成できるのだが、これだと http://localhost:5232/nagata/8fc95c36-808b-d5ec-3b1f-13137ba93dc9/ みたいなランダムな文字列になってしまって、取り扱いが非常に面倒臭い。「RadicaleでCalDAV/CardDAVサーバーを構築する」という記事を参考にして、次のように設定。(あとで、公式ドキュメントにも書かれているのを発見した。)


$ cd /path/to/collections/collection-root
$ mkdir -p nagata/calendar
$ nano nagata/calendar/.Radicale.props
{"tag": "VCALENDAR"}
$ mkdir -p nagata/address
$ nano nagata/address/.Radicale.props
{"tag": "VADDRESSBOOK"}

 ブラウザで http://localhost:5232 にアクセスすると、こんな風になる。コレクション名が /nagata/address なのは不便なので、"Edit" で編集する。

20180414-1.png

 これが編集画面。「連絡先」と名付けた。

20180414-2.png

 こんな風になる。/nagata/calendar の方も同様に名前をつければよい。

20180414-3.png

 DAVdroid で同期するには、まずアカウントを作成する。DAVdroid のアカウント一覧画面で「+」を押すと、下の画面になるので、URL, ユーザー名、パスワードを入力。URL は ...:5232/まででよく、nagata/calendar などの部分は自動的に認識される。

20180414-4.png

 うまくいくと、この画面になる。実はここでハマった。別の URL で同じユーザー名があると、エラーになる。エラーメッセージがわかりにくいので注意。

20180414-5.png

 こんな風に、新しく作ったアカウント(一番下)が表示される。

20180414-6.png

 アカウントをタップすると、この画面になる。左のチェックボックスをオンにして、右上の同期アイコンをタップすると、Radicale と同期してくれる。

20180414-7.png

 これで、「カレンダー」「連絡先」とも、Radicale のコレクションを認識してくれる。一応これで、Radicale 2 系列も使える目処が立った。

posted by toshinagata at 01:10| 日記

2018年04月09日

シマトネリコ・ナツミカンの剪定

 シマトネリコを剪定しました。「シマトネリコの剪定の仕方や時期」(HORTI) によれば、3〜4月、6〜7月、9〜10月が適期らしい。「剪定後に他の部分から枝が生えてくることを見越して剪定する」というのが、最近やっとわかってきた。

20180409-1.jpg

 古くなった太い枝を切り詰めて全体をコンパクトにまとめたいのだが、なかなか難しい。今回は下の A のところで切った。A とほぼ同じところから出ている太い枝がまだ何本かあるのだが、それらを全部切ってしまうと、B のところに全く葉も枝もない幹が残ってしまう。これがどうなるかがよくわからない。この幹からも新しい芽が出てきて、若い枝が育ってくれるんだったら、それでいいんだけど。

20180409-3.jpg

 ナツミカンも少し前に剪定しました。今年の収穫は15個ぐらい。途中で落ちたものも多く、果汁が少なくて出来は悪かった。最後まで木についていた実は、なんとか食べられるレベルにはなった。

20180409-2.jpg

 今年は花芽がかなりたくさんついているのだが、木の中の方についている花芽が多く、実がついてもちゃんと育ってくれるか心配である。もう少し中の方まで日が当たる形にしたいんだけど、まだまだ経験と技術が足りんな。

タグ:園芸
posted by toshinagata at 22:25| 日記
email.png
Powered by さくらのブログ