openshift云计算平台diy模式安装Python2.7+Flask

主要翻译了链接1)的教程,加上一些个人研究,步骤如下:

1) 在openshift.redhat.com申请账号,安装git for windows,然后安装gem install rhc,这些比较容易。

2) 运行这个命令,就会生成一个py27的目录。 rhc-create-app -a py27 -t diy-0.1

3) 会看到如下信息,这个py27与你的目录符合,ehazlett是你自己定义的路径:
py27 published: http://py27-ehazlett.rhcloud.com/
git url: ssh://uuid1234567890@py27-ehazlett.rhcloud.com/~/git/py27.git/
将来你的程序就是 http://py27-[namepsace].rhcloud.com,这里的uuid1234567890要看你自己的显示结果,可以保存到某个文本中记录下来。也可以用rhc app show -a py27命令查看。

4) 运行 ssh uuid1234567890@py27-ehazlett.rhcloud.com,就会进入到远端服务器中,下面命令是在服务器端运行。

5) 拷贝,粘贴,运行
cd $OPENSHIFT_TMP_DIR
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar jxf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure –prefix=$OPENSHIFT_RUNTIME_DIR
make; make install
export PATH=$OPENSHIFT_RUNTIME_DIR/bin:$PATH

6) 这时候敲python,版本应该是2.7.3

7) 拷贝,粘贴,运行
cd $OPENSHIFT_TMP_DIR
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
cd $OPENSHIFT_TMP_DIR
wget http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz
tar zxf pip-1.1.tar.gz
cd pip-1.1
python setup.py install

8)基本上服务器端的就结束了,然后转回到本地,可以用exit退出远程登录

9)(在本地)diy目录下,建立一个application.py
├── README
├── diy
–│ └── index.html
–│ └── testrubyserver.rb
–│ └── application.py
–└── misc
删掉index.html还有testrubyserver.rb,用不到它们。
输入内容:

 

10) 在py27这个目录下,也就是diy的上一级目录,建立一个requirements.txt,输入
uWSGI==1.2.3
Flask==0.8
werkzeug

11) 在本地的py27目录下,有个隐藏目录 “.openshift”,编辑这个目录下的这些文件
编辑 .openshift/action_hooks/build 加入:
$OPENSHIFT_RUNTIME_DIR/bin/pip install –use-mirrors -r $OPENSHIFT_REPO_DIR/requirements.txt

编辑 .openshift/action_hooks/start 加入:
$OPENSHIFT_RUNTIME_DIR/bin/uwsgi -s $OPENSHIFT_INTERNAL_IP:$OPENSHIFT_INTERNAL_PORT –socket-protocol http –pp $OPENSHIFT_REPO_DIR/diy –module application -d $OPENSHIFT_LOG_DIR/app.log –pidfile $OPENSHIFT_TMP_DIR/uwsgi.pid

编辑 .openshift/action_hooks/stop 在exit 0上一行加入:
kill `cat $OPENSHIFT_TMP_DIR/uwsgi.pid`

12) 在py27目录下,运行这些更新命令
git add .
git commit
git push

13) 搞定,如果有问题,可以ssh 登录进去以后看这个目录 $OPENSHIFT_LOG_DIR ,下面有log文件

参考链接:
https://openshift.redhat.com/community/developers/python
https://openshift.redhat.com/community/blogs/enabling-python-27-on-a-paas-with-the-openshift-diy-app-type

https://bitbucket.org/ollix/openshift-uwsgi

appfog云计算平台Python+Flask搭建Nightly news播客代理

基本上标题已经说明了目的。貌似appfog没有google appengine的网络请求大小限制,就实验来看,可以完美支持100多M的视频获取没有任何问题。MSNBC的Nightly News通过feedburner发布podcast,需要vpn或者代理访问,在手机上用起来很麻烦,所以在appfog上做个代理,直接发布feed。

appfog.com有详细教程如何搭环境,基本上就是安装ruby1.9,gem install af,然后就可以用af这个命令行操作了。

以前用GAE,主要用它内置的webapp2框架,但是appfog对Flask支持更好,遇到的技术问题是把网址附加在后面不知道如何route url。查了SO得知可用regexconverter,这个问题就过去了。

代码如下:

 

Python产生时序图和美化diff结果

美化diff这个想法来自今天的code review,tfs的命令行支持导出diff格式的比较结果,但是可读性太差了,所以想用Python代码美化一下。

Python自己有一个difflib,这个功能算是内置支持,可以参考这里http://docs.python.org/library/difflib.html#difflib.HtmlDiff

如果想高级一点,可以用这个pygments.org,我是从SO上看到的 http://stackoverflow.com/questions/641055/diff-to-html-diff2html-program 这个pygments是一个代码美化器,但是支持diff格式,比如这里的例子 http://pygments.org/demo/5455/ 。如果喜欢ruby可以试试这个项目 https://github.com/rubychan/coderay

最近有个写文档的需要,画时序图类图是经常的。顺手查查,发现这个项目 https://github.com/aivarsk/scruffy 使用yUML语法生成类图和时序图,好玩。比如这个例子

或者这个例子

 

看了一下代码,支持win32应该没有问题。如果只想产生时序图,可以用这个 http://pypi.python.org/pypi/seqdiag