gymnoの自由談

音楽系、プログラミング系の内容 方針はいずれ

XcodeでwxWidgets 開始

Xcode 3.2.3にて。
なんか 有料開発者向けにはバージョン4が出ているらしいが、別にiPhoneアプリを作るわけでもないので今はいらない。
Xcodeのバージョン3.1と3.2でいろいろ仕様が変わったらしい。

コマンドラインで作るのもよいけれどappにパッケージバンドルするのがめんどい。
Xcodeで作ればそのあたりはやってくれる。

XCodeとはMacVisual Studioで、だいたいやっていることは同じで、どちらも

というところをやりたい。 CAEソフトでいうところのプリプロセッサ というところか。
今回必要なのは後者。前者は別にemacsでもよい。
コードの編集能力はVisual Studioの方がやりやすいように感じたが慣れの問題かもしれない。

XCodeのプロジェクトはCocoaアプリケーションで作成。

Carbonがないので げ Object-C限定か と焦るけど実際はc++も使える。ここでの選択はCocoaかCarbonか にあまり関係ないらしい。
プロジェクトのプロパティを見ると「言語」の「コンパイルでのソースの解釈」がデフォルトでは「ファイルタイプに基づいて」ということになっている。

プロジェクトができる。

ごちゃごちゃいっぱいあるけれど、フレームワークという概念などはVisual Studioより分かりやすくてよい。
ある操作に必要なライブラリをまとめて設定できる。OpenGLとかOpenCLとかWebKitとか。
プロジェクトが作成できたらクラスとか拡張子.mのファイルは抹殺し、c++のコードを新規作成して追加する。

c++ファイルの中身はとりあえずwxWidgets付属のsample/minimalからコピペ。
このサンプルだけXcodeのプロジェクトが付属しているためいろいろ参考になる。
それにしても全てのサンプルにプロジェクトファイルが付いていたWindowsVisual Studioとの扱いの差。

プロジェクトの設定でいじるところは以下。
かなりしんどいけど、プロジェクトごとに一度設定してしまえばよいので。
GUIプログラムなんてそうそう書き捨てるものでもないし。 そうでもないかな。

  • アーキテクチャは32-bit Universal
  • 有効なアーキテクチャi386
  • sampleフォルダ直下にあるsample.xpmを追加 これはコピーで。
    • nclude するパスを../sample.xpmから./sample.xpmに変えること
  • ユーザヘッダ検索パスをwx-config --cxxflagsに基づいて変更する。

~/dev/wxMac-2.8.12/macbuild2/lib/wx/include/mac-unicode-release-static-2.8
~/dev/wxMac-2.8.12/include
~/$(PROJECT_DIR)/src

最後の環境変数は xcodeprojフォルダのあるディレクトリ。Visual Studioだと$(SolutionDir)に対応する。
この下にsrcというフォルダをつくってそこに実装ファイルを放りこむやり方が個人的に好み。

  • ライブラリ検索パスを wx-config --libsに基づいて変更する。

~/dev/wxMac-2.8.12/macbuild2/lib

_FILE_OFFSET_BITS=64 _LARGE_FILES __WXMAC__

  • プレフィックスヘッダをプリコンパイルする を オフに
  • プレフィックスヘッダを空にする
  • リンカの設定で 「他のリンカフラグ」として

-lexpat -lwxregexu-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -lwxpng-2.8 -lz -lpthread -liconv

リンクには
まずwx関係のライブラリをすべて追加 これは参照で。
追加するフレームワーク
Carbon OpenGL IOKit QuickTime

ここまでやれば なんとか。



ところでmacスクリーンショットって影まで含むのか

茗荷谷ラリールにてヴァルター・ファンハウヴェリサイタル

ヴァルター・ファンハウヴェさんリサイタル
with 田中せい子さん ダニエレ・ブラジェッティさん

もうだいぶ前になるけれど
2月7日 月曜日


仕事を無理やり抜け出し いざ茗荷谷
余裕をもったのにまさかの東海道線の運転見合わせ
よくあることらしい

急いで別の路線で10分遅刻くらい 
駅でざっと場所を尋ね 暗い教育の森公園をかけぬけて 抜けたところにある建物にすべりこむ
ちょうど一曲目ボワモルティエが終わったところでTRETのいつもの仲間と合流した
僕の席を取ってくれていた友人は 吉澤実さんが空いている席を探してきょろきょろしているのを見て気が気ではなかったらしい

2曲目のテレマン無伴奏はファンハウヴェさんのソロ



http://www.avanti.gr.jp/concerto/110207tanaka.html
ラリール
http://www.lalyre.jp/
フォンテガーラ
http://www16.ocn.ne.jp/~fonte/index.html


まあ近江楽堂同様小さな部屋がぎっしり埋まる感じ 特にこれ以上宣伝する必要もないか
曲はボワモルティエやテレマンのほかは現代曲がメイン



松永通温 組曲 層
http://www.michiharu-matsunaga.com/list.html
フースヤンセンという クラシックピアニスト出身ジャズの人のリコーダーソロ曲
ユンイサン 




前回はこんな感じだったか

http://www.nihonoranda.jp/ja/events/item/705

ヴァルター・ファンハウヴェ リサイタル〜ソロ&トリオによる響きの競演

日程: 2009年09月12日
場所 : 東京:オペラシティ 近江楽堂
主催者 : ストゥディオ・フォンテガーラ

macでwxglade

Mac OS X 10.6.6
wxWidgesをやろうと思い立ち wxWidgets本体およびwxPythonとwxGladeをインストールする

wxWidgetsはソースを落としてきて

% arch_flags="-arch i386"
% mkdir macbuild
% cd macbuild
% ../configure  --with-opengl --enable-geometry --enable-graphics_ctx --enable-sound --with-sdl --enable-mediactrl --enable-std_string --enable-display --enable-monolithic --enable-unicode --enable-odbc CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags"

でよく (参照 Development: wxMac - WxWiki)
また wxPythonはバイナリパッケージがある


問題はwxGladeで 単にソースを落としてきて実行しても まず

%python wxglade

ImportError: /usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6/site-packages/wx-2.8-mac-unicode/wx/_core_.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode)

と怒られ さればとて

% export VERSIONER_PYTHON_PREFER_32_BIT=yes

とやっても

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

が出て悲しくなるだけだ

解決は
/usr/lib/python2.6/site-package/sitecustomize.py
というファイルをつくって

import sys
sys.setdefaultencoding('utf-8')

と画像のように書くとうまくいく

スタートアップファイルにこれを書いてもだめで 実際dir(sys)してもsetdefaultencodingなんて出てこない
[Python] UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。 - SumiTomohikoの日記
によると 

これは、pythonは起動が終了したら、sysモジュールからsetdefaultencoding関数を削除するためです。

ここで、pythonの起動時の処理を、少し詳しく説明します。pythonは起動時に、モジュールの検索パスを設定し、siteモジュールを読み込みます。Ubuntuなら、/usr/lib/python2.4/site.pyになります。sitecustomizeモジュールも、このsite.pyから読み込まれています。

以下興味深い説明が続く


これでwxGladeによるGUIアプリ作成にかかれる
windowslinuxでは見慣れたwxGladeの画面がmacっぽいルックアンドフィールになっていて面白い
たまに一部反応しなくなったりバグっぽい挙動もある

moinmoinインストールメモ

pythonで書かれたひとりwiki
changelogだと画像が貼れないので 作業メモとして考えた

環境

Mac OS X 10.6.6
moin-1.9.3

apache2の設定

インストールは最初からされている
「システム環境設定」「共有」「web共有」 をクリックすれば開始する
DocumentRootは /var/wwwとかではなく /Library/WebServer/Documents/
で localhostにアクセスするとindex.html.enが開かれて

It Works!

と表示される

また user名をgymnoとすると

http://localhost/~gymno/

にアクセスすると ユーザごとのページが見られる 
先ほどはシンプル極まりなかったが こちらはcss的に凝ったなかなかきれいなページである
こちらのDocumentRootは /Users/gymno/Sites

cgiの設定は

http://localhost/cgi-bin/

へのアクセスが /Library/WebServer/CGI-Executables
に対応することが /etc/apache2/httpd.confの345行目くらいに書いてある

ユーザごとのcgiの設定は
/etc/apache2/extra/httpd-userdir.conf

<Directory /Users/*/Sites/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>

と書けばよい

moinmoinの設定

公式インストール方法
http://moinmo.in/HowTo/MacOSXwithApacheServer
公式のだといろいろ混ざってよくわからないし /etc/apache2以下を個別にいじるのがいやなので
以下のページに基本的には従った
http://robotics.naist.jp/~tsuyo-s/cgi-bin/moinwiki/moin.cgi/MoinMoin_Tips

srcディレクトリにて 

python setup.py install --prefix='~/local' --install-data='~/moinwiki'

これにより  ~/local/lib/python2.6/site-packages/ に moinmoin周りのpythonモジュールがインストールされ ~/moinwiki以下にshareというフォルダができる
設定ファイルの設置

$ cd ~/moinwiki
$ cp -r share/moin/data .
$ cp -r share/moin/underlay .
$ cp share/moin/config/wikiconfig.py .

webデータ(?)の設置

$ cd ~/Sites
$ mkdir moin_static
$ cd moin_static
$ cp -r ~/src/moin-1.9.3/MoinMoin/web/static/htdocs/* .

cgiファイルの設置

$ cd cgi-bin
$ mkdir moin
$ cd moin
$ cp ~/moinwiki/share/moin/server/moin.cgi .
$ chmod 755 moin.cgi

moin.cgiの編集

sys.path.insert(0, '/Users/gymno/local/lib/python2.6/site-packages')
sys.path.insert(0, '/Users/gymno/moinwiki')

これはpythonモジュールのパス追加

wikiconfig.pyの編集

url_prefix_static = '/~gymno/moin_static'

これはwebデータの設置場所がURL的にどのようにアクセスできるかを表す  と思う

こうした上で localhost/~gymno/moin/moin.cgiにアクセスすると 

data_dir "does not exist, or has incorrect ownership or permissions."

というエラーがでるので 先のサイトの説明をきちんと読んで

chmod -R a+rwX ~/moinwiki

というパーミッションの設定をする必要があることに思い至る ここで相当時間を食ってしまった


あとはテーマを変えるとかいろいろと

以上

リコーダーアンサンブルTRET第一回コンサート 告知

やります
https://sites.google.com/site/tretrecorder/

2011年1月23日日曜日 
14時開場 14時半開演。
雑司ヶ谷音楽堂(TEL 03-5960-4515)にて

入場無料。
気軽にお立ち寄りください。

もちろん ヴァイルのユーカリもやります

昔やったときの記録
http://d.hatena.ne.jp/gymno/20051112
あのときとはアレンジをわりと変えて 多少タンゴっぽくはなったと思います

お誘い合わせの上 ぜひお越し下さい

2010年10月02日のツイート