DOSEIの日記

技術メモ+日常ログ

メモ

Range based for の為の組み合わせ生成イテレータ

以下の例は昔のバージョンです。最新版は github に置いてみました。 github.com 実験で、全組合せに対して繰り返し処理をしたい時に使う。 先に使用例。 C++11 以降で使える range-based-for 文を使っているので、 gcc なら -std=c++11 (or -std=c++0x) が…

iBus 1.5 の日本語入力

とりあえず ibus 1.5 でググってから読むといいと思います。Fedora 20 あたりから、日本語入力が iBus 1.5 になった。クリーンインストールした直後だと、日本語入力を行うために Super-space で切り替える。コンパネの「地域と言語」をみると、初期状態で「…

Fedora に povray を入れるには

ATrpms で配布されているので、以下のサイトに行ってリポジトリを登録するパッケージを入れる。 http://packages.atrpms.net/name/atrpms-repo/

bash で空白区切りの数値文字列の符号を反転する。

つまり、 100 20.4 -1.0 を -100 -20.4 1.0 にしたいという話。 val="100 20.4 -1.0" negval=-${val// / -} # 頭の - を忘れずに。 negval=${negval//--/} echo $val echo $negval

Fedora 19 の TeX 環境

Fedora 19 で日本語の TeX 環境を入れるには、少なくとも texlive-ptex を入れる必要がある。 texlive-japanese や texlive-cjk では、なぜか ptex が入らない。もし、 unicode 対応の uptex, uplatex を使う場合は、 texlive-uptex をいれる。だが、これだ…

Qt Creator で svn+ssh のリポジトリを扱う

svn+ssh でアクセスする Subversion リポジトリのワーキングコピーを扱う場合、 SSH の通信にパスワードが必要になる。 Qt Creator は、オプション→バージョン管理システム→概要タブの、 「SSH プロンプトコマンド」のコマンドを呼び出して、パスワード入力…

SSH の config のパーミッションエラーを解決する

Cygwin でファイルを作成すると、グループが "なし" になる。で、この状態だとグループのパーミッションが rw となって、これを消すことができない。つまり、 chmod g-rw をしても無視される。 ~/.ssh/config はユーザ以外のパーミッションを無しにしなけれ…

面接官「特技は高階グラフカットとありますが?」 ASK君 「はい。高階グラフカットです。」 面接官「高階グラフカットとは何のことですか?」 ASK君 「3つ以上のボクセルからなるクリークに依存するエネルギー最小化です。」 面接官「え、クリーク?」 ASK君…

Gnome Tweak Tool の設定

「ウィンドウ」の "Modifier to use modified window click actions" っていうのは(たぶん、右側がドロップダウンボックスに隠れて読めないのだが)、従来 alt 押しながらウィンドウをドラッグすると、ウィンドウが移動するといった機能の特殊キーのこと。 …

colorize

colorize は、 fill で指定した色を指定した比率で画像全体にアルファブレンドする。 各チャンネルごとに比率をわけることもできる。値は、単位を省略すると % になるらしい。 $ convert in.png -fill red -colorize 50% out.png # 全体に赤みが付く $ conve…

OpenCV のサンプルディレクトリ

Fedora 18 で、 opencv-devel-docs (2.4.3-3) を入れると、 サンプルが /usr/share/OpenCV/samples と /usr/share/opencv/samples に分かれてるんだけど、これはパッケージングのミスだろうか? ソースパッケージとか見た方がいいのかもしれないけど、時間な…

Mat_ の (本当の) 罠

id:DOSEI:20130306:p1 の訂正記事。のつもりだったけど、まだ理解が不十分だったので以下の文章は治す予定。うのむな。 まとめ cv::Mat_ を関数の引数の型にしてはいけない。 理由 cv::Mat_ は、 cv::Mat の型を固定した薄いラッパーです。 Mat は任意の型を…

cv::Mat_ を使う場合の注意。

以前ここにあった記事は、見えなくしてあります。cv::Mat_::type() などは、 cv::DataType::type などを返すので、元々が何の型の Mat をラッピングしているかは調べられない…。

Fedora 18 の Vim のスプリッタをマウスでぐりぐりする

Fedora 18 の vim は、ウィンドウのスプリッタがなぜかマウスで動かせない。これは、 ttymouse に xterm が自動指定されているせいらしい。 通常、自動認識によって xterm2 となるのだが(少なくとも今までのバージョンや、 Ubuntu などは)、この認識に失敗…

Povray を Fedora 18 にインストールする

Fedora 18 から、 povray が削除されてしまい、 そもそも Fedora には povray パッケージがなく しかもサードパーティリポジトリにも Fedora 18 用がないので、自力でビルドしたい。まず、 ATrpms にある src.rpm をダウンロードする。 $ wget http://dl.atr…

Windows 7 マシンを無線ルータ化する(アドホック接続)

有線でインターネッツできるようにする 「ネットワークと共有センター」を開く 「アダプターの設定の変更」をクリック(「ネットワーク接続」の画面になる) 今つながってる有線 LAN アダプタのプロパティを出す 「共有」タブで、「ネットワーク云々」という…

Fedora 18 での特殊キー設定

id:DOSEI:20120326:p1 に書いたことが、 Fedora 18 になったらできなくなってしまった。Gnome3 のオーバレイ (アクティビティの画面?) を無効にすることができるらしい (前はハードコードされてるからできない、っていう話だった気がするが、改善されたのだ…

なす角

y 軸 (0,1,0) と適当なベクトル (a,b,c) のなす角をプログラムで求めるには、どの式を使えばより正確に求まるのだろうか。 を acos() で計算 小数で割り算して渡すので、精度の問題がある。 [−1, 1] をはみ出すとエラーとなることに注意が必要。計算誤差でそ…

行列初期化の罠

プロローグ よーしパパ、要素が 0 で初期化された行列つくっちゃうぞー cv::Mat A(150, 100, CV_32S, 0); A.at<int>(20,10) = 30; コンパイルも通ったし、バッチリだ! エピローグ セグフォー! 後日談 cv::Mat のコンストラクタはたくさんあり、そのなかには値で</int>…

Windows 8 のあれこれ

【確認事項】アップグレードとは、既存のライセンスを上書きして、新しいライセンスに移行すること。技術的であれ、契約上であれ。 Windows 7 の場合「アップグレード版」では、 OS が既にインストールされている PC でないとクリーンインストールできないよ…

Gnuplot でベクトル場を描く (drawing a vector field by gnuplot)

最初は、 4.6 からできると書いていたが、実は 4.4 からできることに気付いたので修正した例えば、 V(x, y) = [f(x,y), g(x,y)] といった関数で指定されたベクトル場を描きたい。 基本的には、[x, y, f(x,y), g(x,y)] という座標と値の組のデータを生成すれ…

Fedora 17 に Gnuplot 4.6 を入れる

Fedora 17 の Gnuplot は 4.4 だが、最新版の魅力は捨てがたいので、 Rawhide リポジトリの 4.6 を入れる。最近の Fedora は、標準で rawhide リポジトリの設定が入ってなく、別のパッケージで提供されている。 sudo yum install fedora-release-rawhide sud…

Kernel Object の型

カーネル K のオブジェクトは、 CGAL::Point_2<K> CGAL::Polygon_2<K> のように書くのだが、カーネルオブジェクトと呼ばれるものたち (Point, Line, Segment, Ray, Vector, Direction, Triangle, Circle, Iso_rectangle, Iso_cuboid, Object, Sphere, Plane, Tetra</k></k>…

部分空間の共通部分 (intersection of two subspaces)

ベクトル空間 ℝn 上の部分空間 A = 〈 a1, ..., ap 〉, B = 〈 b1, ..., bq 〉 を考える。 A と B の共通部分 C := A ∩ B は一般に部分空間である。 x ∈ C である場合、つまり x ∈ A かつ x ∈ B の場合、それぞれの部分空間を張る基底の座標で、それぞれ xA …

リーマン多様体上の勾配の定義

リーマン多様体上で定義される grad f の動機がよくわからなかったのでいろいろ調べたら、以下の記事で説明されていたので、自分なりにまとめた。 Div, grad, and all that—on a Riemannian manifold | Climbing Mount Bourbaki 定義 リーマン多様体 (M, g) …

GAViewer を Fedora 16 でビルドする

ここにある GAViewer のバイナリは、 fltk のバージョンが固定なので、 Fedora 16 の標準パッケージと相容れない。 自分でビルドする時は、 altlr-C++ と fltk-devel あたりを入れて、 $ LDFLAGS="-lX11 -lGLU" ./configure && makeとすればよいようだ。ライ…

STL algorithm for_each は要素を変更していい

参考文献 https://sites.google.com/site/cpprefjp/reference/algorithm/for_each c++ - Why is std::for_each a non-modifying sequence operation? - Stack Overflow 要するに for_each は、 "non-modifying sequence operation" (シーケンスを変更しない…

Word 2007 以降, PowerPoint 以降の数式の使い方

以前、 Microsoft のサポートに聞いたところ、「使い方の詳細文書はありません」という謎の回答をいただいたので、とりあえずわかっていることだけ、まとめる。が、途中でめんどくさくなって、あきらめてる記事です。 そもそも この数式機能は、…って話は、…

Gnome で HHK に無変換と合成キーを指定する

無変換キーはとても便利である。なぜなら、無変換ひらがな・カタカナ・半角・アルファベットをトグルしてくれるので、変換中にひらがなに戻したいときなどに一発でできる。 F7 とか覚える必要はない。 合成キー (compose key) はとても便利である。このキー…

label の offset

4.4 で確認。 label に offset を x,y,z で与えることが出来るが、 3 次元的には相対移動しない。これはバグだろうか?test code set label "X" at 1,0,0 offset char 1,0,0