<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>PC日記</title>
        <link>http://www.wizard-limit.net/mt/pc/</link>
        <description>PCに関するもろもろもろ・・・</description>
        <language>ja</language>
        <copyright>Copyright 2012</copyright>
        <lastBuildDate>Tue, 10 Apr 2012 22:59:06 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        
        
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/wizard-limit/mt/pc" /><feedburner:info uri="wizard-limit/mt/pc" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
            <title>ホームビデオを公開するには(2)</title>
            <description>以前、&lt;a href="/mt/pc/archives/004022.html"&gt;ホームビデオを公開するには - PC日記&lt;/a&gt;と言うエントリを書いたのだけれど、その後メインPCをMacに変えたりしたので、状況が変わってきた。&lt;br/&gt;
また、子供の動画を見せる両親も、PCからiPadに変えようか的な話も出てきたので、今までのようにflvにしてflash playerで再生と言うのでは都合が悪くなってきた。&lt;br/&gt;
そこで、どうせならHTML5のvideoタグでなんとかできないの?と思って調べてみたが、今のところまだまだ絶望的らしい。(ちなみに、iMovieで出力したm4v(H.264)の動画を試しにvideoタグで置いてみたところ、手元で見られたのはChromeとiPadだけだった)&lt;br/&gt;
そこで、適当に調べてみたところ、&lt;a href="https://github.com/etianen/html5media"&gt;etianen/html5media&lt;/a&gt;と言うものを発見。&lt;br/&gt;
これは、htmlのheadの中に
&lt;pre class="textfile"&gt;
&amp;lt;script src="http://api.html5media.info/1.1.5/html5media.min.js"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/pre&gt;
と書いておくだけで、HTML5のvideoタグとかをブラウザに合わせて良きに計らってくれるらしい。&lt;br/&gt;
たとえば、ChromeとかiPadで見ると、普通にvideoタグのままブラウザに渡してくれて、FirefoxみたいにH.264に対応していない場合は Flowplayer に渡してくれると言う感じ。&lt;br/&gt;
外部のスクリプトをそのまま埋め込むのは微妙に危険があるので、気になる場合はローカルに持ってきた方が良いかもしれない。(持ってきて、中をチェックする根性がある場合は)&lt;br/&gt;
ちなみに、なぜか video タグにも H.264 にも対応しているはずの IE9 では見ることができなかった。(IE 6/7/8は試していない。)&lt;br/&gt;
と、言うわけで、今後はvideoタグで行くことにする。&lt;br/&gt;
ちなみに、書いたvideoタグは以下のような感じ。
&lt;pre class="textfile"&gt;
&amp;lt;video controls width="720" height="540"&amp;gt;
&amp;lt;source src="path_to_movie.m4v"&amp;gt;
&amp;lt;/video&amp;gt;
&lt;/pre&gt;
&lt;br/&gt;
そうそう、これだけだとあまりに情報がないので、一応WindowsからMacになって、m4vからflvに変換するのに、mencoderとか使えないので、MacPortsで入れた ffmpeg を使うことにした。&lt;br/&gt;
&lt;pre class="commandline"&gt;
ffmpeg -i original.m4v -b 1.6M converted.flv
&lt;/pre&gt;
のようにすると、original.m4v を、1.6Mbpsで converted.flv に変換してくれる。解像度とかを変えたい場合はそれなりのオプションを追加する形で。(ちなみに、以前使っていた600kbpsだと、iPhone4Sの動画の解像度だと厳しすぎたので、1.6Mくらいでやっと見られる感じ)</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/rXsIMOnpLNo/004715.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004715.html</guid>
            
            
            <pubDate>Tue, 10 Apr 2012 22:59:06 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004715.html</feedburner:origLink></item>
        
        <item>
            <title>org-mode使い始め</title>
            <description>MacのEvernoteがどうも重い気がして気軽に使えないので、軽くて簡単に使えるメモを探していた。&lt;br/&gt;
emacs使いなので、emacsで使えるものを考えてみる。以前、一度&lt;a href="http://howm.sourceforge.jp/index-j.html"&gt;howm: Hitori Otegaru Wiki Modoki&lt;/a&gt;と言うのを使ってみたことがあるのだが、いまいち使いこなすことができなかった。&lt;br/&gt;
そこで、今回は &lt;a href="http://orgmode.org/ja/index.html"&gt;Org: あなたの生活をプレーンテキストで&lt;/a&gt; と言うのを使ってみることにする。&lt;br/&gt;
# 以前も一度使い始めてみたのだが、そのときはうまく使えなかった。&lt;br/&gt;
&lt;br/&gt;
今回参考にしたのは、以下のサイト。&lt;br/&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://orgmode.jp/doc-ja/org-ja.html"&gt;Org Mode マニュアル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/holidays-l/20110719/p1"&gt;org-mode+MobileOrg(+Dropbox)でGTD始めました。オレオレ改造をごっそり公開 - ヒルズで働くholidays-lの技ログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/rubikitch/20090121/1232468026"&gt;org-mode + remember-mode でEmacs内で瞬時にメモをする→コードリーディングに生かす・メモ検索する - (rubikitch loves (Emacs Ruby CUI Books))&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
まずは、マニュアルに従って .emacs に以下を追加。&lt;br/&gt;
&lt;script src="https://gist.github.com/2341168.js"&gt; &lt;/script&gt;
&lt;br/&gt;
~/Dropbox/MobileOrg は、iPhone版のMobileOrgアプリをインストールして、Dropboxの設定をすると作られる。&lt;br/&gt;
一応上記設定の意図は、以下のような感じ。
&lt;ul&gt;
&lt;li&gt;org-captureで作られるノートは、~/org/notes.org に入れる。&lt;/li&gt;
&lt;li&gt;MobileOrgからpullしたものは、~/org/flagged.org に入れる。&lt;/li&gt;
&lt;li&gt;上記以外のメモは、~/org/memo.org に入れる。&lt;/li&gt;
&lt;li&gt;orgファイルは、~/org に入れる。(~/Dropbox/orgへのリンク)&lt;/li&gt;
&lt;li&gt;MobileOrg は、~/Dropbox/MobileOrgを使う。&lt;/li&gt;
&lt;/ul&gt;
この状態で、C-c c と打つと、org-capture なんて知らないと言われる。&lt;br/&gt;
また、M-x org-mobile-push すると、~/Dropbox/MobileOrg/agendas.org が作成されない。&lt;br/&gt;
なんでだろー、と思って調べてみると、emacs23に入っているorg-modeのバージョンは 6.33x で、マニュアルは7.5用なので、その辺の違いと思われる。(たぶん、org-captureの代わりにorg-rememberとか使う?)&lt;br/&gt;
そこで、最新の安定版のorg-mode 7.8.08をインストールしてみることにする。&lt;br/&gt;
自宅では MacPorts を使っているので、sudo port install org-mode でインストールできた。&lt;br/&gt;
会社では homebrew を使っているので、org-mode の Formula が存在しない。&lt;br/&gt;
org-modeはtarballを持ってきて、make installだけで入るので、別に Formula がなくても良いんだけど、一応 &lt;a href="https://github.com/mxcl/homebrew/wiki/Formula-Cookbook"&gt;Formula Cookbook · mxcl/homebrew Wiki · GitHub&lt;/a&gt; を参考にちょっとだけ試してみる。
&lt;pre class="commandline"&gt;
% brew create http://orgmode.org/org-7.8.08.tar.gz
&lt;/pre&gt;
で$EDITORが立ち上がり、/usr/local/Library/Formula/org.rb を編集するモードになるので、適当に修正する。&lt;br/&gt;
まずは、ひな形のまま
&lt;pre class="commandline"&gt;
% brew install org
&lt;/pre&gt;
としてみたが、configure でエラーになる。(tarballを展開してみたら、configureが入っていない)&lt;br/&gt;
そこで、以下のように修正してみた。&lt;br/&gt;
&lt;script src="https://gist.github.com/2341218.js"&gt; &lt;/script&gt;
&lt;br/&gt;
これで、brew install org すると、/usr/local/share/emacs/site-lisp/org にインストールされる。&lt;br/&gt;
Formula Cookbook には、自分のgithubリポジトリに追加して、本家に取り込んでもらう方法まで書いてあるけど、私のやり方だとbrewの流儀に反している(直接/usr/local/shareにインストールするのではなく、/usr/local/Cellar/ に入れるのが正しい?)のと、依存関係とか書かずに直接 emacs-app のバイナリを指定しているので、野良Formulaとする。&lt;br/&gt;
&lt;br/&gt;
これで、C-c c で capture template の選択が出て、t とか押すと Task の追加の画面になって、C-c C-c で ~/org/notes.org に追加されるようになった。&lt;br/&gt;
また、M-x org-mobile-push で ~/Dropbox/MobileOrg/agendas.org も生成されるようになったので、とりあえず使えるようにはなった。&lt;br/&gt;
&lt;br/&gt;
後は、使いながらテンプレートをいじったり、参考サイトにあるように自動でpull/pushするようにしたりしてみたいが、とりあえず取っ掛かりと言うことでエントリにする。&lt;br/&gt;
ちなみに、自宅でも会社でも使うので、~/org は ~/Dropbox/org へのシンボリックリンクにしてある。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/PrpTzSlY8_o/004713.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004713.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">emacs</category>
            
            
            <pubDate>Mon, 09 Apr 2012 11:42:57 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004713.html</feedburner:origLink></item>
        
        <item>
            <title>plaggerが動かない</title>
            <description>ここのところ、ずっと /var/log/messagesに perl が core を吐いたと言うメッセージが出ていた。&lt;br/&gt;
調べてみたところ、plaggerで落ちてる。&lt;br/&gt;
core ファイルができているので、gdb で bt を見てみたところ、libxml2を使っているperlのライブラリあたりで、リソースの解放あたりで落ちてる。&lt;br/&gt;
不思議なことに、ログインして手動でplaggerを起動すると落ちなくて、cronから起動すると落ちている。&lt;br/&gt;
何が原因かわからなかったけれど、とりあえず該当のperl moduleとか、perlとかをアップデートしてみたけど改善せず。&lt;br/&gt;
どうせだから〜と、portupgrade p5\* とかやってperlのモジュールを全てアップデートしてみた。&lt;br/&gt;
すると、plaggerが以下のエラーで落ちるようになった。&lt;br/&gt;
&lt;pre class="textfile"&gt;
Plagger::Plugin [debug] Load YAML .../plagger/trunk/assets/plugins/Filter-EntryFullText/cookpad.yaml
Cannot decode string with wide characters at /usr/local/lib/perl5/site_perl/5.8.9/mach/Encode.pm line 176.
&lt;/pre&gt;
良くわからなかったが、pluginのFilter::EntryFullTextで落ちてるっぽいので、yamlをいじってEntryFullTextを外したら先に進んだ。&lt;br/&gt;
そして、最後にStore::FastladderでDBに入れる所で、
&lt;pre class="textfile"&gt;
Plagger::Plugin::Store::Fastladder::Schema::Members::subscriptions(): No such relationship 'subscriptions' on Members at .../plagger/trunk/lib/Plagger/Plugin/Store/Fastladder.pm line 73
&lt;/pre&gt;
と言って落ちている。&lt;br/&gt;
どうも、DBIx::Class周りが、最近(ってほど最近でもないらしい)のバージョンでは挙動が違うらしく、その辺で落ちているらしい。&lt;br/&gt;
&lt;a href="http://d.hatena.ne.jp/dayflower/20091014/1255488212"&gt;DBIC で後付けの relationship を定義してたらうまく動かなくなった - daily dayflower&lt;/a&gt;とか見つけて、Store/Fastladder/Loader.pmあたりを触ろうと思ったけど、やはり読んでも良くわからず。&lt;br/&gt;
途方にくれて彷徨っていたら、そのものずばり&lt;a href="http://blog.livedoor.jp/ryu22e/archives/65343431.html"&gt;ryu22eBlog : DBIx::Class 0.08121ではPlagger::Plugin::Store::Fastladder 0.01が動かないのでアドホックなパッチを書いた&lt;/a&gt;と言うページを発見。&lt;br/&gt;
このパッチをあてたら、無事にplaggerが動き出した。&lt;br/&gt;
ここに来て再度plaggerのログを良く見たら、
&lt;pre class="textfile"&gt;
Plagger [info] plugin Plagger::Plugin::Store::Fastladder loaded.

Dynamic schema detected, will run in 0.04006 mode.

Set the 'naming' attribute or the SCHEMA_LOADER_BACKCOMPAT environment variable
to disable this warning.

See perldoc DBIx::Class::Schema::Loader::Manual::UpgradingFromV4 for more
details.
&lt;/pre&gt;
なんて出てた。&lt;br/&gt;
さっそくperldocで該当箇所を読んでみたけど、ちんぷんかんぷんで理解できなかった。&lt;br/&gt;
自分の頭が大丈夫か不安になる。&lt;br/&gt;
&lt;br/&gt;
しっかし、perlをバージョンアップするたびに portupgrade p5-\* とかやってたはずなのに、どうして今頃になってこの問題が表に出てきたんだろうか。&lt;br/&gt;</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/ByCoY6N5GF0/004709.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004709.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Plagger</category>
            
            
            <pubDate>Sat, 31 Mar 2012 21:41:02 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004709.html</feedburner:origLink></item>
        
        <item>
            <title>VMware Fusionのファイル共有の罠</title>
            <description>※ この記事は、Mac OS X 10.7.3/VMware Fusion 4.1.1/Windows 7 SP1について書かれています。&lt;br/&gt;
&lt;br/&gt;
会社で使っている Windows Vista(32bit)がいろいろ不都合があって我慢できなくなったので、思い切ってiMacに変えた
。&lt;br/&gt;
AppleStoreでCPUだけ Core i7 の 2.8GHz にして、メモリは標準の4GBに、IO-DATAの4G×2を追加して12GBにした。&lt;br/&gt;
そして、VMware FusionとWindows7 Pro 64bitを購入して、インストールした。&lt;br/&gt;
既存のWindowsで使っていた仕事のファイルは、全てMac上に作った暗号化したsparse bundle image にコピーした。(sparse bundleにした方がTime Machineのバックアップの効率が良いと考えたのだけれど、VMwareのimageとかならともかく、仕事の細かいファイルの場合は意味がない、と言うかTimeMachineで特定のファイルのちょっと前のバージョンを取り出すとかができないことに今気づいた)&lt;br/&gt;
このmac上のvolumeをWindowsからVMware Fusionの共有機能を使ってmountした。&lt;br/&gt;
そして、VMware上のWindowsにOfficeとメーラを入れて、事務仕事はほとんどWindowsで、開発はVMware上のCentOSやUbuntuでできるようになった。&lt;br/&gt;
ここまで前置き1。&lt;br/&gt;
&lt;br/&gt;
続いて前置き2。&lt;br/&gt;
プロジェクトの共有ファイルは、svnかdavに置くことになっていて、Windowsのdavの扱いはかなり怪しいのでCarotDAVと言うアプリケーションを利用している。&lt;br/&gt;
しかし、Macの場合はFinderの移動→サーバへ移動...でhttp:のURLを指定すれば直接davが開けて、そのまま読み書きができる。&lt;br/&gt;
そこでちょっとしたファイルのコピーはMacでやっていたのだが、私がdavに置いたファイルを、他の人が見るとファイル名が文字化けしていると言う。&lt;br/&gt;
どうも、濁点/半濁点を含むファイル名を、Macから置くとCarotDAVでは文字化けするらしい。CarotDAVで濁点/半濁点を含むファイルを置いた場合は、Macから正常に読み出せる。&lt;br/&gt;
(今にして思えば、こちらがNFC/NFDの問題だったのだが、このときはまだ知らなかった)&lt;br/&gt;
&lt;br/&gt;
さて、いよいよ本題。&lt;br/&gt;
ある日、顧客から「サンプルデータ.zip」と言うファイルが届いた。Windows場ではlhaplusと言うアーカイバを愛用している。&lt;br/&gt;
いつものようにvmwareの共有フォルダに上記添付ファイルを置いて、lhaplusで展開しようとしたら、ファイルが見つからないと言われた。&lt;br/&gt;
&lt;img alt="Lhaplus-1.png" src="http://www.wizard-limit.net/mt/pc/archives/images/Lhaplus-1.png" width="628" height="468" class="mt-image-none" style="" /&gt;&lt;br/&gt;
ここから長い調査がはじまったのだが、前置き2の先入観のせいでてっきり「サンプルデータ」に「プ」と「デ」が入っているのが悪い、と思い込んでしまったせいでなかなか正解にたどり着かなかった&lt;br/&gt;
&lt;br/&gt;
まずは、「mac 濁点」等で調べてみたところ、&lt;a href="http://d.hatena.ne.jp/miau/20110805/1312555736"&gt;Mac OS Xの濁点ファイルがやってきた - miauの避難所&lt;/a&gt;と言うページがひっかかった。&lt;br/&gt;
Unicodeで濁点、半濁点を表すには、「プ」と「フ」+「゜」(\u309a)の2種類があり、「プ」に揃えようとするのをNFC、「フ」+「゜」に揃えようとするのをNFDと呼ぶらしい。&lt;br/&gt;
そして、Macのファイルシステム(HFS+)のファイル名は、積極的にNFDで正規化を行い、WindowsやLinuxは積極的には正規化を行わないが、結果としてNFCになっていると言うことがわかった。&lt;br/&gt;
っつーか、同じ文字を表すならバイト数が少ないほうが良いと思うんだけど、なんでMacはNFDを採用したんだろうか。&lt;br/&gt;
Macのターミナル上ではzshを使っているのだが、zshはこのNFC/NFDの正規化を行わないらしく、「サンプルデータ.zip」と言うファイルがあると、以下のような挙動をする。&lt;br/&gt;
&lt;ul&gt;
&lt;li&gt;ls サンプルデータ.zip → ヒットする&lt;/li&gt;
&lt;li&gt;ls サンプ&amp;lt;TAB&amp;gt; →補完されない&lt;/li&gt;
&lt;li&gt;ls サンフ&amp;lt;TAB&amp;gt; →補完されるが、「サンフ&lt;309a&gt;ルテ&lt;3099&gt;ータ.zip」と表示される&lt;/li&gt;
&lt;/ul&gt;
同じディレクトリを、Windowsでdir /bで見てみると、上記サイトと違い、濁点/半濁点は別れずに表示された。(この段階でも気がつくべきだった)&lt;br/&gt;
再現テストを繰り返すうちに、以下のことがわかった。&lt;br/&gt;
&lt;ul&gt;
&lt;li&gt;サンプルデータ.zip → lhaplus で展開できない&lt;/li&gt;
&lt;li&gt;プ.zip → lhaplusで展開できる&lt;/li&gt;
&lt;li&gt;longlongarchive.zip → lhaplusで展開できる&lt;/li&gt;
&lt;li&gt;サンフルテータ.zip → lhaplusで展開できない&lt;/li&gt;
&lt;/ul&gt;
どうも、今回の問題はNFC/NFDの問題ではないらしい。上記参考サイトの場合は、Macから受け取った添付ファイルに含まれていたNFDのファイル名を問題にしているのであり、今回のようにMacのVolumeをWindowsからマウントした場合の問題ではなかった。&lt;br/&gt;
そもそも、Windouwsにマウントした時点で、ファイル名の文字コードはUnicodeではなくMS932になっているので、その段階でNFCの正規化が行われているらしい(推測)&lt;br/&gt;
&lt;br/&gt;
振り出しに戻って、じゃあ何が原因なのか考える。再現テストの結果からわかることは、ファイル名に非ASCIIが含まれている時かつ、8.3文字を超えているとき、に問題が発生すると言うこと。&lt;br/&gt;
そこで、&lt;a href="http://en.wikipedia.org/wiki/8.3_filename"&gt;8.3 filename - Wikipedia, the free encyclopedia&lt;/a&gt;などを読んでいると、dirコマンドに /x とか /-n とか言うオプションがあることを知る。&lt;br/&gt;
早速、問題のディレクトリで実行してみると、
&lt;pre class="commandline"&gt;
2012/03/25  07:46    &amp;lt;DIR&amp;gt;                       .
2012/03/25  08:25    &amp;lt;DIR&amp;gt;                       ..
2012/03/24  22:15               131 LONG~CDD.ZIP longlongarchive.zip
2012/03/24  08:18               134 サンプ~~B2E.Zサンプルデ.zip
2012/03/24  08:18               134 サンプ~~B44.Zサンプルデータ.zip
2012/03/24  08:18               134              デ.zip
&lt;/pre&gt;
のように表示された。&lt;br/&gt;
詳しい原因まではわからないが、lhaplusにこの辺のLFNからSFNへの変換(もしくはその逆)の問題があるのかもしれない。&lt;br/&gt;
とりあえず解決策を探そうと思って、VMwareの共有ではなくてMac OS X のsmb共有を使ってみた。&lt;br/&gt;
すると、lhaplusでも展開に成功した。&lt;br/&gt;dir /x を実行してみると、
&lt;pre class="commandline"&gt;
2012/03/25  07:46    &amp;lt;DIR&amp;gt;                       .
2012/03/25  08:25    &amp;lt;DIR&amp;gt;                       ..
2012/03/24  22:15               131              longlongarchive.zip
2012/03/24  08:18               134              サンプルデ.zip
2012/03/24  08:18               134              サンプルデータ.zip
2012/03/24  08:18               134              デ.zip
&lt;/pre&gt;
のようにLFNのみが表示された。&lt;br/&gt;
いまいち良くわからないけど、Mac OS X のsmb共有を使っておけば問題ないってこと?</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/zTnQEaeA1FY/004707.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004707.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
            
            
            <pubDate>Sun, 25 Mar 2012 07:50:13 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004707.html</feedburner:origLink></item>
        
        <item>
            <title>さらばBootCamp</title>
            <description>2011年の4月にMacBookProを買ってから、最初にBootCampでWindowsをインストールして、それをVMware Fusionで使っていたのだけれど、最近Windowsが通知領域でライセンス認証がどうのこうのと言い出すようになった。&lt;br/&gt;
通知をクリックしてWindowsライセンス認証の画面を開くと、認証が必要だと言うのでオンラインで認証する、を選ぶがエラーになって成功しない。&lt;br/&gt;
他の手段と言うのを選ぶと、電話をかけないといけないらしい。&lt;br/&gt;
そこで、どうせやるなら正式な方が良いだろうと思って久しぶりにBootCampからWindowsを起動して、フリーダイアルに電話してみた。&lt;br/&gt;
機械音声を相手に、ぽちぽちと画面に表示されている長い数字を打ち込む。&lt;br/&gt;
やがて、「再インストールなら1を、それ以外なら2を・・・」とか言い出したので、2を押してみると、「オペレータにおつなぎします」と言ってお兄さんに替わった。&lt;br/&gt;
そこで、入力した長い数字の最初のブロックを再度聞かれ、今度はお兄さんが読み上げる長い数字を画面に入力する。&lt;br/&gt;
入力が終わると、認証に成功した、と出たのでその旨を伝えると、電話を終わろうとしたので「どんなときにこの認証が必要なんですか?」と聞いてみた。
すると、「再インストールしたときとか、構成が変わった時とか」と。
「何も変えてないつもりなんですけどねえ」というと、「構成の変更はシステム内部の問題なのでこちらではなんとも・・・」と言われてしまったので、そこで電話をおしまいにした。&lt;br/&gt;
再度Mac OSで立ち上げて、VMwareからWindowsを起動すると、またまたライセンス認証が・・・。&lt;br/&gt;
検索してみると、&lt;a href="http://d.hatena.ne.jp/linden/20110321/p1"&gt;Windows 7はBoot Campと仮想環境での使用は不可になったのか？ - りんでん記&lt;/a&gt;と言うページを発見。&lt;br/&gt;
どうやら、そもそもBootCampとVMwareでWindows7を使うのはライセンス違反らしい。同じマシンの同じ場所にインストールして、同時に使わないんだから良いんじゃないかと思うけど、そこは両者が合意しないと使えないんだからしょうがないのかもしれない。&lt;br/&gt;
半年使えてきたのになんで?と思ったが、ときどきVMwareが既存のBootCampの設定を見失って、新しいBootCampみたいに認識してVMware Toolsを再インストールしたりしていたので、それが構成の変更としてカウントされて、ついにWindows認証の堪忍袋の緒が切れたのかもしれない。&lt;br/&gt;
&lt;br/&gt;
この使い方がまずいのであれば、BootCampはほとんど使っていないのでBootCampの方をつぶすしかない。&lt;br/&gt;
VMwareの画面でBootCampを選び、インポートを選ぶ。そして、SSDには空きがないので、一度外付けのUSB HDDにインポートする。&lt;br/&gt;
インポートが終わったらBoot Camp アシスタントを起動して、BootCamp領域を削除。&lt;br/&gt;
今度は、SSD上に80Gのsparse bundle disk image を作成して、そこにインポートされたWindows7をコピー。&lt;br/&gt;
VMwareを起動して、コピーしたWindows7の領域を起動する。&lt;br/&gt;
前と同じようにフリーダイアルに電話して、再度同じ手続をして、なんとかVMware上でWindows7が復活したのであった。&lt;br/&gt;
っつーかさ、プロダクトIDからCDキーがわからないとか、電話で何桁もの数字をやり取りしないといけないとか、Microsoftのライセンス認証の仕組みはあまりに利便性を犠牲にし過ぎだと思うのよね。&lt;br/&gt;
&lt;br/&gt;
&lt;b&gt;2012.3.23追記&lt;/b&gt;&lt;br/&gt;
別の問題でVMwareのFAQを読んでいたら、BootCampとVMwareの同時使用(同じ場所にインストールした場合)は問題ないとの記述を見つけた。&lt;br/&gt;
&lt;blockquote cite="http://faq.act2.com/article/AA-04208/1083/"&gt;
&lt;div class="quote-head"&gt;&lt;a href="http://faq.act2.com/article/AA-04208/1083/"&gt;Boot Camp からWindows を呼び出してFusionで起動している時、アクティベーションを繰り返さない様にする | act2.com FAQ&lt;/a&gt;&lt;/div&gt;
※ 2011年10月　Boot Camp にインストール・認証済みの Windows OS を、VMware Fusion から呼び出して実行する場合には追加の Windows OS を購入する必要が無い事を弊社よりマイクロソフト社へ確認済みです。
&lt;/blockquote&gt;</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/JNk4O6PIFNg/004703.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004703.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
            
            
            <pubDate>Wed, 21 Mar 2012 22:25:52 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004703.html</feedburner:origLink></item>
        
        <item>
            <title>daily run outputが来ない</title>
            <description>FreeBSDからは、cron(periodic)が処理したdailyやweeklyなどの結果のメールが届くのだけれど、ふと気づいたら security run outputのメールは来ているのに daily run outputのメールが来ていない。&lt;br/&gt;
なんでだろう?と思ってspamフォルダを覗いたら、見事にspamassassinによってspam判定されていた。&lt;br/&gt;
&lt;pre class="textfile"&gt;
Spam detection software, running on the system "sv.wizard-limit.net", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email.  If you have any questions, see
The administrator of that system for details.

Content preview:  Removing stale files from /var/preserve: Cleaning out old
  system announcements: Removing stale files from /var/rwho: [...] 

Content analysis details:   (8.3 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                            [URIs: celebdrop-better.info]
 1.6 URIBL_WS_SURBL         Contains an URL listed in the WS SURBL blocklist
                            [URIs: celebdrop-better.info]
 1.2 URIBL_JP_SURBL         Contains an URL listed in the JP SURBL blocklist
                            [URIs: celebdrop-better.info]
 1.7 URIBL_DBL_SPAM         Contains an URL listed in the DBL blocklist
                            [URIs: celebdrop-better.info]
 1.6 URIBL_SBL              Contains an URL listed in the SBL blocklist
                            [URIs: gorgeous-lovez.info]
 1.1 URI_HEX                URI: URI hostname has long hexadecimal sequence
-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                            [score: 0.0000]
 0.0 T_URIBL_BLACK_OVERLAP  T_URIBL_BLACK_OVERLAP
 0.0 T_SURBL_MULTI1         T_SURBL_MULTI1
 1.1 TO_NO_BRKTS_PCNT       To: misformatted + percentage
&lt;/pre&gt;

どうも、メール本文に含まれる以下の部分がひっかかったらしい。
&lt;pre class="textfile"&gt;
Mail in local queue:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------

・・・(中略)・・・

1C00B295BA8     4434 Sat Mar 17 02:13:49  MAILER-DAEMON
     (connect to mail.celebdrop-best.info[219.255.7.7]:25: Connection refused)
                                         (伏せ).freemail@celebdrop-best.info
・・・(中略)・・・

-- 309 Kbytes in 61 Requests.
&lt;/pre&gt;

本文内のメールアドレスでひっかかるルールにも問題があるような気がするけど、spamassassinのルールは面倒臭くて最近いじってないので、ルールの方はほっておいてmail queue から不要なメールを削除することにする。&lt;br/&gt;
postfixでmail queueを削除する方法を調べたところ、
&lt;pre class="commandline"&gt;
# postsuper -d &lt;font color="red"&gt;&lt;i&gt;メールのID(上の例だと1C00B295BA8とか)&lt;/i&gt;&lt;/font&gt;
&lt;/pre&gt;
のようにするらしい。&lt;br/&gt;
そこで、最初はちまちまコマンドを打っていたのだが、61回もIDを打ってられないので、現時点でqueueに残っているのは全て不要なメールと判断して、以下のコマンドで一気に削除した。(これって、普通にpostfixのコマンドでできそうな気がするので、無駄なことをしていると思われる)
&lt;pre class="commandline"&gt;
# mailq | grep MAILER | sed -e 's/ .*//' | xargs -n 1 postsuper -d
&lt;/pre&gt;
これで、平和が訪れてくれると良いんだけど。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/gbBoeGObjOs/004701.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004701.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Tue, 20 Mar 2012 22:41:14 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004701.html</feedburner:origLink></item>
        
        <item>
            <title>FreeBSD 9.0 アップグレード失敗</title>
            <description>FreeBSD 9.0 がリリースされた(&lt;a href="http://www.freebsd.org/ja/releases/9.0R/announce.html"&gt;FreeBSD 9.0-RELEASE アナウンス&lt;/a&gt;)ので、うちの環境も9.0に上げてみることにする。&lt;br/&gt;
早速、supfile の tag を RELENG_8 から RELENG_9 に変更して csup する。csupの間にリリースノートを読んだりしてたんだけど、9.0Rをソースから入れる場合のタグは RELENG_9_0 とか、svn の場合は releng/9.0 ブランチだとか書いてある。&lt;br/&gt;
あれ? RELENG_9 と RELENG_9_0 の違いってなんだっけ?と調べたところ、RELENG_9 は 9-STABLE ブランチで、RELENG_9_0 は 9.0-RELEASE のスナップショットらしい。&lt;br/&gt;
そして、2008年から開発はCVSからsvnに移っていることもわかったが、公式サイトではsvnwebと言うwebインターフェイス(&lt;a href="http://svnweb.freebsd.org/base/"&gt;[base] Index of /&lt;/a&gt;)のURLしか見つけることができなかった。これだと、subversionクライアントから取得することができない。&lt;br/&gt;
ちょっとぐぐったら、&lt;a href="http://d.hatena.ne.jp/syohex/20110129/1296301046"&gt;FreeBSDのソースコードを Subversionリポジトリから取得する - Life is very short&lt;/a&gt;と言うページを見つけたので、svn://svn.freebsd.org/base/ だと言うことがわかった。9-STABLE なら、svn://svn.freebsd.org/base/stable/9 なのだろう。(releng/9 じゃないので、CVSのタグポリシーと違うみたいだけど、こっちの方がわかりやすいと思う)&lt;br/&gt;
&lt;br/&gt;
どっちが早いかとか調べるのも面倒だったので、当面はCVSup(csup)を使い続けることにする。&lt;br/&gt;
&lt;br/&gt;
さて、Upgradeを開始する前に読むべきは&lt;a href="http://www.freebsd.org/releases/9.0R/relnotes-detailed.html#UPGRADE"&gt;FreeBSD 9.0-RELEASE Release Notes&lt;/a&gt;の3 Upgrading from previous releases of FreeBSD&lt;br/&gt;
つらつらと眺めると、以下のような変更があるらしい。
&lt;ol&gt;
&lt;li&gt;インストーラやportsで使われる dialog ライブラリが新しくなりました。&lt;/li&gt;
&lt;li&gt;パーティションメタデータの整合性チェックがデフォルトで有効になりました。&lt;/li&gt;
&lt;li&gt;ATA/SATAがcamベースになり、デバイスファイル名が /dev/ad0 等から /dev/ata0 等に変更になりました。互換性のために、/dev/ada0から/dev/ad0へのシンボリックリンクが提供されます。&lt;/li&gt;
&lt;li&gt;/etc/rc.conf でのネットワークの設定が変更になりました。IPアドレスの前にアドレスファミリの指定が必須になりました。ipv6_enableはdeprecatedになり、デフォルトで有効になりました。&lt;/li&gt;
&lt;li&gt;resolv.conf を設定するためのresolvconfユーティリティが追加されました。&lt;/li&gt;
&lt;li&gt;disk partision 関連のユーティリティ(fdisk, disklabel, bsdlabel)は将来的にサポートされなくなり、gpartの使用が推奨されます&lt;/li&gt;
&lt;/ol&gt;
大きいのはad?のデバイスファイル名の変更かなと思ったけど、リンクが張られるなら問題ないはず。&lt;br/&gt;
と、言うことで、いつものようにbuildworld &amp;amp; buildkernel。&lt;br/&gt;
いつもなら、ここでそのまま installkernel, installworld, reboot, mergemaster なんだけど、流石にメジャーバージョンアップなので、&lt;a href="http://www.freebsd.org/doc/ja/books/handbook/makeworld.html"&gt;world の再構築&lt;/a&gt;の手順に従って真面目にやることにする。(結果的に、このおかげで助かった)&lt;br/&gt;
はじめて make world したころとは、ドキュメントの中身がだいぶ変わっていて、すごく詳細に書いてあるので、最近読んでないな〜という人は一読をおすすめする。&lt;br/&gt;
&lt;br/&gt;
と、言うわけで installkernel したところで一度reboot、起動メニューで4番の Single user mode を選ぶ。&lt;br/&gt;
と、あっと言う間に kernel panic。ほっておくと15秒で再起動、キーを押すと再起動のカウントダウンを止められるけど、コンソールに出ているメッセージは更に数行流れてしまうため、エラーの原因が良くわからない。&lt;br/&gt;
カーネルが起動すれば dmesg とか messages とかログの調べようがあるのだけれど、boot時のpanicだとどうやってログを取得すれば良いのかわからない。&lt;br/&gt;
&lt;br/&gt;
fixitフロッピーとか作ってないし、そもそもFDドライブないし、8のCDもどこにあるかわからないし、どうやって復旧したもんかな〜と悩んだ結果、別のメディアから起動しなくても、一個前のカーネルくらい残ってるんじゃね?と思いつく。&lt;br/&gt;
そこで、起動メニューから6番を選んでプロンプトに降りて、
&lt;pre class="commandline"&gt;
boot kernel.old
&lt;/pre&gt;
と入力してみたら、無事に8.2-STABLEで起動した。&lt;br/&gt;
これで、何か調べて installkernelしてしまうと、kernel.old は起動できない 9-STABLE になってしまうので、まずは保全を考える。&lt;br/&gt;
/boot/kernel.old を /boot/kernel.8 にコピー(tar使いました)して再起動して、
&lt;pre class="commandline"&gt;
boot kernel.8
&lt;/pre&gt;
としてみたところ、ちゃんと起動できたので、このディレクトリを取っておけば大丈夫だろう。&lt;br/&gt;
ついでに、/boot/loader.conf に
&lt;pre class="textfile"&gt;
kernel="kernel.8"
&lt;/pre&gt;
とか書けば、こっちがデフォルトになるんじゃないかと思うけど、そんな頻繁に再起動するものでもないからこのままにする。&lt;br/&gt;
&lt;br/&gt;
保全ができたので、panicの原因を追求する。&lt;br/&gt;
しかし、起動時のログが取れないので、iPhoneのカメラで動画を撮影して、手でコピーしてみた。
&lt;pre class="textfile"&gt;
(前略)
agp1: &amp;lt;Intel 82855GME (855GME GMCH) SVGA controller&amp;gt; on vgapci0
panic: make_dev_credv: bad si_name (error=17, si_name=agpgart)
cpuid = 0
KDB: stack backtrace:
#0 0xc0a9a3d7 at kdb_backtrace+0x47
#1 0xc0a66679 at panic+0x119
#2 0xc0a1cf1e at make_dev_credv+0x9e
#3 0xc0a1d15a at make_dev+0x4a
#4 0xc05510ee at agp_generic_attach+0x12e
#5 0xc0d7d288 at agp_i810_attach+0xb8
#6 0xc0a93d77 at device_attach+0x387
(後略)
&lt;/pre&gt;
agpのドライバ周りでpanicしてる?ぐぐると、"panic: make_dev_credv: bad si_name" で結構ひっかかるんだけど、どうも関係ないっぽい。&lt;br/&gt;
ちなみに、8.2だと以下のような感じ。
&lt;pre class="textfile"&gt;
agp1: &amp;lt;Intel 82855GME (855GME GMCH) SVGA controller&amp;gt; on vgapci0
agp1: aperture size is 128M, detected 32636k stolen memory
vgapci1: &amp;lt;VGA-compatible display&amp;gt; at device 2.1 on pci0
&lt;/pre&gt;

&lt;br/&gt;
もうちょっと情報を集めないと、9.0にできないかなあ。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/zb23zRH0f2Y/004675.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004675.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Sat, 14 Jan 2012 09:28:53 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004675.html</feedburner:origLink></item>
        
        <item>
            <title>PostgreSQL9.1.1に上げる</title>
            <description>最近PostgreSQLのバージョンを上げていなかったので、たまには上げてやろうと思う。&lt;br/&gt;
きっかけは、pg_upgrade と言う新機能のマニュアルを読んだこと。こいつがあると、今までのように pg_dump しなくてもバージョンがあげられるらしい。&lt;br/&gt;
ところが、良く良く読んでみると、なかなか条件が厳しい。
&lt;ul&gt;
&lt;li&gt;旧バージョンと新バージョンの両方のdataディレクトリが別の場所にあること&lt;/li&gt;
&lt;li&gt;旧バージョンと新バージョンのバイナリが別の場所にあること&lt;/li&gt;
&lt;/ul&gt;
まあ、前者は当然と言えば当然の条件だけど、後者が厳しい。FreeBSDのportsでは複数バージョンの混在を許していないから。&lt;br/&gt;
ちなみに、portsから入れたデフォルトではデータディレクトリも /usr/local/pgsql/data なんだけど、これはrc.conf に postgresql_data を定義してやれば自由に変えられる。&lt;br/&gt;
試しにpg_dumpallしてみたら1分程度で終わったので、今回も pg_upgrade ではなく dump/restore でバージョンアップすることにする。&lt;br/&gt;
前回の記事が &lt;a href="/mt/pc/archives/001426.html"&gt;postgresqlバージョンアップ - PC日記&lt;/a&gt;にあるのだが、あまりにざっくりしているのでもう少し丁寧に書く。(やったことは基本同じだけど)

&lt;ol&gt;
&lt;li&gt;pgsqlユーザで現在のデータベースのバックアップを取る
&lt;pre class="commandline"&gt;
$ pg_dumpall -f dumpall.20111207
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;root でデータベースを止め、既存のバージョンを削除する。
&lt;pre class="commandline"&gt;
# /usr/local/etc/rc.d/postgresql stop
# pkg_deinstall postgresql-server-8.4.7
# pkg_deinstall -f postgresql-client-8.4.7
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;root で既存のデータディレクトリをリネームする。
&lt;pre class="commandline"&gt;
# mv /usr/local/pgsql/data /usr/local/pgsql/data.8.4
&lt;/pre&gt;
これは、将来pg_upgradeみたいな仕組みが使いやすくなったときに、いつも同じディレクトリを使うのではなく、バージョン毎のディレクトリにしておいた方が良さそうなため。PostgreSQLは、x.y.zのx.yの部分が同じならばデータディレクトリは互換性があることになっているので、バージョン8.4.7でもディレクトリは8.4で良い。&lt;/li&gt;
&lt;li&gt;新バージョンをインストール
&lt;pre class="commandline"&gt;
# portupgrade -N databases/postgresql91-server
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;/etc/rc.conf 修正&lt;br/&gt;
既存のデータディレクトリのリネームで説明した通り、今後はデータディレクトリにはバージョンをつけることにしたので、/etc/rc.conf に以下を追加
&lt;pre class="textfile"&gt;
postgresql_data="/usr/local/pgsql/data.9.1"
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;データベース作成
&lt;pre class="commandline"&gt;
# /usr/local/etc/rc.d/postgresql initdb
&lt;/pre&gt;
※ 前回の記事では、initdb -E utf8をやり直したと書いてあるが、最近の rc.d/postgresql では initdb のデフォルトのオプションで "--encoding=utf-8 --lc-collate=C" が指定されているので、そのままで問題ない。&lt;/li&gt;
&lt;li&gt;データベース起動
&lt;pre class="commandline"&gt;
# /usr/local/etc/rc.d/postgresql start
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;データベースのバックアップからの復元
&lt;pre class="commandline"&gt;
# psql -U pgsql postgres &lt; dumpall.20111207
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

これで、dump/restore を使った PostgreSQL のバージョンアップの出来上がり。&lt;br/&gt;
後は、各種クライアントの動作チェックをして、っていきなり MovableType でログインしようとすると Can't use string ("x42494e3a53455247000000000000000") as an ARRAY ref while "strict refs" in use と言うエラーが出る。&lt;br/&gt;

&lt;img alt="mt-error.jpg" src="http://www.wizard-limit.net/mt/pc/archives/images/mt-error.jpg" width="691" height="219" class="mt-image-none" style="" /&gt;&lt;br/&gt;
&lt;br/&gt;
これはまた泣きながら8.4に戻さないと駄目か?と思ったが、一応エラーメッセージでぐぐってみるといきなり正解にたどり着いた。&lt;a href="http://forums.movabletype.org/2010/10/cant-use-string-as-an-array-ref-while-strict-refs-in-use.html"&gt;Can't use string .... as an ARRAY ref while strict refs in use - Movable Type Forums&lt;/a&gt;&lt;br/&gt;
ここには、postgresql.conf に bytea = 'escape' と書けとあるが、9.1の実際の postgresql.conf を見ると bytea_output と書いてあるようなので、以下の行を追加した。
&lt;pre class="textfile"&gt;
bytea_output = 'escape'
&lt;/pre&gt;
これで、無事に MovableType も動くようになった。&lt;br/&gt;</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/FI_nSt5BpuA/004656.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004656.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Wed, 07 Dec 2011 23:25:43 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004656.html</feedburner:origLink></item>
        
        <item>
            <title>Jenkinsのインストール</title>
            <description>&lt;a href="http://gihyo.jp/dp/ebook/2011/978-4-7741-4952-3"&gt;Jenkinsではじめるビルド職人入門&lt;/a&gt; が、11月中だけ発売記念で無料(12月から1,000円)だったので読んでみた。&lt;br/&gt;
自分で使ったことはないけど、隣のプロジェクトが使ったりしているので、そんなに目新しいことはなかったのだけれど、とりあえずうちにも入れてみようと思う。&lt;br/&gt;
portsを調べると、devel/jenkinsと言うのがあったのでインストールしてみる。&lt;br/&gt;
すると、jenkins.warをダウンロードしてきて /usr/local/share/jenkins にインストールして、後はユーザやグループを作ったり、ディレクトリを作ったり、/usr/local/etc/rc.d に起動スクリプトを作ってくれたりするらしい。&lt;br/&gt;
jenkinsは、warなので、tomcatのようなServletコンテナでも実行できるし、直接javaに渡すことでjenkinsに入っている Winstone と言うコンテナでスタンドアローンでも起動できる。&lt;br/&gt;
rcスクリプトで jenkins_enable="YES" にした場合は、Winstone を使うことになる。&lt;br/&gt;
既にtomcatなどを動かしている場合は、そちらを使った方が良いかも知れない。設定方法わからないけど。&lt;br/&gt;
&lt;br/&gt;
とりあえず、うちではtomcatは動いていなかったので、rcスクリプトをそのまま使う。/usr/local/etc/rc.d/jenkinsを読むと、jenkins_enable="YES"にしたときのデフォルトの挙動と、それぞれの設定項目が読める。
&lt;pre class="textfile"&gt;
: ${jenkins_enable="NO"}
: ${jenkins_home="/usr/local/jenkins"}
: ${jenkins_args="--webroot=${jenkins_home}/war --httpListenAddress=127.0.0.1 --httpPort=8180 --ajp13ListenAddress=127.0.0.1 --ajp13Port=8009 --prefix=/jenkins"}
: ${jenkins_java_home="/usr/local/jdk1.6.0"}
: ${jenkins_user="jenkins"}
: ${jenkins_group="jenkins"}
: ${jenkins_log_file="/var/log/jenkins.log"}
&lt;/pre&gt;
※ jenkins_java_home は、portsが決めてくれたんだと思う。うちはjdk1.6.0が入っていたので。&lt;br/&gt;
これを見ると、jenkins_homeは/usr/local/jenkinsであり、httpが8180で、ajp13が8009で、それぞれlocalhostだけでLISTENすることがわかる。&lt;br/&gt;
なんとなく頻繁に書き変わるものは/varに置きたいので、/etc/rc.conf は以下のようにした。
&lt;pre class="textfile"&gt;
# jenkins                                                                       
jenkins_enable="YES"
jenkins_home="/var/local/jenkins"
&lt;/pre&gt;
そして、/var/local/jenkinsを作成。
&lt;pre class="commandline"&gt;
# mkdir /var/local/jenkins
# chown jenkins:jenkins /var/local/jenkins
&lt;/pre&gt;
そして、jenkins起動。
&lt;pre class="commandline"&gt;
# /usr/local/etc/rc.d/jenkins start
&lt;/pre&gt;
&lt;br/&gt;
FreeBSDにはグラフィカルなブラウザを入れていないので、このままではアクセスできない。apache経由でアクセスできるように、httpd.conf の VirtualHostの中に以下を追加。
&lt;pre class="textfile"&gt;
    &amp;lt;Location /jenkins&amp;gt;
        ProxyPass ajp://127.0.0.1:8009/jenkins
    &amp;lt;/Location&amp;gt;
&lt;/pre&gt;
apacheに読み込ませる。
&lt;pre class="commandline"&gt;
# apachectl graceful
&lt;/pre&gt;
これで、apache経由でjenkinsにアクセスできる。&lt;br/&gt;
アクセスすると、最初は誰でもjenkinsが使えるモード。&lt;br/&gt;
Jenkinsの管理→システムの設定で、「セキュリティを有効化」にチェックを入れる。&lt;br/&gt;
アクセス制御のところでアカウント管理のバックエンドが選べるので、小規模なのであれば「Jenkinsのユーザーデータベース」で問題ないだろう。PAMも使えるようなので、そちらでも良いかも知れない。&lt;br/&gt;
この後の手順が良くわかっていないのだが、私の場合は同じ画面の「権限管理」で「行列による権限設定(プロジェクト単位)」を選び、ユーザを追加してすべての権限にチェックを入れ、画面一番下の「保存」を押したらサインアップの画面が出て来たので、先ほど権限で追加したのと同じユーザ名でユーザを登録した。&lt;br/&gt;
普通に保存だけして、最初の一人は管理者としてサインアップできるのかも知れないが、面倒ので検証していない。&lt;br/&gt;
後は、普通にジョブを追加してjenkinsに実行してもらえば良いのだが、開発中のプロジェクトもないのでやってもらうことがないのである。&lt;br/&gt;
明日会社でプロジェクトのリリース手順でも自動化しようかな・・・。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/nuQDBG3pa44/004650.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004650.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Fri, 25 Nov 2011 22:24:20 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004650.html</feedburner:origLink></item>
        
        <item>
            <title>スキャナが使えない</title>
            <description>息子が写真を取り込みたいと言うので、久しぶりにスキャナを使うことにする。&lt;br/&gt;
試しに、USBで直接Macに繋いだ所、認識しない。&lt;br/&gt;
メーカーのページで調べてみたところ、ドライバはMac OS X 10.4まで、もしくはWindows Vista 32bitまで。&lt;br/&gt;
Lionでは当然使えなさそうなので、他の方法を探す。&lt;br/&gt;
と、言うか、以前Macを買ったときに、xsaneを使えるようにしていた。&lt;a href="http://www.wizard-limit.net/mt/pc/archives/004547.html"&gt;Macからsaneのスキャナを使う - PC日記&lt;/a&gt;&lt;br/&gt;
ので、xsaneを起動してみたところ、スキャナが見つからないと言う。&lt;br/&gt;
サーバであるFreeBSDでscanimage -L してみると、やはりスキャナが見つからない。&lt;br/&gt;
/var/log/messageを見ると、
&lt;pre class="textfile"&gt;
Nov  5 10:35:46 sv kernel: ugen0.3: &amp;lt;National Semiconductor&amp;gt; at usbus0
&lt;/pre&gt;
のように出ている。以前は、
&lt;pre class="textfile"&gt;
Nov  5 11:10:20 sv kernel: ugen0.3: &amp;lt;Canon&amp;gt; at usbus0
&lt;/pre&gt;
のように出ていたはずなのに。USBを抜き差しすると、もとに戻った。&lt;br/&gt;
sane-find-scannerやscanimage -L を実行すると、
&lt;pre class="commandline"&gt;
# sane-find-scanner
found USB scanner (vendor=0x04a9 [Canon], product=0x220d [CanoScan], chip=LM9832/3) at libusb:/dev/usb:/dev/ugen0.3
# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
&lt;/pre&gt;
以前は認識していたはずなのに、scanimage -L で出てこない。&lt;br/&gt;

いろいろ試してみた結果、/usr/local/etc/sane.d/plustek.conf の
&lt;pre class="textfile"&gt;
[usb]
&lt;/pre&gt;
の行を、
&lt;pre class="textfile"&gt;
[usb] 0x04a9 0x220d
&lt;/pre&gt;
のようにしたら、
&lt;pre class="commandline"&gt;
# scanimage -L
device `plustek:libusb:/dev/usb:/dev/ugen0.3' is a Canon CanoScan N670U/N676U/LiDE20 flatbed scanner
&lt;/pre&gt;
のように出て来た。&lt;br/&gt;
plustek: の部分は、canonとかcanon630uとかになるべきじゃないかと思って、canon.confとかcanon630u.conf をいじっってみたけど、変わらず。さらに、plustek.conf を元に戻しても、認識したまんまだったりして、良くわからない。&lt;br/&gt;</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/wLdP0T6BDdc/004633.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004633.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Sat, 05 Nov 2011 14:01:59 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004633.html</feedburner:origLink></item>
        
        <item>
            <title>841SHとAperture</title>
            <description>親から、携帯の写真を取り込みたいと言われて、見に行ったら結構はまったのでメモ。&lt;br/&gt;
まず、親のPC環境は MacBook Pro に Aperture を入れてある。で、携帯はソフトバンクの 841SH。USBケーブルが用意してあった。&lt;br/&gt;
Macと841SHをつなぐと、841SHの画面に選択肢が出るので、「カードリーダモード」を選択する。すると、Mac側でApertureが起動して、841SHのmicroSDが 「/Volumes/NO NAME」にマウントされる。&lt;br/&gt;
しかし、写真が一枚も表示されない。&lt;/br&gt;
Finderで見てみると、DCIMディレクトリは空っぽ。そして、探しまわった結果、写真は「PRIVATE/MYFOLDER/My Items/Pictures」にあった。&lt;br/&gt;
Apertureは、標準的なDCIM下しか見てくれないので、取り込むことができない。(やり方がわからない)&lt;br/&gt;
しょうがないので、Finderでコピーしてから取り込んだのだが、こんな手順は親には要求できない。せっかく「Mac買ってAperture入れれば写真の扱いも簡単だよ〜」と言った立場がないのである。&lt;br/&gt;
ちなみに、&lt;a href="http://broadband.mb.softbank.jp/mb/support/3G/product/841sh/pdf/841sh_userguide_14_r3.pdf"&gt;マニュアルの14章&lt;/a&gt;の14-24ページには、このフォルダ構成のことが一応書いてあるのだが、DCIM/XXXSHARPには何が入るのだろうか。&lt;br/&gt;
&lt;br/&gt;
その後も諦めきれなくて、メニューをカチャカチャいじっていたら、どうも841SHはBluetoothもついているらしいので、Macとペアリングしてみたのだが、そうすると今度はmicroSDではなくて本体の内蔵メモリしか見ることができない・・・。&lt;br/&gt;
なんとかならないものかしらね。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/wcv5SR38U-E/004628.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004628.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
            
            
            <pubDate>Sun, 30 Oct 2011 21:16:54 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004628.html</feedburner:origLink></item>
        
        <item>
            <title>ことえりで半角スペース</title>
            <description>Macの日本語入力はGoogle日本語入力を使っていたのだけれど、OSをLionにアップグレードしたときに勝手にことえりに戻ってしまったので、そのままことえりを使っている。&lt;br/&gt;
&lt;br/&gt;
で、困るのが半角スペースの入力。ことえりの設定にはそう言う選択はない。&lt;br/&gt;
ちょっと調べたら、&lt;a href="http://notebookpc.jp/archives/2562"&gt;Mac OS X ことえりで半角スペースをデフォルトにする方法 » NotebookPC.jp&lt;/a&gt;と言うページを発見。&lt;br/&gt;
基本ここに書いてある通りなんだけど、微妙にはまったのでメモ。&lt;br/&gt;
&lt;br/&gt;
&lt;h3 class="h3c"&gt;現在の設定を見る&lt;/h3&gt;
&lt;pre class="commandline"&gt;
% defaults read com.apple.inputmethod.Kotoeri zhsy
{
    " " = 1;
    "!" = 1;
    "\\"" = 1;
    "#" = 1;
    "$" = 1;
    "%" = 1;
    "&amp;amp;" = 1;
    "'" = 1;
    "(" = 1;
    ")" = 1;
    "*" = 1;
    "+" = 1;
    "," = 1;
    "-" = 1;
    "." = 1;
    "/" = 1;
    ":" = 1;
    ";" = 1;
    "&amp;lt;" = 1;
    "=" = 1;
    "&amp;gt;" = 1;
    "?" = 1;
    "@" = 1;
    "[" = 1;
    "\\\\" = 1;
    "]" = 1;
    "^" = 1;
    "_" = 1;
    "`" = 1;
    "{" = 1;
    "|" = 1;
    "}" = 1;
    "~" = 1;
    "\\U00a5" = 1;
}
&lt;/pre&gt;
ちなみに、最後のzhsyをつけないと、ことえり全体の設定が見られるようだ。&lt;br/&gt;
&lt;br/&gt;
&lt;h3 class="h3c"&gt;半角スペースをデフォルトにする&lt;/h3&gt;
&lt;pre class="commandline"&gt;
% defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add " " -bool no
&lt;/pre&gt;
参考にしたページからそのままコピペすると、"が全角だったので
&lt;pre class="commandline"&gt;
% defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add " " -bool no
2011-10-15 07:41:17.974 defaults[22079:707] Dictionary keys must be strings
&lt;/pre&gt;
のようなエラーが出てはまった。はまった過程で、余計なものを追加してしまったのだけれど、-dict-add はあるけど -dict-del がないので、消し方がわからない。-dict で既存のものもすべて追加し直せば良いんだろうけど、面倒だし実害もなさそうだからほっておくことにする。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/YeZ1xBVqzSM/004608.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004608.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
            
            
            <pubDate>Sat, 15 Oct 2011 07:32:10 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004608.html</feedburner:origLink></item>
        
        <item>
            <title>dd_rescueでHDD交換</title>
            <description>smartのエラーが出てしまったので、HDDを交換することにする。&lt;br/&gt;
早速、amazonで新しいHDDとSATAケーブルを注文した。&lt;br/&gt;
で、HDDが届いたので、エラーが出始めているHDDと交換するためにケースを開けると、SATAの口は開いているけど、電源ケーブルが1本のケーブルに口が2つあるタイプだった。&lt;br/&gt;
どう見ても入りそうになかったので、現在は使用していない3.5インチのFDDを外して、代わりに新しいdiskを入れる。&lt;br/&gt;
既存のHDDはSATAの1番目に刺さっていたので、後のことを考えて新しいHDDをSATAの1番目に、古いHDDをSATAの2番目に繋いだ。&lt;br/&gt;
そして、用意しておいたKNOPPIXのCD-Rで起動することに。boot時に knoppix noswap を指定するようにとの指示を何箇所かで見たんだけど、エラーになっていたので気にせずデフォルトで起動してしまった。(後で、swapon -l とかで見ても何も出なかったので、たぶん問題ないだろう)&lt;br/&gt;
ちなみに、knoppixは&lt;a href="http://www.rcis.aist.go.jp/project/knoppix/"&gt;KNOPPIX Japanese edition&lt;/a&gt;からknoppix_v6.4.4CD_20110130-20110301.isoを持ってきた。(ツールの方も、dd_rescueの他にddrescueとかdd_rhelpとかいろいろあるみたいだけど、なんとなくdd_rescueにした)&lt;br/&gt;
で、なんかGUIが起動したんだけど、ディスプレイとの相性が悪かったのかまともに表示されなくて使えない。&lt;br/&gt;
しょうがないので、Ctrl + Alt + F1を押してコンソールを表示して、そこで作業することにする。&lt;br/&gt;
ls /dev/sd* とかやると、/dev/sda と、/dev/sdb そして /dev/sdb1, /dev/sdb2, ... と表示されたので、狙い通り新しいHDDが/dev/sda, 古いHDDが/dev/sdbになったようだ。&lt;br/&gt;
後は、dd_rescueの実行。オプションなしで実行すると、ヘルプが出るので、適当に読んだところたぶん-Aオプション(読めなかったら0で埋める)を指定すればいいだろう。&lt;br/&gt;
&lt;pre class="commandline"&gt;
# dd_rescue -A /dev/sdb /dev/sda
dd_rescue: (info): ipos: 488386584.0k, opos: 488386584.0k, xfrerd: 488386584.0k
                   errs:      0, errxfer:          0.0k, succxfer: 488386584.0k
             +curr.rate:    21883kB/s, avg.rate:     39190kB/s, avg.load: 15.9%
Summary for /dev/sdb -&gt; /dev/sda:
dd_rescue: (info): ipos: 488386584.0k, opos: 488386584.0k, xfrerd: 488386584.0k
                   errs:      0, errxfer:          0.0k, succxfer: 488386584.0k
             +curr.rate:      601kB/s, avg.rate:     39190kB/s, avg.load: 15.9%
&lt;/pre&gt;
500GBのHDDのコピーに、だいたい4時間くらいかかったか。(途中で外出したので、正確な時間はわからない)&lt;br/&gt;
結局、コピー中にはエラーが出なかったので、古いdiskも再度newfsか何かしてやれば使えるんじゃないかと思う。&lt;br/&gt;
knoppix上でshutdown -r とすると、CD-Rがイジェクトされて、ENTER押さないと2分で再起動するよとか言われるので、CDを取り出してENTERを押すと、無事に新しいHDDからFreeBSDが起動した。&lt;br/&gt;
dmesgを見ると、新しいHDDが/dev/ad4, 古いHDDが/dev/ad6として認識されていた。(以前は、古いHDDが/dev/ad4)&lt;br/&gt;
&lt;br/&gt;
さて、これで古いHDDがmountされない状態で起動するようになったので、ddによる修復を試みて見よう。&lt;br/&gt;
b = (int)((L-S)*512/B) を計算すると、13258037になっていたので、まずは該当のブロックを読んでみる。&lt;br/&gt;
&lt;pre class="commandline"&gt;
# dd if=/dev/ad6 of=ad6 bs=16384 count=1 skip=13258037
1+0 records in
1+0 records out
16384 bytes transferred in 0.973938 secs (16822 bytes/sec)
&lt;/pre&gt;
んで、/dev/zeroを書く代わりにこのデータを書き戻してみる。
&lt;pre class="commandline"&gt;
# dd if=ad6 of=/dev/ad6 bs=16384 count=1 seek=13258037
1+0 records in
1+0 records out
16384 bytes transferred in 0.000354 secs (46275742 bytes/sec)
&lt;/pre&gt;
すると、/var/log/messagesに以下のメッセージが出た。
&lt;pre class="textfile"&gt;
Aug  5 21:13:41 sv kernel: GEOM: ad6s1: geometry does not match label (255h,63s != 16h,63s).
&lt;/pre&gt;
なんか間違ってしまったような気もするけど、今の知識では良くわからない。&lt;br/&gt;
気を取り直して、smartctlでテストを実行する。&lt;br/&gt;
&lt;pre class="commandline"&gt;
# smartctl  -t long /dev/ad6
smartctl 5.39 2009-12-09 r2995 [FreeBSD 8.2-STABLE i386] (local build)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 107 minutes for test to complete.
Test will complete after Fri Aug  5 23:04:04 2011

Use smartctl -X to abort test.
&lt;/pre&gt;
後は、テストが終わったらログを確認してみよう。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/AdNStrVpQO0/004561.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004561.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Fri, 05 Aug 2011 20:44:51 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004561.html</feedburner:origLink></item>
        
        <item>
            <title>SMART error (CurrentPendingSector) detected</title>
            <description>サーバマシンのrootから以下のメールが来た。
&lt;pre class="textfile"&gt;
Subject: SMART error (CurrentPendingSector) detected on host: sv.wizard-limit.net

This email was generated by the smartd daemon running on:

   host name: sv.wizard-limit.net
  DNS domain: wizard-limit.net
  NIS domain: 

The following warning/error was logged by the smartd daemon:

Device: /dev/ad4, 1 Currently unreadable (pending) sectors


For details see host's SYSLOG (default: /var/log/messages).

You can also use the smartctl utility for further investigation.
No additional email messages about this problem will be sent.
&lt;/pre&gt;
何事かと思って /var/log/messagesを見ると、
&lt;pre class="textfile"&gt;
Aug  1 08:21:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 08:51:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 09:21:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 09:51:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 10:21:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 10:51:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 11:21:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
Aug  1 11:51:28 sv smartd[1729]: Device: /dev/ad4, 1 Currently unreadable (pending) sectors
&lt;/pre&gt;
と30分毎にエラーが出ている。エラーメッセージでぐぐると、&lt;a href="http://orz.miroq.info/archives/24"&gt;smartd での sector error 復活作業 | ni kvel&lt;/a&gt;とか&lt;a href="http://homemate21.net/modules/d3forum/index.php?topic_id=13"&gt;ホームメイト２１ - Ｆｅｄｏｒａの不良セクターの修復&lt;/a&gt;と言うページを発見。&lt;br/&gt;
&lt;pre class="commandline"&gt;
# smartctl -t short /dev/ad4
smartctl 5.39 2009-12-09 r2995 [FreeBSD 8.2-STABLE i386] (local build)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Wed Aug  3 04:28:25 2011

Use smartctl -X to abort test.

・・・2分待つ

# smartctl -l selftest /dev/ad4
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       20%     20573         424257195
&lt;/pre&gt;
ここまでは見つけたサイトと一緒。うちの場合は、424257195にエラーセクタがあると言うことなんだろう。&lt;br/&gt;
しかし、その後の
&lt;blockquote&gt;
&lt;pre&gt;
b = (int)((L-S)*512/B)
where:
b = File System block number
B = File system block size in bytes
L = LBA of bad sector
S = Starting sector of partition as shown by fdisk -lu
&lt;/pre&gt;
&lt;/blockquote&gt;
の計算式の意味がわからないのと、なんでddで/dev/zeroを書くと修復になるのかがわからなかった。恐らく、read errorが出るところに書きこむことで、不良セクタとしてマークして代替セクタを割り当ててくれる的な話か?&lt;br/&gt;
とりあえず、FreeBSDの場合は fdisk -luとかでは情報が出ないので、disklabelで見てみる。
&lt;pre class="commandline"&gt;
# disklabel  -A /dev/ad4s1
# /dev/ad4s1:
type: ESDI
disk: ad4s1
label: 
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 60801
sectors/unit: 976773168
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0 

8 partitions:
#          size     offset    fstype   [fsize bsize bps/cpg]
  a:    1048576          0    4.2BSD     2048 16384     8
  b:    4194304    1048576      swap                    
  c:  976768002          0    unused        0     0     # "raw" part, don't edit
  d:  268435456    5242880    4.2BSD     2048 16384 28552
  e:  703089666  273678336    4.2BSD     2048 16384 28552
disklabel: partition c doesn't cover the whole unit!
disklabel: An incorrect partition c may cause problems for standard system utilities
&lt;/pre&gt;
たぶん、上の式に出てくる512と言うのはdisklabel -Aで出てきた bytes/sector なんだろう。そして、B が bsize で16384、Sは/dev/ad4s1cを指定するならば0で良いと思われる。すると、b = (424257195 - 0) * 512 / 16384 = 13258037?&lt;br/&gt;
しかし、稼働中のシステムの一部にddで0を書きこむなんて怖くてできないので、代わりのHDDを買ってきてシステムを移行してから試すことにしよう。&lt;br/&gt;
ちなみに、前回HDDを交換したのは&lt;a href="http://www.wizard-limit.net/mt/pc/archives/003626.html"&gt;2009年の3月&lt;/a&gt;のようだ。2年半とするとちょっと寿命が短いなあ。&lt;br/&gt;
&lt;br/&gt;
こう言ったメンテナンスとか、毎月の電気代、UPSのバッテリー代などを考えると、自宅サーバを続けるよりもVPSに移行した方が良いんじゃないかと最近考える。&lt;br/&gt;
ちょっと調べてみたけど、メジャーなところではさくらのVPSかDTIのServersManと言うのがあるらしい。&lt;br/&gt;
さくらの方はFreeBSDが選べるけど、HDDが少なくてIPv4のみ。DTIの方は10G/100円でHDDが追加できて、IPv6もついてくる。ただし、ドメインをDTIでやっていないと逆引きの設定ができないのと、FreeBSDが選べない。&lt;br/&gt;
とりあえずDTIの方は最低契約期間の縛りがなくて、最大2ヶ月無料なので、一度どんなもんか見てみても良いかも知れない。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/pwyrdN2CVPg/004557.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004557.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">FreeBSD</category>
            
            
            <pubDate>Wed, 03 Aug 2011 04:06:32 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004557.html</feedburner:origLink></item>
        
        <item>
            <title>OS Xの辞書アプリをコマンドラインから</title>
            <description>OS X の辞書アプリが便利だと言うのをtwitterで見たので、Spotlightから起動してみたら大辞林とか英和・和英とか入ってて確かに便利そう。&lt;br/&gt;
しかし、辞書を使うならemacs上から使いたい、と言うことで調べたら、見つかったのが&lt;a href="http://sakito.jp/mac/dictionary.html"&gt;辞書(Dictionary).appを使い倒そう : 紹介マニア&lt;/a&gt;と言うページ。&lt;br/&gt;
最初誤読していて、一生懸命emacs-w3mをcvsから取ってきて入れたりしたんだけど、w3mからは dict:// が使えない上、browse-url を使う方法だとemacs上でなく辞書アプリで結果が出ることがわかってショックを受ける。&lt;br/&gt;
同じページに、pythonスクリプトを書いてコマンドラインから呼ぶ方法が載っていたので、こちらを試してみたが、どうもNew Oxfordしか引いてくれない模様。&lt;br/&gt;
さらに検索したところ、&lt;a href="http://d.hatena.ne.jp/WaterFlea/20100718/1279430262"&gt;terminal dictionary,, for macosx.. - うごくな！　のんすとっぷ！&lt;/a&gt;と言うページと、&lt;a href="http://numata.designed.jp/ja/2007/10/dictionary-services.html"&gt;Dictionary Services 登場 - Numata Designed Factory&lt;/a&gt;と言うページを発見。&lt;br/&gt;
&lt;a href="http://developer.apple.com/library/mac/#documentation/UserExperience/Reference/DictionaryServicesRef/Reference/reference.html#//apple_ref/c/func/DCSCopyTextDefinition"&gt;Dictionary Services Reference&lt;/a&gt;DCSCopyTextDefinitionのリファレンスには、This parameter is reserved for future use, so pass NULL. Dictionary Services searches in all active dictionaries. と書いてあるのだが、実際には使えるようだ。&lt;br/&gt;
そこで、2つのサイトのソースを組み合わせてNew Oxford以外も引けるようにしてみた。&lt;br/&gt;
ソースは、例によってgithubに上げてあるので、興味がある方は&lt;a href="https://github.com/false-git/dict"&gt;https://github.com/false-git/dict&lt;/a&gt;を見てみて欲しい。&lt;br/&gt;

実行例(大辞林を引いてみる)
&lt;pre class="commandline"&gt;
% dict -j 辞書
じ‐しょ
【辞書】
1
多数の語を集録し、一定の順序に配列して一つの集合体として、個々の語の意味•用法、 またはその示す内容について記したもの。語のほかに接辞や連語•諺なども収める。また 、語の表記単位である文字、特に漢字を登録したものも含めていう。辞書は辞典（ことばてん）•事典（ことてん）•字典（もじてん）に分類されるが、現実に刊行されている辞書の書名では、これらが明確に使い分けられているとはいえない。辞典。字書。字引（じびき）。
2
ワードプロセッサーで、入力した仮名を漢字に変換するために登録されている語•熟語•類語などのファイル。また、自動翻訳システムで、語の対応や文法などを登録しておくファイル。
3
先帝が新帝から贈られる太上（だいじょう）天皇の尊号を辞退する意を述べた書状。御奉書。御辞書。
4
辞表。じそ。
&lt;/pre&gt;

後は、最初のサイトを参考にemacsからこのコマンドを呼べるようにすればemacsから辞書がひけると言うわけ。</description>
            <link>http://feedproxy.google.com/~r/wizard-limit/mt/pc/~3/yF1BelbUyRY/004552.html</link>
            <guid isPermaLink="false">http://www.wizard-limit.net/mt/pc/archives/004552.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
            
            
            <pubDate>Sat, 23 Jul 2011 08:29:58 +0900</pubDate>
        <feedburner:origLink>http://www.wizard-limit.net/mt/pc/archives/004552.html</feedburner:origLink></item>
        
    </channel>
</rss>

