さくらスタンダードに MoinMoin 1.8.7 の wikifarm をインストール

さくらスタンダードに MoinMoin 1.8.7 を wikifarm 設定でインストールします。まずは自分専用の Wiki を作ることを想定 *1 。とりあえず動くところまで。

今回の想定。

この例を作る際の作業では virtual-python.py でホームディレクトリに移植した実行環境を使用。

詳しくは上記サイトを参考にしてもらうとして、今回の環境は

% /usr/local/bin/python virtual-python.py --prefix=$HOME/local

を実行してあり、PATH と PYTHONPATH を通してます。以下 .cshrc 参考。

setenv PATH        $HOME/local/bin:$PATH
setenv PYTHONPATH  $HOME/local/lib/python
setenv PYTHONPATH  ${PYTHONPATH}:$HOME/local/lib/python/site-packages

$HOME/local/lib/python は $HOME/local/lib/python2.6 へのシンボリックリンクになってます。

最終的なディレクトリ構成はこんなかんじ。

/home/foobar/
    .moin/
        foobar/
            data/ <--------- データディレクトリ
        wikifarm/ <--------- 設定ファイル置き場
    local/
        src/ <-------------- 作業ディレクトリ
        share/
            moin/ <--------- 設置に必要なファイルがインストールされる
    www/
        example.net/ <------ example.netのDocumentRoot
            moin/
                moin.cgi <-- MoinMoinの実行ファイル
                static/ <--- 静的ファイル(css, js etc.)

*1:もちろん、他人に公開しなくていいならローカルで使うべきだし、設置の手間も少ない。Windows しかなくても [http://www.apachefriends.org/jp/xampp-windows.html:title=XAMPP] + [http://code.google.com/p/modwsgi/:title=mod_wsgi] で構成できて、さくらに設置するより簡単です。

続きを読む

依存プロパティ(依存関係プロパティ)でバインディング

d:id:cu39:20090719:updatecontrols を書いた時点では、MVVM パターンもしくは MVP パターン(らしき)構成のとき INotifyPropertyChanged を利用したバインディングと比べて Update Controls .NET の手軽さを感じたんですが、依存プロパティもしくは依存関係プロパティ(MSDN の訳語は後者)を使ったバインディングのほうはよくわかってなかったので実装してみました。

パフォーマンスの最適化 : データ バインディング」(MSDN)を読むと、依存プロパティを利用したデータバインディングはリフレクションを利用する必要がなく、INotifyPropertyChanged を利用するよりも低負荷だと推奨されてます。実装の手間がそれほどでなければこれで済ませたいんですが、そのあたりを検討したいなと。

挙動は前回と同じものを作ります。まず「未確認飛行 C」の例を参考に基本的なクラスから作っていきます。

続きを読む

UpdateControls.NET がすごい件

ここんとこWPFにプチハマり中(いい意味で)なんですが、ふとしたきっかけで*1 INotifyPropertyChanged Is Obsolete というセンセーショナルなタイトルの記事に釣られ、そこで Update Controls .NET というオープンソースライブラリのことを知りました。

WPF では Model-View-ViewModel パターンが常套手段とされているわけですが、 Model を View にバインディングするためには ViewModel で INotifyPropertyChanged インターフェースとか DependencyObject を継承して実装する*2という、なかなか面倒な手順が必要。しかし UpdateControls を使うと、その手間をかなり軽減できます。

ライセンスは LGPL 、現時点の最新版は 2.0.4.3 (2009/06/28) 、2008/05/16に最初のLGPL版がリリースされたようですがその前は未詳。

理由はよくわからないけど*3、日本語で紹介されている例が(ぐぐった限り)見つからなかった*4ので、簡単に紹介したいと思います。Perry さんの記事には部分的なコードの紹介にとどまってるのと、公式サイトのイントロやデモ(ダウンロードページから落とせる)も最新版を使って動かすには調整が必要みたいなので、現時点でそのまま動く最低限のサンプルを。

*1:INotifyPropertyChanged を軸にいろいろぐぐってただけ。

*2:実例は「[http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx:title=WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン]」(MSDNマガジン Feb. 2009)や「[http://blogs.wankuma.com/kazuki/archive/2009/02/23/168586.aspx:title=Model View ViewModelパターンでハローワールド ]」(かずきのBlog)などを参照。

*3:他にもう有名な何かが存在するとか?

*4:[http://cs.gogo-asp.net/blogs/naoki/archive/2007/02/09/ASP.NET-AJAX-_6E30C930AD30E530E130F330C8304C30C030A630F330ED30FC30C930EF53FD80673059300230_.aspx:title=ASP.NET のコントロール] とか [http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/win.102/B25023-01/dcmethods.htm:title=Oracle のメソッド] とかは出る。

続きを読む