12月 262009
 

ports CURRENT の editors/emacs が emacs-22.3 から emacs-23.1 になったようだけど、japanese/ の下の emacs は相変わらず emacs-22.3 ぽいので、以前このブログに掲載した emacs-canna の ports を作ってみました。

基本的には editors/emacs を japanese/ にコピーして Canna for GNU Emacs23 からパッチを取って来て make している感じです。なので、ベースは emacs-23.1 で、インストールされるものも editors/emacs とまるっきり一緒のはずです。

以下の URL に転がしておいたのでもしよろしければ使ってみてください。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-emacs-canna-20091221.tgz
この ports について、その筋の人に色々お聞きしてみたのですが、一番多い意見が send-pr すればぁ。ってヤツでしたが、正しくその通りだとは思います。が、まぁ、自分で使っている分にはどーでもよいかぁ。みたいな感じで(^^;;。

後、ports の editors/emacs に吸収してもらえばぁ。って意見も頂いて、これは確かに「なるほどー。」とか思いましたね。 options に WITH_CANNA=yes とか指定できれば、 Canna for GNU Emacs23 からパッチをダウンロードして来て適用する。ってので済むのでこれは確かにラクチンだし、emacs の ports があちこちにできなくて済むのでそれはそれで嬉しいのだけどねぇ・・。

とまぁ、そんなそんなことは思っても結局はどっかそのへんに転がしておいて終ってしまいそうな予感なんですけどね(^^;;。

12月 252009
 

以前は cvsup(net/cvsup-without-gui) を利用していたのだけど、最近は csup(1) を利用して ports とか STABLE の最新のソースを持ってくるようになった。

csup(1) は IPv6 に対応しているのだけど、 cvsupd(net/cvsup-mirror) が IPv6 に対応していないくて、IPv4 でしか応えてくれないので、csup の一発目は必ずエラーになる。

あ。僕は自宅のサーバに cvsupd を起動しているので cvsup3.jp.freebsd.org とかから定期的に持ってきているので、自宅の FreeBSD は自宅で起動している cvsupd なサーバから持ってきています。cvsup.icmpv6.org がそれになるわけですけども;-)。

で、自宅のネットワークには IPv6 があってウェブとかメールサーバは IPv6 に対応しているのに cvsupd が IPv6 に対応していないのは非常に悲しいので、今回 cvsupd を IPv6 に対応させてみたいと思います。ただ、net/cvsup-mirror のソースコードを改変して IPv6 対応するのは非常に大変なので、今回はネットワーク的に IPv6 への到達性を確保します。IPv6->IPv4 トランスレータ機能を利用します。お題目は以下です;-)。

faith0 インターフェースと faithd を利用して cvsupd を IPv6 対応にしてみましょう。

まぁ、まずは何はなくとも man faithd と叩いてみましょう。そこから始まりますが、man を読んで解った事は、アドレスプレフィックス部分の /96 と IPv4 アドレス部分の /32 に分かれていて、IPv4 部分で IPv4 サーバを特定してそこにパケットを投げますよ。みたいな感じです。

では早速設定を見ていきましょう。今回のネットワーク構成はこんな感じにしてみました。

ipv6_faith.png

以下にちょっと箇条書きにしてみます。

  • 今回ターゲットとなる cvsupd は IPv4/IPv6 のデュアルスタックなサーバ上で動作します。
  • IPv4 ルータは PPPoE などでグローバルあドレスが付きますがサーバは NAT されています。ポート 5999 は cvsupd サーバにポートフォワードされています。
  • IPv6 ルータは外部のグローバル IPv6 ネットワークに接続しています。
  • cvsupd へは rtadvd により IPv6 のグローバルアドレスを払い出しています。
  • IPv4 は 192.168.0/24 です。
  • IPv6 は 2001:200:161:1400::/64 です。
  • トランスレータ用のプレフィックスは 2001:200:161:1400:5999::/96 です。

さてと。これだけでほぼ準備が整いました;-)。

まず、cvsupd サーバでの設定ですが、 faith0 インターフェースに飲み込まれる IPv6 プレフィックスを route(8) で設定します。その後、faithd を起動して特定のポートを faith0 に飲み込むようにします。

起動スクリプトは以下になります。rcNG ではなくて申しわけないですが(^^;;。

#!/bin/sh
#
# faithd start
#
HOME=/
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin/:/usr/local/bin
export HOME PATH
faith_ipv6='2001:200:161:1400:5999::' faith_ipv6_prefix='96'
case $1 in 'start' ) if [ -f /usr/sbin/faithd ]; then sysctl -w net.inet6.ip6.accept_rtadv=0 sysctl -w net.inet6.ip6.forwarding=1 sysctl -w net.inet6.ip6.keepfaith=1 ifconfig faith0 create ifconfig faith0 up route add -inet6 $faith_ipv6 -prefixlen $faith_ipv6_prefix ::1 route change -inet6 $faith_ipv6 -prefixlen $faith_ipv6_prefix -ifp faith0
/usr/sbin/faithd 5999 fi echo 'faithd 5999 Start.' ;; 'stop' ) killall faithd
route delete -inet6 $faith_ipv6 -prefixlen $faith_ipv6_prefix sysctl -w net.inet6.ip6.accept_rtadv=0 sysctl -w net.inet6.ip6.forwarding=0 sysctl -w net.inet6.ip6.keepfaith=0
ifconfig faith0 down ifconfig faith0 destroy
echo 'faithd Stop.' ;; 'restart' ) /usr/local/etc/rc.d/faithd stop /usr/local/etc/rc.d/faithd start ;; * ) echo "usage : faithd {start|stop|restart}" ;; esac

 
まず最初に sysctl で必要な mib のステータスを変更します。 ifconfig faith0 up した後に route add してから route change します。この時、プレフィックスは /96 です。残りの /32 は IPv4 アドレスになります。

今回の cvsupd サーバは 192.168.1.2 が付いているので、それを IPv6 に直すと以下になります。

2001:200:161:1400:5999::c0a8:102

この IPv6 アドレスを DNS に登録します。すると、csup コマンドを叩いた時に supfile の *default host 行に FQDN を書けば IPv6 でアクセスが可能になります。

と、思いきや・・。外部の FreeBSD からだとアクセスできないですね。 IPv6 ルータは 2001:200:161:1400::/64 ではルーテイングが設定してあるのですが、2001:200:161:1400:5999::/96 のルーティングができていないので IPv6 ルータに対して route add コマンドで 2001:200:161:1400:5999::/96 を cvsupd が起動しているサーバのリンクローカルアドレスに向けて上げます。

# route add -net -inet6 2001:200:161:1400:5999:: -prefixlen 96 fe80::2ae:90ff:fe11:a85%bge0

 
これで設定は全て完了です。外部の IPv6 機器から接続できるか確認してみましょう。

トラブルシューティングですが、まず、cvsupd サーバのローカルホストから telnet cvsup.icmpv6.org 5999 などと FQDN で指定し cvsupd に接続できるか確認してみましょう。

そこで問題があれば、指定したプレフィックスが /96 になっているか、IPv4->IPv6 の変換時の IP アドレスや DNS の設定、faithd 、sysctl mib などを見直してみましょう。

外部から接続ができない場合、DNS のアドレスの設定の確認と、IPv6 ルータでの /96 のルーティングの設定を確認しょう。

今回は faith0 と faithd の設定を見てきましたが、これらは tcp しか通過できません。 udp には対応していないんですね。そもそも faithd は KAME のリファレンスコードなので「tcp は実装するけど、他のプロトコルは自分で書いてね。」的要素が強いのかな?などと、僕個人的には思っています。

tcp しか通らないので、当然 ping や traceroute も通りません。tcping は IPv4 にしか対応していないし・・。とわいえ、ume さん が tcping の IPv6 対応パッチを書いてくださったのでそれを適用した tcping を利用すると良いかと思われます。以下の URL にパッチを転がしておきます;-)。ports の net/tcping で利用してください。

http://icmpv6.org/Prog/FreeBSD_ports/tcping-ipv6.diff

さてと。これで cvsupd サーバは IPv6 Ready になりました。このサーバ上で IPv4 にしか対応していない色々なデーモンを起動すればなんでも IPv6 Ready になります。では、IPv4 にしか対応していないデーモンは一体何が?とハタと考えた場合、古いソースコード(バージョン)で運用しているデーモンとか位しか思い浮かばなかったのですが、DSS(net/DarwinStreamingServer) なんかは IPv4 にしか対応してないので、こう言ったものを IPv6 Ready にすることが可能です。その場合、必要なポートを指定して faithd を起動する必要があります。DSS であれば以下のように感じでしょうか。上記のスクリプトに加筆します。

/usr/sbin/faithd 554
/usr/sbin/faithd 5000
/usr/sbin/faithd 5100

などなど、必要そうなポートにたいして faithd を起動するとそのポートに来たパケットは faith0 に突っ込んでくれるようになります;-)。

で、ここでまた、ハタと考えた・・。Apple 謹製の QiuckTime Player は IPv6 に対応しているのかぁ? あぁ。multimedia/mplayer で試せば良いかぁ。みたいな(^^;;。

大体こんな感じで faith0 と faithd を使えば比較的楽に楽しく利用できるかなぁ。と思った次第です。本来であれば IPv6->IPv4 トランスレータとして、dns/totd と組み合わせて使う大掛かりなルータってイメージがあるんだけど、ローカルホストのために利用する faith0 と faithd というのもまたアリかなぁ。と言う感じがあるのであります;-)。

12月 212009
 

MacOSX Snow Leopard(以降 “MacOSX SL” と記述します) の BootCamp パーティションに Windows7 Professional x86 をインストールしてみました。また、BootCamp パーティションにインストールした Windows7 はその後、VMware Fusion 2.0.6 から参照することもできました。その件についてチロっと書いてみたいと思います。

まず、今までは BootCamp パーティションには WindowsXP Home Edition が入っていたのですが、これを「Boot Camp アシスタント」でサクっと消します。その後、再度 32GB 程生成してから DVD を突っ込んでリブートします。

最初 DVD は x64 のを用意したのだけど DVD ブートしなかったので x86 用メディアで再度トライしました。すると、x86 版はサクっとブートしたので後はひたすらインストールです。この作業はフツーの PC にインストールするのと同じ雰囲気で作業終了。

あ。インストール時のパーティション選択ですが、Mac 側の「Boot Camp アシスタント」で BootCamp 用パーティションを生成すると FAT32 になります。しかし、Windows7 は NTFS にしかインストールできないので、BootCamp パーティションを削除して Windows7 をインストールするパーティションを生成してフォーマットしてあげる必要があります。ここが第一の関門。って感じでしょうか。失敗すると MacOSX 自体をつぶしてしまうので、しっかり BOOTCAMP と書いてあるパーティションを消しましょう。

何回かの再起動の後、無事に Windows7 のインストールは完了するので次に MacOSX SL の DVD を突っ込んでドライバをインストールしますが、この作業もあっけないほど、何もバタバタ慌てることも無く無事に終了。全自動でやってくれました。

簡単に MakBook で Windows7 Professional x86 が起動したのでありました;-)。

続いて MacOSX SL をブートして VMware Fusion 側から BootCamp パーティションの Windows7 を利用することにします。僕の VMware Fusion は 2.0.6 ですが、これを起動します。

しかし、以前利用していた BootCamp のディスクイメージと言うか情報が残っていて、新しくインストールした Windows7 がブートできませんでした。いったん VMware Fusion を消して再インストールしたのですが、仮想マシンの情報は削除されないみたいなので、手で消す必要がります。また、”削除” メニューからは BootCamp パーティションの情報は削除できません。

なお、「仮想マシン」がある場所は非常に解りづらいです。以下にあるので、良く選んでからサクっと消すようにしましょう;-)。

/Users/takachan/Library/Application Support/VMware Fusion/Virtual Machines/

ちなみに僕は VMware Fusion で利用していた仮想マシンは BootCamp 上の WindowsXP HomeEdition と Windows7 RC だけだったので、どっちの情報もサクっと消してしまいました;-)。

消した後、VMware Fusion を起動すると新たに BootCamp の情報を読み込んでくれるので後は「起動」すれば良いだけです。

VMware Fusion 上で Windows7 が起動したら VMware ツールをインストールします。必要なドライバをドドドとインストールしてくれるので特に苦もなく完了。と、非常に簡単に全作業の行程が終了してしまったのでありました;-)。

vmware-fusion.png

ちなみに VMware Fusion からはシリアルドライバが認識されていません。まぁ、特に必要ないかなぁ。などと思っていて深く追っていませんが;-)。

後、BootCamp 上の Windows は「スリープ」はできないのですが「休止状態」は利用できるので最悪それで良いかなぁ。と言う感じはしています。

さてと。使用感を少々書いておきます。僕の MacBook は CPU が Core2Duo 2GHz、メモリ3GB の状態で Windows7 Professional x86 に 1 個の CPU と 1GB のメモリを上げているのですが、もっさり感が非常にあるかなー。NotePC にインストールしたヤツのほうが快適に動いている気がします。

まぁ、BootCamp 上のは Windows7 Professional でも良いかもしれないんだけど、ちょっとサクっと使う時(「ちょっとサクっと検証する時」か;-)用に必要なものとして、ホンモノの仮想マシンとしては Windows7 Starter のほうが良いかなぁ。などと思ってしまいました。なのでそちらもインストールして試してみたいと思っています。

そもそも、EeePC を持っているのですが、ここには Windows7 Starter を入れる予定なんだけどねぇ;-)。

12月 202009
 

遅まきながら、我が家にも Windows7 がやってきました。PC で地デジが見たいよー。と思っても WindowsXP x64 では不可能なので、Windows7 の x64 にしてみた。と言うのが実情ですが。でもって、今回は、まず NotePC にインストールしてみました。 DELL の X1 と言うもうずいぶんと古い PC です。

CPU は PentiumM の 900MHz なので、Starter にしようか Professional にしようか悩んだのですが、ちょっと Professional で様子を見てみようと言うことにしました。なのでアクティベーションはなし。重かったら Starter に変更かなぁ。と言う感じです。あぁ。PentiumM は x86 Only です;-)。

で、インストールですが、今まで WindowsXP が入っていたパーティション(FAT32)をぶっつぶして NTFS で Windows7 をインストールしますが、いとも簡単に終わり、その段階では画面のドライバ(i915だと思うんだけどねぇ)が見あたらなかったのだけど、 update したら画面のドライバがインストールされた。後はサウンドチップ(FreeBSD 的に言うと SigmaTel STAC9752/53 AC97 Codec)のドライバだけど、これは DELL のサイトから Windows Vista 32bit ドライバを持ってきたら動作したので全然問題はありませんでした。

まぁ、Windows はどうせ検証のためだけ(の予定)でインストールしたのでここまで。この後 FreeBSD をブートしようとするんだけど、これがまた大変だったのでありました・・。

google などで検索すると、色々なサイトで bcdedit で情報書き込んでブートしようねぇ。と書かれているのですが Windows Vista 版のがほとんどなのねぇ。僕の Windows7 では以下のように打たないと FreeBSD は起動しませんでした。

c:¥ bcdedit /create /d "FreeBSD/i386" /application  bootsector
c:¥ bcdedit /set {ID} device partition=c:
c:¥ bcdedit /set {ID} path ¥freebsd.pbr
c:¥ bcdedit /displayorder {ID} /addfirst

 
{ID} ってのは /create したときに表示されるやつを指定します。

後、Windows Vista の bcdedit の場合って device boot って指定しようね。って、検索すると色々なサイトで書かれているのだけど Windows7 の場合、これではダメで、ブートセレクトで FreeBSD を選択した後に 0xc000000f なエラーコードで FreeBSD が起動してくれなかったりする。Windows7 の bcdedit では device partition=c: と指定するのが正しいみたいです。

bcdedit をオプションなしで実行すると起動設定が見えるので、Windows のブート情報と一緒にしてあげれば良いかなー。

ちなみに freebsd.pbr は /boot/boot1 を持ってくるんだけど、これまた当たり前で FreeBSD/i386 や FreeBSD/amd64 のどっちから持ってきても大丈夫です。md5 のチェックサムはどっちも一緒でした。手元に FreeBSD/i386 しかなくて、起動したいのは FreeBSD/amd64 ってときでも FreeBSD/i368 から /boot/boot1 を持ってきて c:¥freebsd.pbr にリネームして置けば大丈夫です。

で、FreeBSD はブートするんだけど、考えてみると Windows7 てパーティション二つ利用するのでブートメニューから FreeBSD が起動すると /etc/fstab の情報が一個ずれてしまうので Windows7 をインストールする前に FreeBSD の /etc/fstab は編集しておいたほうがラクチンかも;-)。まぁ、ufs:ad0s3a とかしてブートしてから /etc/fstab を直しても良いとは思うけど;-)。

今までは /dev/ad0s1 が Windows で /dev/ad0s2a が FreeBSD だった場合、 Windows7 をインストールした後は /dev/ad0s3a が FreeBSD の root になります。

とまぁ、今回は一番はまったのが bcdedit かなぁ。 これが一番時間がかかった・・。ふぅ。

と、言うことで NotePC での検証環境ができたので明日はメインで利用しているデスクトップに Windows7 の検証環境でも作るかなぁ。

12月 152009
 

ちょっと前に正式にリリースされた Thunderbird-3.0 ですが、今日 ports を csup したら登場したみたいなので早速利用してみました。

Thunderbird-2.0 と微妙に違うのですが、メールボツクスの並び方が MacOSX の Mail.App みたいに、受信ボックスごととか、ゴミ箱ごとに並ぶようになったのでそれはそれで嬉しいなぁ。と思い、WindowsXP と会社の FreeBSD/i386 7.2-STABLE、後自宅の FreeBSD/i386 7.2-STABLE と FreeBSD/amd64 7.2-STABLE にインストールしました。

僕の使い方としては、Thunderbird を imap4 で利用して spam フィルタとして利用した後、emacs+mew で POP して来ると言う感じなたんだけどねぇ。けど、その横では MacOSX の Mail.App からやはり imap4 でアクセスする。と言う結構複雑な状況;-)。

さて。Thunderbird-3.0 ですが FreeBSD/i386 ではちゃんと動くんだけど FreeBSD/amd64 ではcore dump して動作しない。よくよく調べてみると Firefox35 も Flash があるとやはり core dump して動作しない。

flashplugin 周りの ports を入れたり消したり devel にたりしたけど、やはり core dump する・・。

後、驚いたのが Thunderbird-3.0 は Firefox のプラグインも参照するのね。考えてみると /usr/local/lib/npapi/linux-flashplugin なんてディレクトリはないさー。/usr/local/lib/npapi/linux-f8-flashplugin ならあるんだけどね。大丈夫なのか・・。環境をもう一度見直す必要があるのかな?

で、結局 plugin 周りをいじったのだけど、だめだった。相変わらず core dump の嵐。ゲームセンター嵐。なんのこっちゃ;-P。

Thunderbird とか Firefox には -g と言うgdb 経由の起動オプシンがあるのですが、それで確認してみると以下のメッセージが・・。

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x806b020b0 (LWP 100220)]
0x000000080358df8b in pango_ot_tag_from_script () from /usr/local/lib/libpangoft2-1.0.so.0
(gdb)

 
ふむー。pango 辺りで起きているのね・・。インストールされているバージョンは pango-1.26.1 。これを再インストールしたけど、治らない・・。

で、google で探してみたら以下の URL を発見・・。orz

http://forums.freebsd.org/showthread.php?t=8859

よくよく読んでみると pango を 1.24.5 にすれば動作するらしい。かなしぃなぁ・・。

僕は gnome ではなく KDE4 を利用しているので pango を入れ替えた時のダメージが大きいのでどうしようか悩み中。あ、どんなダメージがあるのか想像ついてないです。もしかしたら全然大丈夫なのかもしれませんけど。

FreeBSD/amd64 は自宅で利用しているデスクトップ機でメモリ 8GByte 積んだマシンなのよ。最近は Mac でメール見たりするので無理して Thunderbird と Firefox 使わなくても良いかなぁ・・。KDE4 には konqueror があるしなぁ・・。

それにしてもまいった。pango のバージョン落とすか、もう少し待って Thunderbird と Firefox が対応してくれるのを待つかですね。

12月 122009
 

8.0-RELEASE がリリースされたみたいなので、自宅の PC にインストールしてみました。色々新しいデバイスドライバが使えるみたい。ってのもあるんですけどね.

最近は MacOSX をメインで使うようになって本当に FreeBSD へのモチベーションは下がりつつあるのですが、けど、おっかけないと・・。感があるわけです。

とはいいつつ、普段利用しているデスクトップとかサーバにはまだまだインストールする勇気が無いので、今は「キッチンのパソコン」と利用している EeePC にインストールしてみました。以前にもこのブログに書いているのですが、久しぶりに引っ張り出してみました;-)。

で、EeePC に USB 経由で 2.5 インチ HDD をつけて、その HDD には 7.2-STABLE が入っているわけだけど、これを cvsup で 8.0-STABLE にしたわけです。

自分でカーネル config を作成して、make installkernel して、さてと 8.0-STABLE ブートだ。と思ったら・・。あんれまぁ。USB に接続した HDD からはブートしませんでした・・。

手元に 8.0-STABLE が動作している PC が他に無いのでなんとも言えないのですが、カーネルのブート時に USB デバイスを一切認識してくれない状態。カーネルロードモジュールでは usb.ko とか umass.ko をロードしているのだけど、ブート時には USB デバイスとかチップを一切認識しないので、USB に接続した 2.5 インチ HDD、/dev/da0s1a になるわけですが、これが見えない。

なので、vfs.root.mountfrom 以前の問題だぁ・・。

http://www.mail-archive.com/freebsd-stable@freebsd.org/msg105670.html

この辺りのスレッドを見ると USB 機器からブートしないぜい。ってのがあるんだけど、これ、僕の現象とはちょっと違うよなぁ・・。

どうして USB デバイスが一切認識されないのだろう・・。まだまだ格闘は続くのであります;-)。

12月 052009
 

久々に書きます。最近、ネタなかったのよー。けど、KDE-4.3.4 もリリースされたし、ちょっと書くことが出てきたかも;-)。

と、いうことで、今回は、あの「google日本語入力」についてです;-)。

会社で利用している WindowsXP には MS IME 2003 しか入ってなくて、変換効率がいまいちだったので入れてみました。ただ、あいにく日本語入力の機会に恵まれていないのでまだ、いまいち良くわかりません。

このドキュメントは Mac 上て書いています。「google 日本語入力」を利用して;-)。こうして、使い方を確認している最中です。

ここでは何回も書いていますが、僕はそもそも「かな入力」の人なので、「google 日本語入力」でも「かな入力」に対応していて助かります。などと思っていたら・・。「ー」全角ハイホン、”ラーメン”の真ん中の棒の部分の扱いが違うので驚きました。

「google 日本語入力」では「へ」キーの右側のキーをふつーに押すと「¥」yen マークが表示されてしまいます。あいたたた・・。orz。
全角ハイホンを出すにはシフトキーを押さないと表示されないんですね。これは結構ショックでかい・・。yenマークを押す機会なんてのはそんなにないのでキーバインドを逆にしてほしいものです。設定画面を見てもキーバインドの変更設定は無いのでこれは本当に痛いところです。

きっと「かな入力」の人にしか解らない悩みだとは思うのですけどねぇ・・(^^;;。

それにしても入力モードに「ことえり」というのがあるので助かります。Mac 上では当然必要な機能なんですが、その設定が Windows でも利用できるのは大きい;-)。

僕は昔から Canna を使っていた(NEC の EWS4800 のころから;-)し、しかも「かな入力」だったので C-n というのはすごーく重要(Canna をかな入力で利用したことのある人しか解らないであろう;-)なんだけど、「ことえり」の C-;,l,k,j がある意味似たような機能をしてくれているので Mac の日本語入力にもすんなり入っていけたんだけどねぇ。

それが Windows 上でも利用できるようになる。というのは非常に有難いことです。その昔、Canna for Win32 というのを Windows 上で試したこともありましたけどねぇ;-)。

インストールについてですいが、Mac 版はインストールしたあと、直ぐに利用できるのだけど、設定メニューが表示されません。一旦ログアウトしてから、再度ログインするとメニューバーのプルダウンに環境設定メニューが表示されるようになります。

screen-capture-googleji.png

さてと。僕的にはここまで書いたことが重要であって、他の記事やブログに書かれている変換効率などについてですが、上にも書いた通り、僕はずっと変換効率がおバカな Canna を使っていたせいで「連文節変換」と濁点や口読点で変換する。という文化は無くて、ほぼ単語単位で変換していたので特に気にはなりません;-)。

とある語句を変換した時に一番最初に表示される語句が怪しいとは思ってもスペースキーを叩いたり、TABキーを押したりすれば良いのでまぁ、僕的には十分かなぁ。という感じはします。

ATOK for Mac はまだお試し期間中なんだけど、どうしようか悩み中。四国の小さい会社が潰れそうなので月額 300yen 払っても良いかなぁ。とは思うのですけども、ATOK for Mac にはバグがあるですよ。

「かな入力」の時にとある語句を入力していると日本語入力がいきなりオフになる。例えば「たかのです。」と打つと「たqtkw@r>」となってしまう。”た”か”か”で日本語入力オン/オフのトングルに引っかかるんでしょうな。明らかにバグっぽい。ATOK for Mac 2008 ではその症状は出なかったので 2009 でエンバグしたのでしょうなぁ。

ATOK の関係者もしくは近い人がいましたらご対応頂ければと思います;-)。

さてとー。今回のこの記事を書いてみましたがやはり「ー」キーの扱いがボトルネックかなぁ。という気はしますが、慣れかなぁ。けど、考えてみると Canna も「を」や「ろ」きーが変なところにあったりするなぁ;-)。そー考えれば良いか。

もう少し使い込んでみることにしましょう;-)。

10月 192009
 

この間 Snow Leopard をインストールしたときはアップグレードインストールだった。だって店員さんが「クリーンインストールはできません。」て言うんだもん・・。

しかし、コメントを頂いたり、ウェブで検索してみると CD(あ。DVD か;-)を突っ込んで再起動し、 c を押しっぱなしにするとクリーンインストールができることを知ったので、過去の遺産を全て払拭すべく実施したのでありました。

DVD からブートした後は、インストール画面に表示されているツールバーのメニューから「ディクスユーティリティー」を起動してパーティションを削除する必要があります。

僕は外づけ HDD も持っていてタイムマシーンも動作しているのだけど過去の遺産は引っ張ってきたくないので、自分でバックアップしたものをインストール後に必要なものだけ抜き出す。と言う戦法に出ています。

気がついた点としては(当然なんだけど) ~/Library/ はバックアップするの重要ですねぇ。けど、このディレクトリ、ゴミが多いのもまた事実で、 ~/Library/Caches/com.apple.Safari/ なんてのはサクっと消してしまったほうが良いですね。後、フォントは /Library/Fonts/ にインストールしたほうが断然良い。

ってな感じで、復旧も終わりクリーンな状態となり、Xcode やら iPhoneSDK などをインストールして開発環境を整えます。それにしてもクリーンインストールして解ったのだけど、

/usr/bin/perl5.10.0
/usr/bin/perl5.8.9
/usr/bin/gcc-4.0
/usr/bin/gcc-4.2

などなど、随分とやってくれますなぁ。Apple も。って感じがします。そもそも、Xcode 入れた段階で /Developer/SDKs/ には MacOSX10.5.sdk/ と MacOSX10.6.sdk/ の両方がある。ってのにも驚いていますが・・。

それにしてもクリーンインストールした結果、それなりに make できないものが出てきて困っています。例えば sendmail-8.14.3 は Darwin 10.0.0 に対応してないし、make は通らないし、emacs は 22.3、23.1 共に make が通らないようになった。アップグレードインストールした時は無事に make できていたので何かがおかしくなったんでしょうなぁ。と言う感じです。自力で make するのは色々なソフトウェアが Darwin 10.0.0 に対応してからのほうが良いような気がします。

が、ただ単に「Darwin 10.0.0 に対応」とは行っても例えば FreeBSD の ports 的に言うと ports/devel/boehm-gc なんてのは 6.8 だと Darwin に対応しているのは i386 と PPC のみ。Darwon 10.0.0 は default で make すると x86_64 バイナリを出力するのでソースコードも Darwin の x86_64 に対応してくれないとパッチ書きまくりになってしまうであります。まぁ、gc の場合は 7.2alpha2 でちゃんと Darwin の x86_64 に対応しているので事なきを得たのですけどねぇ。

さてと。epkg ネタ行きましょう;-)。

僕は MacOSX ではバイナリパッケージとして epkg(http://www.ie.u-ryukyu.ac.jp/epkg/darwin4u/) を利用しています。管理も日本の方がやっているので ML に入れば日本語でのやり取りが可能だし、FreeBSD の ports みたいな感じなので、自分が欲しい epkg は自分で作成して仲間に入れてもらうこともできます;-)。

僕が過去に作った epkg のソース版 sepkg は以下の URL にあります。そして自分で作ったものはマージしてもらえたりもしているので嬉しいことです;-)。

http://icmpv6.org/Prog/Epkg/

epkg は Snow Leopard 版が出ましたが、今の所はまだ、バイナリパッケージが少ないようです。 FreeBSD 的に言うと 「ports から make する。」って動作が sepkg から make することになるんですが。現在は以下のような感じです。

http://www.ie.u-ryukyu.ac.jp/epkg/darwin6u/SEPKG/

で、じゃんじゃん sepkg 作ってくれる人募集中だそうです;-)。利用して「あれない。これ欲しい。」って言うより自分で作っちゃえっ。ってのが僕の感じなのであります。

今回はクリーンインストール環境からなのか、そこはかとなくはまった点を書いておきます。

まず、i386 と x86_64 のユニバーサルアプリの作り方ですが、/Developer/SDKs/MacOSX10.6.sdk
が必要です。 MacOSX は基本的には /usr/local/ は利用しないので自分でインストールしたライブラリが /usr/local/lib/ にインストールされた場合は以下の作業が必要になります。

> cd /Developer/SDKs/MacOSX10.6.sdk/usr
> ln -s /usr/local/lib
> ln -s /usr/local/include

 
僕もそれなりに epkg 利用してきましたが、SDKs の下に symlink する必要があるのを初めて知りました(^^;;。

後は簡単に sepkg からの make 方法を書いてみたいと思います。

> sudo -s
# cd /usr/epkg
# ftp -a http://icmpv6.org/Prog/Epkg/Darwin-10.0.0/stunnel.src.epkg
# tar xvzfp stunnel.src.epkg
# rm stunnel.src.epkg
# cd security/stunnel/
# make
# make plist
# make install
#

 
これだけです。簡単;-)。 make したときに i386 と x86_64 のバイナリを生成します。make plist したときに i386 と x86_64 を足したユニバーサルバイナリにしてくれます。 make install すると生成したユニバーサルバイナリがインストールされます。

実際にインストールされたかは file コマンドを打てば良いでしょう。

> file /usr/local/bin/stunnel
/usr/local/bin/stunnel: Mach-O universal binary with 2 architectures
/usr/local/bin/stunnel (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/local/bin/stunnel (for architecture i386): Mach-O executable i386

 
非常に簡単で、本当に FreeBSD の ports みたいでしょ;-)。インストールされている情報は epkg list とか打てば確認できます。

後、sepkg を作成するときのヒントを少々書いておきましょう。まぁ、ほとんど Makefile を編集すれば良いだけですけどね。

CATEGORY = security
NAME     = stunnel
VERSION  = 4.27
PKGNAME  = ${NAME}-${VERSION}-`epkg arch`.epkg
BUILDDEP =
SOURCE1 = ${NAME}-${VERSION}.tar.gz PATCH1 = SRCS = ${SOURCE1} ${PATCH1} MASTERSITE = http://www.stunnel.org/download/stunnel/src/ PATCHSITE = WORKDIR = ${NAME}-${VERSION}
TMPDIR = /usr/epkg/tmp DSTDIR = /usr/epkg/distfiles/${CATEGORY}
ARCH1 = x86_64 ARCH2 = i386 ARCHS = ${ARCH1} ${ARCH2} UBDIR = ub-root
CONFIGURE_ARGS = --localstatedir=/var/tmp \ --enable-static --disable-fips --enable-ipv6 \ --with-threads=pthread --disable-libwrap
- 以下略 -

 
大体、ここいら辺りを直せば OK かな。Makefile のもうちょっと下の方(以下略の下のほう;-) の .CONFIG: .PATCH の所で -isysroot で SDK 参照してそれをアーキテクチャ単位で for で回している。と言う感じです。

ややこしいオプションとかは余り考慮したくないのだけど、僕の場合は FreeBSD の ports を参考にしてオプションとかパッチの情報を仕入れています。

と、言うことで、この記事見て、僕も私も是非 epkg 作ってみたいわー。と言う人いましたら宜しくお願いします;-)。ちなみに僕は「自分が必要になったもの」の epkg を作ることにしています;-)。

最近、自宅ではすっかり MacOSX を UNIX として利用する機会が増えています。当然 GUI でメールを読んだり Safari 使ったり iPhoto で写真の管理もしていますけどねー。

10月 162009
 

ちょっと前に Emacs-23.1。 と、言うタイトルで一個書いたんだけど、その時はフォントの設定がメインで「日本語入力どうすんべな。」って感じで終わっていた。

その後、emacs-23 で Canna が使えると言う japanese/uim-canna を ports から試してみたのだけど、uim-canna と言うか、 uim-el と言うかは emacs-23 が起動した時だけ利用できるので scim-bridge-qt4 と同居できるのが良かったのだけど・・。

uim-canna って、ただ単に「cannaserver と通信ができる。」ってだけで、canna.el のキーバインドを踏襲してくれないということに愕然として、emacs-23 はすっかり利用するのを諦めていた・・。

後、アンチエイリアスが有効になった emacs-23 を利用するとむちゃくちゃ遅い。と言うのも「使わない」と言う一因ではあったのだけどね。

そんな感じでちょっと放置していたんだけど、ヤボ用で compface.tar.gz をダウンロードできるサイトを探していた(compface は x-face を表示するために利用します)ときにバッタリと遭遇。

Canna for GNU Emacs23

僕は emacs-22.3 までは emcws パッチを利用していたのだけど emacs-23 からはいよいよ利用できなくなっていたので途方にくれていたのでありました。

しかしっ!! ありがとうございました。これで emacs-23.1 で Canna のカナ入力が引き続きできそうです。嬉しいことです。

早速パッチを適用して make して試してみましたが、emcws と動作が一緒です。Canna のカナ入力に重要な C-n キーもちゃんと使えます。嬉しいことです\(^^)/。

本当にありがとうございました。感動して、ツイツイこうやってプログに書いてしまいました;-)。

10月 042009
 

僕はもともと iPodTouch ユーザだったのを iPhone3G に乗り換えたクチです。普段から au 携帯・Softbank 携帯・iPodTouch の三つを腰にブル下げて持って行動していたのを Softbank 携帯と iPodTouch を一緒にした感じ。

iPodTouch を iPhone3G にしたのは 3G 回線よりも GPS が欲しかった。というのが主な動機です。まぁ iPhone3G で「Web2.0 in Your Pocket.」してみたい。と言うのもあったけど、やっぱり GPS を手に入れ(また関連するアプリを利用し)たい。と言うのがメインだったのでありました。

実際に iPhone3G の GPS を利用するにあたり、AppStore の無料の GPS アプリはゴルフ系のもの以外ほぼ全てダウンロードして試してみました。現在、主に利用しているのはこんな感じです。

IMG_0461_iPhoneGPS1.PNG

#以降のリンクは AppStore へのリンクになるので iThunes がインストールされている PC でクリックしてください。

GPS ポイントを取得するために MosionX-GPS Lite を利用しています。これは もつ焼き・オリジナル (ウェブへのリンク)に情報を掲載するために主に利用しています。

IMG_0460_iPhoneGPS3.PNG

自転車や車のログの取得には GPSロガーAdvance を利用しています。これは無料版もあるのですが、115yen の有料版を購入しました。有料版は地図上の自分のいるポイントが画面の真ん中にあるのでカーナビみたいに表示され、自分の通ってきたところには線が引かれます。取得した GPS ログはメールで送信できるので後で自分で確認できます。

僕の車にはカーナビが付いているのですが、最新の地図情報が欲しい場合は マップアプリ を利用しています。出発場所と行き先を設定するとルートが表示されます。そして、自分がいるところは青い点で表示されます。

IMG_0463iPhoneGPS4.PNG

後の GPS 系のアプリケーションは現在地からお店やランドマークなどを見つけたりするのに利用している感じでしょうか。これもまた中々楽しい。例えば最寄り駅からお店までの道のりを調べたりするのに利用(ウェブへのリンク)したりしています。

さて、iPhone3G の GPS を利用していると色々気が付くことがあります。それらはカーナビ系のアプリのレビューを見ていると「バッテリーがすぐに無くなる。」「カーナビの反応が悪い。」などの意見としてよく見受けられます。

以降は二つのカーナビアプリについてですが、僕は購入してないのでレビューを書くことが出来ないのでここに書いてみましょう;-)。

いつもナビ と いつもナビ Lite のレビューが炎上しています。それはゼンリンの対応が悪いからで製品自体は1,800yenで期間無制限で使える(ただし音声などを利用する場合は350yen のオプションが必要)のは悪くないと思います。一年で 2,800yen とは高いなぁと思うのでありました。

後、全力案内!ナビ は地図情報が汚い。とレビューがありますが、ベクトルデータで地図を持っているので、まぁ、それは仕方ない。 いつもナビ や マップアプリ はビットマップデータなので、それはまるで Photoshop が扱うデータなのですが 全力案内!ナビ は Illustrator が扱うデータって感じかなぁ。データ自体はベクトルデータのほうがサイズは小さいし、ピンチが利用できる iPhoneOS では利にかなっている気がします。

ここまでダラダラと書いてきましたが、そろそろ話題を収束させていきましょう。まず、iPhone3G で GPS を利用しているアプリを利用した場合ですが、確かにバッテリー消費は激しいです。カーナビアプリのレビューでぼろくそ書いている人がいますが、それはアプリが問題ではなく、iPhone のハードウェアの仕様のような気がします。マップアプリ を利用していても GPSロガー・MosionX-GPS Lite を利用してもバッテリーの消費は早いのであります。

後、iPhone3G で GPS を利用したとき、どうも精度が悪い。と、言う件ですが確かに悪いような気がします。標高を表示するアプリの場合、GPS 衛星を四つ補足しないと標高は表示できないらしいです(これは GPS システムの仕様だそうで)。四つ補足できる機会はそんなに無いような気がします。あ。僕は東京在住ですが。また、速度を表示するアプリの場合、二点間の GPS ポイントを通過した時間で計測しているものが多いですが、これも走っている速度や宇宙(そら)への障壁などを考えると(車の中や電車の中では)中々 GPS 衛星をとらえることができないような気がします。

上にも書きましたが、僕が普段利用している GPSロガー は水平精度が 300 になったらログを取り始めます。と言う仕様になっているのですが、これを起動すると「なるほどー。」と思わせてくれます。つまり GPS の精度が高くないと(値が小さいほど精度が高い)まともに GPSロガー として機能しない、精度が低い状態でログをとっても意味の無いものになるので機能を停止する。なるほど。と言う感じなのであります。

IMG_0459_iPhoneGPS2.PNG

このアプリにおいて水平精度が表示できると言うのは非常にありがたいもので、他のアプリを起動してもまともに GPS が現在地を取得してくれないのも納得いきます。後一点強いて言うのであれば、Softbank の回線。地図データを 3G 回線でダウンロードするのですが、圏外になる機会がずいぶんと多い。その時は GPS 精度と地図アプリが動的にダウンロードできないのダブルパンチで、GPS を利用しているアプリにのしかかってきます。カーナビにはちょっとツライですかね・・。

と、言うことで iPhone3G で GPS を利用するにはある程度のあきらめが肝心。と言うのが最近解ってきました。カーナビアプリはきっと利用できそうにないので マップアプリ で行き先設定して走ったほうが良いかなぁ。などと思っています。

けど、iPod Touch にはそもそも GPS が付いてないので iPhone3G はやっぱり嬉しいかな。写真を撮ると GPS ポイントが写真のメタ情報に書き込まれたりするので GPS があったほうが良いなぁ。最近は携帯電話でも GPS を積んだ機種がたくさんありますが、それを活用できるアプリというのは限られていると、僕は思っています。その点、iPhoneApp は色々ものがあるのでそれはそれで楽しいので、やっぱり iPhone はもう手放せなくなっているような気がします;-)。

あ。今回は iPhone3G の GPS に特化したネタを書いてみました。 iPhone には GPS 以外にもたくさんの機能やアプリがあり、その可能性は無尽蔵だと思います;-)。

#僕が持っているのは iPhone3G なので 3GS で利用可能な電子コンパスは持っていません。今後電子コンパスを利用したアプリが主流になるとここで書いたお話は大幅に過去のモノとなるかもしれません。