2015年5月28日木曜日

2015年5月27日(水):本栖湖FUNビーチ:晴れ

* Sail:CORE 5.7(NEIL PRYDE) Board:NG ACP 260 Fin:9.5inch

 下道五時間かけて到着した本栖湖は吹いていた。
 1時半すぎ。
 ばたばたとセッティングしていたらスキニーマスト用のアダプタが割れた。

 こんなこともあるんだ。
 ほかにもトラブルがあった。さすが1年ぶりである。しかも何も確認してこなかった。航跡を記録するためのGPSロガー——EveryTrailというiPhoneのアプリが消えてしまっていたのだ……orz。1
 動画撮影にも使用しているiPhoneは去年の最後のウィンドの時に思いついたやり方でマストトップカメラをセットした。ちょっと遠いが、カメラの揺れはそれほどではない。悪くないかも。

 富士山にはまだ、雪が残っている。そのため雪解け水が流れこむ本栖湖の水はとても冷たかった。さすがにラッシュガードでは夕方になると死ぬかもしれない。セミドライに着替えた。身体が濡れていたので——太ったこともあって——ものすごく苦労する。両手の握力がなくなってしまった。

 Vidometerという動画撮影用のアプリには速度計がついている。なのでEveryTrailがなくてもまぁ、いいか、と思っていたのだが、機内モードにすると、GPSが使えなくなるとは知らなかった。しかも画面固定モードにしていたのでカメラの向きがおかしい。——といってもそんなことに気づいたのはもっとあとのことで。
 今度はセイリング中にiPhoneを固定していたマストトップのアダプタが破損した。

 事ここに至ってようやく、セッティング中にスキニーマストのアダプタが壊れたのは実は伏線だったのだ、と気づいた次第。なんてことだ。
 しかたない。
 ヘッドマウントカメラにしようとしてハウジングの部品を浜に落としてしまう。一時間ほど、さまよい歩いてあきらめかけたころ、偶然、発見。事なきを得る。当然、そのあいだに、風は落ちてしまっていた。
 しかも電池が切れた。
 ここだけは準備しておいたMacBook Airで充電。

 夕方のひと吹きに期待していた。そのために苦労してセミドライに着替えたのだ。ところが、吹き上がらない。あきらめてセイルをばらして車に片付けようとしていたときだ。
 吹き上がってきたのは。
 さいわい、セミドライはまだ、着ていた。
 迷いに迷った末、セイルをセッティング。あわてて湖へ出た。
 もうオチはわかっている。

 わずか一本のプレーニングであった。

Footnotes:

1

あとでこのとき、アップルストアにアクセスしてアプリをダウンロードすれば、よかった、と気づいたのだが——それでも結局、だめだった。アップルストアからもなくなってしまっていたのだ。

2015年5月20日水曜日

Org-modeでhtmlのエクスポートで改行の自動挿入

 ブログの記事はOrg-modeのエクスポート機能でhtmlに変換して必要な部分をコピーしてpostしている。ずっと悩んでいたのは、改行のあつかいだった。テキスト上は改行しているのだが、</br>が挿入されないので一生懸命、手作業でいれていたのだけれど。
 るびきち「Emacsテクニックバイブル ~作業効率をカイゼンする200の技~」を読んでいてhtmlへの変換オプションがいろいろあることを知る。そのオプション一覧をつらつら眺めていてそれっぽいオプションを見つけた。ファイルの最初に追加したところ。

#+OPTIONS: \n:t

 無事、</br>が追加されるようになった。

2015年5月19日火曜日

Emacsでのインライン表示(iimage-mode、org-display-inline-images)など

 Emacsはエディタのなのでテキストを表示できるのは当たり前だけれど、画像もインラインで表示できる。こんな感じ。

 iimage-modeというのがあって、テキスト中にイメージファイルのパス名を書いておくと、自動的にインライン表示してくれる。便利なのでずっと、使っていたのだけど、ふと気づくと、Org-modeが画像のインライン表示をサポートしているのであった。org-display-inline-images。

2015年5月17日日曜日

mDNS、Avahi、Bonjour

 よくわからんなぁ。
 VirtualBoxにFreeBSDを入れて、ネットワークアダプタを二つ定義した。NATとホストオンリーアダプタである。これでパケットの到達性はグローバル、ローカルともに確保されたはず。VirtaulBoxのホストOSであるMacOSへの到達性を考えなければ、NATひとつだけで充分なのだけれど。

 で、よくわからないのはAvahi——mDNSの名前解決。あるいはAppleでいうBonjour。というのもMacBook Airをスタンドアローンにして使うと、MacOS、FreeBSD on VirtualBoxともに相手の名前を解決できるのに、無線LANにつないだとたん、FreeBSDから名前解決できなくなる。——なんで?
 さらにいうならスタンドアローンの状態で、FreeBSD側でネットワークアダプタにDHCPでアドレス解決していないと、MacOS側から名前解決ができなくなる。FreeBSD側からはできるのに。
 というか、ホストオンリーアダプタなしNATのみの状態でもFreeBSD側からはMacOSの名前解決がされている。ただし、到達性のない「127.0.0.1」というIPアドレスで。いやぁ、わかるような、わからないような。おそらくMacOSにとって自分自身のホスト名は当然、「127.0.0.1」——localだからそれを返却しているのだろう。自分自身が自分の名前解決をしていると思っているのかな?

 などと思い悩んでいると、avahi-resolveというコマンドがあることに気づいた。使ってみると——。

$ avahi-resolve --address 192.168.56.1
192.168.56.1 MacBookAir.local
$ avahi-resolve --name MacBookAir.local
MacBookAir.local 192.168.56.1
$ ping MacBookAir.local
ping: cannot resolve MacBookAir.local: Unknown host
$ ping 192.168.56.1
PING 192.168.56.1 (192.168.56.1): 56 data bytes
64 bytes from 192.168.56.1: icmp_seq=0 ttl=64 time=0.200 ms
64 bytes from 192.168.56.1: icmp_seq=1 ttl=64 time=0.418 ms
^C
--- 192.168.56.1 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.200/0.309/0.418/0.109 ms

 これはMacBook Airが無線LAN接続しているときに、VirtualBoxのFreeBSDで操作したもの。あっ、名前解決しているじゃないか。でもpingで名前指定では「Unknown host」になっている。
 これはあれだ。名前解決の順番に問題があるんだ。
 たしか、/etcの下に設定ファイルがあったはず……。
 「/etc/nsswitch.conf」だった。あれ? こんな名前のファイルだっけかな?
 この中に名前解決する順番が定義されている。

hosts: files dns

 となっている。
 おそらく、DNSにつながっているとき、名前解決ができないのはこのせいだろう。DNSが「Unknown host」を返してしまっているのだろう。
 じゃ、こうだろう。

hosts: files mdns dns

 DNSで名前解決する前にavahiで解決すれば、問題ないはずだ。
 ただし、この設定を有効にするには「nss_mdns」のインストールが必要で、「pkg install nss_mdns」した。
 以上で問題は解決——かつてThinkPadからMacBook Airを引けなかった問題も解決した。ただし、Avahiは「traceroute」で1階層でつながっていなければ、ならないらしく、それより上の階層の名前解決はできなかった。
 たとえば、MacBook Airと同じレイヤーにある機器にはVirtualBoxの中のFreeBSDからは名前解決できなかった。NATごしにIPは到達できるのだが。
 ちなみにmdnsが名前解決できなくてもDNSはちゃんと呼ばれているらしく、グローバルの名前解決できているようだ(ブラウザでサイトが開けた)。

 あといくつか、メモ。

  1. avahiのインストールは「pkg install avahi」
  2. /etc/rc.confに「avahi_daemon_enable="YES"」でOK
  3. /usr/local/etc/avahi/avahi-daemon.confの編集は必要なく、/etc/rc.confの「hostname="XXXX"」が名前になる。名前は「XXXX.local」。localはおそらくデフォルトのドメイン。
  4. グローバルネットにつながっていないのならそれでLANの名前解決はできる。
  5. グローバルネットにつなっているなら、名前解決の順番を調整する必要がある(DNSが名前が解決できない、と怒ってしまうので)。
  6. まず、「nss_mdns」のインストール(「pkg install nss_mdns」)
  7. 次に/etc/nsswitch.confの「hosts:」行でdnsより前にmdnsを定義。

 以上。  ああ、すっきりした。

2015年5月16日土曜日

gnuplotをupdate

 MacBook Airを購入したばかりのころ、何でこんなに電池の保ちが悪いんだ、と思っていたものだった。しかもいつも筐体がほんのり暖かい。アクティビティモニタをチェックしてその理由が判明した。
 gnuplotが暴走していたのだ。
 Emacsからgnuplotを使っていたのだが、Emacsを終了した際、gnuplotがゾンビになっているらしかった。なので以降、いつもEmacsを終了するときにはgnuplotをまず、終了させていた。あー、めんどくせー。
 HomeBrewをひさしぶりにいじってみてgnuplotがバージョンアップしていることに気づいてupgradeした。

brew upgrade gnuplot

 4.6.6->5.0である。
 これでめでたく、Emacsを終了しても暴走することはなくなった。

2015年5月15日金曜日

Emacsをバージョンアップ、および、HomeBrew

 FreeBSDのpkgになれてしまったせいか、なんとなくMacでもパッケージ管理を導入したい気分だった。アプリケーションに関しては「/Applications」に集中しているので便利なのだけれど。
 昔、Macをもっていたとき、MacPortsを使った記憶はある。それともあれはFinkだったかな?
 で、ググってみると、HomeBrewというものがあることを知った。HomeBrewがらみばかりがヒットしたということは流行っているのかもしれない。
 EmacsはEmacs for Mac OS Xからもってきて入れたのだけれど、HomeBrewでもインストールできるそうなので入れなおした。

  1. 「brew search emacs」で対象アプリ(emacs)がないか検索
  2. 「brew home emacs」で対象アプリがどんなものか、確認(ホームページへ飛ぶ)。
  3. 「brew options emacs」でオプションを確認
  4. 「brew install –with-cocoa emacs」でオプション(–with-cocoa)を指定してインストール

 あとは「~/Applications」に「Emacs.app」のシンボリックリンクを張るとか。

 それにしても見ると、Emacsってcocoa対応も統合されているんだなぁ。

2015年5月14日木曜日

FreeBSD 64bitをインストール

 ThinkPadのFreeBSDをMacBook AirのVirtualBoxで動くようにしたら、ネットワークドライブ経由ではなく、ローカル環境に動作するものが欲しくなってしまった。ああ、しかもだ。FreeBSDは32bitバージョン(i386)ではなく、今や主流の64bitを。
 でも問題はローカルの容量が小さいことで——さてどうしたものか。
 そんなことを考えてFreeBSDハンドブックをながめていたら、bsdinstallでZFSをルートファイルシステムとしてインストールできるようになっているじゃないか! かなり簡単そうだ。
 たしか、ZFSはファイルシステムの中身を圧縮して使うことができたはず。それならローカルの容量の少なさはクリアできるんじゃないか。ZFSならVirtalBoxの仮想ハードディスクを可変に指定して、ほんとうに可変になって必要な分の容量しか、食わない、ともいう。たぶん(試していないけど)、UFSだとnewsfsが走った段階で、その分の容量を食ってしまうのではないだろうか。

 FreeBSD-10.1-RELEASE-amd64-bootonly.isoをサイトからもってきてFreeBSDハンドブックのとおりに、インストールした。ネットワークごしにデータをもってくるところで時間はかかったけれど、ハードディスクのフォーマットなど、あれ、と思うほど、あっさりと終ってしまった。ほんとうにフォーマットされてるの? だいたいZFSにフォーマットという概念はあるのか?
 スワップ領域は無駄だと思い、0を指定。
 必要になったらあとでswapfileを指定してやれば、いい。
 pkgでXorgとか、mateとか、Avahiとかを入れて終了。
 さて、ZFSの圧縮するか、と見てみると、すでに圧縮されていた。

 もうやることがない。懸念のディスク容量もほらこの通り。もちろんいろんなものを入れてないということもあるけれど。

 ネットワークはアダプタを二つ有効にして、ひとつはNATでグローバルへでていけるように、もうひとつはホストオンリーアダプターを使ってローカルのネット(MacBook Airと通信できるように)に接続できるようにした。DHCPが使えたので何の苦労もなし。しかもAvahiをrc.confで「avahi_daemon_enable="YES"」にしてあるので、pingもこのとおり。

 そこまでやってふと気づく。
 大概のことはMacBook Airでできてしまうのに。
 ——これで何をやれば、いいんだ?

2015年5月13日水曜日

西牟田靖「本で床は抜けるのか」/中崎タツヤ「もたない男」

 

西牟田靖「本で床は抜けるのか」 中崎タツヤ「もたない男」

 偶然、短い期間で上記二冊を読んだ。
 まったく逆の内容でかたや、資料の本でアパートの床が抜けるのではないか、と戦々恐々しているドキュメンタリー作家の話。かたや、とにかくモノを捨てることに執着するマンガ家の話。
 しかも両方とも最後には妻との話になる、という……。

 それにしても中崎タツヤ、単行本に収録されなかった「じみへん」の原稿を焼き捨てているとは! なんてこった!

2015年5月11日月曜日

SSD->仮想ハードディスク

 今だにThinkPadを使用している。FreeBSDをインストールしたやつだけれど。
 これが飛んでしまったらどうしよう……、とずっと怯えていてついにこのあいだ、SSDでread errorが発生してしまった。いよいよくるべきものがきたか。
 ある程度はMacBook Airに環境を移してあるのだが、あいにくPostgreSQLとかのデータベース環境はそのままだ。空き容量の問題があって二の足を踏んでいる。悩んでいたのはこのまま、ThinkPadの環境を残しておきたかったからだ。
 環境の再構築が面倒だ。
 ThinkPadの環境を丸ごと——つまり、SSDそのものをコピーできれば、いいのだが——それ自体はddでできるだろうことは承知していたのでいろいろ頭をひねった末。

 VirtualBoxの仮想ハードディスクへddコピーすれば、いいんじゃないか。

 と気づいた。
 もちろんThinkPadのSSDの容量は128G。MacBook Airも同じサイズなのでローカルには無理だ。そこでネットワークドライブ——TimeCupsleに作成することにした。オフライン環境では使えないが、まぁ、そこはしかたがない。
 手順は以下。

  1. FreeBSDのインストールディスク(isoファイル)を起動ディスクにしてVirtualBoxでbsdinstallを立ち上げる。その際、仮想ハードディスクをネットワークドライブに作成しておく。
  2. 「Live CD」でFreeBSDを動かす。
  3. お立ち台でSSDをUSDドライブとしてFreeBSDに認識させる。
  4. dd if=/dev/da0 of=/dev/ada0 bs=10m
  5. 終わるまで待つ(7、8時間かかった)。

 終了後、コピーした仮想ハードディスクで起動してみたたところ、見事にFreeBSDが動作した。ThinkPadと同じように。ところがマウスは効くのがだ、キーボード入力を受け付けなかった。VirtualBoxのゲストとして動くために必要なVirtualBox-Guest Additionsをいれてないからだった。

 ThinkPadのFreeBSDは今だ動いている。