<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>不定期な記録 &#187; Mac</title>
	<atom:link href="http://borg4.vdomains.jp/~goro/diary/category/mac/feed" rel="self" type="application/rss+xml" />
	<link>http://borg4.vdomains.jp/~goro/diary</link>
	<description>WordPress 3.3.1 ja</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:06:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>gcc と clang</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2012/1548</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2012/1548#comments</comments>
		<pubDate>Tue, 17 Jan 2012 22:06:36 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1548</guid>
		<description><![CDATA[MacBook Pro を買い替え、 CPU が強化されたので楽しくなっていろいろ遊んでいます。で、 twitter を眺めていたら llvm なんて単語が並んでいて、ふと llvm-gcc と Clang ではどんな違...]]></description>
			<content:encoded><![CDATA[<p>MacBook Pro を買い替え、 CPU が強化されたので楽しくなっていろいろ遊んでいます。で、 twitter を眺めていたら llvm なんて単語が並んでいて、ふと llvm-gcc と Clang ではどんな違いがあるんだろう、と思って Emacs 23 + inline patch で遊んでみました。 <a href="http://sourceforge.jp/projects/macemacsjp/svn/view/inline_patch/trunk/?root=macemacsjp">inline patch</a> を当てた Emacs 23 は Clang ではビルドできないので<a href="http://borg4.vdomains.jp/~goro/tmp/emacs_inline_clang.patch">こんなパッチ</a>をあてる必要がある<span style="color: #999999;">(意味はわからんがエラーは回避できてる)</span>みたいですが、その状態で実験です。<br />
といっても本格的に Clang を使うのは面倒っぽい気がするので CC=gcc , CC=clang としてそれぞれ bootstrap するだけ、ですけど。</p>
<p><span id="more-1548"></span><br />
<code>goro@sara:~/work/emacs-23.3-gcc$ time (CC=<span style="background-color: #ffff00;">gcc</span> ./configure --with-ns --without-x;make bootstrap)<br />
( CC=gcc ./configure --with-ns --without-x; make bootstrap; ) 359.48s user 35.92s system 96% cpu <span style="background-color: #ffff00;">6:49.55 total</span></code><br />
<code>goro@sara:~/work/emacs-23.3-gcc$ time (CC=<span style="background-color: #ffff00;">gcc</span> ./configure --with-ns --without-x;make <span style="background-color: #ffff00;">-j8</span> bootstrap)<br />
( CC=gcc ./configure --with-ns --without-x; make -j8 bootstrap; ) 637.43s user 52.41s system 567% cpu <span style="background-color: #ffff00;">2:01.61 total</span></code><br />
<code>goro@sara:~/work/emacs-23.3-clang$ time (CC=<span style="background-color: #ffff00;">clang</span> ./configure --with-ns --without-x;make bootstrap)<br />
( CC=clang ./configure --with-ns --without-x; make bootstrap; ) 344.44s user 34.30s system 96% cpu <span style="background-color: #ffff00;">6:32.90 total</span></code><br />
<code>goro@sara:~/work/emacs-23.3-clang$ time (CC=<span style="background-color: #ffff00;">clang</span> ./configure --with-ns --without-x;make <span style="background-color: #ffff00;">-j8</span> bootstrap)<br />
( CC=clang ./configure --with-ns --without-x; make -j8 bootstrap; ) 634.69s user 51.22s system 580% cpu <span style="background-color: #ffff00;">1:58.15 total</span><br />
</code><br />
結論:並列ビルドすげー(笑)。ということで gcc よりも clang のほうが若干速いようですが、 Emacs であっても誤差でした。出来上がった Emacs.app について体感速度に違いはありません<span style="color: #888888;">(あったら bootstrap でもっと劇的な差がでるだろう)</span>ので敢えて clang を使う意味は…エラーメッセージがわかりやすいくらいかな?</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2012/1548/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacBook Pro (15-inch, late 2011)</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2012/1502</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2012/1502#comments</comments>
		<pubDate>Thu, 05 Jan 2012 22:31:30 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Aperture]]></category>
		<category><![CDATA[IYH]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1502</guid>
		<description><![CDATA[去年のアップルストアの初売りは値下げ対象の機種が限られていて非常にしょんぼりしたのだけど、今年は iMac/MacBook Pro/MacBook Air 全機種が値下げ対象、と豪毅なことをやってくれたので、奥様を説得し...]]></description>
			<content:encoded><![CDATA[<p>去年のアップルストアの初売りは値下げ対象の機種が限られていて非常にしょんぼりしたのだけど、今年は iMac/MacBook Pro/MacBook Air 全機種が値下げ対象、と豪毅なことをやってくれたので、奥様を説得して安い方<span style="color: #888888;">(MD318J/A)</span>の英語キーボードモデルを買いました。</p>
<p>ホントは Retina Display 採用とか光学ドライブ撤廃とかの噂がある次期モデルを待ちたかったのですが、</p>
<ul>
<li>Aperture 動かすとひたすらにレインボーカーソルぐるぐるな状態にイライラしていた</li>
<li>16GB(8GBx2)のメモリが現実的な値段になってきた</li>
<li>噂通りRetinaディスプレイになったらメモリ 16GB でも足りないんじゃない?<span style="color: #888888;">(Aperture 的に)</span></li>
<li>奥さんが使ってる MacBook のバッテリーが膨張っぷりがそろそろ真剣にヤバい</li>
</ul>
<p>というような理由で \8,400 引きで買えるのであれば新機種が出ても後悔はしないだろうと判断したわけです。</p>
<p><span id="more-1502"></span></p>
<p>普段はオンラインで買うのですが、オンラインは英語キーボードにしたモデルは 3 営業日で出荷なのに対し、電話してみたらリアル店舗には英語キーボードモデルの在庫があるってんで、新年早々渋谷まで行ってきました。実店舗で買うのは初めてなのですが、幼児がスーパーでお菓子を買ったかのような簡易包装に衝撃。</p>
<p><a href="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/mbp_box.jpg"><img class="aligncenter size-medium wp-image-1517" title="mbp_box" src="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/mbp_box-300x200.jpg" alt="" width="300" height="200" /></a></p>
<p>次回以降があるとしたらちゃんと大きい鞄を持っていこうと心に誓うことになりました(笑)。</p>
<p>さて、英語キーボードだけはキーボードの交換が簡単ではないノート PC を買う上で譲れないトコロなのですが、メモリと HDD はアップル様純正はあまりに高いので別途購入して自分で交換です。ということで別途買ったのは</p>
<ol>
<li>8GB メモリー x2</li>
<li><a href="http://www.seagate.com/www/ja-jp/products/laptops/laptop-hdd/">Momentus XT</a> 750GB</li>
</ol>
<p>の二つ。</p>
<p>メモリは買いかえる決心がついた要因の一つですからね。というか去年の夏に Mac mini を買い替えた時に 8GB にして満足していたのに、そこから更に倍かよ、と思わなくはないですが。<span style="color: #888888;">(ぶら下がってるユーザーが少ないとはいえ)</span>サーバー用途よりクライアント用途のほうがより多くのメモリを必要とするってのは古い人間としてちょっと複雑な気分です(苦笑)。</p>
<p>そして今回の買い替えの目玉がハイブリッド HDD である Momentus XT 。 普通の HDD と比べて価格が高いことと、容量が不足していたので興味があったものの手を出さずにいたのですが、気づけば 750GB のモデルが出ていたのと、本体と一緒に買ってしまえば価格差は誤差という錯覚(笑)を利用してついに導入です。起動は速いような気がしますが、そもそも標準の HDD で一切動かさずにこれに換装してるので、 Momentus XT のおかげで速くなってるのか、それとももともと速いのかの切り分けは出来ていません(する気もないけど)。</p>
<p>メモリ/HDDの交換方法が<a href="http://support.apple.com/kb/HT1270?viewlocale=ja_JP#link3">マニュアルに載ってる</a>あたり、時代が変わったなぁ、とか思うのですが、俺の中での比較対象は iBook G4 の HDD 交換なので今回も簡単でした。ネジの数的に MacBook Pro early 2008 より簡単で、 MacBook late 2007 よりは難しいって感じでしょうか。</p>
<p>ということでどーん。<br />
<a href="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/583d635764c764d730c66d2cd541a70e.png"><img class="aligncenter size-medium wp-image-1515" title="メモリ" src="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/583d635764c764d730c66d2cd541a70e-300x163.png" alt="" width="300" height="163" /></a><br />
今は亡き Mac World Expo で大容量 32MB のメモリが 8 万円という格安で売られるってんで買いに行ったら売り切れてて、 16MB のメモリを 4 万円で買って LC475 をトータル 20MB で使って満足していたのを思い出します(何)</p>
<p>ちなみにデータ移行は TimeMachine よりも早かろうと、ターゲットディスクモードの ealry 2008 をFireWire 800 で繋いで行いました。</p>
<p><a href="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/migrationassistant.jpg"><img class="aligncenter size-medium wp-image-1518" title="migrationassistant" src="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/migrationassistant-300x200.jpg" alt="" width="300" height="200" /></a>圧倒的な移行時間が表示されましたが、これは細かいファイルが大量にあるせいで、実際にはちゃんと一晩で完了しています。</p>
<p>移行後、早速 Aperture を動かしてみましたが実に快適。こうなるとこないだ買った <a href="http://www.sandisk.co.jp/products/compact-flash-card/sandisk-extreme-compactflash-card">San Disk Extreme</a> の速度を活かすためにも Thunderbolt 接続の CF カードリーダが欲しくなりますが、世の中にそんなアイテムはないんですよねー、残念。</p>
<p>それはさておき普段動かしっぱなしのアプリ + Aperture でこのメモリ使用量。</p>
<p><a href="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/6d8518339286240f9c0ab46582182cf2.png"><img class="aligncenter size-medium wp-image-1516" title="activity monitor" src="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2012/01/6d8518339286240f9c0ab46582182cf2-300x259.png" alt="" width="300" height="259" /></a></p>
<p>なのでそりゃ 4GB じゃストレス溜まるよ、というか、 8GB でもやっぱり足りないんじゃね、というか、 MacBook Air に乗り換えることが出来ない理由がまた一つという感じ。いや、 MacBook Air と Aperture という組み合わせが相容れないのだろうけども。</p>
<p>ということで買い替えには大満足な結果となりました。いつまで満足していられるか、というのはありますが、よっぽどのことがない限り、また 3 年ぐらいは使うのだと思います。ちなみに今まで使っていた early 2008 は奥様のメインマシンとなりました。で、奥様が使っていたバッテリ膨張中の MacBook はさようなら、の予定だったのですが、長男さんが</p>
<blockquote><p>じゃあそれは長男と長女さんが使うよ</p></blockquote>
<p>とのたまっておられるので頭を抱えています(苦笑)</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2012/1502/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lion(x86_64) で ruby19-migemo-0.40</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1471</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1471#comments</comments>
		<pubDate>Tue, 08 Nov 2011 13:51:25 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[pkgsrc]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1471</guid>
		<description><![CDATA[Lion になって困ったことのひとつが /usr/pkg/etc/mk.conf に ABI=64 と書いていると、 ruby-18-base の build に失敗すること。素で build すれば成功するので pkg...]]></description>
			<content:encoded><![CDATA[<p>Lion になって困ったことのひとつが /usr/pkg/etc/mk.conf に ABI=64 と書いていると、 ruby-18-base の build に失敗すること。素で build すれば成功するので pkgsrc がやってるなにかが悪いんでしょうけど、 ABI=32 だと build は通るので pkgsrc だけが悪いんじゃなさそう。で、 ABI=32 で作った ruby18-base を入れようとすると</p>
<blockquote>
<pre>pkg_add: Warning: package `ruby18-base-1.8.7.352' was built for a platform:
pkg_add: Darwin/i386 11.2.0 (pkg) vs. Darwin/x86_64 11.2.0 (this host)
pkg_add: 1 package addition failed</pre>
</blockquote>
<p>とか怒られてインストール出来ないので ruby18-base のアップデートが出来ないのです。</p>
<p><span id="more-1471"></span></p>
<p>ruby19-base なら問題なく build 出来るので、ここは一発 ruby19 に移行すべきなのですが、最早動かないと生きて行けないレベルの textproc/migemo が ruby19 に未対応なので、今まで我慢して Snow Leopard の時に build した ruby18 を使っていたのです。が、なにかの拍子に ruby18 を抜いてしまったので、せっかくだからと ruby19 対応の migemo を探すことにしました。</p>
<p>そしたら <a href="http://d.hatena.ne.jp/yshl/20090814/1250197679">ruby19 用の patch を書いている人を発見</a>!! なんだー、と拍子抜けしてこの patch を当てたのですが、何故か俺の Lion では動いてくれない。ということでいろいろ試行錯誤してみたらテキスト処理をしているところに force_encoding(&#8220;EUC-JP&#8221;) を足してあげれば大丈夫っぽいことが分かったので、俺の環境で動く patch を書いてみました。</p>
<p>前述の patch が当たっていることが前提ですが、こんな感じ。 tests で make check-TESTS すると 1 個だけコケ FAIL しますが、ざっと使った感じでは問題なく検索できてるので多分大丈夫でしょう、俺の環境限定ですが。</p>
<blockquote>
<pre>diff -ur migemo-0.40-ruby19/genchars.sh migemo-0.40-ruby19-pkgsrc/genchars.sh
--- migemo-0.40-ruby19/genchars.sh	2011-11-08 16:36:12.000000000 +0900
+++ migemo-0.40-ruby19-pkgsrc/genchars.sh	2011-11-08 15:51:50.000000000 +0900
@@ -1,6 +1,6 @@
 #! /bin/sh

-ruby -rromkan -nle 'head = $_.split[0]; if /^\w+$/ =~ head then puts head else roma = head.to_roma; puts roma, roma.to_kunrei end' migemo-dict |uniq&gt; tmp.ascii.words
+ruby -rromkan -nle 'head = $_.force_encoding("EUC-JP").split[0]; if /^\w+$/ =~ head then puts head else roma = head.to_roma; puts roma, roma.to_kunrei end' migemo-dict |uniq&gt; tmp.ascii.words

 # Get the top 500 frequent ngrams.
 for i in 1 2 3 4 5 6 7 8; do
diff -ur migemo-0.40-ruby19/migemo-convert.rb migemo-0.40-ruby19-pkgsrc/migemo-convert.rb
--- migemo-0.40-ruby19/migemo-convert.rb	2011-11-08 16:36:12.000000000 +0900
+++ migemo-0.40-ruby19-pkgsrc/migemo-convert.rb	2011-11-08 16:17:44.000000000 +0900
@@ -25,7 +25,7 @@
 puts ";;"
 lines = readlines
 while line = lines.shift
-  if /^;/ =~ line
+  if /^;/ =~ line.force_encoding("EUC-JP")
     puts line
   else
     lastline = line
@@ -36,9 +36,9 @@

 dict = [];
 while line = lines.shift
-  if /^(#{HIRAGANA}+)[a-z]? (.*)/ =~ line || /^(\w+) (.*)/ =~ line
+  if /^(#{HIRAGANA}+)[a-z]? (.*)/ =~ line.force_encoding("EUC-JP") || /^(\w+) (.*)/ =~ line.force_encoding("EUC-JP")
     head = $1
-    words = $2.split('/').map {|x|
+    words = $2.force_encoding("EUC-JP").split('/').map {|x|
       # remove annotations and elisp codes
       x.sub(/;.*/, "").sub(/^\((\w+)\b.+\)$/, "")
     }.delete_if {|x| x == ""}
diff -ur migemo-0.40-ruby19/migemo-dict.rb migemo-0.40-ruby19-pkgsrc/migemo-dict.rb
--- migemo-0.40-ruby19/migemo-dict.rb	2011-11-08 16:36:12.000000000 +0900
+++ migemo-0.40-ruby19-pkgsrc/migemo-dict.rb	2011-11-08 16:26:26.000000000 +0900
@@ -1,3 +1,4 @@
+# -*- encoding:euc-jp -*-
 #
 # Ruby/Migemo - a library for Japanese incremental search.
 #
@@ -38,7 +39,7 @@

   private
   def decompose (line)
-    array = line.chomp.split("\t").delete_if do |x| x == nil end
+    array = line.force_encoding("EUC-JP").chomp.split("\t").delete_if do |x| x == nil end
     key = array.shift
     values = array
     raise if key == nil
@@ -83,7 +84,7 @@
 class MigemoUserDict &lt; MigemoDict
   def initialize (filename)
     super(filename)
-    @lines = @dict.readlines.delete_if {|x| /^;/ =~ x}.sort
+    @lines = @dict.readlines.delete_if {|x| /^;/ =~ x.force_encoding("EUC-JP")}.sort
   end

   def lookup (pattern)
diff -ur migemo-0.40-ruby19/migemo-index.rb migemo-0.40-ruby19-pkgsrc/migemo-index.rb
--- migemo-0.40-ruby19/migemo-index.rb	2011-11-08 16:36:12.000000000 +0900
+++ migemo-0.40-ruby19-pkgsrc/migemo-index.rb	2011-11-08 15:27:49.000000000 +0900
@@ -16,7 +16,7 @@
 #
 offset = 0
 while line = gets
-  unless line =~ /^;/
+  unless line.force_encoding("EUC-JP") =~ /^;/
     print [offset].pack("N")
   end
   offset += line.bytesize</pre>
</blockquote>
<p>これだけだとつまらない(?)ので、 textproc/migemo に<a href="http://borg4.vdomains.jp/~goro/tmp/pkgsrc_ruby19-migemo.patch.gz">対する patchも作ったので不法投棄</a>。ホントはちゃんと send-pr すべきなんだろうけど、元の patch のライセンスがよくわからないのと、この patch が本当に必要なのかもわかんないのでこんな形で公開してみました。</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1471/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>誰かがわかるネットワークアカウント</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1409</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1409#comments</comments>
		<pubDate>Tue, 06 Sep 2011 12:44:01 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[Lion Server]]></category>
		<category><![CDATA[Open Directory]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1409</guid>
		<description><![CDATA[Mail.app で SSO できない問題は、最初は解決しようと頑張るつもりだったんですが、 Mail.app 依存の問題と判明した時点で解決する気が失せました。 今分かってる問題は AltSecurityIdentit...]]></description>
			<content:encoded><![CDATA[<p>Mail.app で SSO できない問題は、最初は解決しようと頑張るつもりだったんですが、 Mail.app 依存の問題と判明した時点で解決する気が失せました。</p>
<p>今分かってる問題は AltSecurityIdentities を書き換えちゃうと Mail.app で SSO 出来なくなる、というもの。なんで AltSecurityIdentities を書き換えたいかと言えば <span style="background-color: #ffff00;">untitled_1</span>@HYRULE.JP なんてダサい値が設定されているから。であれば解決策は真っ当な AltSecurityIdentities が設定される方法でネットワークアカウントを登録するに決まりでしょう(ホントかな…?)。</p>
<p>であれば実験あるのみ。</p>
<p><span id="more-1409"></span></p>
<ul>
<li>Workgroup Manager.app<br />
やるまでもなくアウト、というかこれがダメだっつー話だからなぁ</li>
<li>Directory Utility.app<br />
ちまちまといろんな属性を手動で登録する必要があるのでダルい。必要そうな属性を登録してみたけど SSO 出来なかった。けど、ツールが悪いのか登録内容が足りてないのかは不明</li>
<li>dscl<br />
Directory Utility.app と同じ</li>
<li>System Preferences.app<br />
ネットワークアカウントも表示されるんで期待したんだけど、ここで作成されるのはローカルアカウントのみの様子。</li>
<li>Server.app<br />
System Preferences.app と同様アカウントの種類が選べないのでこれもローカルアカウントが作成されるのかなー、と期待しないで作ったら華麗にネットワークアカウントが作成されました。 AltSecurityIdentities も期待通りの値が入っていて、これならイケる、と思ったものの SSO が出来ないという…モバイルアカウントの設定を Workgroup Manager.app からやらないとイケナイのもあるのでこれまたダメ。</li>
</ul>
<p>ということで、 Mail.app で SSO したいのなら普段見えないとはいえ AltSecurityIdentities がダサい値になってるのを我慢しないとイケナイという結論に…。</p>
<p>ま、 Mail.app を諦めて Thunderbird やその他 Kerberos 認証に対応した MUA を使いなさい、というのが正解なのでしょう…。</p>
<p><ins datetime="2011-10-22T05:18:52+00:00">その後 Lion 10.7.2 にあげたところ、 Mail.app も改善されたらしく Kerberos 認証が出来るようになっていたのでした。よかったよかった</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1409/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mail.app と Dovecot の Kerberos 認証のナゾ</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1384</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1384#comments</comments>
		<pubDate>Tue, 06 Sep 2011 12:43:13 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[Lion Server]]></category>
		<category><![CDATA[Open Directory]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1384</guid>
		<description><![CDATA[Lion Server にはアカウントを登録する方法が無駄に豊富に用意されています。ざっと思いつくいたのを並べると Workgroup Manager.app (Server Admin についてる) Directory...]]></description>
			<content:encoded><![CDATA[<p>Lion Server にはアカウントを登録する方法が無駄に豊富に用意されています。ざっと思いつくいたのを並べると</p>
<ul>
<li>Workgroup Manager.app (<a href="http://support.apple.com/kb/DL1419?viewlocale=ja_JP">Server Admin</a> についてる)</li>
<li>Directory Utility.app (/System/Library/CoreService にある)</li>
<li>Server.app</li>
<li>System Preferences.app (システム環境設定ね)</li>
<li>dscl (コマンドライン)</li>
</ul>
<p>という具合。</p>
<p>で、 Workgroup Manager.app を使ってネットワークアカウントを作成して使ってたんですが、ふと dscl を使って作ったアカウントを見てみたら</p>
<blockquote>
<pre>AltSecurityIdentities: Kerberos:<span style="color: #ff0000;">untitled_1</span>@HYRULE.JP</pre>
</blockquote>
<p>なんてダッサいことになっていたのです。 Workgroup Manager.app でアカウントを作ると最初に「名称未設定」が入ってるのですが、どーやらそれが残っちゃうのでしょうね。</p>
<p><span id="more-1384"></span></p>
<p>で気になって他のアカウントを見ると AltSecurityIdentities は全部 Kerberos:untitled_1@HYRULE.JP で統一されているというダサさ。これは修正しなきゃだなぁ、と</p>
<blockquote>
<pre>dscl -u diradmin /LDAPv3/127.0.0.1 -change /Users/goro AltSecurityIdentities Kerberos:untitled_1@HYRULE.JP Kerberos:goro@HYRULE.JP</pre>
</blockquote>
<p>という具合に修正かましてみました。</p>
<p>で、 Kerberos とか書いてあると Kerberos 認証というか SSO <span style="color: #999999;">(シングルサインオン)</span>になんらかの影響がありそーだなぁ、といくつか試してみたところ、 Mail.app で SSO 出来なくなっていたのです!</p>
<p>正確には、 SSO 出来ないのは IMAP だけで、 SMTP 認証は全く問題ないというさっぱりな状況。で IMAP は Dovecot 、 SMTP は postfix なので、 Dovecot  側の問題なのかなーとログを確認してみたら</p>
<blockquote>
<pre>imap-login: Disconnected: Input buffer full (no auth attempts):</pre>
</blockquote>
<p>なんてなエラーを発見。この文字でググったところ Dovecot 1.2.1 の頃にあった問題らしいのですが、 2 年ぐらい過去の話で Dovecot 2 では問題なさそう、というか変えるまでは動いてたしな!</p>
<p>参考になるかなー、と <a href="http://wiki2.dovecot.org/FrontPage">Dovecot 2 wiki </a>の <a href="http://wiki2.dovecot.org/Authentication/Kerberos">Authentiction/kerberos </a>を読みながら Lion Server の Dovecot の設定を眺めてみたんだけど該当しそうな問題点はなし。ただ、 Mail.app 以外にも Kerberos 認証(GSSAPI)に対応した MUA があるっぽいし、 <a href="http://wiki2.dovecot.org/Authentication/Kerberos">Authentiction/kerberos</a> には <a href="http://www.mutt.org/">mutt</a> で動作確認とかやってるんで、じゃあ手軽に試せるものってことで <a href="http://mozilla.jp/thunderbird/">Thunderbird</a> を Kerberos 認証を試してみたところ!</p>
<p>さくっと認証されました。え? なに? Mail.app の問題だったの? Apple 純正の組み合わせなのに!?</p>
<p>ちなみに SSO 出来なくなると</p>
<blockquote>
<pre>dscl -u diradmin /LDAPv3/127.0.0.1 -change /Users/goro AltSecurityIdentities Kerberos:goro@HYRULE.JP　Kerberos:untitled_1@HYRULE.JP</pre>
</blockquote>
<p>と戻しても状況は改善しない素敵仕様(ただし Mail.app 限定)。いったいなにがどうなっているんだ…というところで<a href="http://borg4.vdomains.jp/~goro/diary/2011/1409">次回</a>に続く</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1384/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Directory と DHCP</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1415</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1415#comments</comments>
		<pubDate>Mon, 29 Aug 2011 20:34:42 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Lion Server]]></category>
		<category><![CDATA[Open Directory]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1415</guid>
		<description><![CDATA[前に dhcpd として動く bootpd と Dynamic DNS の連携ができない、と書いたのだけど、 Apple 様が考える名前解決の流れを理解したような気がするのでメモ。 きっかけは未練がましく bootpd ...]]></description>
			<content:encoded><![CDATA[<p>前に<a href="http://borg4.vdomains.jp/~goro/diary/2011/1244"> dhcpd として動く bootpd と Dynamic DNS の連携ができない</a>、と書いたのだけど、 Apple 様が考える名前解決の流れを理解したような気がするのでメモ。</p>
<p>きっかけは未練がましく bootpd の man を読んでたことなんですが、こんな記載を見つけたのです。</p>
<blockquote>
<pre>use_open_directory  (Boolean) If this property is set to true,
                    <strong>bootpd</strong> will look for static IP address to eth-
                    ernet address bindings in <strong>Open Directory</strong>. Then
                    default value is true.</pre>
</blockquote>
<p>これはちょっと試してみないと!</p>
<p><span id="more-1415"></span> ということで Workgroup Manager.app で登録済みの Mac を表示して、ネットワークを表示させるとこんな具合。</p>
<p><a href="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2011/08/wgm.png"><img class="aligncenter size-medium wp-image-1422" title="wgm" src="http://borg4.vdomains.jp/~goro/diary/wp-content/uploads/2011/08/wgm-300x227.png" alt="" width="300" height="227" /></a> Ethernet ID は Mac を入れればいいとして、 IP アドレスは DHCP から割り振られるんだから入力する必要ないよなー、と今まで放置していたのだけど。</p>
<p>せっかくテストするんだからと DHCP の割当レンジが 192.168.0.51-100 となっている中 192.168.0.21 を入力して保存。その後ネットワークから DHCP リースを更新、をクリックすると 192.168.0.21 が割り振られたのでした。気持ち悪いッ!(笑)</p>
<p>Open Directory で設定した IP が DHCP 経由で Mac に割り当てられるのはいいとしても、名前は DNS に反映されないので、 Open Directory に設定した名前と IP の組み合わせをひとつひとつ DNS に登録する必要はあるのですが、一応クライアント側でなにもしないでも名前解決が出来るようになる、という目標は達成できたような気がします…?</p>
<p>というか、これだと結局 DHCP の静的マップを使うのと何ら違いはない気がするんだけど、そこら辺どーなんだろう? クライアントの設定を配るためには Open Directory へのクライアントの登録が必要で、であれば Open Directory でまとめて設定してしまえば楽で、しかもクライアントをキッチリ管理できる? でも拠点毎にサブネットが違うとか有線と無線でサブネットが違うとかゆーネットワークの場合、この設定を入れることで余計にハマる気がするんだよなぁ。ここら辺を解説した書籍なり開発者からのコメントなりなんなりがあったら読みたいところデス。</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1415/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>続・Apertureプロジェクトの自動分割</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1385</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1385#comments</comments>
		<pubDate>Fri, 26 Aug 2011 13:29:16 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Aperture]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1385</guid>
		<description><![CDATA[Aperture スレに触発されて前に書いて放置しといたスクリプトの高速化にトライしてみました。 ハッシュ大好きっ娘なのでそれに近いものがないかなー、と調べたら AppleScript ではレコードというものがハッシュ相...]]></description>
			<content:encoded><![CDATA[<p>Aperture スレに触発されて<a href="http://borg4.vdomains.jp/~goro/diary/2011/1055">前に書いて放置しといたスクリプト</a>の高速化にトライしてみました。</p>
<p>ハッシュ大好きっ娘なのでそれに近いものがないかなー、と調べたら AppleScript ではレコードというものがハッシュ相当らしい。んだけど、 list で俺がやりたいことはできたので</p>
<ul>
<li>プロジェクトの一覧を取得したときに既存プロジェクトの名前を list に突っ込む(初回のみ)</li>
<li>写真を読むごとに list と比較してマッチしなければプロジェクトを作成</li>
</ul>
<p>としてみました。高速化、というよりはプロジェクト/写真が多くなったときに遅くならない、という方向ですけどね。</p>
<p><span id="more-1385"></span></p>
<p>で動かしてみたところ、確かに速くなったんだけど、一番条件が良くて 90 秒かかっていたものが 60 秒に縮んだぐらい? 期待よりも速くなってないというか写真一枚につき 1 秒以上かかってるようじゃなぁ。</p>
<p>ついでに選んだ写真の中に RAW が入ってると EXIF が取得できなくて止まっちゃうというバグもハッケソしてしまい、なんだかいやーな気分になってしまいました。せっかくだから公開するけどもっ!</p>
<pre>tell application "Aperture"
  set imageSel to (get selection)
  set checkprojects to false
  if imageSel is {} then
    error "Please select an image."
  else
    set imgdate to ""
    repeat with i from 1 to count of imageSel
      tell (item i of imageSel)
        if not (imgdate is equal to value of EXIF tag "ImageDate") then
          set imgy to round (value of EXIF tag "CaptureYear") as number
          set imgm to round (value of EXIF tag "CaptureMonthOfYear") as number
          set imgd to round (value of EXIF tag "CaptureDayOfMonth") as number
          if length of (imgm as string) = 1 then
            set imgm to "0" &amp; imgm
          end if
          if length of (imgd as string) = 1 then
            set imgd to "0" &amp; imgd
          end if
          set projname to (imgy as string) &amp; "年" &amp; (imgm as string) &amp; "月" &amp; (imgd as string) &amp; "日"
          set imgdate to value of EXIF tag "ImageDate"
        end if
      end tell
      tell library 1
        if checkprojects is false then
          set projlist to {}
          set projSel to get name of every project
          repeat with existProj in projSel
            set projlist to projlist &amp; {contents of existProj}
          end repeat
          set checkprojects to true
        end if
        if projlist does not contain projname then
          make new project with properties {name:projname}
          set projlist to projlist &amp; {projname}
        end if
      end tell
      move item i of imageSel to project projname
    end repeat
  end if
end tell</pre>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1385/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Directory 四苦八苦</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1375</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1375#comments</comments>
		<pubDate>Sat, 20 Aug 2011 14:42:52 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[Lion Server]]></category>
		<category><![CDATA[Open Directory]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1375</guid>
		<description><![CDATA[なにが Open なんだかよくわからない Lion Server のディレクトリサービスですが、 Open LDAP + Heimdal + Apple Password Server の組み合わせ、を Open Dir...]]></description>
			<content:encoded><![CDATA[<p>なにが Open なんだかよくわからない Lion Server のディレクトリサービスですが、 Open LDAP + Heimdal + Apple Password Server の組み合わせ、を Open Directory と呼んでいるようです。メールサービスと同じように適当に GUI からほげほげとデフォルト値のまま弄っていけば、死ぬ程面倒な Open LDAP がすんなりと構成されるってところが素晴らしい。…そこから先が死ぬ程面倒なので商用ベースであればやっぱり AD 選択するのは必然だよねー。いや AD だって面倒なんだけどシェアがある分ノウハウも貯まっているいるからいいって話だけど。</p>
<p><span id="more-1375"></span></p>
<p>最初にハマったのは kerberos 。なんでかわかんないけど ldap と Password Server は動いてるのに kerberos だけが stopped になってしまう…。と悩んでいたらセットアップのときに realm だけをデフォルト値のホスト名からドメイン名に変更したんだけど、それがマズかったらしく、そこを変えた場合は下の LDAP 検索ベースを変えなきゃイケナイという話だったのでした。</p>
<p>次にハマったのがクライアントの設定。認証サーバーを選ぶところがあるんだけどそこで SSL を利用する、しないというオプションがあり、ちゃんと SSL 使ってるので利用するぜ、としていたんだけどそのあとに証明書を信用するかどうかっつーダイアログが出ていて、ちゃんととった証明書だしってことで信用していたんだけど、これを信用しないにしないとちゃんと設定ができない、という…。詳しくはアップル &#8211; サポートの「<a href="http://support.apple.com/kb/TS3958?viewlocale=ja_JP">Lion Server：SSL を実行する Lion Open Directory サーバをバインドするときに「サーバの追加ができません」というメッセージが表示される</a>」…ってちっとも詳しく書いてないし!!</p>
<p>さて、弄って初めて分かったことですが、Lion Server ではネットワークアカウントだろうがローカルアカウントだろうが、等しく  GeneratedUID と UniqueID が割り振られます。で、ネットワークアカウントとローカルアカウントの違いはデータがどこにストアされているかどうかだけ、なので GeneratedUID はたぶん大丈夫ですが、 UniqueID は所謂 uid なのでバリバリぶつかります。さらに、アカウント名は Windows と違ってネットワークアカウントとローカルアカウントの差がつけられません<span style="color: #888888;">(命名規則を付ければいいんでしょうけど)</span>。かといってローカルアカウントをネットワークアカウントに変更する方法は<span style="color: #888888;">(今のところ)</span>見つけられていないので今まで使っていたアカウントのまま Kerberos による SSO を実現するにはどーしたらいいのやら…。結局力技で対処したので別記事にします。</p>
<p>もう一つ、順調に Zombie プロセスが殺せないまま着々と増えていったので、仕方ないから再起動をかまそうとしたところ、再起動すらできなくなって電源ボタン長押しの強制シャットダウンを行ったところ、それを機に Open Directory が壊れたらしく、ローカルアカウントで入って Open Directory 再設定という楽しいイベントにも遭遇しました。…バックアップって大事! ということで <a href="http://www.macresearch.org/tutorial-backup-your-open-directory-server-using-launchd">Tutorial: Backup Your Open Directory Server Using Launchd</a> を参考に毎日 Open Directory のバックアップも取るようになりました。結構前に書かれたっぽいページですが、 Lion Server でもちゃんとバックアップがとれているように見えます。リストアのテストやってないからわかんないけど!(笑)</p>
<p>以下おまけ</p>
<p>ローカルユーザー一覧</p>
<blockquote>
<pre>dscl . -list /Users</pre>
</blockquote>
<p>ローカルユーザー詳細</p>
<blockquote>
<pre>dscl . -read /Users/username</pre>
</blockquote>
<p>ローカルユーザー変更</p>
<blockquote>
<pre>dscl . -change /Users/username Attribute before after</pre>
</blockquote>
<p>ネットワークユーザー一覧</p>
<blockquote>
<pre>dscl /LDAPv3/127.0.0.1 -list /Users</pre>
</blockquote>
<p>ネットワークユーザー詳細</p>
<blockquote>
<pre>dscl /LDAPv3/127.0.0.1  -read /Users/username</pre>
</blockquote>
<p>ローカルユーザー変更</p>
<blockquote>
<pre>dscl -u directoryadminaccount /LDAPv3/127.0.0.1 -change /Users/username Attribute before after</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1375/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>automountable afp share point &#124; 自動マウント可能な AFP 共有ポイント</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1368</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1368#comments</comments>
		<pubDate>Fri, 19 Aug 2011 10:53:40 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Lion Server]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1368</guid>
		<description><![CDATA[Lion Server を弄っていて試してみたかったのがホームフォルダをサーバー側に置くタイプのネットワークアカウント。有線で使ってる分にはありかなぁ、と思うのだけど我が家では基本無線 LAN なのでやる意味はないと思う...]]></description>
			<content:encoded><![CDATA[<p>Lion Server を弄っていて試してみたかったのがホームフォルダをサーバー側に置くタイプのネットワークアカウント。有線で使ってる分にはありかなぁ、と思うのだけど我が家では基本無線 LAN なのでやる意味はないと思うんだけどね。</p>
<p><span id="more-1368"></span></p>
<p>まぁ、それはともかく 10.6 のガイド読みながら設定しているんだけど、どうしてもクライアント側の /Network/Servers には出てこない。10.6 の Server Admin.app と 10.7 の Server Admin.app で共有設定の UI が変わったっぽいのでそれが原因かなー、とか思いながら <a href="http://www.google.co.jp/search?client=safari&amp;rls=en&amp;q=lion+server+automountable&amp;ie=UTF-8&amp;oe=UTF-8&amp;redir_esc=&amp;ei=_DhOTs-sOIGYmQXPlfjRBg">automountable Lion Server でググって</a>もそれっぽいのはヒットしない。ので挫折しようと思った矢先にふと <a href="http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;client=safari&amp;rls=en&amp;q=lion+%22%2Fnetwork%2Fservers%22&amp;oq=lion+%22%2Fnetwork%2Fservers%22&amp;aq=f&amp;aqi=&amp;aql=&amp;gs_sm=e&amp;gs_upl=1576l1576l0l1843l1l1l0l0l0l0l164l164l0.1l1l0">lion &#8220;/network/servers&#8221; でググったら</a> 「<a href="http://support.apple.com/kb/TS3889?viewlocale=ja_JP">Open Directory のメンバーである Lion Server に、自動マウントを作成できない</a>」なんてな記事を発見。</p>
<blockquote>
<h2>現象</h2>
<p>ディレクトリサーバに接続しているサーバ上で、Lion Server の Server.app の「ホームディレクトリを使用可能にする」オプションは選択できるが、マウントレコードが作成されない。その後、オプションを選択解除できなくなる。</p></blockquote>
<p>こ! れ!! だ!!!</p>
<p>早速ディレクトリユーティリティを動かして、記事にあるようにサーバー名と共有フォルダだけ変えて保存したところ、瞬時にクライアントの /Network/Servers に設定した共有フォルダが表示されました。</p>
<p>…うん、前から薄ら薄ら勘づいてはいたんだけど、これで確信した。テストしてないだろ、これ(大笑)</p>
<p>俺は趣味でやってるからいいけど、仕事でこんなの請け負ってたら胃に穴が空くよなー</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1368/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SpamAssassinの調教</title>
		<link>http://borg4.vdomains.jp/~goro/diary/2011/1358</link>
		<comments>http://borg4.vdomains.jp/~goro/diary/2011/1358#comments</comments>
		<pubDate>Thu, 18 Aug 2011 23:59:43 +0000</pubDate>
		<dc:creator>ごろ～</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Lion Server]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://borg4.vdomains.jp/~goro/diary/?p=1358</guid>
		<description><![CDATA[メール環境を移行した結果、 spam フィルターを、 Mew がサポートしてるからという理由で使っていた bogofilter から SpamAssassin に移行したのです。が、特性の問題だと思うんだけど、そのままで...]]></description>
			<content:encoded><![CDATA[<p>メール環境を移行した結果、 spam フィルターを、 Mew がサポートしてるからという理由で使っていた bogofilter から SpamAssassin に移行したのです。が、特性の問題だと思うんだけど、そのままでは SpamAssassin が bogofilter に比べて spam 判定が甘い! ということで俺好みの判定が出来るように頑張ってみました。</p>
<p><span id="more-1358"></span>まずは spam を学習させないと、ということで調べたら sa-learn というコマンドをウチの環境ではメールサーバー上で使うみたい。こんなこともあろうかと今まで受信してきた spam は残してあるので、それを sa-learn に spam として食わせて、あとは inbox に残ってるメールを ham として食わせればおっけーかな、と試そうとしたら、そもそもサーバー上の Maildir は _dovecot にしか読み書き権限がないので一般ユーザー権限で shell から読み込ませることは出来ないという罠が仕組まれていました。</p>
<p>仕方が無いのであんまりやりたくないんだけど、こんな感じ</p>
<blockquote>
<pre>sudo -s
sa-learn --showdots --spam --nosync /Server/Mail/Data/mail/XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX/.bogofilter/001</pre>
</blockquote>
<p>これである程度なんとかなるかなー、と思ったら相変わらず SPAM が inbox に配送されてくる。うーん? と思ってログを漁ってみたら</p>
<blockquote>
<pre>Aug 11 06:01:52 flora org.amavis.amavisd[33945]: bayes: cannot open bayes databases /var/amavis/.spamassassin/bayes_* R/O: tie failed: Permission denied</pre>
</blockquote>
<p>root で spam/ham を学習させたので、 _amavis に DB の読み書き権限がないので学習させた意味が無いという酷い展開でした…。仕方ないので文句言われた /var/amavis/.spamassassin を _amavis に chown して学習を継続。そしたら一時的にマシになったんだけど、どっかのタイミングで精度が落ちちゃう。んー、と思ったらどっかのタイミングで /var/amavis/.spamassassin の所有者が root に戻っちゃって、上で出ていたのと同じエラーが起きちゃっていたのでした…。どのタイミングで所有者が変わるか分からないけど、こんなの監視してられない。だったら! ということで覚えたての launchd にお任せすべく、こんな plist を書いてみました。</p>
<blockquote>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
        &lt;key&gt;Label&lt;/key&gt;
        &lt;string&gt;jp.hyrule.flora.bayes_toks&lt;/string&gt;
        &lt;key&gt;ProgramArguments&lt;/key&gt;
        &lt;array&gt;
                &lt;string&gt;chown&lt;/string&gt;
                &lt;string&gt;_amavisd&lt;/string&gt;
                &lt;string&gt;/var/amavis/.spamassassin/bayes_toks&lt;/string&gt;
        &lt;/array&gt;
        &lt;key&gt;WorkingDirectory&lt;/key&gt;
        &lt;string&gt;/var/amavis&lt;/string&gt;
<span style="color: #ff0000;">        &lt;key&gt;WatchPaths&lt;/key&gt;
        &lt;array&gt;
                &lt;string&gt;/var/amavis/.spamassassin/bayes_toks&lt;/string&gt;
        &lt;/array&gt; </span>
&lt;/dict&gt;
&lt;/plist&gt;</pre>
</blockquote>
<p>赤字の部分がキモで、指定したファイルに変化がある度にプログラム<span style="color: #999999;">(この場合は chown )</span>が動くようです。これを仕掛けて以降 DB の所有者が変わることによるエラーは出なくなった様子。</p>
<p>ちなみに Apple 推奨の spam 学習方法は junkmail と notjunkmail というアカウントを作って、そこに spam や ham を送るというもの、で /private/etc/mail/spamassassin/learn_junk_mail.sh が呼ばれてるみたい。中身を確認したらやっぱり sa-learn を呼んでいるんだけど、</p>
<blockquote>
<pre># Has the junk-mail user account been created
if [ -d "$JUNK_MAIL_PATH" ]
then
  echo "Learning what is junk mail"
  find "$JUNK_MAIL_PATH/cur" "$JUNK_MAIL_PATH/new" -type f -print | while read f
ile
  do
    echo "--- sudo -u _amavisd $SA_LEARN_PATH --dbpath $DB_PATH --spam --no-sync
 &lt; $file"
    sudo -u _amavisd $SA_LEARN_PATH --dbpath $DB_PATH --spam --no-sync &lt; "$file"
 &gt; /dev/null
  done
fi</pre>
</blockquote>
<p>という具合に sa-learn 自体は _amavis に実行させているので、俺も最初っからこーやるべきだったんでしょう(苦笑)</p>
<p>学習させたから、これでバッチリ、と思ったんだけど、相変わらず spam は SpamAssassin をすり抜けて inbox に配送されてきます。Server Admin.app の迷惑メールの最小スコアは最強に近い 5 に設定しているのになんでー、とすり抜けてみたメールを確認したところ</p>
<blockquote>
<pre>X-Spam-Status: No, score=4.167 tagged_above=2 required=5 tests=[<span style="color: #ff0000;">BAYES_99=3.5</span>, LOTS_OF_MONEY=0.001, SPF_SOFTFAIL=0.665, WEIRD_QUOTING=0.001]   autolearn=no</pre>
</blockquote>
<p>と。</p>
<p>つまりせっかく迷惑メールを学習させて、学習結果からほぼこれは spam ですよ、という結果が出ているのにも関わらず spamassassin は学習結果だけを利用して spam 判定をしていない、のでこんな結果になっていたという。</p>
<p>どーしたもんか、とググったら <a href="http://tach.arege.net/trac/wiki/SpamAssassin">SpamAssassin – TachTrac </a>に俺が知りたかった設定が載っていたので、この score をパクってみたところ、よーやく spam がすり抜けないよーになったのでした。長かった…</p>
]]></content:encoded>
			<wfw:commentRss>http://borg4.vdomains.jp/~goro/diary/2011/1358/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

