謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

Fast Prototyping

Pythonが流行りと聞いたのでPythonからOpenCVを使ってるけれども、ノードベースのUIや簡単なA/B比較に慣れたゆとり世代にはどうにも使いにくい。
というわけで調べたら、BlenderのノードにOpenCVを組み込んだものが開発されているらしい。
https://github.com/damiles/blendocv

これは便利そう…と思ったが、プロジェクトステータスを見ると、まだ開発初期のようだ。スクリプトも使えなさげ。
https://github.com/damiles/blendocv/wiki/Project-Status

Cython + runcython

適当にアルゴリズム開発してみてるけど、やっぱりPythonの遅さがネック。
ということでCythonを入れてみた。が、速度を出すために型を指定しなければならなくて、だったらC言語で良くね? って思った。

numpyの配列がPythonオブジェクトを含むらしくてOpenMPが使えなかったり、
型付きの配列をPythonの内蔵関数に渡すところで問題起きたり、罠が多い…。

hypotの近似

数学は強くないので、変なところがあるかも。

hypot(x, y)とは、sqrt(x*x+y*y)のことだけども、xが正なら、以下のように変形できる。

  sqrt(x*x+y*y)
= sqrt((y/x)^2+1)*x

q=sqrt(k^2+1)は、k (つまりy/x) の値が大きくなるほど+1の要素が小さくなるため、kの値が大きくなるほどsqrt(k^2)=kに近づく。そこで、sqrt(k^2)-kとする。すると、曲線が残るので、定数/kの曲線で近似するため、Octaveで差を0に近づけるようにソルバーをかける (kの範囲はてきとう)。

octave:1> k = (0.01:0.01:100000);
octave:2> q = @(n)max(sqrt(k.^2 + 1) - k - n./k)./k;
octave:3> fsolve(q, 0.1)
ans =  0.50000

すると、定数が求まるため、それを代入して、更に変形すると以下になる。

  (y/x + 0.5*x/y)*x
= y + 0.5 * x * x / y

と、ここまできて、既にstackoverflow.comに載ってることに気付いた。


For the record, here are a few more approximations, listed in roughly increasing order of complexity and accuracy. All these assume 0 ≤ a ≤ b.

h = b + 0.337 * a // max error ≈ 5.5 %
h = max(b, 0.918 * (b + (a>>1))) // max error ≈ 2.6 %
h = b + 0.428 * a * a / b // max error ≈ 1.04 %

係数の違いを見て、限界を感じる。近似アルゴリズム本が欲しいなぁ。
# にしても、近所の本屋はどこも品揃えが悪くて、中身見て買う派の自分は困る。図書館の方がまだ揃ってるとか何かがおかしい気がする…。

nattyからの更新

久々でEOLギリギリ。代替品探すまではmateでいいかなぁ、oneiricで止めとくのもアリかもなぁ。
# sensors-appletとdrive mount applet相当のものは必須。あと周波数モニタもできれば。
# それとnautilusの「上へ」と、タブとextraペインも。
# エンブレム機能も使ってたけど、それはもういいや。
# そんなとこかな


unityもgnome-classicもダメだこれ。やっぱりmateかな。


mateも安定しなくてダメだな。パネルとウィンドウマネージャだけxfceを使うのが良さげな気がする。
gnome3のアプリは起動遅いし低機能なので、mateのアプリを使う。
mateのppa有効にして、mate-coreとmate-desktop-environment入れて、xfdesktop4とxfce-session入れて、cajaを自動起動するように。
エフェクトは少なくなったけど、キビキビ動くからOKかな。粗もあるけど、中々良い感じになった。次こそはmateに移りたい。


cajaで文字入力→上下選択ができないようになっている。タイムアウトがかかってる感じ。うーん、バグかなぁ?
cajaがランダムで再起動されるようにもなったし、何かおかしい。

Windows8

Surfaceは評価しないけども、デスクトップにおけるWindows8の方向性は評価。
特に、デスクトップサイズのマルチタッチ・ディスプレイが増えるのは良いね。
Appleが出すべきだったiBoard相当のものをMicrosoftが出したという印象。


気になる問題はそのディスプレイを普及させることができるかということだけ。
MicrosoftはもっとPCありきで考えて需要を生み出すべき立場なのに、
UI統合は中途半端だし、Surfaceを押してるし、相変わらず内部対立してるような印象を受ける。


Ubuntuの方向は正しいし、Googleがどう動くかも見物。