Ruby のバージョンマネージャー rvm を Ubuntu で使う

Ubuntu 11.04 を導入しました。いままでは windows から Redhat にログインするという形で使っていたのですが、yum はパッケージの依存関係とかに時間を取られてしまって Ubuntu ならそのへん楽になるんじゃないかと。

実際非常に楽でした。いいですね、Ubuntu。

ただ認証プロキシ下での rvm (Ruby version manager) の設定ですこしハマったのでメモを残しておきます。
“Ruby のバージョンマネージャー rvm を Ubuntu で使う”の続きを読む

Eigen ー C++で線形代数を!(3)

前回(といってもずいぶん前のことですが)は eigen の基本的な使い方について書きました。

Eigen ー C++で線形代数を!
Eigen ー C++で線形代数を!(2)

今回は連立方程式を解くための一つの方法である LU 分解を eigen から使う方法について書いてみたいと思います。

毎度のことですが、より詳細な情報についてはマニュアルを読んでください。英語ですがわかりやすく書いてあります。ちなみに今回使っている Eigen のバージョンは 3.0 です。

Eigen を使うと非常に簡単に LU 分解を計算することができます。余計なお世話かもしれませんが、こんなに簡単だとついついブラックボックスとして使いがちです。しかし、LU分解による求解は数値解析の観点からはベストの方法であるとは限りません。特に、疎行列のケースでは(CG法系列の)別の解法を使ったほうがよいでしょう。Eigen も sandbox レベルでは BiCG などの疎行列用の解法が存在しています。Eigen の疎行列ライブラリを使って自分で実装してもそんなに問題はないと思います。

いきなり御託を並べてしまいましたが、気を取り直して、先に進みましょう。
“Eigen ー C++で線形代数を!(3)”の続きを読む

【SQLite3】 ハイパフォーマンスなインデックスをつけるために覚えておくべきこと

(この記事は旧ブログからの転載です。)

「インデックスは付いているはずなのに検索速度が遅い!」

ということはありませんか?わたしは見事にハマりました。

私の場合、個人使いがほとんどでシビアな性能が要求される web アプリなどを作っているわけではありません。
そんなこともあって、あまり細かいことは気にせず

「データベース検索の際のキーとなるカラムには適当にインデックスをつけておけばいいよなー」

程度に考えて CREATE INDEX ~ をしていました。
ところが、インデックスのつけかたにはいくつかの抑えておくべき点があったのです。

ここではいろいろ実験してみてわかったことを書いてみようと思います。
“【SQLite3】 ハイパフォーマンスなインデックスをつけるために覚えておくべきこと”の続きを読む

iGoogle から簡単に evernote に投稿できるガジェットを作ってみた

最近、evernote にハマっています。しかし、使い出すと細かい点で不満が出てくるものです。

私の場合も不満はいくつかあるのですが、その一つがPC環境でもっと簡単にノートを作成したい、というものでした。

Evernote のクライアントやウェブページは少々ヘビーなため、私の環境では少しもっさりとしてしまい、簡単なテキストメモ程度ならもっと気軽に投稿したい、と思ったためです。

一方で私は普段使っている chrome のホームページや新しいタブは iGoogle になっていて、スケジュールや TODO などはそこで管理しているため、evernote もそこに埋め込めないか、と考えました。
“iGoogle から簡単に evernote に投稿できるガジェットを作ってみた”の続きを読む