雑文発散

追記
過去の日記

2016-09-27 [長年日記]

[Crowi] Crowi に新しい Model を追加してみようと思って、テストを書いてみている

これまでの Crowi への pull request は、そのほとんどが UI 寄りの機能だったので、あまり Model には触れていなかった。つまり、得意ではない。

いま欲しいなと思っている機能は、新しいテーブル(MongoDB なので正確にはコレクション)にデータを保存・参照する必要があるので、新しい Model を作っている。

いちおう動いているのだけど、やっぱりテストがないとカッコ悪いよなと思って、既存のテストを参考にして、見よう見まねのテストを書いている。

でも、なんかイマイチなんだよなあ。もっとキレイに書けそうな気がするんだけど、ゴタゴタしていてイケてない。JavaScript でのテストに慣れてないのが露呈している感じ。

まぁ、それは事実なので、今のレベルで書けるものを書いていこう。まずは、そこからだ。


2016-09-26 [長年日記]

[] 10月アニメを予約開始

まだ一週間先までの番組表に入ってきたものから予約開始。だいたいこんなところ。途中で観なくなるものも出てくるけど。

  • 亜人
  • 機動戦士ガンダム 鉄血のオルフェンズ(第2シーズン)
  • 3月のライオン
  • 終末のイゼッタ
  • ドリフターズ
  • 舟を編む
  • ブブキ・ブランキ 星の巨人

2016-09-25 [長年日記]

[] 「聲の形」を観てきて、これは自分のオールタイムベストに入る作品だと思った話

先週「聲の形」の原作を一気読みして、「これは映画を観に行ったほうが良いのかも」と思ったわけなのだが、今日の初回が比較的空いていることに気が付いたので、予約して観に行った。新宿ピカデリーの会員ポイントが溜まっていたので、0円鑑賞。

比較的空いていると言っても、空いているのは端っことか前方とか、朝8:30からスタートする回にしては、だいぶ席が埋まっていたと思う。観に来ていた人たちの年齢層は中高生が多そうな印象。これがガンダム系ならおっさんばかりになるのだけど、いつもとはだいぶ違う印象。ガンダムに制服姿の女子高生2人組とかいないからな。あれ、でも、今日は日曜日なのに何故制服だったんだろう。。。

まぁ、いいや。

原作を読んだ時も泣いたけど、案の定、映画を観ても泣いた。1週間前に原作を読んだばかりなので、ストーリーの展開は予測できたのだけど、、、泣いた。やばいな、これ、原作も映画もオレの中のオールタイムベストに入るかも。

映画のストーリーは、上映時間129分に収まるように原作からエピソードが取り除かれたり、シーンのアレンジがされているけど、原作が持つエッセンスは見事に入っていると思う。この脚本はとても良いのではないかなぁ。

あと、原作ではかなわなかったことが映画では体験できる。それは「音」。

もともと「聲」を題材としている話なので、「言葉」や「音」はとても大切な要素なんだけど、それがマンガである原作では想像しかできない。だけど映画になれば、もちろん映像に「音」がある。それをうまく使って、ところどころで良い演出がされている。これ、制作側はかなり意識していたのではないかなぁ。

爆音で見るというものではないんだけど、良い音を体験したいならば映画館で観るべきだと思う。


2016-09-24 [長年日記]

[Emacs] Emacs の Git HEAD が 25.2 になっていたのと国際化ドメインの処理が新しくなっていた

Homebrew で Emacs をインストールするための自分用 Fomula を最新の状態にしておこうと思って、ちょっと修正していた。

最新の Homebrew 純正(?)の emacs.rb ファイルを元に inline-patch を当てるように追記した。

もう Homebrew では、ファイルのハッシュ値チェックに sha1 を使うのは NG になっていて、sha256 でのハッシュ値に変更した。そして、Emacs HEAD のコンパイルをしてみたところ、バージョン番号が 25.2.x に書き換わっていた。こないだ 25.1 の正式リリースがあったので、変えたのだと思う。

(emacs-version)
"GNU Emacs 25.2.50.1 (x86_64-apple-darwin16.0.0, NS appkit-1504.00 Version 10.12 (Build 16A323))
 of 2016-09-24"

既に、GNU Emacs NEWS (M-x help n) には 25.2 どころか、25.3 で何が変わるかの記述も入っている。さらっとしか見てないけど、例えば、国際化ドメインへの対応とかある様子。

** International domain names (IDNA) are now encoded via the new
puny.el library, so that one can visit web sites with non-ASCII URLs.

「http://総務省.jp/」みたいな Punycode を使った URL も eww(Emacs 内蔵ブラウザ)でもアクセスできるようになるのかな?と思って試してみたけど、まだうまくいかなかった。

ちょっと調べてみたら、 http://punycode.jp/ で「総務省.jp」を変換した結果と、 (puny-encode-domain "総務省.jp") で変換した結果が違っているのが分かった。

punycode.jp で変換した結果

正規化後: 総務省.jp
Punycode: xn--lhr645fjve.jp

puny-encode-domain で変換した結果

(puny-encode-domain "総務省.jp")
"xn--lhr648ejre.jp"

puny-encode-domain の結果を punycode.jp で戻してみる

正規化後: 務??.jp
Punycode: xn--lhr648ejre.jp

「務」が入っているので、もうちょっとな気もするんだけど、何かの処理を間違えているのではなかろうか。


2016-09-23 [長年日記]

[Crowi] Crowi の編集画面での paste 処理で悩み中

Crowi の入力時のヘルパーとして、「先頭にリストまたは引用記号がある場所で複数行をペーストした場合、ペースト後の各行の先頭にもリストまたは引用記号が補完される」というものをしばらく前に作った。

これでだいたいはうまく動いているのだけど、いくつか問題が見えている。

  • ペースト後の改行位置が期待と違う時がある
  • ペーストの undo が期待の動作ではない

この辺りの処理を見直していて、原因もだいたい見えているんだけど、さてどう直したものか?と考えている。

前者の原因は考慮漏れの部分が大きいのだけど、後者に関してはイベントのハンドリング部分なのでちょっとつらい気持ち。もしかして、この機能を諦めないとダメかもなぁと思ったりした。でも、もしかしてうまくいくかも?と思えるやり方に気が付いたので試行錯誤中。これでうまく行くといいけど。