使用する・しないに関わらず,float, double, long double 型の変数は必ず初期化するポリシーで生きることにする.
これまではてブを使っていたのだが,検索したブックマークの編集ができないなどの不満があったので,Google Bookmarks へ移行を始めた.Delicious 経由でdel.icio.us to Google Bookmarksを使う方法だとうまくいかなかったので,ブックマークを移行するスクリプトを書いた.
あるテンプレート関数(テンプレート型引数 T)で,例えば std::vector<T>::iterator itr を定義しようとすると,コンパイルエラーとなる(std::vector<T>::iterator が型であると認識されない).この場合 typename std::vector<T>::iterator itr のように,前に typename をつけて,型であることを明示する.もし,iterator に相当するものが,テンプレートクラスの場合,template キーワードを使ってテンプレートであることを明示しなければならない.
クラスや構造体のメンバ変数を初期化するには,コンストラクタに初期化リストを書かなければならない.が,宣言場所と離れてしまったり,同じ変数名を2度(宣言と初期化で)書く必要があって面倒くさかったりする.整数変数しか使えないが,メンバ変数を宣言位置で初期化できる方法を紹介する.
template<typename T> function(const T&) のようなテンプレート関数があったとして,この実装を T が構造体の場合は変更したい(部分特殊化したい)とする.特定の構造体に対する特殊化なら話は簡単だが,本記事では汎用的な構造体に対する部分特殊化を扱う.この問題は,少々厄介だ.
Gmailの文字が小さくて見にくい(英文は特に).ズームすると,全体のバランスが崩れてださい.Chrome や Firefox 限定だと思われるが,Stylish という拡張機能(アドオン)をインストールすれば,メッセージだけ文字を大きくできる.
VMware のできはとてもよろしいので,新しいPCにインストールするのと同じ感覚で Debian をインストールすることができた.しかし,キーバインドの設定など,若干トラブったので,まとめる.
Debian で,NVIDIA のドライバを 190.53 → 195.36.15 にアップグレードしたら,
NVRM: API mismatch: ...
というエラーが出てXが起動しなくなった.環境は Debian squeeze/testing, GeForce 9800 GT.sudo update-initramfs -u を実行すると,解決した.
シミュレーションなどでデータをファイルに出力する際,リアルタイムにデータをプロットしたい場合がある.gnuplot を popen し,自動的に replot によって描画を更新する python スクリプトを作ってみた.
C++ では,クラスを継承しても friend 属性は継承されない.継承させたい場合,どうするか?
暗号化されたDVDをmplayerとかVLCで再生するとエラーが出る場合,libdvdread4, libdvdcss2 をインストールすると見られるようになる.
ここ最近の octave / liboctave のインストール方法についてメモ.(Debian / Ubuntu)
(追記@Feb.06,2010)共有ライブラリの指定について.
Debian を lenny から squeeze にアップグレード後, apt-cache でパッケージを探すたびに Abort するようになった. apt-get clean でローカルのリポジトリをクリアすれば解決した.
LaTeX のコンパイルを, jbibtex のコンパイルも含めて(自動的に判断される),自動化するスクリプトを書いた.また,昨日の記事 作成時刻やバージョン情報を PDF にスタンプする を使って,バージョン情報,リビジョン情報,タイムスタンプなどをドラフトバージョンに付加できるようにした.
作成時刻やバージョン情報を PDF にスタンプするためのスクリプトを作った. LaTeX とか pdftk を使う.
リモートサーバにある Git リポジトリから HTTP (WebDAV) 経由で pull したり clone を作ったりする場合の注意点について,おぼえがき.
プログラミングしていると,あるシンボル(変数名,関数名,クラス名,etc.)がどのオブジェクトファイル(or アーカイブファイル)や共有ライブラリで定義されているか,調べたいことがある(どのファイルをリンクすればいいかわからないときなど).通常はシンボル名でググればよろしい.だが,稀に,ググるのでは解決できないことがある.そのような場合の対処法として,無理矢理 /usr/lib や /lib にあるライブラリファイルを検索する方法を紹介する.
bash で使えるコマンドラインオプションパーサとしては,組み込みの getopts とかコマンド getopt が代表的だが,もっと手軽に使えるのはないものか.ということで作ってみた.