2011/08/02

Lionが肌に合わずSnowLeopardに戻した人の独り言


先日、MacのOS X Lionがリリースされた。
あの日は早めに会社を出て、渋谷の林檎屋に行ってみたりもしたくらい、Lionを楽しみにしていた。
ただ、いざ使ってみると悪いところ尽くし(しかも2600円!)だったので、SnowLeopardに戻しました。という愚行の記録です。

世の中にはリンゴ教徒なレビュアが多すぎます。彼らは無条件にリンゴの決断を受け入れ、崇拝し、布教活動をしていますが、私としてはあまり感心できません。
ちゃんとユースケースを見極めた上でレビューしてください。

マルチタッチジェスチャー


タッチパッドのパターンが多彩です。いや、多彩すぎます。
何本指でどっち向きに動かすと何が起こるか、というのをいちいち考えなければ使えないレベルです。
また、一方で3本指の戻る/進むジェスチャが消滅しました。
必要なモノがなくなって、いらないものが増えました。
---

フルスクリーンアプリケーション


画面いっぱいにアプリケーションの領域が広がります。邪魔です。
アプリをフルスクリーンにするたびに、ワークスペースがひとつ増えます。
ゆえに、後述するMission Controlのサムネイルが小さくなり、一覧性がさらに悪くなります。

---



Mission Control


ExposéとSpacesが融合しました。出来上がったのは、両機能の良さを打ち消しあったシロモノでした。
アプリのサムネイルはより小さくなり、一覧性は悪くなりました。
ワークスペース間のアプリの移動も、できなくなりました。
ワークスペースはひたすら横に増殖するだけになりました。
Exposé・Spacesに比べて、動作が重くなりました。MC505J/Aではカクカクします。スピード感がありません。
Lionの新機能で最も著しい退化です。
---




Launchpad


アプリケーションを一覧して実行できます。
似たようなアイコンがいっぱい並んでいて、探すのが大変です。
PCの場合、日常的に使うアプリは限られています。Dockで十分ではないでしょうか。

(アプリのアンインストールはしやすくなったかも)
---



再開


シャットダウン直前の状態を、再起動後に復元することができます。
それゆえ、シャットダウン・起動時間が長くなりました。
デスクトップPCにはうれしいかもしれませんが、MacBookAirでは不要です。

---

といった感じで、表向きの機能はたいてい、不要な進化 or 退化です。

唯一「よくなった!」と賞賛できるのは



Spotlight


検索対象が広がりました。非常に賢くなりました!
動作も軽快になりました。検索結果のドラッグアンドドロップもできるようになりました。

---
あ、あと、下の方に小さくしか紹介されていませんが


  サイズ変更をどこからでも

ウインドウのサイズを、上下左右、どこからでも変更できるようになりました。

これ、地味に結構重要です。とくにWindows使い慣れてた人にとっては。
SnowLeopardまでは、サイズ変更のたびに右下までカーソルをもっていかないといけなかったので。

といった感じでしょうか。
興味本位でためしてみるのはありですが、(少なくとも、これまでSnowLeopardのSpacesをそれなりに使い込んでた人が)ずっと使い続けるにはかなりの不満が残ります。

そんなわけで、私はLionをやめてSnowLeopardに戻しました。
やはりSpacesとExposéは偉大です。
また、失ってみて初めて分かる、3本指の戻る・進むの大切さ。

WindowsVistaが派手になった時とか、MS Officeのリボンインターフェースが出た時とか、もっと非難轟々だったような気がするのに、それと同レベルなことをやっているLionはそれほど叩かれていませんね。
多くの人にとっては意外と使いやすい進化なのでしょうか。

2011/06/21

MacBook AirでPythonの開発環境(NumPy, SciPy, Matplotlib, PIL, PyQt, OpenCV)をサクっ!と整える

先日から、MacBook Airでの開発環境(Python)を整えるのに、非常〜〜〜に時間がかかっていた。
なんか64ビット対応しているしていない、PPCの対応がある、ない、やらで、非常にややこしい。
そして、数多くの人がハマった記録を残しているが、100人が100人とも違うことを言っていてわけがわからない。
とりあえず、今回はクリーンインストール状態のMacBook Airから
・NumPy, SciPy, Matplotlib
・PIL
・PyQt
・OpenCV
をまともに使えるようにした。

過去にActivePythonで
・NumPy, SciPy, Matplotlib
・PIL
・PyQt
を使う記事をここのブログで載せていたが、その後OpenCVのインストールで詰まってしまった。

ので、今回はそれを全く忘れてMac付属のPythonでインストールするようにした。
※2011/6/21時点での情報です。これから先この方法でうまくいくかは保証できません←こんなんばっかりだから(ry

1. XCode4をインストール
・MacAppStoreから購入する。開発環境を買うとか、悔しい気もするが、我慢。

2. Homebrewをインストール
・依存関係を解決しつつソースインストールしてくれる。MacPortsみたいなもんだけども、より手軽な感じ。

3. ScipySuperPackをインストール
・これひとつでNumPy,SciPy,Matplotlibがインストールされる。
★ソースインストール(easy_installやpip installを含む)だと、ほぼ100%、Fortanのエラーに悩まされる。なので、必ずこのScipySuperPackを用いること!

ちなみに、Matplotlibの日本語設定は、
↓のフォントを入れ替えて、
/Library/Python/2.6/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/mpl-data/fonts/ttf/
↓のmatplotlibにごにょごにょする。
/Library/Python/2.6/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/mpl-data/

詳細は、過去ログを。

4. PILをインストール
・sudo easy_install pip
・sudo ARCHFLAGS="-arch i386 -arch x86_64" pip install PIL
★archを指定してやらないと、PPC用の無駄なビルドプロセスが走り、当然エラーになる。

5. PyQtをインストール
・brew install pyqt
・ビルドに、ものっすっごく時間がかかる。寝る前に仕掛けておけば翌朝にはできあがっている。
・PYTHONPATHに /usr/local/Cellar/pyqt/4.8.4/lib/python:/usr/local/Cellar/sip/4.12.2/lib/python を追加

6. OpenCVをインストール
・PythonバインディングとQtを有効活用するために、必ずPyQtよりも後にインストールする。
・brew install opencv
・PYTHONPATHに /usr/local/Cellar/opencv/2.2/lib/python2.6/site-packages を追加

これだけ。なんとも簡単ですね!
手動のソースビルドをやる前にまずはお試しあれ!!

2011/06/11

敷島ガーデン

札幌地下歩行空間の一角にあるスペース。

意外といつでも空いてる。
wifiがなく、ネットしたい衝動を切り、勉強をするにはちょうどよい。

いまどき、スマホ使えば簡単にwifi飛ばせる時代ですけどね。

2011/05/31

MacBook AirにPyQt4をインストール


ぱぱぱっとGUIプログラムを書くには、PyQtが非常に便利である。
Python組み込みのTk使えばいいじゃないかという意見もあるが、個人的にはなんとなくあのUIが好きではない。

そのへんのページを見ると、
Qtインストール(dmgダウンロードしてパッケージインストール)

SIPインストール(ソース。python configure.py → make → sudo make install)

PyQt4インストール(ソース。python configure.py -q /Users/hoge/QtSDK/Desktop/Qt/473/gcc/bin/qmake -g → make → sudo make install)

しかし。


  File "a.py", line 15, in
    import PyQt4.QtGui
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyQt4/QtGui.so, 2): no suitable image found.  Did find:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyQt4/QtGui.so: mach-o, but wrong architecture



サンプルを実行するとこんなのが出てきて、激萎え。
おれがActivePython使ってるから?

でも、とりあえずActivePythonでも実行してくれないと困る。

追加設定。

まず、Qtそのものが64bitを想定しているようだ。
これを32bit向けに自前でコンパイルしないといけない。

http://doc.qt.nokia.com/4.7/install-mac.html
ここに、わりとわかりやすい手順は載っているのだが、Qtのソースをとってきて、
./configure -arch x86
make ←MacBookAirだと7時間くらいかかるので、寝る前に放置するのが懸命
sudo make -j1 install

ここからはPython側のモジュールインストール。

export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

SIPのインストール。すでにwrong archtechtureと言われた場合は、インストール済みなので、make cleanしてあげないとダメ。
python configure.py --arch=i386
make clean
make
sudo make install

PyQtのインストール。
python configure.py --use-arch=i386
make clean
make ←2時間くらいかかる。これも放置するのが懸命。
sudo make install

2011/04/24

MacBook AirにPython開発環境とかをインストール。

Macは(よくしらんけど、たぶん)BSDの改造を重ねたOSである。
ということは、ただのネットブックじゃなくて、サブ開発マシンくらいにできるはずだ。
そんなことして、ちょっとインテリぶってみようとか、思わずにはいられなかったので、やってみた。

そんで、とりあえず手っ取り早く、しかもライブラリ豊富なPythonを、、と思ったが、かなりハマったので、メモっておく。


[前提] Pythonのインストール
ターミナルから「python -i」ってうつと


Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
こんな感じのが出てくるのだが、結論から言うと、これをそのまま使うことはできない。
なんでかは、忘れた。気になる人はggrks

で、とりあえずActivePython2.6をインストール。
難なく終了。/usr/local/bin/python, とか/usr/local/bin/easy_install とかできる。

さて、この時点ではpython と打つだけでは/usr/bin/python のほうが実行されてしまう。
ので、.bashrcと.bash_profileを以下のようにセットする。

.bashrc
alias python="/usr/local/bin/python"
alias easy_install="sudo /usr/local/bin/easy_install"
.bash_profile
if [ -f ~/.bashrc ] ; then
  . ~/.bashrc
fi

そんで、source .bash_profile を実行。
python -i とすれば
ActivePython 2.6.6.18 (ActiveState Software Inc.) based on
Python 2.6.6 (r266:84292, Jan  7 2011, 13:13:45) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
こんな感じでActivePythonのほうが起動される。

[1] numpy, scipy, matplotlib, PIL をインストールする前に。

環境さえ揃っていれば、これらはパッケージインストールすることができる。環境さえ揃っていれば!
そう、環境がそろっていなくてハマるのである。

まずはこいつを。

./configure
make
sudo make install

export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig

numpyをインストールするために。 

あったほうがいいらしい。フーリエ変換使わないものがほとんどだと思うので、多分、なくてもある程度は動く。

scipy…多分すんなりいく。

PIL(Python-Imaging)をインストールするために。
・zlib
・jpeg-7
・libpng
ソースをネットからおとしてくる。

zlibとlibpngはふつうに./configure, make, sudo make install
jpeg-7は、
CC="gcc -arch i386"
をしてから
./configure --enable-shared --enable-static
make
sudo CC="gcc -arch i386" make install

そんで、最大の落とし穴が、1.1.6じゃないとインストールできないっぽい、ということ。
ここの1.1.6用のソースを落としてきて、
python setup.py build
sudo /usr/local/bin/python setup.py install
↑rootはaliasしてないので、絶対パスでPythonを呼び出す。

Pythonのシェルで「import _imaging」と打って、エラーにならなければ成功。

・matplotlibをインストール
パッケージから行けるんだけども。。

インストール後、
・インストールパッケージ内にあるmatplotlibrc.templateを ~/.matplotlib/matplotlibrc にコピる
・matplotlibrcの、backendのところを、MacOSXにする!
# the default backend; one of GTK GTKAgg GTKCairo CocoaAgg FltkAgg
# MacOSX QtAgg Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG Template
# You can also deploy your own backend outside of matplotlib by
# referring to the module name (which must be in the PYTHONPATH) as
# 'module://my_backend'
backend      : MacOSX
これをしないと、「TclError」とかでてきて、ハマる。
日本語フォントを表示したいときは、過去post参照。(http://plog.search-labo.net/2011/01/matplotlib.html)

[2] パッケージインストール
なにも難しくない。
numpy, scipy, matplotlib それぞれggrks

ふぅ。。