2018年11月30日金曜日

新房昭之監督「続・終物語」

 テレビ放映で「終物語」を観て——原作の上中巻分——。
 iPhoneのアプリで「暦物語」を観て。
 劇場版の「傷物語」を観て。
 「終物語」の続きを楽しみにしていたら——「続・終物語」の予告編がYutubeにあがっていた。劇場版である。一瞬、「終物語」の続きを劇場版でやるのか、と思った。「傷物語」のように。
 しかし、どうみてもこの予告編はちがう。
 えっ、もしかしたら「終物語」の続きはもう放映されていたの?

 あわててwikipediaをチェックしたらやはり放映されたあとだった。一年以上も前に二夜連続二時間スペシャルという形で。
 しかもAmazonとかではまだ、配信もされていない。「憑物語」までだ。
 これはもう、DVDを買うしか、ないか、と頭を抱えながら<物語>シリーズのポータルサイトを確認したら「終物語」の後半も配信されるという。
 それで配信系にユーザー登録して観た。「終物語」の後半。
 そうしたら「続・終物語」を観たくなった。

 というわけで観てきた。

2018年11月27日火曜日

macOS Mojave

 「macOS Mojave」にしたら色々と動かなくなってしまった。

  1. VirtualBox

    最新版(5.2.22)をインストール

  2. GnuCash

    最新版(3.3)をインストール

  3. Git

    Git本体ではなく、xcodeのcommandLine toolがなくなっていたためらしい1。「xcode-select –install」で再インストール。

  4. TimeCapsuleのネットワークドライブがmountできなくなった。

    AFP(Apple Filing Protocol)が使えなくなったかららしい。おかげでTimeCapsuleのネットワークドライブがmountできない。ここの中にiTuneの音楽データをいれていたのに!
    頭を抱えてしまったが、「サーバへの接続」からならmountできた2のでとりあえずデータをレスキューしておく。
    いっそ音楽データはApple Musicへいれてしまうか。

  5. Time machine

    TimeCapsuleへのバックアップが遅くなったような気がする。

Footnotes:

1

そういえば、以前のメジャーアップデートのときも起きた。svnが動かなくなったのだった。

2

よくよく考えたらTimeCapsuleにはまだ、バックアップできるのだからAFP自体がなくなっているわけではなかったらしい。いつか、なくなってしまうだろうけど(TImeCapsuleは製品としてなくなってしまったので)。今はまだ、というところだろうか。

2018年11月21日水曜日

UbuntuのIPv6を抑止

 なんか、Ubuntuからうまくメール送信できない。
 へんだなぁ。MacBook Airからではできるのに。両方ともEmacsからのメール送信。試しにpingを打ってみて原因が判明する。
 DNSで返ってきてるの、IPv6じゃん。
 そういや、以前、macOSでも対応した
 というわけで、LinuxのIPv6を抑止する方法をググる。

 => Ubuntu Server 16.04 LTS でipv6を無効化したときの作業メモ

 たぶん、こうか。
 /etc/sysctl.confに下記を追加。

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

2018年11月19日月曜日

アップデート

 新しいMacBook Airが発表された。
 13inchだけだけど、物欲が刺激されてしまった。欲しい。でも高い。前回の轍を踏まないように、次はフルスペックにするつもりだった。けれど、そうすると、けっこうな額になる。二の足を踏む。
 それでほかのものを目がいってしまった。
 ——「GPD Pocket
 いかんいかん。
 完全に物欲が昂進してしまっている。やばい。ポチってしまいそうだ。家には使っていないパソコンがあるというのに。

 そんなとき、寝起きの寝惚けた頭で衝動的にMacBook AirのOSをアップデートしてしまった。「macOS Mojave」にへ、である。正確にはしようとした。ディスク容量が足りなくて失敗した。
 ラッキーである。
 動いているアプリが動かなくなることがあるのでなるべく、メジャーアップデートは避けていたのだ。「macOS High Sierra」ときも見送った。
 なのに。
 カッとなってファイルをガシガシ消している自分がいた。何をやっておるのか。まぁ、バックアップはあるので元には戻せる、とは思っていたけれど。——「macOS Mojave」をインストールしてしまった。

 なんか、インストールに時間がかかるなぁ、と思っていたらどうやらファイルシステムを変換していたらしい。HFS+からAPFSへ。ためしに「df -h」してびっくりした。何だよ、このifreeが「9223372036853272673」って。
 inodeが64bitに拡張されていたのである。

 ま。いずれにしてもOSが刷新されたので、気分もかわってなんとか、物欲もおさまった。これでしばらく戦える(だれと?)

2018年11月12日月曜日

directory-files-recursively

 findのない環境でEmacsを使うとき、(find-lisp-find-dired DIR REGEXP)を使用していたのだけれど、この関数はヒットしたファイルの、diredのバッファを作成してくれるだけで、listを返してくれない。
 しかたないのでファイルのlistを返却するようにラッパー関数をつくった。
 けっこう遅いけれど。でもこれで(eshell-poor-mans-grep ARGS)を簡単に呼び出せるぜ、と思ったら。
 (directory-files-recursively DIR REGEXP &optional INCLUDE-DIRECTORIES)という関数を見つける。ラッパーをつくった直後に。Infoで。これならヒットしたファイルのlistを返してくれる。
 昔、探したときには見つけることができなかったんだなぁ。
 見落としていただけなんだろうか?
 それにしてもあいかわらずの間の悪さよ。

2018年11月9日金曜日

アンドレイ・タルコフスキー監督「惑星ソラリス」

 AmazonのPrime Videoで「カプリコン・1」を検索してブルーレイがあることを知ったことをきっかけにふと、過去に感銘を受けた映画を見直したくなった。時々、そういうことをしていたのだけど、好みが偏っているのか、大概、見つからなくてあきらめていた——まぁ、見つかることもあったけれど。「狼は天使の匂い」とか。
 で、どんな映画があったっけ、と思って思い出したのが、アンドレイ・タルコフスキー監督「惑星ソラリス」だった。ハリウッドのリメイク版ではなく。あれは途中で観るのをやめてしまった。
 なんと中古だが、DVDがあった1
 当時2、ラストシーンには最初の「猿の惑星」と同じくらいあっと息を飲んだものだった。今回、見直して傑作の感をあらたにしたけれど、でもなんでそんなに驚いたのだろう。ラストシーンの前でちゃんとラストをふっていて気づいてもおかしくなかったのだが。

Footnotes:

1

さっそく注文して届いたのは円盤だけだった。あれ、箱は? と思った。まぁ、いいけど。

2

観たのはさいわい上京前だったので、未来都市のシーンに(首都高の映像が使われている)違和感はなかった。

2018年11月7日水曜日

orとreturn

 どうもLispは関数型だという意識がありすぎて、returnがどうしてあるんだろう、と思っていたらたとえば、returnがあれば、次のようなコードはあっさり書ける。

(block nil
  (when-let(w (処理1))
     (return w))

  (when-let(w (処理2))
     (return w)))

 実際に書いたのはelispのclでだけど。
 処理1が成功したらその返却値を返し、失敗したときは処理2を行なってその返却値を——というパターン。便利。というか、C言語とかではわりと使っていた記憶が……。さらにラップするマクロを書いてもいいんじゃないか、と思ったのだけれど、よくよく考えたらorで書けるんだった…orz。

(or (処理1)
    (処理2))

ただ、あとからソースを見直しとき、前者の方が見易いかもしれない。

2018年11月5日月曜日

ピーター・ハイアムズ監督「カプリコン・1」

 スティーヴン・キング「死の舞踏」によると、「カプリコン・1」は駄作らしい。えー、そんなことはないだろう。すくなくとも個人的には映画館で五回は見直しているし。
 公開当時、手塚治虫が書いていた小説(マンガではなく)のネタが「カプリコン・1」とかぶってボツにしたと悔しがっていたし、清原なつのの「花岡ちゃんの夏休み」の中の一編で——たぶん「早春物語」かな——背景の本棚のシーンで、「カプリコン・1」のセリフが落書きされていた。
 ——エリザベス、水がない。
 とか。
 ちなみに映画館で観たものとは訳が微妙にかわっていて——「エリザベス、水がない」はなくなっていた——ちょっと違和感だった。それにしてもエリオット・グールド演じる記者の尺はけっこうあったんだなぁ。というか、中心だった。すっかり忘れていたけれど。カーアクションのところなど、当時、「フレンチコネクション」のカーアクションみたいだ、と思ったことを思い出す始末だった。

2018年11月3日土曜日

&optional

 elispで関数の引数を&optionalにして、指定されていないときのデフォルトをいちいち「unless」で処理を書くとか、面倒だ。commonlispなら簡単なのに。
 そういえば、「cl-defun」とか、あったっけ……。

(cl-defun foo(&optional (x 123))
  x)
foo
(foo)
123
(foo 777)
777

 おっ、いけるじゃん。

2018年10月22日月曜日

keywordシンボル

 あれれ、そういえば、「:XXXX」っていうシンボルどうやってつくれば、いいんだ。cl-dbiのplistようなものをつくろうとして戸惑ってしまった。知らんぞ。シンボル自体は「intern」でつくれることは知っていたけれど。
 しばし、「intern」の呼び出しパラメータを見ていてふと気づく。
 そういえば、「:」つきのシンボルはkeywordパッケージに定義されるんだったっけ……。こうか。

CL-USER> (intern "ABC" 'keyword)
:ABC
NIL
CL-USER>

 ビンゴ。
 ちょっとうれしい。

2018年10月19日金曜日

今石洋之監督「キルラキル」

 どハマリした。
 「キルラキル」にである。
 Amazon Primeで観はじめて二日で全24話を観終える。ぼろぼろと涙をこぼしながら。ところがwikipediaによると、第25話がある、という。DVD収録にされているのみ。うわあ。
 これは買うしかないなぁ。というわけで収録されている9巻を購入した。いつもならDVD版なのだけれど、魔が刺したのか、Blue-rayを買う。到着したBlue-rayをいそいそとテレビのドライブへ挿入したまでよかった。けれど。
 ——再生されなかった。
 それどころか、イジェクトもされない。
 リセットしたり、電源断したり、ネットで見つけた対応方法を試してみたけれど、結果はすべてネガティブ。大枚はたいて購入したBlue-rayがテレビに喰われてしまった……。
 頭にきて夜中にテレビを分解した。
 取り出したBlue-rayドライブをさらにばらし、DISCをなんとかレスキュー。そのあと元通りにテレビを組み立てたのだけれど、なぜか、ネジが2本、あまる。なぜだ?
 いつもそうなる。
 不思議だ。

 結局、「キルラキル」の第25話はBlue-rayの再生専用機を購入して観た。

2018年9月18日火曜日

Emacs for Windowsでfind-grepっぽいことをする

 けっこうよく使うのはfindとgrepの組み合わせなのだけど、Windows環境だとそれが使えない。findとgrepがないからだ。もしかしたらエクスプロラーで同等のことができるのかもしれないが、無知でよくわからない。単純に動かすとファイル名で検索しているように見える。エクセルの中身を検索してくれるときとかもあるのだけれど。
 そのちがいがよくわからない。
 検索したいのは基本的にプレーンテキストなわけなのだから。
 それならEmacs for Windowsでfind-grepをすれば、いいんじゃないか。でもemacsのfindもgrepも外部コマンドが実行される。つまりWindows環境にfindとgrepがないとどうしようもない。
 grep単体ならeshellにelispで実装された「eshell-poor-mans-grep」があるし、findもelispで実装されたものがある。それをfind-grepのように組み合わせるにはどうしたいいんだ?
 試行錯誤の結果、たどりついたのが。

  1. find-lisp-find-diredでファイル検索
  2. その結果をdired-modeでmark1
  3. (eshell-poor-mans-grep (cons 検索文字列 (dired-get-marked-files)))を実行。

 一回、eshell-poor-mans-grepをかけると、対象ファイルはEmacsのバッファに読みこまれているので何回もやりなおすときには検索が早くなって都合がいい。全ファイルが展開されているせいでメモリを圧迫して苦しいときもあるけれど。

追記:
もっと簡単な方法があった

Footnotes:

1

「* %」でmarkして「C-u * %」でunmarkできるのでけっこういける。

2018年8月26日日曜日

Peter Seibel「実践CommonLisp」

 知らんことだらけ。
 そして、理解し切れんことだらけ。
 とくにコンディションについてはjavaとかのtry/catchと同じだと思っていたので目が点。あとdefgenericとか、いろいろ。奥が深すぎるぜ、CommonLisp。

 著者は「Coders at Work プログラミングの技をめぐる探求」と同じ人だった。ついさっきまで気づかなかったのだけれど、それにしても「Coders」を読んだときに得た「気づき」ってなんだろう。なーんも思い出せん。

2018年8月5日日曜日

HHK

 どうもタイピングで指にけっこう、力を入れているらしく、指の背面側の筋が張る。普通にしているときはあまり気づかないのだけど、ぎゅっと握り拳をつくってみると、はっきりとわかる。ちょっと痛い。
 昔はこういう疲れ方はしなかったような?
 これはあれだな。
 MacBook Airのキーが浅いから指先を叩きつけるようにしてしまっているからだな(仮説)。
 じゃ、深いキーボードにしてみるか。
 候補は以前、使っていたことがあるHHKあたり。小さいし。だた、音がなぁ、タイプ音がけっこう、うるさいんだよな。ほとんどタイプライターのようになってしまう。
 それであきらめていたんだけど、HHKのキーボードは20%静音になったという。じゃ、というわけで、使ってみることにした。でも以前はデスクトップだった。
 だから今だとこうなってしまう。

 ケーブルの挿しこみ口がちょっと計算外だった。

2018年8月4日土曜日

2018年8月2日(木):本栖湖FUNビーチ:晴れのち、薄曇り

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

-No- 時刻 時間 帆走距離 最高速 平均時速 P%
1 14:36-14:58 22分 2.3km 18.63km/h 6.25km/h 1.33
2 15:01-15:16 14分 1.5km 15.36km/h 6.44km/h 0.12
3 15:25-16:09 44分 2.1km 17.92km/h 2.90km/h 0.30
4 16:41-17:15 34分 1.9km 11.43km/h 3.40km/h 0.00

total 115分 7.9km 4.1km/h

 とにかく遠い。
 9時前に出立したというのに到着したのは13時半すぎ。
 めげる。
 風は入りはじめているらしく、ドラゴンビーチ、FUNビーチともにセイルが湖面にある。でもあまり、動いていない。セイルをセッティングしているうちに湖面がブローが入って白波がたつ瞬間があった。
 ——きたか?
 ところが出艇したときには陽が翳り、風はなくなってしまう。
 風上の吹き出し口付近だけプレーニングしているのでひたすらそちらへ上っていってみたけれど、風は全然、足りず。
 ノープレーニング1
 FUNビーチの上側の岸で休憩したらあまりの風のなさにビーチスタートすらできなくなくて身動きできなくなる。足をだれかがつついている。しかたないので腹をくくってセイルアップする。
 FUNビーチの下側へもどる。
 だめだ。今日はだめだ。
 4時ぐらいに風がふたたび、入りはじめた感じがあって出艇して沖ではまる。完全に風がなくなり、まわりにだれもいない状況。セイルアップもできず、道具を引いて泳ぐことしばし。
 ブロー。
 あわててボードによじのぼり、セイルアップ2
 岸を目指す。
 FUNビーチからプロ選手とおぼしき人たちが出艇してきた。吹き出したのか? 吹くのか? ボーナスタイムか? もう一度、沖へでてみたい気持ちにかられたけれど、どうせプレーニングできない、といいきかせて着岸。
 ふりかえると、5艇ほどが沖で止まっていた。

 ノープレーニングノーライフ、ふたたび。

Footnotes:

1

表のP%は速度15km/hをプレーニングとしている。実際にはフットストラップに足をいれることすらできなかった。

2

今日ほどセイルアップとタックした日はなかったような気がする。

2018年8月3日金曜日

gpx-menu

 というわけで
 以前つくったっきりだった速度リスト表示プログラムをupdate。
 なんだかんだと不満な点もあったので。

 JOSMで航跡を表示できるようにした。
 あと、現在のトラックポイントからひとつ前の速度のトラックポイントへジャンプする機能を追加1。ほか多少。

Footnotes:

1

ワンキーで最高速のトラックポイントへジャンプする機能は以前通り。

2018年8月2日木曜日

2018年8月1日(水):検見川浜:晴れ

 サーマルを期待して検見川浜へ。
 ほんとうは本栖湖へ行くつもりだったのだが、朝起きれず。
 いちおう吹いていた。カイト、デカスラ、フォイルなら走る風——それでもスラロームは走ったり、止まったりしている。
 しばらく海を眺めていたら縦横無尽に走っているカイトがひとり。やたら速い。なんじゃあ、と思っていたらカイトフォイルだった。すげー速い。あっという間に沖まで上っていってしまった。
 あれ、いいな。
 駐車場でうだうだ。
 夕方に吹いてきた感じがあり、海を見ると、さっきより走っているし、うみほたるの風速の実況は11m。これはいけるでしょ、と思ってボードをセッティングして波打ち際まで。
 が、思ったよりない。
 出艇しているセイルは小さいような気がするけど、きっと7.0m2はあるはず。最近のセイルはどれも小さく見えてしまうんだよね。
 30分ほど、波打ち際で太陽に照らされて海を見ていたけれど——これはだめだ、とあきらめて撤収。
 ノープレーニングノーライフ。
 まったく。

2018年8月1日水曜日

when-let

 lispでよく書くパターン。

(let ((w (XXX XXXX)))
    (when w (BODY...))

 というもので、取得した値があったら処理するというパターン。
 これこそマクロにするべきものだよな。
 名前は「when-let」あたりか。
 と思ったところではっ、と気づいて調べてみると、elispにはまさにそれがあった……。

(require 'subr-x)

2018年7月30日月曜日

branchって便利

 いったん動いているプログラムはあまり、いじりたくない。
 elispならとくにそうで、プログラムがEmacsで動作するのでロードエラーがでるような状態にしてしまうと、通常の業務1に支障がでてしまう。というわけで、なおしたいなぁ、と思っていても放っておいてしまっていた。

 でもgitのbranchを使えば、いいんじゃね?
 新しいbranchを切ってそちらで修正をしておいて必要になったら。

git checkout master

 で、元にもどせば、いい。
 同じようなことはsubversionでもできたはずなのだけど、全然、思いつきもしなかった。何をやっておるのか。

 というわけでこれからがんがん、プログラムがいじれる。
 いじれるはず。
 いじらないけど。

Footnotes:

1

何の業務だ?

2018年7月28日土曜日

slime-scratch

 REPLって便利なんだけど、Emacsのscratchバッファになれているせいか、どうも使いづらい。scratshバッファは平面だけど、REPLは一次元ということがあるのだろう。
 ダミーのlispファイルをひらいてそのバッファでコードを書いて——実際の動作はREPLで確認、ということをやっていた。
 slimeの関数を眺めていたらslime-scratchというのを見つけた。
 おっ。