拉动 [zt]

拉动
View more presentations from Wang Jian.

文档规范很有必要

ShopEx平台部统一使用txt2tags作为文档规范。

一 Txt2tags的使用
txt2tags是使用python开发的GPL文本格式转化工具。
当你书写符合txt2tags语法规则,你可以方便的把书写文档转化为其他可是。
docbook也是一种好的选择,但语法过于复杂,不利于推广。
txt2tags可以再一定范围内符合中间的文本格式。

二 为什么用txt2tags
1) 简单的语法
2) 可标记文本格式
3) 可轻松转化为其他格式,比如可以轻松转化为html,xhtml,sgml,latex,lout,还有wiki!
4) 开源,可以对代码做一定的修改,可以修改为更符合你自己的更新的设置和功能。

三 语法参考

http://txt2tags.sourceforge.net/zh/manpage-zh.html

四 python准备

请大家先安装python
下载地址: http://www.python.org
推荐版本: 2.6.x
安装后请把python的目录加到PATH里。

五 下载
地址: http://live.shopex.cn/download/shopex_t2t.zip
此源码由dev@shopex维护。
修改了几个小地方:
a) a标签修改为target blank新窗打开。
b) title里的content内容添加shopex copyright。

六 安装
解压即安装,够绿色,可以安装到你任意的目录,安装的目录请放置到PATH下。

七 使用
当以上1和2的PATH生效后,就可以使用了。
我使用偏向于命令行。

command

txt2tags.py test.t2t

八 帮助
为了让大家方便的使用txt2tags,为大家准备了标准的模版,带css和宏。
大家直接运行就可以生成带CSS样式的t2t了。
例子和模版如下:
http://live.shopex.cn/download/shopex_ex_t2t.zip

nginx,mod_wsgi,webpy部署安装备忘

最近在搞一个web.py的东东,一直用的是fcgi+webpy,前端用nginx分发,破机器一台,报速度慢,于是尝试用

一下牛牛推荐的nginx+mod_wsgi来搞一下。该死的版本问题折腾了我一天,现记录下来做个备忘。

1.python 2.6.2

注意,源码安装时在make后要将.so.*的都copy出来/usr/lib/(64位机器要copy到/usr/lib64下)

2.mod_wsgi

http://bitbucket.org/lifeeth/mod_wsgi/, tip就行,下载解压即可

3.nginx:版本0.8.30

./configure –add-module=/path/to/mod_wsgi/

一路下来应该就没什么问题了,如果不走第一步copy  .so 的话,可能会员Pyo之类的问题

装完再进入mod_wsgi,setup.py下。

这是conf:

error_log  logs/error.log info;
pid        logs/nginx.pid;
events {
use epoll;  #linux2.6+
worker_connections  1024; # 每个工作进程允许最大的同时连接数
}
env HOME;
#可以将你的project加入python的sys.path
env PYTHONPATH=/opt/rpc_python;
#解决python执行egg包的权限问题
env PYTHON_EGG_CACHE=/tmp;
http {
include       mime.types;
default_type  application/octet-stream;
log_format  main  ’$remote_addr – $remote_port – $remote_user [$time_local] $request ‘
‘”$status” $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
access_log  logs/access.log  main;
sendfile        on;
#tcp_nopush     on;
#keepalive_timeout  0;
keepalive_timeout  65;
gzip  off;
wsgi_python_optimize 2;
wsgi_python_executable /usr/local/bin/python;
#wsgi_python_home /opt/rpc_python/;
server {
listen       80;
server_name  localhost;
root /opt/rpc_python;
include wsgi_vars;
#        location / {
#            #client_body_buffer_size 50;
#            #你的 module path 和  WSGI application 的名称,默认是application, 我这里用的是mod_wsgi自带的examples。
#            wsgi_pass /opt/rpc_python/index.py;
#
#            wsgi_pass_authorization on;
#            wsgi_script_reloading on;
#            wsgi_use_main_interpreter on;
#        }
location / {
wsgi_pass /opt/rpc_python/hello.py;
wsgi_pass_authorization on;
wsgi_script_reloading on;
wsgi_use_main_interpreter on;
}
#        location /wsgi {
#            #client_body_buffer_size 50;
#            wsgi_var TEST test;
#            wsgi_var FOO bar;
#            wsgi_var EMPTY “”;
#            # override existing HTTP_ variables
#            wsgi_var HTTP_USER_AGENT “nginx”;
#            wsgi_var HTTP_COOKIE  $http_cookie;
#
#            wsgi_pass /usr/local/src/mod_wsgi/examples/nginx-2.py  main;
#
#            wsgi_pass_authorization on;
#            wsgi_script_reloading off;
#            wsgi_use_main_interpreter on;
#        }
}
}
不过这里在webpy的时候遇到路径问题,上面的env似乎没有解决问题。
目前的解决方法是在index中用sys.append一下当前目录。
下面给一个上面配置中的hello.py的demo:
import web
web.config.debug = False
class hello:
def GET(self):
name = web.input().get(‘name’)
if not name: name = ‘world’
return ‘Hello’,name
urls = (‘/’, ‘hello’)
app = web.application(urls, globals(), autoreload=False)
application = app.wsgifunc()
ok,打完收功。至于性能问题,那台破机器也没能折腾出花来。
注意,以上的版本都是有讲究的!Good Luck!

Linux 释放内存方法

先看看内存使用状况

[root@node1 ~]# free -m
total used free shared buffers cached
Mem: 8004 6557 1446 0 163 5630
-/+ buffers/cache: 763 7240
Swap: 1983 0 1983

把内存里的数据暂时写到硬盘里

[root@node1 ~]# sync

修改 /proc/sys/vm/drop_caches文件

[root@node1 ~]# echo 3 > /proc/sys/vm/drop_caches
[root@node1 ~]# cat /proc/sys/vm/drop_caches

再看内存

[root@node1 ~]# free -m
total used free shared buffers cached
Mem: 8004 631 7372 0 0 60
-/+ buffers/cache: 570 7433
Swap: 1983 0 1983

兄弟

从今天到世界末日

我们永远会被记得

我们幸运的少数

我们相系相依的弟兄

谁今日与我共同浴血

他就是我们的兄弟