swigで pythonとc++連携
pythonやjavaが遅いのなら その部分だけ別の言語で書けばよいではないか という拡張の話
参考にしたページは以下
SWIG and Python
http://www.swig.org/Doc1.3/Python.html
distutils with boost.python - おびなたん☆
http://d.hatena.ne.jp/earth2001y/20070611/p1
C++とPythonのコラボレーション ― PythonMatrixJp
http://python.matrix.jp/tips/cpp_extension/
nesugi.net - swigの使い方のメモ書き
http://www.nesugi.net/hiki/?swig%A4%CE%BB%C8%A4%A4%CA%FD%A4%CE%A5%E1%A5%E2%BD%F1%A4%AD
手順は以下
続きを読む■
天と地の守り人文庫版
出ていたのか 5月28日
これで文庫でも完結
買おう
しかし 現時点で
Amazon ベストセラー商品ランキング: 本 - 105位 (本のベストセラーを見る)
1位 ─ 本 > 文学・評論 > SF・ホラー・ファンタジー
2位 ─ 本 > 文庫総合 > 一般文庫 > 新潮文庫
ってのもすごいな
Amazon.co.jp 売れ筋ランキング: SF・ホラー・ファンタジー の中で最も人気のある商品です
守り人シリーズ完全ガイド
なんてのも6/8に出たらしい
マザー牧場にてアルパカと蹴爪陸亀
マザー牧場といえばアルパカ
アルパカ - gymnoの自由談
もともとアルパカを見に行こうとは思っていたのだが 社員旅行でマザー牧場を訪れるという契機を得て勇んででかけた
のだが 一頭しかおらず しかも前髪がやや過多でアルパカならではの憂いにみちたまなざしが見えず がっかりしていた ところへ
蹴爪陸亀登場
サハラ砂漠原産で陸亀としては大きさ3位だったかな
草食で マザー牧場にも一匹しかいないらしい
なぜいるのだろう
めったに見られない出会い と思いきや 両者はさらなる接近を見せる
分かりづらいかもしれないけれど かめが一生懸命アルパカの柵に侵入しようとし しかし甲羅がつかえて入らないので 場所を変えて何度も挑戦している
あと少しで広めの柵から侵入成功か というところで飼育員に連れ戻されていた
そのあいだアルパカはずっと見守っていた
助けてあげればいいのに
しかし りくがめは存外な攻撃心を見せるので アルパカの身も実は危険だったのかもしれない
カメにいじめられるネコ、お尻の毛を引っこ抜かれて「ギャン!!」 | Pouch[ポーチ]
そこに足があるから・・・登るカメ : カラパイア
社員旅行は最下位とはいえオリエンテーション 観覧車 21mのバンジージャンプ ジンギスカン 海ほたる 内房の山奥 ベイブリッジから見えた立ち並ぶガントリークレーンの壮観など盛り沢山でした
追記
http://www.motherfarm.co.jp/news/alpaca.html
2頭いるのか
今日見たのは スリ のほうだね
しかしもう一頭はどうしたのだろうか
XcodeでwxWidgets 開始
Xcode 3.2.3にて。
なんか 有料開発者向けにはバージョン4が出ているらしいが、別にiPhoneアプリを作るわけでもないので今はいらない。
Xcodeのバージョン3.1と3.2でいろいろ仕様が変わったらしい。
コマンドラインで作るのもよいけれどappにパッケージバンドルするのがめんどい。
Xcodeで作ればそのあたりはやってくれる。
XCodeとはMac版Visual 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のプロジェクトが付属しているためいろいろ参考になる。
それにしても全てのサンプルにプロジェクトファイルが付いていたWindows のVisual 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
- プリプロセッサマクロを wx-config --cxxflagsに基づいて変更する
_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
茗荷谷ラリールにてヴァルター・ファンハウヴェリサイタル
ヴァルター・ファンハウヴェさんリサイタル
with 田中せい子さん ダニエレ・ブラジェッティさん
もうだいぶ前になるけれど
2月7日 月曜日
仕事を無理やり抜け出し いざ茗荷谷へ
余裕をもったのにまさかの東海道線の運転見合わせ
よくあることらしい
急いで別の路線で10分遅刻くらい
駅でざっと場所を尋ね 暗い教育の森公園をかけぬけて 抜けたところにある建物にすべりこむ
ちょうど一曲目ボワモルティエが終わったところでTRETのいつもの仲間と合流した
僕の席を取ってくれていた友人は 吉澤実さんが空いている席を探してきょろきょろしているのを見て気が気ではなかったらしい
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アプリ作成にかかれる
windowsやlinuxでは見慣れた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とすると
にアクセスすると ユーザごとのページが見られる
先ほどはシンプル極まりなかったが こちらはcss的に凝ったなかなかきれいなページである
こちらのDocumentRootは /Users/gymno/Sites
cgiの設定は
へのアクセスが /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
というパーミッションの設定をする必要があることに思い至る ここで相当時間を食ってしまった
あとはテーマを変えるとかいろいろと
以上