丸め誤差

僕が初めて一生懸命にプログラミングをはじめたいまから12年ぐらい前、大学を卒業した直後のこと
コンピューターとはこういうモノかとつくづく思った(3日ぐらい悩んで解決できた末に)事を書いてみたいと思います
わざわざ書いてみるようなことでもないような気もするんだけど
それはやっぱり今となっては言えることで
生まれながらにして丸め誤差に悩まされずにコンピューターをこき使える人類が発生することは当分ないと思うので書いておこう

プログラムなんか全然やらない人もプログラムする人たちはこんなことに煩わされたりするんだなー
なんてことを知ってもらえると嬉しいです

前置きが長くなりました

当時、どんな問題を考えていたかというと
あるひとつの場所から無数の玉を壁に向かって発射して、それがどんな風に跳ね返るか計算する、というのをやってました
何のためにこんなことをやっていたかは長くなるのでやめます

で、これを解くための過程として
平面と直線の交点を求めるということが必要になってくる
この交点が発射した玉が壁にぶつかる位置ということで

実際にこれからこれをやってみてもいいんだけどだいぶ面倒なので全部やめて
これを計算してみて欲しい

0.14 × 9

馬鹿にしてると思わないでね、これは当然 1.26

じゃあ同じ計算をこのブラウザさんに載っているjavascriptというプログラム言語さんにやってもらいましょう

× =

どうでした?

javascriptのバカ!とかいわないでね。彼もいろいろなものを背負って生きてるんだから。

こうなるわけは簡単に言うと彼らは内部では数字を2進数で扱っているということと無理数は扱えない(扱える数の大きさ、小ささに限界がある)ということからこんなことになります

このような誤差のせいで壁にぶつかってるはずの玉がぶつかってないと判断されるということが起きて僕は途方にくれました
手の計算じゃ確かにぶつかっているのになんでだーって悩んだんでした

数学の中だと無理数とか無限小とか無限大とか、点とか線は面積は持たないとか観念としておもいついちゃえば立派にあることになって楽しいことがいろいろできるんだけどこっちの世界に持って来ちゃうとそうは問屋が卸さない(この言い方もそろそろ死語か?)

この問題にぶち当たるまではコンピューターの中は十分あちら側だと思っていたのにそんなことなかった
彼らも僕たちと同じ有限の時間(いっぱい玉打ち出すと計算にかなり時間かかるし)と空間しかもってないんだなーと思って仲間意識が芽生えたようないっぽうで何だそんなもんかってちょっとがっかりしたり

そんな体験でした

地図っていいとおもう

自分を自分で俯瞰する方法を持ってしまっている僕たちは
はじめから悲劇しか演じえない運命を背負ってしまった

iPhoneのWordPressオフィシャルクライアントはジオタグしてくれる
投稿のカスタムフィールドに経度・緯度・公開フラグ・精度を追加する

こいつをテンプレート上で利用するには get_post_meta などを使って以下のようにする

$geo['public'] = get_post_meta($post->ID, 'geo_public', true);
$geo['lat'] = get_post_meta($post->ID, 'geo_latitude' , true);
$geo['lng'] = get_post_meta($post->ID, 'geo_longitude' , true);

if($geo['public']){
  //位置情報公開してます
}

これだけじゃ仕方が無いのでgoogle map なんかつかったりしてみることになる

var position = new google.maps.LatLng(<? echo $geo['lat'] ?> , <? echo $geo['lng'] >?);

外に出ない僕には自宅の場所公開にしかならないなあ
といういつものオチで終わりにしたいと思います

という喜劇

もう挫折しそうだ

毎日なにか書くといったのにもうかったるなってきた
昨日の続き
サーバーはウェブの開発とWebDAVでドキュメント置き場にもしてるんだけど良いクライアントがなくてちょっと不自由しています
Cloud Desktop は https の WebDAV がうまくないみたい、そのうち直るかな
windowsのWebDAVクライアントもいまいちなんだよなあ
CarotDAV はかなり良いですがやっぱりマウントできないとちょっと使い勝手悪いよね
WebDAVはみんなやる気ないな
自分でつくるか!程の気力もないんだよなあ

9年使っていたサーバーを解約した

2001年から使っていたレンタルサーバーをさきほど解約しました
さくらのスタンダードプラン
僕が初めて独自ドメインとって自分のサイト作ったり勉強したりするために借りました

去年の末から同じくさくらのマネージドサーバーを借りて自分のサイトやら開発環境やらすべて一元化しました
Gladinet Cloud Desktop 知ってサーバーをマウントしてしまったらすごい便利!
もうローカルに開発用サーバーたてる気なくなりました
自分でちまちまバックアップとるよりあてになるし

書き始めてみると連絡がくる

このように冬眠から覚めてまた適当なことを書き始めるとまわりからチラホラと連絡がくる
元気にしてるかとか
仕事頼みたいとか
またなにかやろうとか

ありがたいとつくづく思っております
他人の中にも自分が生きていたんだなあ

暖かくなってきて調子出てきた

白い服を着て出かけると

今日はめずらしくパーティなるものにでかけました
料理目当てで

白い服を着て出かけると目の前にはトマトソースが現れる
そして
こぼす
その白めがけて
しかも股間あたり

朝起きたら顔洗って歯を磨くようにとても自然にこぼす

あ、僕は朝起きても顔洗わないんだった
あ、ちがった
僕、朝起きないんだった

マルチモニタの解像度と色数

GeForce 8600GT において
本当は
1280×1024(32bit)
1680×1050(32bit)
で使いたいのだけれども以下のような設定しか無理みたい

1280×960(32bit)
1680×1050(32bit)

1280×1024(32bit)
1440×900(32bit)

で現在は前者で使っています
色数減らせば解像度は問題なくなるけれども動画の再生の時とか静止画でもトーンジャンプが起きることがままあって都合が悪い。(chrome の jpeg 表示でとくに顕著、最近のブラウザは各自で自前の描画エンジン使ってるみたい)

NVIDIAのサイト調べてもマルチモニタの時に可能な解像度と色数が分からない。

ビデオカード買い換えればいいだろうけど最低でも1万弱はみないといけないし現状困っているわけじゃないからとりあえずこれで行こう。

GPUがもっと活躍するような状況になってきたら買い換えたい。rawの現像はGPUでできるようにならないだろうか?

want you

月刊信用金庫という業界紙に写真が売れたのでその領収書をかいて郵送する。

丁寧なことに返信用の封筒を用意してくれていた。

儀式、宛名の”行”を消して”御中”に書き換える。

いつものように頭の中では永ちゃんが歌っている

今年も目が覚めてきた

この春は本当に具合が悪い
連休も明けたのにまだ鼻の調子も悪いしずーっとボーっとしてます
なにもやるきがしない
もうことしも半分終わるよ

今週の初め急に本が読みたくなりました
ずっとアマゾンのほしい物リストにあった人生の色気注文しちゃいました。そして一気に読む。内容もさることながら装丁が気に入りました。紙の本らしいです。画像見ただけじゃ分からない。見かけたら触ってみて欲しい。

こうして本読めてくるようになると今年もようやく冬眠があけるなあ、と思えてきます。

人はだれでも、自分だけのペースを持っています。それを外れると、事がうまく運びません。