Mac OS X
Entries
Calendar Serverの開発状況!?
- Date
- 2007-07-11 (Wed)
- Category
- Mac OS X
Mac OS X Server の次期リリース、Leopard Server の目玉機能の一つに iCal Server というのがあります。その実はオープンな技術を実装する Darwin Calendar Server というものなのです。たぶん。Server はオープンで、設定とかパッケージングな部分は Leopard Server 凄いよ、となるんじゃないでしょうか。フリーで使いたい人は Server Daemon だけどうぞ、と。
暫く前から dev の mailing list を subscribe しているのですが、最近あった面白い話。
Guillaume さんは書きました。
Since Leopard release is known to be planned in October 2007, I ask you about the Darwin Calender Server status.
- Is it (near to) production ready ?
- Is the code usable in a production environment ? Not being well packaged won't be a big problem.
- Are there missing features ?
~~~~snip~~~~
Apple announced [1] Outlook ability to connect an iCalserver via an opensource connector. Is the connector developed at Apple or is it a third party project ? Which one ?
レパードはリリース 10月だったよね?カレンダーサーバーの状況はどうよ?
- すぐ(あるいはもうすぐ)使えそう?
- コードの品質は使える段階まで来てる?まとまってるかどうかとかはあんまり気にしないけど。(注: おそらくインストール時の依存関係とかは気にしないよ、という意味か)
- なんか足りない機能は?
(中略)
アップルは Outlook との接続に Opensource のコネクターを使うって発表したけど、アップルが作ってんの?それとも他にあんの?
Wilfredo さんがお返事。
It's pretty near to complete. As to what's not complete or being worked on, see trac.calendarserver.org.
I'm pretty sure Apple announced no such thing, but there is this project, which is potentially one way to get there: http://openconnector.org/
もうすぐ完成に近いよ。詳しくは Trac 見てね。
あとアップルは絶対そんな事発表してないよ。やるとすればこれとか面白いかもね。http://openconnector.org/
Matt さんは書きました。
I do believe Guillaume is referring to this:Works well with others. iCal Server uses open calendaring protocols for integrating with leading calendar programs, including iCal 3 in Leopard, Mozilla's Sunbird, OSAF's Chandler, and Microsoft Outlook using an open source connector. These open standard protocols include CalDAV - a set of extensions to WebDAV - and interchange formats such as iCalendar, iMIP, and iTIP.http://www.apple.com/server/macosx/leopard/icalserver.html
That could almost be considered an announcement.
Guillaume が云ってんのは多分これじゃねぇの。
iCal Serverは、オープンカレンダリングプロトコルを使って、LeopardのiCal 3、MozillaのSunbird、OSAFのChandler、Microsoft Outlookなどの主要なカレンダリングプログラムとの統合を可能にします。オープンスタンダードプロトコルには、WebDAVを拡張したCalDAVや、iCalendar、iMIP、iTIPなどのインターチェンジフォーマットがあります。これって普通は発表でしょ。
Apple - Leopard Server Sneak Peek - iCal Server
ヤバいぞ Wilfredo! どうする!!
サーバー自体は結構行けてると思うな。CalDAV 使ってまともかつ軽量に動くオープンソースの Calendar とかまだ見た事ないし。Outlook との接続にも期待大です。
Mac OS X(10.4)で最近の写真をコピーするワンライナー
- Date
- 2007-06-24 (Sun)
- Category
- Mac OS X
1998年頃 FreeBSD で tcsh を使い始めて、最初に便利だなと思ったのは find と grep か。それはさておき Mac OS X には Spotlight という meta data を query 風に検索する技術が入っています。普通は画面右上のルーペアイコンですが、Terminal からも使えます。以下のようにすると昨日以降に撮った写真をファイルシステム全体から探します。
mdfind 'kMDItemFSCreationDate >= $time.yesterday && kMDItemContentType == public.jpeg'
もしどこか別の場所(以下の例は current directory)にコピーしたいなら、
mdfind 'kMDItemFSCreationDate >= $time.yesterday && kMDItemContentType == public.jpeg' | xargs -0 cp {} ./
mdfind は -onlyin という引数で、検索対象の directory を絞れます。kMDItemContentType のヴァラエティを知りたかったら、mdls FILENAME で調べられます。
ま、若干(体感速度は)遅いですけど…
Mac OS X 特有の Command Line App と At
- Date
- 2007-06-06 (Wed)
- Category
- Mac OS X
MacWiki::OSXの固有コマンドというページに Terminal.app などから利用できる、コマンドラインアプリケーションが紹介されています。open や defaults などは普段からまぁたまにですが使いますし、sips などは海上忍さんの OS X ハッキングで紹介されていたので知ってはいました。この Wiki はよくまとまっているので、要ブックマークですね。今回はこの中などから少し。
GetFileInfo / SetFile
ファイルをダブルクリックすると、適切なアプリが勝手に開いて編集(あるいは閲覧)が始まる、というのは今では当たり前のような事ですが、結構すごいことです。Windows では、ファイル名の拡張子によって、アプリケーションが関連づけられています。拡張子のみなので、同じ拡張子を持つファイルは全て等しいデフォルトアプリケーションが設定されます。例えば、Dreamweaver で .html ファイルを扱っている人は、Firefox でダウンロードした .html ファイルもダブルクリックしちゃうと、Dreamweaver が開いちゃうんですね。ん〜、不便。
Mac はかつて System 7 と呼ばれていた頃、ほとんど拡張子を使っていませんでした。OS 8 になって PC Exchange が標準装備になったり、インターネットが流行りだしてからは互換性のため拡張子を使っていましたが、それでもある書類をダブルクリックした時に、どのアプリケーションを使って開くかは、拡張子に依りませんでした。Dreamweaver で編集した .html ファイルと、Firefox でダウンロードした .html ファイルはどちらもダブルクリックすればそれぞれのアプリケーションで開く事が出来たんですね。
どうやっていたかというと、各ファイルが resource folk という名で知られる meta data 構造を、実データとは別に持っていたのですね。まぁそれはそれで、データ互換性などの問題を起こしましたが、上のような状況では、便利だったと思います。
それが Mac OS X になって、退化というか拡張子必須な感じになってしまっていや〜ん、だったんですけど、仕組み自体は残っているんですね(どうやってんのか知らないけど)。前振りが長くなりましたが、GetFileInfo / SetFile を使えば、昔懐かしの Filetype / Creator 属性を変えられます。( photoshp version 5 が BIN8 とか、Moview Player が MooV とか…)
例えば僕は PDF を見るのに Adobe Reader ではなく、Preview.app で見たい派なんですが、それでもたまに Safari の中で .pdf へのリンクをクリックして、しまったと思いつつ、Adobe Reader Plugin が立ち上がるのをまって、デスクトップに保存したりします(Adobe Reader は印刷の時に重宝するので、嫌いではないんだけど)。そういう書類を Preview.app でデフォルト起動させるにはどうしたらいいか?Finder で“情報を見る”から開くアプリを設定?めんどくさすぎる。コマンドラインで
SetFile -c prvw FILENAME.pdf
とすると次回からダブルクリックで Preview.app (Creator: prvw )を開くようになります。既存のファイルの情報は
GetFileInfo FILENAME.EXT
で調べられます。ただ今いくつかやってみたら、結構 Filetype / Creator ともに空欄なファイル多いですね。そういうときはデフォルトのアプリが開くようになってるのかな。
ちなみに SetFile / GetFileInfo ともに XCode をインストールすると一緒にインストールされる、 /Developer/Tools 下にあります。Path は通ってないのでフルパス記述か Path を通しましょう。
Say と At
同じ MacWiki::OSXの固有コマンド から見つけたのですが、say というコマンドがあるんですね。
say "Hello world"
などと Terminal で打つと、合成音声で話しかけてくれます。面白いのでいたずらしよう、という時に思い出したのが、At コマンド。Cron の一回キリ版、という感じでしょうか。
で、いろいろ試しても At コマンド動かないのね。例えば
at now
say "Hi"
(Ctrl-D)
とかすると atq で見られるジョブがたまる一方で、何にも吐き出さない。これは実は電源管理の観点から、Apple が意図的に止めていた、らしいのです(man at を参照)。同じくマニュアルに書いてありますが、どうしても使いたい人は、lauchctl コマンドで、起動時から /usr/libexec/atrun を起動してください、と書いてあります。
でも launchctl なんて知らないし、ちょっと…という人にお勧めなのが Lingon フリーでオープンの launchd 設定用の GUI、だそうです。
Lingon を使って、SystemDaemon の com.apple.atrun.plist を起動するようにする。そうしてようやく say を管理できるようになりました。…(この項続く)
Accelerate Your Key Typing!!
- Date
- 2007-06-02 (Sat)
- Category
- Mac OS X
僕ははっきり云ってタイプは速い方ではないんですが、それでもプログラマなんてやってる手前、速くタイプできた方が仕事が捗るのでいろいろ工夫はしています。パームレストがあるのとないのとでは大違いだし、キーボードもこの間 HappyHackingKeyboard Lite Mac 英語配列を日本で買ってきて、使い始めました。Panther (Mac OS X 10.3) 以降では Function キーがないのは少し不便なのだ、とか、Delete キーと Back Space キーの感覚が違うな、とかヴォリュームキーがないのはうぅむ、だとか…それでもキーマップ変更ツールがついていて、結構細かく対応できるので、大抵の事は何とかなります。まぁ馴れるでしょう。
それとプログラマ的に良くあるのは、Key Repeat の設定ですね。@IT の Linux Square の Linux Tips Index > キーのリピート速度と遅延時間を設定するには によれば…
同じキーを押し続けると、そのキーが連続で入力できる。連続で入力される速度を「リピート速度」、キーを押してからリピートを開始するまでの時間を「遅延時間」と呼ぶ。
Linux は上記ページのようにコマンドを使って設定します。Windows ではコントロールパネルのキーボードの項目で、設定できますが、kbdacc で更に速くするのが人気みたいですね。
では Mac ではどうするのでしょうか?システム環境設定 (System Preference) の Keyboard & Mouse で Keyboard という項目で設定できます。それでもスピードが足りない人はどうするのでしょうか?
[Mac] キーリピートを速くする方法 (Leo's Chronicle)
などによれば Terminal.app で、限界以上の設定が出来るみたいです。僕は
defaults write NSGlobalDomain KeyRepeat 1
defaults write NSGlobalDomain IntialKeyRepeat 1
としました。ただ他でみな云ってるように、Windows で、例えば kbdacc を使って出来るほど速く出来ないです。僕はそれでも、遅延速度がなくなったのはいい感じです。
というか、なにより新しいキーボードに変えたのが一番心地よいのですけれどね。あと、今気がつきましたが、キーボードのパッケージに付属よりも新しいドライバソフトが製造元のページにありました。
今まで実は Eject と Fn のキーコンビネーションが効かなかったのですが(そもそも 光学ディスクを使わなくなっているので、余り実害はなかったのですが)、更新したらなおりました。
MacFUSE に関していくつか試したこと
- Date
- 2007-01-20 (Sat)
- Category
- Mac OS X
slashdot やらあちらこちらで話題になっている MacFUSE。ユーザランドのファイルシステム、というのは例えば対応する(ファイル交換などの)プロトコルを、ファイルへの操作(開く、書き込み、消去など)へと変換することができる、ということです。Windows で使っている NTFS の読み書きができるようになることが、一番強調されているように見えますが(彼らの web にもあったし、スラドもそんな風潮でした)他にもいろいろあります … 一緒に盛り上がった友人はデフォルトでインストールされている sshfs を使ってリヴィングとは別部屋にある linux をストレージにして、wifi 経由で映画を見て感動してました。
この sshfs は web 開発者にもとても便利な機能に思えます。ローカルドライヴのようにマウントしておけば、ローカルで起動するテキストエディタからサーバーに直接保存することも可能なわけです。最近はどんな言語で開発しても、ローカルサーバで開発/実験/テストを全部やるのがはやっているみたいですが、sshfs を使えば、実際の deploy 環境を使うことができるかも!
最近 web 開発者が好んで使うテキストエディタには、たいてい簡単なファイルブラウザが内包されていると思います。僕は最近まで smultron でしたが、C O U L D のヤスヒサさんのプレゼンを見て、skEdit (と CSSEdit )に鞍替えしました。どちらにも階層ファイルブラウザがついていて、sshfs を通せば実際のサーバにあるファイルを直接ブラウズできます。
しかしまだ不完全な部分もあるみたいなので、その他の注意などを含めて箇条書きに。
- 接続は完全に ssh
ドキュメントはあまり用意されていませんが、バイナリのインストーラを使えば、普通の Mac アプリと同じようにクリックだけでインストールできるので迷うことはないと思います(KEXT なので要再起動)。で、唯一の使い方としては Wiki 上の Quick(er) Start Guide かな。
をやると分かりますが、基本的に ssh と一緒なので、パスワードの入力にプロンプトがかえってきます。秘密鍵を使って、つまり普段の ssh の接続もパスワードを使わないようにしておけば、多分パスワードもいらないのかな(そうすれば起動時にマウントとかもできそう)。sshfs user@host:/some/directory /some/mount/point -oping_diskarb,volname=<volname> - オプションを間違えると最悪 Finder を含めて落ちる
上の項目と関連してますが、オプションの volname を最初 volume って打っていて、terminal だけでなく Finder も固まりました。beta ソフトなので気をつけましょう。 - ファイルの上書きができない
ここから30分くらい触ってみた感触ですが、新規ファイルの作成はできます。terminal 上で touch したり vi で新規作成したりはできるし、skEdit とかで、新規保存はできます。でも、skEdit でサーバ上のファイルを開いて上書き保存ができない。あるいは、skEdit 上で書類を新規作成して、1回保存すると、2回目は保存できない。smultron も不可。手元にあった mi では保存できた(そのかわり読み込みも保存もめちゃくちゃ遅かった)。vi でローカルにマウントされている側を開いて、:ZZ と :w で保存はできるし、 :A,Bw>>FILE で追記も可。なんでかな?使ってる API の違いかしらん。ちなみに Finder では、上書きしようとすると、まず既存ファイルを .(dot) を頭につけて不可視にして、新規ファイルの書き込みをしているみたいでした。 - tail -f ができないので Console.app が使えない
最近 Console.app の使い勝手の良さに目覚めました。ので、サーバのログも Console.app で見られるといいなーと思ったのですが、どうもうまく見られません。Terminal でローカル側に tail -f したら Bus error とやらで見られませんでした。
いろいろあって現状ではだいぶ制限がありますが、今後に期待です。プロジェクトホームには Wiki も bug tracker もあるので、書き込んでみるのもいいかもしれません。オリジナルの FUSE が対応しているのは FUSEWiki: FileSystems にまとまっていて、今の所 MacFUSE で誰かが試して動いたのは Existing FUSE File Systems Tested With MacFUSE にまとまっているみたいです。
ちなみに参照した環境は1月20日2007年現在最新の MacFUSE-0.1.0b006.dmg です。
Mac OS X update と php
もうしばらく前ですが、Mac OS X 10.4.6 update を当てました。そうなるんじゃないかと思ってはいたのですが、削除したはずの php 4系がまた新たにインストールされていました。
以前のエントリに書いてある通り…
- /usr/lib/php
- /usr/include/php
- /usr/bin/php*
- /usr/bin/pear*
をどけます。ただこれだけでは、pear が動かないので、
ln -s /usr/local/lib/php /usr/lib/php
とする。メモ。