Posts for: #Python

ORM level cache 的選擇

在寫 Django 的應用程式常常會自己硬作一堆 cache 或是 timeout 的機制,有時候,可以看看別人怎麼作

這兩的專案的 code 的等級都不錯,可以由程式學到很多觀念

Johny-cache

http://bitbucket.org/jmoiron/johnny-cache

http://packages.python.org/johnny-cache/

Django Cache Machine

http://github.com/jbalogh/django-cache-machine

http://jbalogh.me/projects/cache-machine/

VPS 比較結果

PhotonVPS

效能不錯,網路延遲短,不過,畢竟同樣 Xen 512 的 plan 打折後還要 16 元 USD


NordictVPS


CPU 效能最好是 i7 ,不過主機是在德國,網路延遲多了一點,要不然還不錯,硬碟效能一般,應該是 RAID 1 而已,算便宜 Xen 512 一個月 8美元左右

ThrustVPS

Xen 512 的只有一個 CPU vcore 所以算是幫別人付錢,給高檔的人去用,需要 CPU 的應用,就不用考慮了,如果不是很需要CPU,算是不錯便宜的 VPS,有美西的機器,網路延遲會比較短, 硬碟效能像是有 RAID 10,網路算不錯

RapidXen

Xen 128 的 plan 效能還好,網路延遲最短,但是限速,一般只有跑到 1M 以下,硬碟慢,價格最貴,所以不用考慮了,要買他的 512 plan 比 Linode 還貴,就直接用 Linode 就好了


2HOST



這就是我一開始用的,結果,繞了一圈,還是他,也可能是因為,最近別家 VPS 很多促銷,所以很多人跳了,所以效能有越來越好,網路的延遲,也在中間,目前大概只有,美東的上班時間,網路的延遲變大,比較有問題,其他,CPU 效能,硬碟 IO 讀寫,網路延遲,都不錯,價格 8 美元左右,還是最超值的選擇



如果,要看細部的數據,請自己往前翻

Xor encrypy decrypt in Python

列了一堆,相關的連結,有興趣的可以看

http://stackoverflow.com/questions/2029426/what-is-xor-encryption

http://discussion.forum.nokia.com/forum/showthread.php?91267-Encryption-in-python

http://www.0xcb0.com/?p=331

http://www.downv.com/Linux/download-cxor-10056082.htm

http://www.dlitz.net/software/pycrypto/

http://www.evanfosmark.com/2008/06/xor-encryption-with-python/

http://www.daniweb.com/code/snippet216632.html


http://forum.intern0t.net/perl-python/2144-python-simple-text-encryption-program-new.html

Redis Speed

http://www.digitaldragoon.com/blog/testing-speed-redis-py/

have pget and pset inside, I change to this


import cPickle as pickle
import zlib
import new

####################################
# gzip header
gzip_header = zlib.compress(’’)[:2]
####################################
# CUSTOM COMMANDS for Redis
####################################

def _pset(self, name, object, compress=False):
""" pickle set for redis client, with compress flag
“”"
pobj = pickle.dumps(object, pickle.HIGHEST_PROTOCOL)
if compress:
pobj = zlib.compress(pobj)

self.set(name, pobj)

def _pget(self, name):
""" pickle get for redis client, automatic to check compress flag
“”"
pobj = self.get(name)
if pobj is None: # No value for this key, let’s go home :-(
return None
else:
if pobj[:2] == gzip_header:
# it compressed data
pobj = zlib.decompress(pobj)

load_object= pickle.loads(pobj)
return load_object

redis.Redis.pset = new.instancemethod(_pset, None, redis.Redis)
redis.Redis.pget = new.instancemethod(_pget, None, redis.Redis)

Google appengine 整理

目前,用來開發 google app 上的 Django 小整理

必備套件

Google App Engine Python SDK

http://code.google.com/appengine/downloads.html

Django 開發方式


Google 官方文件
http://code.google.com/appengine/articles/appengine_helper_for_django.html

Google App Engine Helper for Django

http://code.google.com/p/google-app-engine-django/

非官方,可是好用
djangoappengine