2009/03/08

Qtの暗黙の共有


暗黙の共有により、Qtのクラスは、コピーに対して変更を加えない限り実際のコピーが行われないことが保障されます。暗黙の共有を最大限に生かすためには、少しばかり従来とは異なるプログラミング作法が必要となります。constでないベクタやリストに対して読み込みのみのアクセスを行う場合、[]演算子ではなくat()関数を使います。[]演算子によってアクセスすると、Qtのコンテナは、その値が左辺値か右辺値かを判別できないため、どちらで使われてもよいようにコピーを行います。しかしat()の帰り値は左辺値となれないので、深いコピーを行わないのです。
STLスタイルのイテレータでも同じ問題が生じます。constでないコンテナのbegin()やend()を呼び出すと、Qtはコンテナが共有されていた場合強制的に深いコピーを実行します。こうした非効率を避けるには、可能な限りconst_iteratorとconstBegin()、constEnd()を使います。



めもめも。

PostgreSQL7.X以前で、columnのdata typeを変更する方法

・PostgreSQLでデータ型の変更
http://phprefa.seesaa.net/article/5297298.html



PostgreSQL 7系以下の場合上記のようにいったんデータを待避させて、ALTER TABLE文で、column削除→columnのrenameが必要となる。

PostgreSQL8以降はALTER TABLE ALTER COLUMN TYPEを使えばいいので簡単。

例)

ALTER TABLE distributors ALTER COLUMN address TYPE varchar(80);

もう一つ参考URL

http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html#item4.3

2009/02/26

ATOKなどがIMEに勝手に切り替わらない方法

ATOKなどがIMEに勝手に切り替わらない方法

Visual StudioについてたIME2007が勝手にインストールされて以来、IMEに切り替わる病になってしまったのでメモ。

2009/02/08

Context Free

Context Free - デザイン文法で遊ぶ @ Radium Software

文法に法って画像を作成できるソフト。
今作っているアプリでは、データの"見える化"の部分をどうやって表現力豊かに、しかも切り離して管理するかがかなり難点だった。結局SVGを採用したんだが、正解だったのかなぁ…(´・ω・`)

Intelの爆速で長寿命な超ハイエンドSSDが短期間で半額以下に

Intelの爆速で長寿命な超ハイエンドSSDが短期間で半額以下に @ GIGAZINE

イイネー、イイネー。
手が出せそうなお値段になってきた。

まだ買えないけど\(^o^)/

2009/02/07

Command-line Fu

Command-line Fu

1行で実行できる便利なコマンドラインを紹介してくれている。

ssh user@host cat /path/to/remotefile | diff /path/to/localfile -

こんなのでリモートに存在するファイルのdiffを取れるのか。
当たり前だけどびっくりするものがちらほらあって見ていてたのすぃ。

UNIX系コンソールでディレクトリ以下のファイル数をカウント

UNIX系コンソールでディレクトリ以下のファイル数をカウント

より。
確かにそういうコマンドが無いのが不思議だ。

ls *.* | wc -l
などいろいろ応用がききそうである。

2009/02/05

ブラウザーのシェア、IEの過半数割れは時間の問題か

ブラウザーのシェア、IEの過半数割れは時間の問題か

私は違う見方をしていて、IEのシェア下落は下げ止まるんじゃないかと思っている。
MicrosoftがIEをOSに含めるのを止めない限りは。

あと案外Firefoxが伸び悩むような気も。
確かにAdd-On入れると凄く便利になるが、そういう使い方はコアユーザしかやらないんじゃないかと。

2009/02/01

Direct3D on VMWARE

「先輩が記事書いてくれないので 僕さびしいっす」と,某後輩が泣きついてきたわけではないが久しぶりに更新

まぁ,何をしていたのかというと某ネットゲームをVMでうごかしていたり,ニコニコ動画の再生数で勝負してたり。

まぁVMの方は情報整理もかねて ここにメモ



  VMWARE Server だと動かないけど Workstation なら動く。

なんとなく不具合
・解像度が 1024x768 以外にすると ブルースクリーン

・ウインドウモードとフルスクリーンを切り替える(ALT+Return)と ブルスクリーン

・Windows7Betaだと 起動途中で固まる

とか。まぁ 今使えてるからいいんだけど,やっつけにも(ry