2017年3月21日火曜日

B・ジャック・コープランド「チューリング」

 B・ジャック・コープランド「チューリング」

 モルテン・ティルドゥム監督「イミテーション・ゲーム エニグマと天才数学者の秘密」を観てひとつ疑問に思った。この女性はほんとうに存在したんだろうか。もしかしたら架空の人物?1
 で、本作を読んだ。映画の原作ではないけれど。

 どんだけ天才やねん! と、思わず突っこんでしまった。

チューリングは、後に人工知能の中心となる数々の概念 (いくつかの場合は他の人がそれを再発明した)について紹介している。そうしたものの中に、遺伝的アルゴリズム (GA)の概念も含まれている。

本書 P262

 しかもどう見てもワトソンとクリニックによるDNAの構造解明の前である。唖然(別にDNAの構造と遺伝的プログラミングは関係ないけど(たぶん))。

 それにしてもチューリングの死はホルモン投与療法が終了したあとのことだったとは。なんとなくホルモン投与の影響で精神のバランスを崩して自殺したのだ、と思っていた。2

Footnotes:

1

Wikipediaを見れば、すぐにわかったのだけれど。

2

本書では自殺については疑問視している。

2017年3月13日月曜日

ローレンス・クラウス「宇宙が始まる前には何があったのか」

 ローレンス・クラウス「宇宙が始まる前には何があったのか」

 ——宇宙の果てにはどうなっているのか。

 子どものころ、学研の「科学と学習」だったか、「少年マガジン」でそんなQAを読んだ。答えはまっすぐ進んでいるつもりでも空間が曲がっているため、やがて元の場所にもどってくる。つまり宇宙は閉じている。
 そのころに観たテレビドラマの最終回で、主人公が宇宙を漂流してしまい、宇宙の果てを超えて花畑の元の世界にもどってくる、というのがあった。もしかしたら元の世界ではなく、平行宇宙だったのかもしれないけれど。非常に印象に残っている。1

 現在の科学の知見では宇宙は開いているわけでも閉じているわけでもなく、平坦らしい。実はこの本の後半、読み進めるのがわりとつらかっただけど、それは「無」から何かが生じるのが、どうしても納得できなかったからだ。作者が神学者や哲学者から反論されているように、それはもう「無」じゃないんじゃね? とどうしても思えてならなかった。
 それがふと腑に落ちた。
 別に作者がそれを説明した部分でもなかったのだが——。

 この本の中で何度もでてくる対消滅の話だ。
 物質は反物質と出会うと対消滅する——このこと自体は納得がいくし(理解しているわけではないが)、なんとなくわかる。腑に落ちる。それなのに、なぜ、無から物質と反物質が生じることを納得できないのか。
 物質と反物質が出会って「無」になるのなら「無」から物質と反物質が生じてもおかしくないではないか——と、ふと気づいたのだ。この本の中で何度もくりかえしてでてくるように。

 もう一点、衝撃を受けたのは多宇宙(マルチバース)についてだった。
 NHKのドキュメンタリーなどでマルチバースについて語られるのを観ていてなんとなく、マルチバースというのは可能性としての宇宙のことなのだ、と理解していたのだが、どうやらそうではなく、現実にそこに存在しているという話らしい。見ることも触れることもできないが。たしかにそうでなければ、おかしいのだけれど——人間に都合のいい宇宙があることの理由として。

Footnotes:

1

どうやら「キャプテンウルトラ」の最終回らしい。

2017年3月11日土曜日

結城浩「暗号技術入門 第3版 秘密の国のアリス」

 結城浩「暗号技術入門 第3版 秘密の国のアリス」

 ずいぶん昔のこと——はじめて公開鍵暗号のことを知ったときはすげー、と感動したものだった。目からウロコだった。こんなんありか、と。そのころはまだ、ネットで買い物をするなんてとんでもないと思っていたころで、クレジットカードの番号を入力するなんてとてもじゃないが、やる気はしなかった。
 それがいまや、Amazonに依存しまくりだ。
 今回は言葉だけ知っていたDiffie-Hellman鍵交換がようやく腑に落ちて鼻の穴がひろがった。すごいな、人間。

2017年3月2日木曜日

モルテン・ティルドゥム監督「イミテーション・ゲーム エニグマと天才数学者の秘密」

 モルテン・ティルドゥム監督「イミテーション・ゲーム エニグマと天才数学者の秘密」

 いやぁ、おもしろかった。
 もともとカンパーバッチが好きなので公開当時にも観に行きたかったのだが、タイミングを逸してしまっていたのだ。しかもあのアラン・チューリングを演じるという。そりゃあ、観るしかないでしょ。
 不思議と数学者ジョン・ナッシュの生涯を描いたロン・ハワード監督「ビューティフル・マインド」とシンクロするところがあって感慨深かった。天才数学者がかたや第二次大戦、かたや冷戦で必要とされ、謀略に関わる、という。1
 内容とは関係なく、感心してしまったのはエニグマをどうやって解くか、ということだ。コンピュータをつくって解いたことは有名な話なので知っていたけれど、どうやったのかは知らなかった——どうやらエニグマで可能なプラグとダイヤルの組み合わせを全検索で解こうとしていたらしい。
 それに気づいたときには思わず、笑ってしまった。不可能だから、という意味ではなく、アラン・チューリングはフェルマーの定理(だったと思うけれど)を同じようにコンピュータに全検索させて解こうとしたことを思い出したからだ。2
 ——発想が同じじゃん。
 そもそもの有名なチューリングマシン3も発想の基礎は同じといえるし。
 やはりは現代は「チューリングの大聖堂」なのだなぁ、と思うこと、しばし。

Footnotes:

1

次の数学者ムービーはフォン・ノイマンあたりだろうか。考えるだけで死ぬ間際のフォン・ノイマンのエピソードで泣きそうだ。

2

証明のためではなく、反証を探し出そうとしたのだったと思う。

3

もうひとつの有名なチューリングテストのことも映画の中に組みこまれていて感心した。テストそのものではなかったけれど。

2017年2月27日月曜日

レースの開始時刻通知

 毎週毎週、競馬をやっていると、無駄なことをやっているな、と思うことがある。馬券を買うことそのものだけじゃなくて——たとえば、前日にレースの開始時刻をiPhoneのアラームに登録しているのだけど、これって自動化できね?
 方法を探してみたのだけど、見当たらない。
 で、考えた。いっそのこと、競馬のサイトから開始時刻を取りこんで時間起動で五分前にiPhoneへメッセージ送信すれば、いいんじゃね? パソコンから。
 Emacsならrun-at-timeで所定の時刻に処理を動かすことは可能だ。
 メッセージ送信はtwittering-modeを使ってダイレクトメッセージを送ることができるだろう。競馬のサイトからレースの開始時刻を取りこむこと自体も、Emacsはhttpをしゃべれるからできるはずだ。だめならwgetを呼び出してもいい。
 だったらEIEIOでプログラミングしてみよう。
 というわけでこのところ、ずっとしこしことコードを書いていた。

 だいたい、できあがって。
 時間起動の部分のデバックは面倒だなぁ、と思っていたら案の定、エラーが起きた。競馬をやりながらコードを直していたら。変更をそのまま、反映できることに気づいてしまった。つまりこれは動いているプログラムをリアルタイムに修正できているってことじゃないか。
 すげー。
 これってすげー。

2017年2月17日金曜日

クロージャー

 閉包という言葉がある。
 クロージャーの日本語訳なんだけど、全然、ピンとこない。そもそも閉包ってなによ。さっぱりわからん。ずっと疑問だったのだけれど、ふと気づいた。
 もしかしたらclose + jarか?
 あっ!
 close(閉じる) + jar(ビン、壺)の直訳で閉包かよ!

2017年1月30日月曜日

三浦建太郎「ベルセルク」(1)〜(13)

 三浦建太郎「ベルセルク」(1)
 三浦建太郎「ベルセルク」(13)

 以前から読もうとしては挫折していたのだけれど、平野耕太がBEST2にあげていたし、第二期アニメを見てもう一度、挑戦してみる気になった——第一期のアニメは概要が自分の記憶している「ベルセルク」とちがうので(「鷹の団」って何よ?)、戸惑って観なかったけれど。
 で、黄金時代編の終わりまで読んだ。傑作だった。ただ、いろんなシーンで既視感があってこまってしまった。とくに最後の地獄絵図のシーンでは永井豪の「デビルマン」を思わせるシーンがいくつもでてくる。
 これは三浦健太郎が永井豪を——。

  1. パクった
  2. 参考にした
  3. 影響を受けている
  4. 人の想像力は結局、似たりよったりである

 の、いずれかなのかもしれない。
 それとは別に既視感があったのが、平野耕太の「HELLSING」「ドリフターズ」で——しかし、これは平野耕太の方が後発のようなのでこれは平野耕太が——。

  1. パクった
  2. 参考にした
  3. 影響を受けている
  4. 人の想像力は結局、似たりよったりである

 の、いずれかなのかもしれない。

2017年1月25日水曜日

tcpdump!

 MacBook AirでパケットキャプチャをしたかったのでググってみたらAppleのサイトがトップにきた。

Mac のターミナルを使ってパケットトレースをキャプチャする

 おお、tcpdumpが入っているのか。
 というか、まんまUNIXじゃん、Macってと思った。

2017年1月21日土曜日

マリー・カーペンター「カフェインの真実 -賢く利用するために知っておくべきこと-」

 マリー・カーペンター「カフェインの真実 -賢く利用するために知っておくべきこと-」

 おもしろい。
 以下の知見を得る。

  1. カフェインにダイエット効果はない
  2. カフェインの消費速度は運動の有無とは関係がない
  3. カフェインの体内での半減期は4、5時間
  4. とりすぎると、不安などを感じるようになる(死に至ることも)

2017年1月17日火曜日

EIEIO

 なんじゃ、これ、と思ったら

EIEIO (“Enhanced Implementation of Emacs Interpreted Objects”) provides an Object Oriented layer for Emacs Lisp, following the basic concepts of the Common Lisp Object System (CLOS). It provides a framework for writing object-oriented applications in Emacs.

 ということらしかった。elispに実装されたCLOS風のオブジェクト指向。ちょうどelispでつくっていた個人的なプログラムが動かなくなっていた。EIEIOでつくりなおしてみよう。
 ——よくわからなかった。
 javaなどの経験はあったのでオブジェクト指向プログラミング自体はわかっていると思っていたのだけど、腑に落ちない。そもそもEIEIOではクラスの中にメソッドを定義しているわけではない。あれ?
 ポール・グレアムのCommn Lisp本のCLOSについての一章を読み直したりして一時間ほど考えこんでようやく 腑に落ちた。ああ、そうか、同じことなのか、と。EIEIOではdefmethodでクラスを指定している。それで充分なのだった。おそらく関数に処理が飛びこんだあと、クラスごとのメソッドへ分岐するという仕掛けなのだ(EIEIOは第一引数のクラスでだけで分岐しているのでちょいと面倒)。
 javaやperlだと「オブジェクト.メソッド()」とか、「オブジェクト->メソッド()」になっているのが、EIEIOだと「(メソッド オブジェクト)」となるわけだな、と。
 ただelispにはパッケージという概念がないから既存のfunctionがあると、同名のメソッドは定義できないのでは、と思ったら案の定だった。で、EIEIOで組みなおしている途中で気づいたのだが、プログラムがバリバリの副作用だらけになってしまった……。
 あれ?

メモ
#:g1: Emacs LispのEIEIOはCLOSではない

2017年1月16日月曜日

押井守/笠井潔「創造元年1968」

 押井守/笠井潔「創造元年1968」

 元々、押井守も笠井潔も好きな作家だったのでこれは読むしかないでしょう。「押井言論」の中で笠井潔の「テロルの現象学」がでてきていて意外な感じを受けてもいたし。

結果的に映画監督になったときに初めて、高校時代に妄想していた永遠の非日常とか、「廃墟からもう一度やり直すんだ」という、ある種の虚構を実現できる立場に立ったんだという自負が生まれた。それで『機動警察パトレイバー』や『人狼 JIN-ROH』、『スカイ・クロラ The Sky Crawiers』をつくったわけです。みんな忘れて生きていたけれど、実は続いていた戦争をあぶりだしたり、なんとか今の日本を違う場所で覆したいという衝動でつくった。

–– 押井守/笠井潔「創造元年1968」(p 54)より

 という押井守の言葉にはさらに意外な感じを受けた。たしかに「パトレーバー2」にはそういう要素はあるけれど、あまり押井守に廃墟願望のような要素を感じたことはなかった。たぶん「やり直す」という部分がちがうのだろう。廃墟にして終わりという塚本晋也に出会ったまさに同じころに押井作品と出会ったということも遠因かもしれないが。

2017年1月14日土曜日

発泡スチロールカッター

 このあいだ、購入した発泡スチロールカッター
 えっ? 誤植? と思ったら

 会社の名前だった。

2017年1月13日金曜日

バターカッター

 元は、といえば、グラスフェットバターを5kgも買ってしまったことが原因だった。届いたバターはちょっとした塊で百科事典二冊分というところ。しかも冷凍である。
 ナイフを暖めて切り刻もうとしたけれど、さすがに無理だった。塊をおさえていた手が溶けたバターでベタベタになってしまう。何かいい手はありませんか。自問の果て思いついた。熱されたニクロム線ならスパスパ、切れるんじゃないか、グラスフェットバター。
 で、発泡スチロールカッターを購入してみた。

 結論からいうと、これは失敗だった。全然、切れんではないか。
 バターカッターではなく、バカカッターだったというオチ。

2017年1月1日日曜日

2016年12月23日金曜日

FreeBSD on VirtualBox

 また、MacBook AirにFreeBSD環境をつくろうと思い立ってしまった。MacBook Airの上でVirtualBoxを動かしてその中で、FreeBSDを動かそうというわけ。インストール自体はあっさりとできた。

FreeBSD FreeBSD123 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

 ところがそのあと、ネットーワーク環境ではまってしまった。以前、やったものを参考に作業をしたのだが、どうもどことなくおかしい。今回はMacBook AirからFreeBSDに入ることが前提だったので、頭を悩ませてしまう。
そもそもMacBook Airのネットワーク環境が静的なら問題はないのだが、状況によって変化する。それがやっかいだった。無線LANに接続していることもあれば、スタンドアローンのこともある。1いろいろ試してみた結果、次の状態に落ち着いた。

  1. ゲストOSにネットワークアダプタを二つ用意した。
    これは以前と同じ。
  2. タイプは次の二つ。

    ・ ホストオンリーアダプター
    以前と同じ。スタンドアローンのときはこちらのアダプタを使用して接続する。

    ・ ブリッジアダプター
    以前はNATネットワークにしていたが、今回は無線LANのポートにブリッジすることにした。無線LAN接続環境ではこちらを使用して接続する。

  3. 状況によってIPアドレスがかわってしまうのでAvahiをいれた。
  4. 制限

    当たり前だけど、動的なネットワーク構成の変更には対応できていないので、VirtualBoxのゲストOSをリスタートする必要がある。FreeBSDのrebootではだめようだ。

  5. 問題

    FreeBSDのbootのとき、DHCPでIPドレスを取りにいくとき、アダプタのどちらかが、取れないの状態なのでbootに時間がかかる。

Footnotes:

1

実はinet6にすれば、問題ないのではないか、と思っているのだが、よくわからない。

2016年11月28日月曜日

いきなりOSの更新をしてしまった

 精神的に煮詰っていたのだろう。
 朝っぱらからいきなり、MacBook AirのOSのアップデートをはじめてしまった。YosemiteからEl Capitanを飛ばしていきなりmacOS Sierra。いろんなアプリケーションが動かなくなったらどうするんだ、おれ。
 時間こそ、かかったけれど——ディスク容量が足りずに中断を余儀なくされたが、リブートだけでなんとかなった。今のところ、動かなくなったアプリケーションはない。
 笑ってしまったのは残り10Gだったディスクが18Gに増えたことだ。
 Optimize Storageのおかげで不要だったファイルが消去されたのかもしれない。まぁ、元々、この機能に興味があったのでアップデートしたのだけれど。iCloud機能をONにしてないのであまり関係がない。
 驚いたのはYosemiteのころはフルスクリーン表示できなかったGnuCashができるようになっていたことだ。便利なのか、どうか、微妙。AquaTermはフルスクリーンにすると逆に全体が見えなくなってしまう。
 ただ、フルスクリーンでの二画面表示はよさげ。Split Viewというらしい。

2016年11月26日土曜日

Common Lispをインストールしてしまう

 精神的に煮詰っていたのだろう。
 朝っぱらからいきなり、MacBook AirにCommon Lispをインストールしてしまった。何をやっておるのか。参考にしたのは下記のサイト。

Common Lispとリアル・ワールドを繋ぐ「Roswell」の紹介

 だからといって何かをやろうというわけでもなく、

MacBookAir:~ yamada$ ros run
* (+ 123 456)

579
*

 とかやってみただけ。
 個人的にちょこちょことしたプログラムを組むのならEmacs Lispをやってしまうもんなぁ。Common Lispでやらなければ、ならないことなんて今のところないんだよなぁ。疲れている。

2016年11月12日土曜日

押井守「押井言論2012-2015」

 押井守「押井言論2012-2015」

 だいたい押井守の「紅い眼鏡」にシビれたというところが変態的なのだが、そのあとに観た実写——押井守監督「ケルベロス地獄の番犬」も好きな映画だ1。主演の藤木義勝が「THE NEXT GENERATIONパトレイバー」に出ていたあの人とはまったく気づいてなかったけれど。
 押井守「押井言論2012-2015」の巻末の資料を見て実は実写を数、撮りだしたのは最近のことだと、知った。そうだったんだ。
 それにしてもこの本を読んで押井守監督「東京無国籍少女」を観てみたくなってしまった。ほかのアニメや、映画もふくめて。

Footnotes:

1

どういうわけか、ものすごく自分の中のノスタルジーを刺激されたのだ。

2016年10月8日土曜日

2016年10月7日金曜日

コンタクトレンズが砕けた

 ハードのコンタクトレンズを使っているので目に入れる前にこすり洗いというものをする。洗浄液をつけて親指、人差し指、中指のあいだでこすり洗いをするわけである。
 で、その日もそうやっていたらふいに指のあいだからコンタクトの感触が消えてしまった。まるで氷砂糖でできていたかのように。
 一瞬、溶けたのか、と思った。
 そんなわけはない。
 手を確認したが、洗浄液が泡立ってしまっていてコンタクトレンズは見つけ切れなかった。水ですこし流してあらためて確認すると、何か、ある——コンタクトレンズの破片だった。
 砕けたのだ。
 コンタクトを使いはじめて30数年。はじめての経験だった。

2016年10月5日水曜日

Mailリーダー on Gnus

 どうせGnusを使うのだからメールも読めるようにしよう。
 そう思って設定していて何か、嫌になってしまった。
 というのも苦労して設定してもメールはほとんど使わないんじゃないか、と気がついたからだ。そもそも昔、Gnusでメールを読んでいたときにくらべてあきらかに、最近はメールに依存していない。読んでいるメーリングリストもない。
 それでもあちらこちらにメールアドレスが登録されているのでメールそのものは必要なのだけれど——逆にそのせいもあって広告メールがやたらくる——、人とメールのやりとりをすることがなくなっている。まあ、人間関係がきわめて細くなっていることも一因だけど。
 今ならLINEか、SNSのメッセンジャーが主流だろうし。
 いちおうメインのメールはGnusで読めるようにしたけれど、送信できるようにはしてない。その前にやる気をなくした。だってiPhoneでメールすれば、いいのだから。大量にメールを書くならまだしも。

2016年10月4日火曜日

レンダリング

 あれ、と思ったのはかつてnewstickerでRSSを読もうとしたとき、w3mをいれる必要があったからだ。そうしないと、htmlはうまくレンダリングされなかった。剥き出しのXMLが表示されていた記憶がある。それなのに、GnusでRSSを読むときは何もせずに読めた、普通に。
 レンダリングされている。
 今やEmacsにはEWWというブラウザが内蔵されているからなぁ。
 と思っていたらshr.elというライウラリがあるのだった。——"Simple HTML Renderer"。htmlファイルをひらいて「shr-render-buffer」をやると、レンダリングされる。

2016年10月3日月曜日

RSSリーダー on Gnus

 FireFoxの調子がよくないこともあって——終了させるとゾンビになる——、GnusでRSSを読み出したここ最近。ところがどうも不満だ。妙にストレスを感じる。つらつら考えてみるに、RSSで全文の記事内容が渡ってくるわけではない。なのであらためてブラウザでひらくことになるのだけど、それがストレスらしい。
 というのも次の手順が必要だからだ。

  1. GnusのSummary BufferからArticle Bufferへ移動(hキー押下)
  2. linkまでカーソル移動(tabキー押下)
  3. リターンキーでブラウザ起動。

 で、次のものを読もうと思ったらEmacsへもどって、とやらなければ、いけない。だったらEmacsのブラウザを使えば、いいじゃん——そうでもなかった。3.のタイミングでC-uvでEWWが立ち上がるのだけど、何か煩雑。
 Summary Bufferにいる状態からいきなりブラウザが開いてくれるのが、一番、いい。理想はしばらくすると、勝手に開いてくれることだけど——いろいろと問題があって、とりあえず、Summary Bufferでwキーを押下したらEWWで開くようにした。

(defun y-gnus-summary-eww-open()
  (interactive)
  (let ((url (save-window-excursion
        (gnus-summary-select-article-buffer)
        (goto-char (point-max))
        (shr-previous-link))))
    (select-window (get-buffer-window gnus-group-buffer))
    (eww url)))

(add-hook 'gnus-summary-mode-hook
   (lambda ()
     (define-key gnus-summary-mode-map
       "w" 'y-gnus-summary-eww-open)))

 こんな感じ。

2016年10月2日日曜日

iPad Proを手にもっているのがつらい

 何がつらいといってiPadをもっていて肩がおかしくなる。しかも薄くて表面にひっかかりがないので指先に思った以上に力をこめていて指が痛くなる。あかんわー。
 なんとか、ならんものか。たとえば、女子バレーの真鍋監督(2016)がつかっているようなハンドストラップがあれば、いいな、と思ってAmazonで探していたのだけれど。
 ふと思いついた。そういえば、あれはつかえないかな。ブックホルダ。

 こんな感じ。

2016年9月22日木曜日

RSSリーダー

 今だにRSSであちらこちらのサイトを読んでいる。
 GoogleがRSSリーダーのサービスから撤退して、Emacsのnewstickerを使ってみたりしたけれど、結局、ふとした拍子に思い出した昔、愛用していたFireFoxのSageというツールを使っている。Sage自体はいいツールで満足していたのだけれど、最近、EmacsのGnusでRSSを読めことに気がついた。
 Gnusならunpluggedの機能でオフラインで読めるようになるのではないか。

 で、opmlファイルでデータをimportしてみた。
 結論からいうと、全データをとりこめなかったし、RSSはgnus-unpluggedでもネットへアクセスヘ行く。望んでいるものとちがう。ただ、Emacsは立ち上げっぱなしにしているので、オフラインとかわらない。過去の分のフィードも残されているようなのでそれはメリットかもしれない。Sageは現時点のRSSフィードしか、見えないから。

 とりあえず、記事全体をRSS配信してくれているサイトとかを中心にGnusで読むようにしてみようかな。Sageとどこまで読んだか、情報を共有できないのがちょっとデメリットだけど……。

(require 'gnus-win)
(add-to-list 'gnus-buffer-configuration
      '(article (horizontal 1.0
       (vertical 0.5
          (group 1.0))
       (vertical 1.0
          (summary 0.25 point)
          (article 1.0)))))

で、こんな感じ。

2016年9月15日木曜日

OneDrive

 バックアップにいろんなファイルを目一杯、OneDriveに放りこんでいたらいつのまにか、容量が減らされていて警告がでていた——iPad Proの設定をしていて気づいた。
 あわててファイルをダウンロードしている。
 まいったなぁ。

2016年9月14日水曜日

emacsclient

 事情があってemacsclientのmanを読んでいたらこんな記述に気づいた。

-e, --eval
       do not visit files but instead evaluate the arguments as Emacs Lisp expressions.

 えっと思って試してみたらemacsclientからEmacsに値を設定できた。

bash-3.2$ emacsclient -e '(setq wrk "123")'
"123"
(message wrk)
"123"

 おお、wrkに"123"が入ってる。

emacsclient -e '(helm-mini)'

 笑った。
 しかもemacsclientには結果が返却されている。
 最初、セキュリティホールになるんじゃね? とも思ったけれど、おもしろそうなことができそうな気もする。
 覚えておこう。

2016年9月13日火曜日

iPad ProとApple pencil

 Apple pencilのデモ動画でわずかに遅延していたのでいまいちだなぁ、と思っていたのだけれど——どういうわけか、注文してしまった。しかもそんな欲しいと思っていなかったのにだ。後悔した気分のまま、製品が到着してしまった。
 初期設定をしてすこし使ってみてまだ後悔している。
 値段の価値はないよなぁ、と。自分にとって。
 pencil自体は適度な重さで、ペン軸がちょっと細いかな、ということと値段以外は不満はなかった。ただ、紙と鉛筆とは書き味がちがいすぎて——ディスプレイの表面がつるつるしているので——違和感が大きい。
 文字入力ならやはりキーボードなので、やはりpencilは必要ないのだった。
 ただ——値段にたいするメリットとしては微々たるものだけど——、pencilでiPadをつついて操作できるのはいい。別に潔癖症というわけではないけれど、指先がべたつくような日にiPadを操作するのは不快でしかたがなかった。ちょっとディスプレイに刺さるような感触なのでそれはそれでストレスを感じてしまうのだけれど。

9.7インチiPad Pro Wi-Fiモデル 437 g

 iPad自体はiPad miniを買ってからもう四年ほどたつので、そろそろ買い換えの時期といえば、そうだった。pencilを買うつもりがなかったらたぶん、買い替えることはなかったのだけれど、さすがに四年もたつと技術も進歩していて——値段も高くなっていたけれど——、重さはiPad ProとiPad miniはかわらない。片手で支えると、さすがに大きさのせいで(テコの原理ですな)重いけれど。
 うーん。

 ——メリットが見出せない。どうしたものか。

2016年9月11日日曜日

このアプリケーションで開く

 ファイルタイプをアプリケーションと関連づけてあると便利だ。ファイルをクリックすると、そのアプリケーションで開いてくれる。以上、同義反復。
 しかし、Emacsをアプリケーションに割り当てると、二重に起動してしまう。そんなときのために、emacsclientがある(たぶん)。
 ところが、Macだとそのemacsclientがアプリケーションとして割り当てることができない。emacsclient.appではないからだろう。しかたなく、Emacsを割り当てていたのだが、やはりふたつ開く。フルスクリーンで使っているのでわずらわしい——ただ、そのEmacsを終了させると元々、立ち上がっていたEmacsも終了してしまったのであれ、とは思っていたのだが(伏線)。

 方法は

・emacsclientのapp化
・強引に裏からemacsclientを関連づける
・あきらめる

 で、app化は好みではないので——ググってできるらしいことはわかったのだが——、やめにして裏からの方法を探してみた。SetFileでできそうだった。が、弾かれた。

bash-3.2$ SetFile -c emacsclient tmp.el
Invalid type or creator value: 'emacsclient'
bash-3.2$

 あかーん。
 このレベルでappであることを求められてはたぶん手はねー。
 あきらめかけたのだが、要件を考えると、Emacsが二重起動しなければ、いいわけで、何か手はないか、とググってみた。=>emacs23で新しいファイルを開いた時にemacsを複数起動させない

;;複数ウィンドウを開かないようにする
(setq ns-pop-up-frames nil)

 というのを見てあっ、と気づいた。そもそもEmacs.appは二重起動してなかったってことに。だから二つ目を終了させると、一つ目のEmacsも終了したように見えていたのだ(伏線回収)。
 だいたい、ns-* ってことはMac用の設定じゃないか。

 これでEmacsからopenコマンドを使って開いてもEmacsで開くようになる(同義反復?)。

2016年9月10日土曜日

skk-comp-wrapper

 tabキーには何がアサインされているのかな……。「C-hk」してみたら「skk-comp-wrapper」が割り当てられていた。
 何よ、「skk-comp-wrapper」って。

<tab> runs the command skk-comp-wrapper, which is an interactive
autoloaded compiled Lisp function in `skk-comp.el'.

It is bound to <tab>.

(skk-comp-wrapper &optional ARG)

Character でないキーに補完を割り当てるためのコマンド。

 skkの入力途中で使える補完機能だった。1
 あ、けっこう使えるかも、と思ったけど、案外、使わないかも。頭の中の言葉が流れるように出力できるからskkを使っているのであって——スマホのように変換予測を出すのならほかのIMEを使う。
 でもこんな機能もある、ということを覚えた。

Footnotes:

1

Emacsのtabキーはよく補完機能に割り当てられている。

2016年9月3日土曜日

柏野祐二「海の教科書 波の不思議から海洋大循環まで」

 柏野祐二「海の教科書 波の不思議から海洋大循環まで」

 いつもの年よりも海水温が暖かいから台風の勢力が弱まらない、というテレビの天気予報の解説を聞くたびに、そうなんだろうか、と疑問が浮かんでしかたがなかった。海水温が1度や2度、あがったからって気温が1度か、2度あがるだけだろう? そんなことがあるのか、と。
 まぁ、恥じるべきは自分の無知なのだけれど。

 海洋全体の熱容量は大気全体の熱容量の一〇〇〇倍にもなります。これは海洋全体でわずか一 〇〇〇分の一°Cの温度変化が大気全体の一°Cの変化と等しい。

 という記述を見て自分の無知を悟った。
 1度、海水温があがるということは大気にとっては1000度の温度上昇に等しいということじゃないか。驚いた。認識を改めた。なんてことだ。
 あと、淡水が一番重くなるのは四度のときだ、とか、波のこととか、鳴門海峡は自分が思っていたところじゃなかったとか。

 非常におもしろかった。

2016年9月2日金曜日

変態だw 変態だw

 Windows環境ではNTEmacs64を使っていたのだけれど、Cygnusを使うためCygnus版のEmacsを使うことになった。一応、両方、インストールしておいてbookmarkなどの情報は共有していたのだけど。
 このふたつはパスの表現が微妙にちがう。
 Cygnus版はCygnusの環境下で動作するためだ。
 なのでbookmarkを取り込んでも、Cygnus版からはbookmark-jumpできないことがある。こうなることはわかっていたのだけれど、使わないからいいや、と思っていたのだ。そんな風に考えたことは大概、あとではまる。

 bookmarkファイルの中身をCygnusのパスに変換してしまえば、いいのだけれど、そうすると、NTEmacs64から使えなくなる。Emacsには関数を拡張するためにhookという仕掛けがあるのだけれど、これは拡張する関数の中に、あらかじめ定義しておかなければ、いけない。うーん。bookmarkの関数を置き換えてしまうのも手だけど、最近、advice関数というものを知ったばかりだ。それを使うことにした。

(when (eq system-type 'cygwin)
  (advice-add 'bookmark-get-filename :filter-return 
              'cygwin-convert-file-name-from-windows))

 これで動いた。
 動いてしまった。
 何という変態ぶりだ、elisp。

2016年9月1日木曜日

smartrepを導入してみた

 つらつら、るびきち「日刊Emacs」を見ていたら。

#19 同時押し&リピート 少し特殊なキー設定 (Software Design 2015年11月号掲載記事) Emacs key-chord smartrep インストール 設定 使い方

 という記事の、とくに「プレフィクスキーを省略させるsmartrep」に興味を魅かれた。さっそく導入してみた。other-windowがC-xoooでつぎつぎとウィンドウを移動できるのはいい。導入以前はC-xC-oC-xC-oと繰り返していた。けっこう面倒だな、と思って逆向きに行けるようにとか、定義していたのだけど、移動方向がちがうことがあってイラッとしていた。
 これならほとんど、気にしなくてもいい。1

 と思って、取りこんで使ってみていたのだが、だめだ。くりかえさないとき、イラッとする。smartrepにモードインしていると、そこから抜け出すために1キーが必要になる。たとえば、org-modeでC-cC-pとやって飛んでC-nで一行下げようとすると、smartrepに喰われてしまってC-cC-nになってしまう。
 これがストレスだ。

 ただ、収穫もあった。C-xzにrepeatというのが、標準でバインドされていて——今回、はじめて知った——これがC-xzのあと、zの連打で処理をくりかえすことができるのだ。くりかえしのとき、1キー、増えるが、なんだ、smartrepと同じことができるということじゃないか。
 これでいいや。
 C-xC-tなんてのもあることを知ったことだし(transpose-lines)。

 で、結局、other-windowだけ有効にすることにした。

Footnotes:

1

るびきち「日刊Emacs」ではC-tにother-windowを割り当てる方法を推奨しているけれど、C-tの連打より、oの連打の方が気持ち的に楽だ、ぼくは。

2016年8月31日水曜日

ヨーゼフ・シュンペーター「資本主義、社会主義、民主主義」

 ヨーゼフ・シュンペーター「資本主義、社会主義、民主主義」(l)
 ヨーゼフ・シュンペーター「資本主義、社会主義、民主主義」(2)

 読んでいる途中で何度もこれっていつ書かれたんだっけ、と思ってしまうほど、今の状況のことに書かれているような気分になった1。ただし資本主義についてのことだけで——社会主義についてはどこか、納得し切れなかった。
 それはすでにソ連が崩壊した世界に生きているから、ということもあるけれど——それだけではなく、著者が社会主義について語るとき、外部のことを無視しているからだ。国内のことだけ語れば、著者のいうとおりなのかもしれないが。結局、ソ連は資本主義の経済競争に負けた。そういうことじゃないのか?
 ただ、著者は資本主義が極まった結果、社会主義に移行する、と考えているらしく——資本主義と社会主義が対立するものとも考えていないらしい——マルクスもそうだった、と著者はいっている。
 そういう意味ではほんとうの社会主義というのは今だおとずれていない、ということになるかもしれない。

Footnotes:

1

書かれたのはたぶん第二次大戦中。

2016年8月22日月曜日

シッダールタ・ムカジー「がん‐4000年の歴史」

 シッダールタ・ムカジー「がん‐4000年の歴史」(上)
 シッダールタ・ムカジー「がん‐4000年の歴史」(下)

 乳がんのマンモグラフィーを毎年のように受けない方がいいという話は知っていたけれど——偽陽性の問題で、あまり意味がない——、同じように癌の摘出手術も良好な結果は得られていないらしい。
 つまり身体を切り刻まれ——化学療法や放射線治療をしても延命年数はかわらない。癌の種類によっては有効な手立てがあるらしいのだけど。
 実は骨髄移植はけっこういける治療法だとずっと思っていたのだけれど——NHKか何かのドキュメンタリーでそういう印象を受けていた——、ところがそうでもないらしい。治療に耐え切れず、亡くなる人間も多い。テレビのドキュメンタリーでは生き残ったの人間を放送しているだろうから生存者バイアスがどうしてもかかってしまっていたのだろう。
 マンモグラフィーの話を知ったとき、自分の年齢からいって癌になったとしても治療は受けないと決めていたのだけれど——痛みを何とかするという前提だけど——、ちょっとその自信がなくなってきた。というのも、患者が癌の向かい合ったとき、治療してくれと強く望んでいるようなのだ。ターミナルケアをすすめる医者と、治療をすすめる医者ではどうしても後者を選んでしまうものなのだろう。

2016年8月15日月曜日

純正 Apple MacBook Air用ACアダプター A1436 45W 14.85V 3.05A 2012 MAGSAFE POWER ADAPTER

純正 Apple MacBook Air用ACアダプター A1436 45W 14.85V 3.05A 2012 MAGSAFE POWER ADAPTER

 やられてしまった。
 うちのやんちゃ娘にである。
 MacBook Airの電源ケーブルをかじられて、充電できなくなってしまった。たぶんショートして中の回路がおかしくなってしまったのだろう。しくしくしながらAmazonでケーブルで注文したらなんと4700円もする。
 選択の余地はない。充電できなければ、ただの箱だ。MacBook Airといえども。くー。

2016年8月11日木曜日

庵野秀明総監督「シン・ゴジラ」

 監督が庵野秀明だと知って俄然、観に行く気になった。
 期待は裏切られなかった——というか、その期待すら上回り、観たことのない光景が目の前にひろがる快感に唖然とした。前情報を何も知らずに観に行ったので、塚本晋也監督が俳優としてあらわれたときにはそちらが気になってしかったなかったけれど。ほんとに塚本?
 接点があったとは知らなかった。どうやら樋口監督がらみだったらしい。

 ゴジラ・シリーズというより「ゴジラ」のリメイク版でまちがいなくポスト福島原発事故の映画だった(ハリウッド版もそうだったけれど)。
 それにしても最後は妥協したんじゃないんだろうか。
 最後の最後の、大塚英志のゴジラ論を取りこんだようなシーンは最後のあがきだったようにも思える。個人的には「巨神兵東京に現わる」のラストのような光景を観たかった。核爆発で光に包まれた東京を陽炎のような影となって歩いていくゴジラの姿を。

2016年8月9日火曜日

poor-grep-dired

で、つくってみた。

(require 'em-unix)

(defun poor-grep-dired (string)
  "貧乏人のgrep"
  (interactive "s検索文字列: ")
  (let ((file-list
  (dired-get-marked-files nil nil 'dired-nondirectory-p))
 (display-buffer-function nil))    ; popwinを無効化
    (eshell-poor-mans-grep (cons string file-list))))

 dired-modeでmarkしたファイルにたいしてpoor-grepをかける。

2016年8月8日月曜日

dired-modeは奥が深い

 ここのサイトを見てはじめて知った。
 dired-modeでmarkしたファイルにたいして置換することができるそうだ。キーアサインは「Q」——「dired-do-query-replace-regexp」——あ、これは使える! これはmarkしたファイルに検索をかけることができる、ということじゃないか。
 しかもdired-modeはfind-fileでディレクトリを選んだときだけつくられる一覧というわけでもない。「find-lisp-find-dired」でも「mdfind-dired」でも生成される。「locate」でも。ごっそりファイルをひっぱりだしてきてそれにたいして操作ができる。
 「dired-do-query-replace-regexp」をもとにmarkしたファイルにたいして「eshell-poor-mans-grep」をかける関数なんて簡単にでっち上げられそうだし。

2016年8月7日日曜日

poor-grepを拡張してみた

(require 'em-unix)
(require 'cl)

(defun poor-grep (string regexp)
  "貧乏人のgrep"
  (interactive "s検索文字列: \nsファイルregexp: ")
  (let ((file-list (loop for x in (split-string regexp)
   append
   (file-expand-wildcards x)))
 (display-buffer-function nil))    ; popwinを無効化
    (eshell-poor-mans-grep (cons string file-list))))

 ファイルregexpを「* / */*/*」という感じで指定して複数のディレクトリを対象にできるようにした。

2016年8月6日土曜日

Spotlite

 MacOSのSpotliteをコマンド(mdfind)からEmacsで使えることは知っていたのだけど、ほとんど使ってなかった。下記のようにしてlocateのかわりにしていたのだけど。

(setq locate-command "mdfind")

 検索がファイル名のリストで、しかもファイルの中身や、タグもひっかかってしまうので、わけがわからなかったからだ。Spotliteだと、プレビューがあるからいいのだけど。でもファイル検索はやはりfindを使うより圧倒的に早い。
 el-getでmdfind-dired.elを落としてきたりした。mdfind-dired-nameでファイル名検索もできる。でもやっぱりhelmから使いたいよね。
 というわけでググってみた。
 helm-locateから使うには

(setq helm-locate-command
      (case system-type
 ('gnu/linux "locate -i -r %s")
 ('berkeley-unix "locate -i %s")
 ('windows-nt "es %s")
 ('darwin "mdfind -name %s %s")
 (t "locate %s")))

 で、helm-spotliteをつくる方法も同じとことにあった。

(defun helm-spotlight ()
  (interactive)
  (helm :buffer "*helm: spotlight*"
 :sources '(helm-source-mac-spotlight)))

Use mdfind instead of locate in helm-locate in OS X layer

;; locateのコマンドで引数を使う方法(こんな感じ?)
(setq locate-make-command-line (lambda(x) (list locate-command "-name"
search-string)))

2016年8月5日金曜日

Xcodeを削除

 MacBook Airの容量不足が深刻である。
 このところ、99%をこえ、残り容量が1Gになることもしばしばだ(今は2.2G)。
 EL Capitanの次のOSでは使ってないファイルをクラウドへ自動的に掃き出して容量を確保してくれるPlan9のような機能が追加されるそうだけど——その前にこちらはまだ、Yosemiteだ。残り容量1GではEL Capitanにすることすらできないだろう(試していない)。
 SSD換装をしようか、と思って検索してみたところ、結構な値段がする。それなら新しいMacBookを買った方がよくないか? そんな値段。
 どうしよう。
 しかたないので空きをつくため、Xcodeを削除した。「svn」などのコマンドは「Command Line Developer Tools」をもってくれば、使えるそうだし。
 削除したら残り容量7.4Gになった。
 94%である。
 うーん、90%を切りたいところなのだが。ついこのあいだまで10Gはあったんだがなぁ。どうしてこんなに減っちゃったんだろ。

2016年8月4日木曜日

Emacsからゴミ箱へ

 Emacsからファイルを削除してゴミ箱にはいるなんて必要ないや、と思っていたらそのような案件が発生した。Emacsでdeleteして復活させたくなったのだ。
 これはいかん。
 というわけで下記のように設定した。

(setq delete-by-moving-to-trash t)

 ところがMacでは次のメッセージをだしてうまくいかなかった。
 あれ?

ls does not support --dired; see `dired-use-ls-dired' for more details.

 どうやらCocoaEmacsではネイティブにはサポートされてないらしい。
 emacswikiでやり方を見つけた。

(setq delete-by-moving-to-trash t)

(defun system-move-file-to-trash (file)
  "Use \"trash\" to move FILE to the system trash.
When using Homebrew, install it using \"brew install trash\"."
  (call-process (executable-find "trash")
  nil 0 nil
  file))

 このやり方だとHomeBrewからtrashというコマンドをインストール必要がある。——「brew install trash」。
 それにしても「system-move-file-to-trash」を定義するだけで行くのはどうしてだろう、と思ってelispをあさってみたら

6 matches for "system-move-file-to-trash" in buffer: files.el.gz
   6796:This directory is only used when the function `system-move-file-to-trash'
   6806:(declare-function system-move-file-to-trash "w32fns.c" (filename))
   6814:If the function `system-move-file-to-trash' is defined, call it
   6841: ;; If `system-move-file-to-trash' is defined, use it.
   6842: ((fboundp 'system-move-file-to-trash)
   6843:  (system-move-file-to-trash filename))

 ということで、Windowsの場合はCで書かれた「system-move-file-to-trash」がバンドルされるらしい。

2016年8月3日水曜日

w32-shell-execute

 先日、Org-ModeのHyperLinkのことを調べていて「org-file-apps-defaults-windowsnt」という変数を見つけた。見るからにWindowsで何かアプリケーションを動かしてくれそうだ。
 その中に次のように定義されているところがあった。

(system w32-shell-execute "open" file)

 ——へっ?
 てなもんだ。先日、my-x-openをつくった(ググって見つけたものをパクったものだけれど)ばかりだというのに。あれ、Windowsにも「open」コマンドがあったっけ?
 だいたい「w32-shell-execute」って何よ。MacのEmacsには見当たらないんだけど。それでもしつこくelispをあさってみたら。

2 matches for "w32-shell-execute" in buffer: org.el.gz
   1951:                 'w32-shell-execute)
   1956:                 'w32-shell-execute)
2 matches for "w32-shell-execute" in buffer: browse-url.el.gz
    875:(declare-function w32-shell-execute "w32fns.c")    ;; Defined in C.
    885:        (t (w32-shell-execute "open" url))))

 というのがひっかかってきた。
 ——w32fns.c!
 Cか。
 するとこれはWindowsのときだけリンケージされるようなものなのかもしれない。ああ、もしかしたらcmdを呼ばなくてもすでにEmacsの中からWindowsでもファイル指定でエクセルを立ち上げるなんてことができるようになっていたってことではないだろうか……。

 Emacs for Windows1をあらためて調べてみたら「w32-shell-execute」という関数がやはり存在していてしかもこれなら——当たり前だが——わざわざ、file-pathをWindows用に変換しなくても動くのだった。
 というわけで

(defun my-x-open (file)
  "open file."
  (interactive "FOpen File: ")
  (message "Opening %s..." file)
  (w32-shell-execute "open" file)
  (message "Opening %s...done" file))

 これでいいのだった。しかもなんか、色々できそうな感じ……。
 というか、my-x-openなんで定義せずにw32-shell-executeを直接、呼び出せば、いいじゃん……orz

w32-shell-execute is a built-in function in `C source code'.

(w32-shell-execute OPERATION DOCUMENT &optional PARAMETERS SHOW-FLAG)

Get Windows to perform OPERATION on DOCUMENT.
This is a wrapper around the ShellExecute system function, which
invokes the application registered to handle OPERATION for DOCUMENT.

OPERATION is either nil or a string that names a supported operation.
What operations can be used depends on the particular DOCUMENT and its
handler application, but typically it is one of the following common
operations:

 "open"    - open DOCUMENT, which could be a file, a directory, or an
               executable program (application).  If it is an application,
               that application is launched in the current buffer's default
               directory.  Otherwise, the application associated with
               DOCUMENT is launched in the buffer's default directory.
 "opennew" - like "open", but instruct the application to open
               DOCUMENT in a new window.
 "openas"  - open the "Open With" dialog for DOCUMENT.
 "print"   - print DOCUMENT, which must be a file.
 "printto" - print DOCUMENT, which must be a file, to a specified printer.
               The printer should be provided in PARAMETERS, see below.
 "explore" - start the Windows Explorer on DOCUMENT.
 "edit"    - launch an editor and open DOCUMENT for editing; which
               editor is launched depends on the association for the
               specified DOCUMENT.
 "find"    - initiate search starting from DOCUMENT, which must specify
               a directory.
 "runas"   - run DOCUMENT, which must be an excutable file, with
               elevated privileges (a.k.a. "as Administrator").
 "properties"
           - open the the property sheet dialog for DOCUMENT; works
               for *.lnk desktop shortcuts, and little or nothing else.
 nil       - invoke the default OPERATION, or "open" if default is
               not defined or unavailable.

DOCUMENT is typically the name of a document file or a URL, but can
also be an executable program to run, or a directory to open in the
Windows Explorer.  If it is a file, it must be a local one; this
function does not support remote file names.

If DOCUMENT is an executable program, the optional third arg PARAMETERS
can be a string containing command line parameters that will be passed
to the program.  Some values of OPERATION also require parameters (e.g.,
"printto" requires the printer address).  Otherwise, PARAMETERS should
be nil or unspecified.

Optional fourth argument SHOW-FLAG can be used to control how the
application will be displayed when it is invoked.  If SHOW-FLAG is nil
or unspecified, the application is displayed as if SHOW-FLAG of 10 was
specified, otherwise it is an integer between 0 and 11 representing
a ShowWindow flag:

  0 - start hidden
  1 - start as normal-size window
  3 - start in a maximized window
  6 - start in a minimized window
 10 - start as the application itself specifies; this is the default.

Footnotes:

1

「GNU Emacs 24.5.1 (x8664-pc-mingw32) of 2015-04-14 on NTEMACS64」と「GNU Emacs 25.0.95.1 (i686-pc-cygwin) of 2016-07-09」

2016年8月2日火曜日

fullscreen

 使っているのは「GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, NS apple-appkit-1347.57)」である。どうせMacBookAir上ではつねにフルスクリーン表示だ。それならelispからフルスクリーンにする方法はないか?

(toggle-frame-fullscreen)

 というのがあった。ところがinit.elの中で呼び出すようにしてみても——たしかにフルスクリーンになるのだが、frameだけだ。Emacsでいうところのウィンドウはフルスクリーンにならない。バグかな、これは、という動きだった。
 ——だめかぁ。

 と思ってすっかりあきらめていたらinit.elを整理したらうまく行くようになっていた。どうしてかは不明。もしかしたらMacOSのUPDATEがだめだったときからずいぶんあたっているからそのせいかもしれない。よくわからん。

 ちなみに

(toggle-frame-maximized)

 というのもある。

2016年8月1日月曜日

Org-ModeのHyperLink

 使っているのは「GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, NS apple-appkit-1347.57)」である。Org-Modeのバージョンは「8.2.10」——そのorgでHyperLinkでリンクを張ったところ、いきなりVLCが立ち上がった。C-cC-oでHyperLinkからjumpしたところで、である。
 ——えっ。
 Linkのタイプは「file:」でEmacsでそのファイルを開いてくれるものだとばかり思っていた。これが「elisp:」のようにそれなりの処理を想定していたのならまだ、わかる。
 理解不能だった。
 あきらかにMacの「open」コマンドを呼び出したような動き。
 そこで該当の関数、「org-open-at-point」のソースを追っかけてみたところ、意外なことに「auto-mode-alist」を参照していた。Emacsのファイルとメジャーモードを関連づけている変数である。半分以上、カンだが、そこに定義されていないと、外部コマンドを呼び出すようになっているような。
 それで「.dat」ファイルを次のように定義した。

(add-to-list 'auto-mode-alist '("\\.dat$" . fundamental-mode))

 HayperLinkから無事、Emacsのfind-fileで開くようになった。