2009年3月31日火曜日

CherryPy Essentialのサンプルコードのダウンロード

随分久し振りになってしまったが、作業メモ。
と言っても結果的にはメモるほどのことではしてない。。。

しばらくの間一応Vistaを使っているので、CherryPyもVistaで動かしたい。
CherryPy Essentialsを読みながらちょこちょこ試すのもVistaでやろうと思う。
で、本を読みながらVistaにCherryPyをインストールした。
いつものようにEmacsの中のbashで

$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ python ez_setup.py

でEasy_installをインストールし、

$ c:/Python25/Scripts/easy_install-script.py cherrypy

でCherryPyの最新版をインストールした。途中"Can't process ..."とか出てたけど、とりあえず無視。一応インストールはできたらしい。後でサンプルを実行してみて問題があれば戻ってくることにする。

で、サンプルを試そうと思ったが、当然手で打ち込むなんて真似したくないので、CherryPy EssentialsのホームページからダウンロードしようとチェックしてみるとSubversionでの取得方法しか書いてないような。。。
仕方ないのでSubversionを入れてみようと思った、が、何かWindows用バイナリをダウンロードしようとすると、飛ばされたサイトでアカウント登録を求められたりする。。。
なんか嫌だし面倒になってやめてしまった。

結局Linuxを入れてあるノートのSubversionでダウンロードし、それをコピーしてきた。。。

Vistaはなかなか快適とは書いたが、その後Linux(Debian)も最新安定板のlennyをインストールし直して個人設定も整理して改めて比較してみると、やっぱりLinuxの方が快適だなぁ・・・
長年の個人設定の積み重ねやツール群への慣れもあるけれど、やっぱりLinuxの方がいい。
それに今回のSubversionもそうだが、Debianのaptでのパッケージ管理はやっぱり楽。楽過ぎ。バイナリをダウンロードしてクリックするだけでほとんど済むウィンドウズと比べても、やっぱり楽。安心。

ただどうしてもVista上でOffice 2007を使わないといけない都合もあるし。。。
という事で、とりあえずはこのままだけど、なるべく早いうちにLinux上のVMware Workstationがちゃんと動くようにして、その中に改めてVistaとOffice 2007をインストールし直そうと思った。

2009年3月1日日曜日

Vista環境その3 (Visual C++ 2008 Express Editionをbashから使う)

前回MinGWとその中のgccをインストールをしたは良いが、とりあえずg++は先延ばしにしておいた。MinGWのインストーラがg++で失敗するからだ。しかしCで書く事はほとんどなく、欲しいのはC++だ。なんとかしてMinGWのg++を入れようかと思ったが、やはりやめておくことにした。インストーラで成功しなかったのもあり、今後もちゃんとメンテされるのかに不安が残るし。それに、Windows上にLinuxと同じような環境を、とは言っても、そこまで無理する必要はない。cygwinもそうだけど。ちょっと無理矢理でしょ。win使うなら、まあ無理がないところからnativeなツールを使うようにはしたい。
Emacsとその中のbashとそこから使う基本的なコマンドはあまりにも頻繁に使ってきたので、それなしの環境は考えられないが。
という訳で、C++はMicrosoftのものを使ってみる事にした。
実はもう一つ理由がある。どのページだったか今探しても見付からなかったが、gcc, icc(Intel謹製コンパイラ)とVisual C++のパフォーマンスの比較をしてあるページがあったが、そこでVisual C++がとても速かったからだ。確か、Linux上のgccはもちろん、icc(on Linux)よりも速かったような。

ということでまずはMinGWとMsysをアンインストール。してもディレクトリや一部ファイルが残るのでそれらは自分で削除。その代わりwin用のbashのバイナリがあったところからリンクがあった、unix tools for windowsとかいうところのバイナリをいくつか入れた。この中にはmakeもある。実はMinGWのmakeはどうもいつも使っているGNU makeとは違う動きのようだった。こちらのmakeは大丈夫のようだ。

で、Visual C++ 2008 Express Editionをダウンロードしてインストール。
これはMicrosoftが無償で提共しているもので、他にもVisual Basic、Visual C#、Visual Web Developerがある。インストール・設定後に少し試してみたところ、STLはちゃんと入っている様子。ただしboostは無い。

これでGUIを作ったりIDEから使う気はあまりない。とにかくEmacsのshell(bash)から使えるようにしたい。
コマンドラインから、しかもbashからどう使えば良いのか、なかなかその手の解説は見付からないし、winの勘はないしで結構苦労したが、とりあえず~/.bashrcに次のような設定を加えることでbashの上からC/C++のファイルがコンパイルできるようになった。

VSINSTALLDIR="/Program Files/Microsoft Visual Studio 9.0"
VCINSTALLDIR="/Program Files/Microsoft Visual Studio 9.0/VC"
FrameworkDir="/Windows/Microsoft.NET/Framework"
FrameworkVersion=v2.0.50727
Framework35Version=v3.5
WindowsSdkDir="/Program Files/Microsoft SDKs/Windows/v6.0A"
DevEnvDir="/Program Files/Microsoft Visual Studio 9.0/Common7/IDE"

## **CAUTION** paths are separated by ";" in the following two
export INCLUDE="$WindowsSdkDir/include;$VCINSTALLDIR/include"
export LIB="$WindowsSdkDir/lib;$VCINSTALLDIR/lib"

export PATH="$WindowsSdkDir/bin":"$DevEnvDir":"$VCINSTALLDIR/bin":"$VSINSTALLDIR/Common7/Tools":"$FrameworkDir/$Framework35Version":"$FrameworkDir/$FrameworkVersion":"$VCINSTALLDIR/VCPackages":$PATH

visual c++のコンパイラのコマンド名は"cl"、リンカは"linker"だそうだ。これで


$ cl test.c





$ cl test.cc


とすればコンパイルできて、test.exeが作成される。ファイル内に日本語がある場合にはsjisにしておかないといけないようだ。Emacsの設定を変更しないと。

INCLUDEとLIBはclが参照する環境変数のようだ。名前の通り、インクルードファイルのあるディレクトリとライブラリ(DLL)のあるディレクトリを指すためのもの。
これは.bashrc内の設定だが、この二つはcl.exeというウインドウズプログラムにより参照されるという点を意識する必要があった。

bashでは、環境変数の、例えばPATHなどで、a, bという二つのパスを設定するには


PATH=a:b


のようにする。":"がセパレータだ。しかしwinではセパレータに";"を使う。
なので、INCLUDEには一つの文字列だけ設定し、その中にwinの環境変数として";"で区切った複数のパスを設定してある。bashのための設定としては普通こんな事はしない。

という訳で、とりあえずbashからVisual C++ 2008 Express Editionでコンパイルできるようになった。
C++でunixやwinに偏ったプログラムを書く気はないので、その範囲で使う分には恐らくこれで問題はないと思う。それにPythonなどこれまでインストールしてきたwin用のバイナリもほとんどはvisual c++でコンパイルしてあるようなので、むしろ相性は良いだろう。

あとはclやlinkerの細かいオプションを調べて基本的なMakefileを書いてしまうだけ。

そうそう、面倒なのでとても重要なもの以外はリンク張ってませんが、キーワードで検索すればすぐ見付かると思う。

Vista環境その2 (スリープ不調も)

Vista上にLinuxで使用しているものを整える続き。

・ガジェットにGchecker追加。Gmail通知用。その他設定変更で好みに。
・Mozart(Oz)環境導入。OZEMACS環境変数にemacsのパスを追加。

今更だが、winではほとんどのインストールはダウンロードしてダブルクリックするだけでできる。時々インストールパスいじったりインストール後の設定をいじったり。unixや初期のLinuxと比べれば楽といえば楽。しかしDebianのaptと比べると面倒に感じる。統一感にも欠ける。いっそaptのような統一された管理システムがあってもいい。

・keyhac導入。説明が少なく今一つ分からないなりになんとかキーバインド設定変更。Linux上でxmodmapでやっていることはほぼ完了。しかしCapsLockとCtrlキーの交換がうまくいかない。

Ctrlのようなモディファイアキーはどうやらキーコードの発生のさせ方が、デバイスの時点なのかwinがやっているのか分からないが、違うらしい。なのでコードだけ入れ変えても発生の仕方がモディファイアの様にならないためにうまくいかないように見える。今のところkeyhacでの解決法は分からない。仕方ないのでCapsLock<->Ctrlだけはkeyswapで変更し、その他はkeyhacで設定した。できればkeyhacだけでできるようにしたい。
また、ウィンドウ操作についてもサンプルにもウィンドウの単純な移動程度の例しかない。sawfishのように他のウィンドウにぶつかるまで移動するようなことがやりたいが、できないのかもしれない。ウィンドウの縦とか横とかへの最大化なんかの操作もやりたいんだが。今後の課題。

・うまくスリープできない問題の回避方法発見。USBメモリを抜いておく。

スリープを選んでもディスプレイは消えるが本体の電源は落ちなかったり、一度は落ちたようでもその瞬間にスリープから戻ってしまう状態が続いていた。BIOSのアップデートや設定確認、そしてネットも漁ってみたが解決できなかった。その原因がやっと分かった。
スペック的にあまり必要ないと思いながらもreadyboostのためにUSBメモリを本体裏面に差しっ放しにしてあったのをつい忘れていたが、USBメモリを差したままにしておくとスリープに入ってもその瞬間にまた立ち上がってしまう。抜いておけば問題なし。キーボードからのwakeupの禁止のようにデバイスドライバーの電源管理の項目で制御できるかと思ったが、プロパティにそんな項目見当たらず。仕方ないのでreadyboostは止めて、その他のUSBメモリも抜くよう気を付けるしかない。

色々やっているうちにディスクが足りなくなってきたので、パーティションを切り直し、Vistaのパーティションを拡げた。そのためにはLinuxパーティションを削除する必要があったので、削除し割り当て直した。データは全てバックアップしてあるので、Linuxも久し振りにインストールし直す事にした。Debian lennyがつい先日正式リリースされたばかりだし。

思いの外Vistaが快適だったので、Linuxで使っているものをどの位整えられるかと思って始めてはみたけど、やっぱDebianの方が快適…
フォント回りとかOfficeを使わないといけない事とか、いくつか問題はあるけれど、やっぱりDebian GNU/Linuxの方がいいなぁ…
どうしてもwin使ってないといけない事もあるので、一応継続してVista上でも大抵の事は困らないようにしておきたい。Linuxの時と同じキーバインドでEmacsとLaTeX,Pythonあたりが使えるだけでもかなり改善したが。