2011年1月20日木曜日

sshFSでremote diskをmount

ubuntuだと
sudo apt-get install sshfs
でおわり。
マウント
sshfs [アカウント@]<サーバ>:[ディレクトリ] <マウントポイント>
アンマウント
fusermount -u <マウントポイント>

これで、リモートのファイルをローカル環境でいぢれる。開発用サーバーの出番が減るなあ。

Life with ITさんありがとう!

追記:-o reconnect
ServerAliveInterval 60 @~/.ssh/config

monkey_patch function

django-cmsのmonkeypatch_reverseから忘れないうちにメモ。
pythonで、関数もオブジェクトだから既存のライブラリを書き換えてしまえ。

main.py
from funcs import func

def main():
    func.printStr(u'hello')

if __name__ == '__main__':
    main()
    import monkey #新しい関数でpatch
    main()
funcs/func.py  #元の関数
def printStr(string):
    print u'original', string
monkey_patch.py  #新しい関数
import funcs

def monkey_patch_func():

    def new_printStr(string):
        print u'monkey', string

    print funcs.func.printStr
    funcs.func.old_printStr = funcs.func.printStr   #元の関数を退避
    funcs.func.printStr = new_printStr   #新しい関数を接続
    print funcs.func.printStr

    monkeypatched = False    #新しい関数の接続は1回だけ
    if not monkeypatched:
        monkey_patch_func()
        monkeypatched = True

2011年1月19日水曜日

geanyのPPAからupgrade

geanyに新しい0.20が出ているということで。 PPAからいれるべぇ。

sudo add-apt-repository ppa:geany-dev/ppa
sudo apt-get update
sudo apt-get upgrade

2011年1月17日月曜日

django-cms, python2.4 work around

RC2になってからインストール時にerror
古いpythonしか使えないから、小細工を

cms/utils/urlutils.pyのis_media_requestを
def is_media_request(request):
    """
    Check if a request is a media request.
    """
    parsed_media_url = urlparse(settings.MEDIA_URL)
    #python 2.4 work around                                                    
    try:
        if request.path.startswith(parsed_media_url.path):
            if parsed_media_url.netloc:
                if request.get_host() == parsed_media_url.netloc:
                    return True
            else:
                return True
    except:
        if request.path.startswith(parsed_media_url[2]):
            return True
    #python 2.4 work around end                                                
    return False

追記:結局pythonを野良ビルド

2011年1月12日水曜日

共有SSLでDjango接続

proxyを使って
              https                                                http
client---------->SSL(proxy) Server--------->Server
                             |----> provider
と言うことらしい。
つまり、プロバイダ内のSSLサーバーがSSL接続を受けて、プロバイダ内のネットワークを経由して共有サーバーに普通にhttp接続する。こうすることにより、clientからプロバイダまでの接続が暗号化される。

coreserverだと
request.METAの中に'HTTP_VIA'と'HTTP_X_FORWARDED_FOR'がセットされている。
ちゅうことは、Djangoのミドルウエアで受けたらOKかな?

参考:
http://drupal.org/node/339552
http://wiki.ryusendo.net/index.cgi?page=PHP%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0#p17

追記:
HTTP_X_FORWARDED_FORがセットされたrequestがくるとurlを変更するミドルウエアでOK
のこるはlogin, admin

2011年1月5日水曜日

virtualenvのpackage管理

yolkが入っていること前提で

yolk -U | awk '{ print $1}' | xargs pip install -U

でどうでっしゃろう