▼ C++で
とかやるとreturn sの所だけで、 コピーコンストラクタが一回、デストラクタが一回動く。 なんでなのか、と思ったが良く考えると スタック上のローカル変数領域から戻り値領域にコピーしなければならないのだと分かった。 しかし、それなら単にビットワイズコピーをすればいいはず、 仮にヒープへのポインタを含んでいてもそれで問題を起こしはしない。 と、思ったが良く考えると他のメンバ変数へのポインタを含んでいるとまずい のだと分かった。
で、C的にデータ構造の細かいところまで手を突っ込めるおかげで 速度が速くできて、それがC++の良いところだと一般に考えられているけど、 これをみるとそういう自由度のせいでC++はアグレッシブな 最適化ができなくなってるんじゃないかと。
▼ 25日に書いた問題の、 頭がまともに働く時間をのばす方法として、 ひとつ気がついたのは「やりたくない事を一切やらない」だ。 そうすると10時から17時、うまくすると19時くらいまで頭がはっきりしている。
でもそう言うわけにもいかないもんなあ。
▼ いま仕事は「やりたくない事」のフェーズに入っていてつらい。 例えばここ数日Matlabで作った図を論文用にrefineしていたのだけど、 クリッピングのアルゴリズムがバカで線やパッチがグラフのaxesを 覆い隠してしまうという問題があった。 これを回避する方法をマニュアルをひっくり返してさがしていた。 同様のちょっとした問題がいっぱいあってそれが相互作用したりするし。 こういう他人の粗相の始末する仕事は、 便所掃除と同じで少しも知的な楽しさがないし苦痛を感じる。
ここには私にとってのコンピュータの嫌いなところがいくつも集合している。
1、他人の作ったバグの後始末すること。しかも根治ではなく回避法の発見。
2、グラフのようなそこに目に見える物を迂遠な言語を介していじること。
3、やり方を知らないと何もできないCUI。マニュアルひっくり返し。
4、悪if文テンコ盛りの高レベルAPIを介して低レベルなfeatureを操作すること。 (よく考えられていない高レベルAPIは場合によっては制御できないfeatureがあったりして、99%仕事ができたところでそれ以上のカスタマイズを阻まれて 使用を諦めなくてはならない事がある。) (コンピュータのautomatic何とか(automatic axis scalingとか、automatic filename completionとか)というのは99%悪if文だ。 人間が使う分にはいいのだが、他のプログラムから使う時には有害だ。)
▼ 1月10日分に追記。
▼ 花粉ないスギ開発、大量培養で普及へ 林木育種センター (どうせすぐリンク切れasahi.com)
花粉が出ない杉を植えるより、花粉が出ない杉でない木を植えればいいんだよ。 日本の本来の生態系は照葉樹なんだから。それに復元すればよろし。 まあ林業が成り立っている杉林もわずかにあるだろうからそう言うところ向けには 意味があるのかな。
▼ ポール・グラハムの「知っておきたかったこと」については 色々と書きたいことはあるんだけど、 まずは本筋に関係ないところから反応してみよう。
今、ぼくは素晴らしい仕事をした人を何人も知っているけれど、 みんな同じなんだ。自分を律するということをほとんどしない。 延ばせることはぐずぐず先に延ばすし、興味のないことをやらせようと しても全くの無駄だ。そのうちの一人ときたら、自分の結婚式に 出席してくれた人へのお礼の手紙を出してない。 結婚して4年経つのに。もう一人は、メールボックスに26000通のメールをため込んでる。我々の科学者業界にはこういう非常識な人はいないのはなぜかと前から気になっていた。 20世紀初頭くらいまでの大きな業績を上げた科学者の伝記を読むと 当人や周りにこれ以上に非常識な人がいっぱい出てくるでしょ? ところが今はそういう科学者はほとんど居ない。 自分の周りだけでなく最近のノーベル賞をとった人の話なんかにも あまりないように思う。
恐らくその理由は現代と言うのは何もかもが散文的なあるいは サラリーマン的なものになっていく時代だからなのだろう、 と時代のせいにして考えていたんだけど、どうやら違うらしい。 コンピュータ業界周りにはそういう非常識な人がたくさん居たのだ。 (そう言われれば▽innyの金子氏なんかもそういう感じの人だしね。)
ひょっとすると、これは科学業界がコンピュータ業界にくらべて すでに知のフロンティアとは言えなくなっている事を意味しているのではないか、 などと心配してみたり。
▼ あー、ニューロンの巨大な集団を統計力学の理論を使って 記述しようとしている人がいる。 一方テレビやコンピュータは非常に大きなトランジスタの集合だけど だれもこれに統計力学を適用しようとはしないでしょ? こういう系ではトランジスタをどれか一つ壊しただけで機能が失われる。 そういう系に対して統計力学的手法は役に立たない。 メカとはそう言うものなのだ。脳もそれと異ならないと思うけど。
昼食を食べなければ持続するけど、 でもやり過ぎると体に力が入らなくなって椅子に座ってられなくなるから 仕事ができないし、さらにやり過ぎると脳にも力が入らなくなってくるので あんまり食事を抜くわけにもいかないし。
▼ 最近、この日記があまり更新してない分がCipherの実装にいっとります。 継続の実装ができたよ。 もうコアはフルセットの言語として恥ずかしくないレベルになった。
しかしバグの95%はメモリ管理まわりという状況で辛くなってきた。 いっそのことC++にしようかとも思うが、 あのすさまじい回数のコピーコンストラクタとデストラクタの呼び出しを見ていると 気分が悪くなるので踏み出せず。 リファレンスカウントだから、コピーコンストラクタとデストラクタはそれほど パフォーマンスの足かせにならないのは分かってはいるのだが。
▼ Cipherに対するcontinuationの実装方法がわかった。 今の再帰的なevalをほとんど書き直さずにやる方法が分かった。 しかし、分かるとやる気が無くなるというのが、自分の性格なんだよな。
誰か工学系の先生が言っていた。 「工学系の人は考えずにする、 理学系の人は考えて考えて考えたうえでやらない」と。 まさにこの理学系だな、自分の性格は。 結果が予想できると面白くなくなっちゃうんだよね。
▼ 「同言語内での誤訳」というものが存在することに気が付いた。
離婚の原因なんかで良く使う「性格の不一致」という言葉は変だと思う。 たとえば、サドとマゾの夫婦は性格が思いきり不一致だけど、 良く合っていると思う。 なんでこんな変な言い回しが出来たのかと考えてみるに、 まず離婚の理由として「性格が合わない」という言い回しがあって、 でもそれはformalな文書に書くには、くだけすぎているから 堅い言い回しとして「性格の不一致」が発明されたのだと想像した。 「合う」という言葉には「一致」という意味のほかに"complementary"みたいな意味もあるしね。 だとすると、つまり日本語から日本語に言い換えたときに意味が 壊れてしまったわけでこれは誤訳だ。
▼ あと変な言い回しとしては「バールのようなものでこじ開けた跡」という 言い回しがある。「バールのような物って、どんな物やねん」と突っ込みたくなる。 これは本来なら「バールでこじ開けたような跡」と言うべきで 「ような」の位置がおかしいんだけど定着してしまったのだろう。 警察関係なんかはとにかく定型で文章を書こうとするからな。
▼ 最近ウケたのは「ニートについて発言したら負けかな、と思ってる」って言うやつ。
大体みんな一時資料もないような事についてblogで発言しすぎ。 ニートのことに限らず、他人と同じ資料しか持ってないのに、発言なんかしても劣化コピーにしかならないよ。
▼ 去年見た映画まとめ。
ロードオブザリング III
ラストサムライ
ハリーポッター アズカバンの囚人
ビッグフィッシュ
ヘルボーイ
LOVERS
シークレット ウィンドウ
ハウルの動く城
ミスター インクレディブル
ターミナル
うむ、我ながら大作、話題作好きだ。 その凡庸さが恥ずかしいから映画の話はあまり書かないんだけど。
▼ あけまして、おめでとうございます。
▼ 今年は実家に帰ってみると今までないくらい人が沢山いて、 ちょっといつもと違う感じだった。
詳しく書くべきではないと思うので、何を言っているか分からないだろうけど、 人間というのは無から生まれて、無に帰っていくわけだけど その対比を見ることができてなんとも感慨深いものであった。 自分もいずれ介護される側になるだろうという事を考えたのも初めてであった。 また自分は意外と愛されているのかもしれないということも。
▼ またしても年賀状の返事を書かない、そのためにほとんど来ない私ですが、 もらったら嬉しいことは確かですから、年賀状プリーズ。 送ってくれた人には感謝します。それでもこちらからは出さないけど。