2014

Mavericksにしたら

Mavericksにしたから,というより,Xcode, Homebrew などの開発環境が変わってしまったから,という方が正確なのだが,ともかく,自作のプログラムが動作しなくなった。ちなみに,Homebrewで入れたOpenCVなどを利用してC++で書いた自家用の画像処理プログラム。自炊した書籍を600dpiのカラーJPEGから1200dpiのモノクロTIFFに変換するのに用いている。

まず,そのままターミナルから起動させようとすると,
dyld: Library not loaded: /usr/local/lib/libopencv_core.2.4.dylib というエラー。
よくよく考えると,単にライブラーを探せないという話なので,慌てずにシンボリックリンクを貼り直せが良かったのかもしれない。しかし,開発環境一式をアップデートすることしか頭になかった。結局,何時かはアップデートすることになるので,悪いわけではなかったのだが。

homebrewでbrew doctorとすると,あれこれ古くなっているらしい。そこで,開発環境をアップデートすることにした。MacApp StoreからXcodeの最新版をDLしてインストール。Homebrewもアップデート。そして,OpenCVをhomebrewで入れ直すことに。すると,numpyがないのでインストール出来ないと。そこで,numpyを入れて,brew reinstall opencv として再インストール。

さて,自家用プログラムをビルドしてみる。pkg-configがないよ,とエラー。入れる。Imagemagickがないよ。ん?そんなバカな。あと,boost関係も何か変。

ということで,pkg-config, imagimagick, boost を再インストール。
これで,とりあえずビルドは成功なのだが,実行させるとランタイムエラーが発生。
dyld: Library not loaded: /usr/local/lib/libjpeg.8.dylib

思いつく解決策は2つ。その1。コンパイル時にライブラリーの場所を指定しておく。多分デフォルトと違うのだろう。その2。シンボリックリンクを貼る。どっちにするか,悩ましい。
/usr/local/Cellar/ を探すとあったので,とりあえずリンクを張る。

ln -s /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib /usr/local/lib/

さあ,これで大丈夫かなと思ったら,別のランタイムエラー。libc++abi.dylib: Magick: no encode delegate for this image format `TIFF'

brew reinstall libtiff として,libtiffを再インストールし,brew reinstall imagemagick –with-lib-tiff として,imagemagickもオプション付きで再インストール。これで TIFF もサポートされるはず。

これで何とか動作するようになった。ああ疲れた。

Twitter Digest 2014-10-05

  • Mavericksにしたら自作の自炊ツールが dyld: Library not loaded: /usr/local/lib/libopencv_core.2.4.dylib というエラーを吐く。ううむ。どこから手を付ければよいのか分からん。 00:34:34, 2014-10-05
  • 仕方なく,opencvをhomebrewで入れ直す。numpyが無いと言われ入れる。さてコンパイルしようとするとまたもエラー。pkg-configがない。Imagemagickがない。挙句の果てに boost がらみのエラーで頓挫。<-今ここ。困った。というか,clangて何? 01:04:36, 2014-10-05
  • homebrewでboostを再インストールしたら,とりあえずコンパイルは成功。 01:36:07, 2014-10-05
  • ところが,自炊ツールを起動するとランタイムエラーが発生。dyld: Library not loaded: /usr/local/lib/libjpeg.8.dylib だとさ。ライブラリーが見つからないらしい。どうすればよいのか。どっかにあるのならリンク貼ればよい?泥縄だが。 01:37:57, 2014-10-05
  • 思いつく解決策は2つ。その1。コンパイル時にライブラリーの場所を指定しておく。多分デフォルトと違うのだろう。その2。シンボリックリンクを貼る。さあ,どうするかな・・・。 01:39:47, 2014-10-05
  • homebrewで入れたのだからと /usr/local/Cellar/ を探すとあったので,シンボリックリンクを張ってみた。ln -s /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib /usr/local/lib/ 01:43:28, 2014-10-05
  • さあ,これで大丈夫かなと思ったら,別のランタイムエラー。libc++abi.dylib: Magick: no encode delegate for this image format `TIFF' 01:45:41, 2014-10-05
  • これって,ImageMagickがTIFFをサポートしてないってこと?ううむ。デフォルトでインストールしたのだがなあ。 01:46:38, 2014-10-05
  • brew info imagemagick で調べると,–with-libtiff というオプションがある。これを付けないとTIFFサポートされないのか? 01:47:52, 2014-10-05
  • brew reinstall imagemagick –with-libtiff として再インストール。さて・・・。 01:48:48, 2014-10-05
  • ダメだった。ふと,lib tiff自体も新しくしなきゃだめかも,と思い,brew reinstall lib tiff として,再び brew reinstall imagemagick –with-libtiff とした。これでダメなら,もう寝る。 02:01:18, 2014-10-05
  • やった!動いた。まとめ。MavericksになってXcode始めいろいろ変わっているから,ライブラリー関係も含め,全部新しくする。いっそ,homebrewを再インストールすれば良かったのかも。まあ,とりあえず動くようになったからいいや。 02:04:01, 2014-10-05

Twitter Digest 2014-10-04

  • 今回の朝ドラはちょっとしんどいな。テーマソングも重たいし,朝からあの姑役の女優さんは勘弁して欲しい。と言いつつ,火野正平さんの自転車までの繋ぎとして音量0でつけてはいるのだが。 11:37:50, 2014-10-04
  • Janetter.appというtwitterクライアントアプリをインストールしたのだが,新規登録できなかった。Twitter側で人数制限しているらしい。何なんだ,それ。 11:42:06, 2014-10-04
  • そう言えば,花子とアンは最後にド素人が出演して棒読みしてくれて,呆れ果てた。台無しじゃないか,あれじゃ。 11:58:17, 2014-10-04
  • 近所で多肉植物扱っているところないかなあ,と調べていたら,西武池袋の屋上にあるらしい。あ!あそこか!灯台下暗しとはこのことだ。今度寄ってみよう。 12:09:30, 2014-10-04
  • 久しぶりに血圧測定。新しい血圧計が欲しいなあ。 https://t.co/SyO3ls82Os 12:13:57, 2014-10-04
  • Thelonius MonkのEverything happens to meの譜面を購入。Kindle版なのでiPadを譜面台に置いてということで,ちょっと見づらいが,正確な採譜で嬉しい。ちょっとしか弾けないけど。 12:19:09, 2014-10-04
  • エドワーズのゼータ関数の本(和訳)を裁断した。これからスキャン。 http://t.co/cUfbzxfMyG 20:50:07, 2014-10-04

弁当持参

一念発起ではないが,弁当を持って出勤。木曜日は9時過ぎに家を出ればよく,時間的に余裕があるのと,外食もいいかげん飽きているので。

ということで,朝の残りを中心に冷蔵庫もあさりつつ適当に埋めることに。量は少なめで良いので家内の弁当箱を借りることにした。それでも埋めるのに苦労した。実のところ,おにぎり+おかずちょっとでも十分なので,銀だら粕漬け(朝食用に焼いたものの半分)だけでも良いのだが,ガラ空きだと見た目がちょっとなあと。本末転倒な話ではあるが。

2014年10月2日の弁当

何か埋めるものはないかと,玉子焼き作ってみたが,これが見事に失敗。なんとか塊になっている部分を選んで,ナイフで切って,取り繕う(苦笑)。やれやれ。

誤訳ではないのか

ケルナーの「フーリエ解析大全」(Körner : Fourier Analysis) は楽しい本なのだが,翻訳がちょっとどうなのかなあ,と思う箇所が時折ある。先日,ケルヴィン卿 (William Thomson) の話を読んでいて,やはり違和感を感じた。次の写真は,下巻のp.272なのだが,Thomsonがストークスの定理の発見を見逃した,と書いてある。そんなバカな,である。

Körner Fourier Analysis ケルナー フーリエ解析大全 下巻 p.299

ストークスの定理については,最初に発見したのがトムソンであり,トムソンからストークスへの手紙に書かれていること,ストークスがケンブリッジだったか,大学の数学コンテストの問題として出題した結果,ストークスの定理として広まったこと,これらは良く知られている話であり,どうして「発見を見逃した」ことになっているのか,まったく不可解である。

ということで,原文に当たってみた。次がスキャンしたもののスクリーン・ショット。

Körner Fourier Analysis p.272

当該箇所を書き出してみる。

Other discoveries and inventions of Thomson are dealt with elsewhere in this book. We note in passing the discovery of what is now called Stokes’ theorem and the first mathematical discription of the oscillation of an electric circuit.

うーむ。これがどうして上のように訳されるのか,全く不可解だ。in passing を辞書で調べると,「事のついでに」とか「ちなみに」という意味らしい。してみると,次のような内容なのだろう。適当訳だが。

これ以外のトムソンの発見・発明についてはこの本の別の場所で扱うことになるが,ここでは,今日ストークスの定理と呼ばれている定理の発見と,電気回路の振動を初めて数学的に記述したことを注意しておこう。