路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

Windows 7はパイメニューになるのかなあ

2008-05-31 22:29:08 | プログラミング
最近あっちこっちにあがっているWindows 7のスナップショット、

やたらとパイメニューが目につきますね。

プルダウンメニューやめるのかなあ。

アプリケーションプログラマには大変な作業が待っているのではなかろうか。

あの大々的なリボンUIの導入は何だったんだろう・・・


検索エンジンとはいうけれど

2008-05-30 22:30:45 | Birds-Of-Feather
記事「検索サイトの舞台裏--グーグル幹部が明かす改善手法」
http://japan.cnet.com/special/story/0,2000056049,20374310,00.htm
より。

この記事を読んで、Googleが(割と派手に宣伝されている)検索結果の正確さだけじゃなくて、

検索結果が返ってくる速度とかページのデザインとかっいた、人間工学的な面でも、きちんとこだわりを持って、まじめに研究・実験を続けているのだとわかりました。

やっぱりトップに君臨できるのはそれなりの裏付けがあるのですね。納得。

検索「エンジン」という言葉の無骨なイメージからはほど遠いですね。

フツーの子のためのWindowsの仮想化とライセンス

2008-05-20 21:51:54 | その他
VirtualBoxの公式サイトに、なにげにすごい情報が。

http://www.virtualbox.org/wiki/Migrate_Windows

なにやら、halなんとか.dllをいじったり、何たらIDEとかいうツールを使えば、

素のハードウェアやVMWareにインストールしてあるWindowsを、VirtualBox上に持ってこれるそうな。

ひょっとして、そういうことなんですか-。

・・・いろいろな意味で怖いから止めておこう。

メモ: Ubuntu 8.04でEclipseを動かす

2008-05-19 14:19:13 | プログラミング
Ubuntu 8.04でEclipseが起動しなくなって焦りましたが、

どうやら、SunのJVMをデフォルトにすれば良いようです。
(Darryl E. Clarkeさんのブログより。
http://darrylclarke.com/2008/04/07/eclipse-and-ubuntu-804/)

sun-java6-jdkをインストールして、
sudo update-alternatives --config java
として、無事解決。

PyInstallerでexeにアイコンを付ける

2008-05-16 22:42:42 | プログラミング
さっきのエントリの続き。

PyInstallerを使ってWindows用の実行形式を作り、アイコンも付けたい。

というわけで、ごそごそ調べてみました。

(1) pywin32のインストール。

これがインストールされてないと(PyInstallerのエラーメッセージは地味でわかりにくいのですが)アイコンを付けられないようです。

http://starship.python.net/crew/mhammond/win32/
から、pywin32(Python for Windows Extensions)をダウンロード。
インストーラーはexeなので、(Vistaの場合は管理者として)実行してください。

(2) PyInstallerのインストール

山本隆さんのブログにわかりやすいまとめが。
http://www.gesource.jp/weblog/archives/2005/10/pyinstaller_python_windows_exe.html

要は、pyinstallerのアーカイブをダウンロードし展開して、出てきたConfigre.pyを実行すればOKです。

(3) pyスクリプトをexeに変換。アイコン付きで。

コマンドラインから、

Makespec.py --icon=ほげアイコン.ico ほげスクリプト.py

とやると、「ほげスクリプト.spec」というファイルができます。その後、

Build.py ほげスクリプト.spec

とします。

めでたくアイコン付きのexeのできあがり。

メモ: PyInstallerではsys.argv[0]が正しく設定される

2008-05-16 17:17:05 | プログラミング
py2exeとPyInstallerの両方で、テストしてみる。

---- fuga.pyここから ----

import sys

if __name__ == '__main__':
 print "sys.argv[0] = ", sys.argv[0]

---- fuga.pyここまで ----

py2exeだと、なぜか相対パスになった。
sys.argv[0] = dist\fuga.exe

PyInstallerだと、絶対パスが設定されていた。
sys.argv[0] = c:\temp\pyinstallertest\distfuga\fuga.exe

VC++ 2008 SP1およびg++ 4.2、TR1に向けて

2008-05-15 22:03:52 | プログラミング
VC++ 2008 SP1ではTR1ライブラリが追加されるそうなので、
(GNU g++でも使えるようになっているらしいし)そろそろ準備します。

VC++ 2008 SP1 ベータ1がなぜかインストールに失敗するので、
VC++ 2008英語版 + VC++ 2008 Feature Packを使って実験しました。

unordered_mapを例題に使ってみたのですが、
(いつもながら、g++の方がコンパイラのチェックが細かいというのを除けば)
ヘッダファイルの違いを除いて、VC++でもg++でもunordered_mapを
使えるようです。

いままで、hash_mapがVC++とg++で互換性がなくて敬遠していたので
ちょっとうれしいかも。

以下、両方のコンパイラで通ったソースを記します。

#if defined _MSC_VER
#include <unordered_map>
#elif defined __GNUC__
#include <tr1/unordered_map>
#endif

#include <string>
#include <iostream>

class MyKey {
public:
 std::string value;
 explicit MyKey(const std::string &v) : value(v) { }
 MyKey() { }
 MyKey(const MyKey &right) : value(right.value) { }
};

namespace std {
namespace tr1 {

template<>
struct hash<MyKey> {
 size_t operator()(const MyKey& item) const {
  return item.value.length();
 }
};

}
}

namespace std {

template<>
struct equal_to<MyKey> {
 typedef MyKey first_argument_type;
 typedef MyKey second_argument_type;
 typedef bool result_type;
 bool operator()(const MyKey &left, const MyKey &right) const {
  return left.value == right.value;
 }
};

}

int main(int argc, char *argv[])
{
 std::tr1::unordered_map<std::string, int> someMap;
 someMap["one"] = 1;
 someMap["two"] = 2;

 std::cout << "one -> " << someMap["one"] << std::endl;
 std::cout << "two -> " << someMap["two"] << std::endl;

 std::tr1::unordered_map<MyKey, int> anotherMap;
 anotherMap[MyKey("one")] = 1;
 anotherMap[MyKey("two")] = 2;

 std::cout << "one -> " << anotherMap[MyKey("one")] << std::endl;
 std::cout << "two -> " << anotherMap[MyKey("two")] << std::endl;

 return 0;
}



何気にすごい彼の国のソフトウェア

2008-05-15 16:29:05 | その他
棒記事を読んで、何ヶ月かぶりにOpenOffice 3.0ベータを試してみました。

MS Officeで作った文書をインポートしてみます。

結果、図形の透明色が再現しなくてがっかり。あーやっぱり、そんなもんなのね、という感じ。

(もちろん、OpenOfficeはMS Officeとの互換性だけがウリというわけではなく、
これをもってOpenOfficeの評価とするのはフェアだとは言えません。念のため)

そこで、そーいえば、KingOfficeなるものもあったよなあ、と思い立って試してみました。

結果・・・あまりにも再現性が高くて呆気にとられました。

これだけで判断するのはちょっとアレなのですが、

ひょっとして、彼の国のソフトウェア産業、すごいんじゃないでしょうか。

ブックマーク: Linuxの情報サイト Linux Salad

2008-05-12 16:19:40 | ubuntu linux
Ubuntuについていろいろなチップスが紹介されているページを見つて、早速ブックマークしました。

Linux Salad
http://linuxsalad.blogspot.com/

Ubuntuの精神を反映しているのか、変に小難しい感じもなく、読みやすくまとまっています。すばらしい。

5/4のエントリに書いた、グラフィックスカードの設定も、

このページを見つけていれば、
http://linuxsalad.blogspot.com/2007/11/blog-post_03.html

テキストエディタを使わずに、GUIで設定できたはずでした。

(もちろん、事前にVBoxLinuxAdditions.shを実行しておくことが必要ですが)

Ubuntu大人気なんですね。

BOF: CPUは死んだ

2008-05-10 22:38:52 | Birds-Of-Feather
記事「Nvidia Trumpets Death of the CPU」
http://news.softpedia.com/news/Nvidia-Trumpets-Death-of-the-CPU-84407.shtml
より。

AMDのRoy Taylerさんの主張です。

「基本的には、CPUは死んでいる。」なぜなら、CPUは「これ以上は速くならない」から。 それで、「インテルはパニックになってAMDを攻撃しはじめた。なぜなら、依然としてワンチップでどんどん速くなるもの、すなわち、GPUが必要とされているから。」

いちおう、会社の公式な見解を示していません、と但し書きがついています。

が、主張自体は面白いです。

AMDのもくろみ通り、GPUの並列性を最大限に引き出して高速に作業をこなすようなアプリケーションが増えていくようになれば、ターニングポイントになった発言と見なされるのではないでしょうか。

インテルの方はというと、ベクタ命令セットが従来の命令セットに取って代わるような、命令セットの大改造を予定しているらしいですし、
(記事「Intel、6コアCPUなど次期プロセッサの詳細を明らかに」
http://www.itmedia.co.jp/news/articles/0803/18/news030.html
および、
記事「x86 CPUの弱点が浮き彫りになったNehalemマイクロアーキテクチャ」
http://pc.watch.impress.co.jp/docs/2008/0428/kaigai438.htm
より)

今後は、(AMDかインテルが想定するような世界が実現するとすれば)いずれにせよ、並列処理を意識したプログラミングが主流になるのでしょう。

CPUが死ぬかどうかはわかりませんが、逐次処理の死は間近なようです。

願わくば、プログラマに低レベルでがしがしスレッドを管理させるようなやつじゃなくて、解こうとしている問題に含まれる並列性が自然に引き出せるようなプログラミング言語/ライブラリが整備されますように。

(2008/05/11 加筆、修正)