飞纯技术
  • 主页
  • 相册
  • 关于我
KEEP IN TOUCH

Posts by Filia.Tao

WeiBoPay

六15
2011
Leave a Comment Written by Filia.Tao

做了一个小服务,以一条微博的价格出售你的产品。

主页: http://weibopay.ftao.dotcloud.com/
测试产品:
用微博购买 “The Big Secret”

主要是为了演示ezEngage API 的使用,微博登录和发表微博都是调用ezEngage 的API实现的。

代码放在 https://github.com/ftao/weibopay/

Posted in python - Tagged Django, ezengage, 微博, 支付

由 dotcloud 引发的思考

六12
2011
Leave a Comment Written by Filia.Tao

最近玩了一下dotcloud (http://dotcloud.com) , 非常喜欢。
之前在公司的时候,有一位IT同学负责发布代码,有一阵非常苦恼。因为系统有很多模块,那几天每天都有很多次发布,每次都需要他SSH到服务器上去敲命令。 (后来这位同学就写了个Web界面的发布系统…)

发布和部署代码应该是一件简单,愉快的事情,不应该那么痛苦。。
前几年,开始玩GAE 的时候,GAE 的代码上传,发布方式让我第一次觉得可以发布代码可以这么简单。
做ezEngage 的时候,自己写fabric 的脚本来发布代码,也能做到一个命令搞定,但是写了很多额外的代码来到达这个目的。 另外mysql/nginx 等等还是手工配置的。
这次尝试用dotcloud, 非常简单,我将之前的火车票API的那个小项目拿过来尝试部署到dotcloud 上面,按照教程一步成功。 更好的是包括mysql 等等的常用的组件也可以一个命令部署。

我很喜欢dotcloud 的一个原因是这是个开发者给开发者创造的产品。
界面很简单,主要的功能通过一个(命令行)客户端 来操作API来实现。网站很简单,没有复杂的管理后台。

而我做的ezEngage有一个很大的问题,产品的主要的客户和我完全不是同类的人。
如果有下一次,我一定做一些给自己用,给开发者用的东西。

Posted in ideas - Tagged dotcloud, thoughts

关于Django 部署方式的选择

五31
2011
Leave a Comment Written by Filia.Tao

最近写了一些Django 项目,尝试了一些部署方式。写一下各种方式的优点和缺点。 

Apache + mod_wsgi
这个方式是Django 推荐的部署方式,优点是比较简单。但是有两个比较大的缺点
1. 和virtualenv 的结合比较麻烦
2. mod_wsgi 会关闭标准输出。如果你的代码里面不小心写了一个 print , 就会出现500错误了。和开发环境的区别比较大。

Apache + mod_fcgid + mod_rewrite
这个方式是对服务器环境要求最低的方式,很多虚拟主机都支持这个方式。
另外有一个优点 fcgi 进程可以由apache 启动,不需要额外的进程管理工具。

Nginx + fcgi
这个方式的好处是Nginx 比较轻量级,适合内存比较小的 VPS。
确定是Django 的FCGI 进程需要自己管理。  

我在Github 上建立了一个工程,提供了这几种部署方式的模版。

https://github.com/ftao/django-deploy-template

当然我们还有其他的选择,比如nginx + mod_wsgi 之类的。
我没有尝试,主要是我使用的Linux 发行版里面没有对应的包,不想自己编译。

Posted in python

使用 reStructuredText 编写用户手册

五28
2011
1 Comment Written by Filia.Tao

前几天,将ezEngage 的帮助文档重新写了一遍。这么做的原因是原来的文档直接用HTML写的,并且和主站放在一起。
发布不方便,只是修改一点东西也要和主站一起发布。并且原始文件就是HTML,写起来很麻烦。

我用reStructuredText + Sphinx + github pages 重新编写,部署和发布了一份帮助文档。

reStructuredText 是一种轻量级的标记语言,特点是原始文件可读性很好。
Python 以及很多Python著名的开源项目(比如Django) 都使用该格式的来编写文档和手册。 
Sphinx 的一个将reStructuredText 文件转换成各种格式(比如HTML,LeTex,PDF 等)的工具。 
GitHub Pages 是一个GitHub 提供的托管静态页面的服务,只要内容通过git 推送到github 上面,就很可以方便发布内容了。 

步骤如下:
1. 在github 上面建立一个仓库,开通github pages 功能
2. 将master 和 gh-pages 两个分支checkout 到本地的两个目录 (比如说 example-master , example-gh-pages)
3. 在master branch 里面正常写 reStructuredText ,
4. 符号链接 example-master/_build/html  到 example-gh-pages
5. make html , 生成html
6. push gh-pages 分支到 github , 发布完成。

这个方案的好处:
1. 源文件可读性好
2. 有版本管理
3. github pages 发布很方便
4. 服务器都省了….

链接:
1. 这份文档对应的仓库: https://github.com/ezengage/ezengage-site/
2. GitHub Pages http://pages.github.com/
3. Sphinx http://sphinx.pocoo.org

ps: reStructuredText 和 RESTful 这两个拼写上都和 rest 相近, Sphinx (文档生成工具, http://sphinx.pocoo.org) 以及 Sphinx (全文搜索引擎, http://sphinxsearch.com/) 都叫Sphinx 。搜索的时候很容易混淆。 

Posted in 编程开发 - Tagged github, python, reStructuredText

火车余票查询的RESTful API

四27
2011
Leave a Comment Written by Filia.Tao

前几天出去玩, 做了几次火车。用来几次 12306.cn 。 余票查询还是挺有用的。 作为API控,花一点时间写了个查询余票的Web API 。
用法: http://trans.labs.ftao.org/api/yupiao.json?date={date}&start={start_station}&arrive={arrive_station}
比如4.29日上海到南京的余票

curl "http://train.labs.ftao.org/api/yupiao.html?date=2011-04-29&start=%E4%B8%8A%E6%B5%B7&arrive=%E5%8D%97%E4%BA%AC"

存在的问题:很慢,数据不稳定(同一个查询会有短时间内会有不同的结果)。不过这都是 12306.cn 的问题。
简单的界面: http://train.labs.ftao.org/ui/
有空用JQuery Mobile 写一个适合移动设备的界面。 (这个才是我真正的需求)

代码: https://github.com/ftao/cn-train-tool

Posted in python, Web开发, 编程开发 - Tagged api, python, RESTful, 余票
« Older Entries Newer Entries »

授权方式

Creative Commons License
本站作品采用
知识共享署名-非商业性使用-相同方式共享 3.0 许可协议
进行许可。

最近评论

  • carlos 发表在《yacc,ast and graphviz》
  • xiang 发表在《关于我》
  • healthy green tea 发表在《debian 同步系统时间》
  • Filia.Tao 发表在《Kinper – A Kindle Helper Service》
  • pensz 发表在《厦门行简单记录》

My Tweets

RSS My KnowHowSpot

标签

指令 汇编 算法 计算机科学 2008 amazon android ast boto C++ C/C++ compiler Computer design-pattern DFA Django ezengage Firefox github google GSoc http imagedownload iterator javascript jquery kindle kinper lex life Linux locationbar Mix opensource proxy python s3 S5Creator shanghai slide STL vector vista web Web开发

分类

  • ideas (2)
  • job (2)
  • life (2)
  • notes (1)
  • opensource (38)
    • Firefox (17)
    • GSoc (7)
    • Linux (13)
  • project (3)
  • 生活 (3)
  • 编程开发 (67)
    • C/C++ (4)
    • GAE (1)
    • http (2)
    • javascript (24)
    • python (20)
    • Web开发 (12)
    • 端口映射工具的实现 (6)
  • 计算机科学 (23)
    • compiler (17)
      • lex (11)
    • 算法 (5)
  • 随便写写 (67)

文章归档

Blogroll

  • 11′s SKY
  • 86's world
  • Filia’s Summer Of Code
  • limodou的学习记录
  • Loki
  • MyAllBlue
  • perol’s blog
  • Realazy
  • 一个藏袍
  • 人猿星球
  • 冰古Blog
  • 刀枪Blue
  • 懶懶喵日記
  • 桑林志
  • 白菜
  • 车东[Blog^2]
  • 释翼的天空
  • 阿文的自留地

开源网站

  • beagle
  • linuxsir
  • sourceforge
  • 中国Linux 公社
  • 啄木鸟社区

我的项目

  • ezEngage
  • KnowHowSpot

EvoLve theme by Theme4Press  •  Powered by WordPress 飞纯技术