Digitalians' Alchemy Diary Archive



あるけみすとの居る風景:2014 年 02 月

シダレウメ咲きました2014/02/23(日)

 シダレウメが咲きました! 大して世話もしてなかったのに、健気なことよ。

 最初につぼみが出始めた時は、しだれている枝にはほとんど花芽が見えず、花が咲く枝と咲かない枝とがあるのかなあ、と思っていたのだが、今日見たときには、しだれている枝にも花芽が出ていた。時間差で花が咲いてくれるようなので、長く楽しめそう。

Mac 30周年2014/02/16(日)

 そういえば初代 Macintosh は 1984 年でしたね。自分もずいぶん Mac にはお世話になりました。自宅で使ったものだけでもこれだけある。

 …買い過ぎやろ。特に 1997-2004。この他に iPod とか iPhone とかも買っている。Apple にどれだけ貢献しとんねん。ただ、今後はどうなるかわからん。今使っている MacBook は過去3回も入院しているが、最近は調子よく働いている。これがダメになった時に、次をどうするか。最近 Mac OS がどんどんクローズドな方向に向かっているような気がして、あまり嬉しくないんだよな。ハードウェアは MacBook を使って、OS は Linux を使う、という方向に行ってしまうかもしれない。Linux には「自由」があるからね…。

Radicale を試す2014/02/11(火)

 CardDAV/CalDAV 同期の続き。Calendar and Contacts Server を引き続き試していたが、どうも挙動不審で、しかも PostgresQL とか使っているので何が起きているのかが極めてわかりにくい。ひとまずこちらは保留として、Radicale を試してみることにした。これは python 上で単体で動いているので、もう少し見通しがよさそう。

 公式サイトから Radicale-0.8.tar.gz を取ってきて、/Applications に展開。config に少し手を入れる。本当に最小限。

[server] ... hosts = 0.0.0.0:8008 ... [auth] type = htpasswd ... # public_users = public # comment out ... private_users = nagata ... htpasswd_filename = /Applications/Radicale-0.8/htpasswd ... htpasswd_encryption = sha1 ... [storage] type = filesystem ... filesystem_folder = /Applications/Radicale-0.8/collections

 ユーザーアカウントの作成。htpasswd を使う。

$ cd /Applications/Radicale-0.8 $ htpasswd -s -c htpasswd nagata # -s = sha1 New password:(タイプする) Re-type new password: (タイプする) Adding password for user nagata

 カレンダー、アドレスブックの作成。

$ mkdir -p collections/nagata/calendars $ cp somewhere/work.ics collections/nagata/calendars # work.ics については後述 $ cp somewhere/contacts.vcf collections/nagata # contacts.vcf についても後述

 work.ics は、iCal から書き出したファイルからエントリを1つだけ切り出して作っておく。contacts.vcf は、アドレスブックから書き出したファイルをそのまま使う。但し、そのままだと下のような行で問題が起きる。

X-ABUID:1EA171F7-1786-4D67-A45A-50AF87D097FA\:ABPerson

 X-ABUIDUID に変更し、最後の \:ABPerson を削除する。これで Radicale でも読める形式になる。mi の正規表現一括変換を使って処理した。

UID:1EA171F7-1786-4D67-A45A-50AF87D097FA

 ターミナルで $ cd /Applications/Radicale-0.8; python radicale.py --config ./config --debug とする。これを走らせたまま、iCal でアクセスする。「環境設定」→「アカウント」→左下の+マーク→アカウントの種類=CalDAV, ユーザ名=nagata, パスワード=xxxx, サーバアドレス=127.0.0.1:8008/nagata/calendars/ →証明書の確認が出るので受け入れる→同期開始。

 Nexus からのアクセスは、前とだいたい同じ。CalDav Sync の URL は http://XX.XX.XX.XX:8008/nagata/calendars/ でよい。CardDav の方は XX.XX.XX.XX:8008/nagata/contacts.vcf となる。拡張子がみっともないが、つけないとうまくいかなかった。CardDAV Sync Beta(有料版)にすると、よみがなもちゃんと同期してくれる。

 アドレスブック (5.0.3) はやっぱりダメです。これはもうしょうがないな。

超小型の歌うMIDI音源?!2014/02/10(月)

 「超小型の歌うMIDI音源、eVocaloid搭載」だと? なんか面白そうじゃないですか。この記事のコメント欄によると、Alchemusica はサンプル MIDI ファイルを正常に再生できなかったとのこと。たぶん SysEx を正しく送信できてないんだろうなあ。SysEx の送受信は MIDI プログラミングの鬼門で、仕様通りに書いたつもりでもうまくいくかどうかは実機を使ってテストするまでわからん、というところがある。「大人の科学」版で USB-MIDI が使えるのであれば、これを待ちたい。

Calendar and Contacts Server を自動的に走らせる2014/02/09(日)

 Calendar and Contacts Server は、サーバ上ではなく普段使いの Mac 上で走らせることにする。なお、Calendar and Contacts Server は /Applications/CalendarServer にインストールし直した。また、バージョンは 4.3 でも OK だった(5.1 だと途中でエラーが出てインストールできなかった)。自分がログインすると同時に立ち上がるのが好ましいので、こんな風に細工。

・次のファイルを作成し、/Applications/CalendarServer/exec_calendarserver.sh として保存。chmod +x で実行可能にしておく。(注:十分にテストしてないので動作不良があるかも。)

#!/usr/bin/env bash # Rotate log and run Calendar Server LOG=$HOME/Library/Logs/caldav.log if [ -e $LOG ]; then if [ $(( `wc -c $LOG | (read a b; echo $a)` > 1000000 )) == '1' ]; then # Rotate log rm -f $LOG.7.bz2 mv -f $LOG.6.bz2 $LOG.7.bz2 mv -f $LOG.5.bz2 $LOG.6.bz2 mv -f $LOG.4.bz2 $LOG.5.bz2 mv -f $LOG.3.bz2 $LOG.4.bz2 mv -f $LOG.2.bz2 $LOG.3.bz2 mv -f $LOG.1.bz2 $LOG.2.bz2 mv -f $LOG.0.bz2 $LOG.1.bz2 bzip2 $LOG mv -f $LOG.bz2 $LOG.0.bz2 touch $LOG fi fi exec /Applications/CalendarServer/CalendarServer/run -d >>$LOG 2>&1

・次のファイルを作成し、~/Library/LaunchAgents/com.darwincalendarandcontacts.server.plist として保存。

<?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>Disabled</key> <false/> <key>Label</key> <string>com.darwincalendarandcontacts.server</string> <key>ProgramArguments</key> <array> <string>/Applications/CalendarServer/exec_calendarserver.sh</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>

 自動実行はこれで実現できるが、ついでに admin 以外のユーザー・パスワードも作っておく。/Applications/CalendarServer/CalendarServer/conf/auth/accounts-test.xml の中で <user>...</user> が並んでいるところを見つけ、次の記述を書き加える。パスワードは平文で書く。

<user> <uid>nagata</uid> <guid>nagata</guid> <password>xxxxxxxxxxxx</password> <name>Toshi Nagata</name> <first-name>Toshi</first-name> <last-name>Nagata</last-name> </user>

 iCal は nagata@127.0.0.1 のアカウントにアクセスすればよい。予定と ToDo リストは違うカレンダーに入れないといけない(デフォルトでは "calendar" と "tasks")。これはちょっと面倒だな。アドレスブックはどうしようかな。実はアドレスブックはほとんど携帯側でしか見ないので、Mac 上で見られなくてもそう困らないかも。

アドレスブックの同期を試す2014/02/08(土)

 きのうの続き。CardDAV サーバに Mac OS 10.6 の「アドレスブック」でアクセスしようと思ったのだが、なかなかうまくいかない。「アカウント」で CardDAV を選び、ユーザ名・パスワード・サーバアドレス (127.0.0.1) を入れて「作成」を押すと、最初に「証明書を検証」のダイアログが出て、「続ける」を押すと「127.0.0.1 のアカウント設定を検出できませんでした」とエラーが出る。そのまま「作成」を押すと、不完全な CardDAV アカウントができてしまい、同期もできないし、新しいエントリを作ることもできない。「アドレスブック」のバージョンは 5.0.3。→ 10.8 のアドレスブックだとうまくいった。単にバグっていただけみたい。

 Android からのアクセスはうまくいった。「設定」→「アカウント」→「アカウントを追加」で「CardDAV」を選ぶ。"Add account..." でもう一度 "CardDAV" を選び、URL XX.XX.XX.XX:8443, Username admin, Password admin で "Next" を押す。証明書に関する警告が出るので、OK で受け入れると、アカウントが作成される。「連絡帳」の「アカウント」(設定メニューの中にある)から "addressbook/CardDAV" と書かれたアカウントを選び、同期の設定をする。

 だんだん Nexus の使い方が見えてきたな。あとは格安SIMで通話がどんな具合かを確かめたい。

Calendar and Contacts Server を試す2014/02/07(金)

 Mac OS X 10.8 Server と Nexus の同期を試してみたのだが、どうもうまくいかない。ネットワークの問題なのか、10.8 Server のソフトウェアの問題なのか、切り分けができない。具体的には、Nexus 側に Caldav Sync Free BetaCardDAV-Sync free をインストールして、10.8 Server へのアクセスを試みたが、接続が確立できない。

 どうもよくわからないので、オープンソースの Calendar and Contacts Server をクライアント版の Mac OS 10.6 にインストールしてテストすることにした。このサーバは、OS X Server の CalDAV/CardDAV サーバのオープンソース版である。最新版はインストールできなかったので、ちょっと古い安定版の 3.3 を試してみた。

$ mkdir ~/Development/CalendarServer $ cd ~/Development/CalendarServer $ svn co http://svn.calendarserver.org/repository/calendarserver/ CalendarServer/tags/release/CalendarServer-3.3 CalendarServer # 1行で $ cd CalendarServer # 2014/02/08 追記 $ ./run -s .... Using python2.6 as Python # これが最後に出たら成功 $ cp ./conf/caldavd-test.plist ./conf/caldavd-dev.plist $ ./run # サーバスタート

 メッセージがいっぱい表示されたあと、接続待ちになる。同じマシン上の iCal から 127.0.0.1 にポート 8443 (SSL使用) で接続すると、正常に動作した。Android からの接続手順は下の通り。

 だいたいこんな感じの操作で、「カレンダー」の画面に CalDAV サーバのカレンダーが表示される。iCal でも同じものが見えているので、iCal 上で編集して Nexus で同期すれば、編集結果が反映される。

 アドレスブックはまた今度…

佐村河内さん2014/02/06(木)

 うわー、こういう展開になっちゃいましたか。全然予想してなかった。交響曲も「ソナチネ」(高橋選手がスケートで使う曲ね)も断片的にしか聴いてないけど、「まあ普通にいい曲かな、でも『聴力を失った』云々の物語がなければまず注目されない曲かもな」という印象は持っていた。「だまされた!」と怒っている人はまことに御愁傷様でした。「泣ける」話ばっかり探し回っているからニセモノをつかんじゃうんだよ。

 作曲者の新垣さん、著作権を放棄するとおっしゃるぐらいなら、ぜひ楽譜を公開してください(たとえばIMSLPで)。こんな面倒な事情があったとしても、楽曲には生き残る権利も資格もあると思います。「泣ける」話に便乗したレコード会社やプロモーターの商売には全く興味ないけど、あなたの作品には大いに興味があります。楽譜を見てみたいです。

CardDAV/CalDAV サーバ2014/02/04(火)

 職場の Mac OS X 10.8 Server で CardDAV, CalDAV サービスを実験してみた。「サーバ」アプリケーションで、「iCal」「アドレスブック」を有効にするだけ(サービス名違ってたかも。帰ってから書いているので確認できない)。あと、同期専用のローカルユーザを1つ作っておくといい。

 デスクで使っている Mac は 10.6。iCal を立ち上げ、「環境設定」の「アカウント」を開いて「+」ボタンを押し、CalDAV サーバのユーザー名・パスワード・サーバアドレスを設定。証明書は一度開いて(オレオレ証明書だが)、受け入れることにしておく。外には公開せず、職場の自室にいる時だけ同期するので、これで十分。アドレスブックも同様に設定した。

 iCal は「この Mac 内」の下にサーバ内のカレンダーが出る。アドレスブックでは「グループ」の「すべての連絡先」の下にサーバ内のアドレスブックが出る。初めは空っぽなので、iCal から Mac 内のエントリを書き出して、サーバ内のカレンダーを選んで読み込もうとしたところ、「○○内の○○へのアクセスは許可されていません」というエラーが続々と出てなかなか先に進めない。あまり欲張らずに、直近の予定だけを手動でサーバ内に移す(イベントの編集画面を出して、「カレンダー」をポップアップで変更すればよい)ようにすれば、スムーズに移行できた。古いカレンダーをわざわざ同期しなくてもいいしな。iTunes 経由の iPhone への同期もちゃんとできた。

 アドレスブックの方はやや問題があった。Mac 内のエントリをサーバに移動させて「すべての連絡先」を表示すると、移動させた連絡先がすべて二重に表示されてしまう。それでは、と、Mac 内のエントリを削除してみたところ、Mac のアドレスブック上では問題ないのだが、iPhone への同期は Mac 内のエントリしかやってくれないので、iPhone 上のエントリが全部消えてしまった。iCal と挙動が違うのはイマイチ。まあ、10.6 は3世代前の OS なんで、今は改善されているかもしれんが。

 iCal, アドレスブックとも、サーバから読み込んだデータはローカルで保持しているので、ネットワークが切れてもデータのアクセスはできる。次にネットワークにつながった時に同期しにいくみたい。なかなかうまくできているな。アドレスブックと iPhone の連携さえうまく行けば、今でも使えるんだけどな…(まあ、外に公開しない以上、あまり意味はないとも言えるが)

Nexus5 つづき2014/02/03(月)

 Nexus 5 でカレンダーと電話帳を同期する件だが、「CardDAVサーバでのアドレス帳の同期」という記事を見つけた。これいいかも。仕事で立ち上げた Mac OS X Server 10.8 があるし。職場の外からは見られないけど、携帯との同期ができていれば特に困らないと思う。

 関連メモ:

 ところで、Calendar ってよく Calender とミススペルしませんか。僕だけ?

Nexus5 買った2014/02/02(日)

 Nexus 5 買いました。もちろん Google Play の SIM フリー版、16 GB。

 Google Play に登録するのにいろいろ戸惑った。GMail は使おうと思っているので、新しく Google アカウントを作ったのだが、自動的に Google+ が有効になってしまって、これを無効にするのにかなり手間取った。Google のサービスはなんかいちいち押し付けがましいんだよな。無料で使わせてやってるんだから文句言うな、と言われたらそれまでなんだけど。

 まだ SIM カードを何も買ってないので、とりあえずは無線 LAN で使ってみている。以下、これまでにわかったことを書いてみる。ただしいろいろ誤認はあるかも知れない。