Monthly Archives: 07月 2010

今天在Barcamp宣传DropBox的一则皮皮踢

今天参加了Barcamp在广州试行的活动,并贡献了一个topic:《DropBox简介》,作为一款已经被墙的产品来说,现在才介绍好像晚了一点 :)。 Barcamp是一个很好玩的活动,看看今天的topic大家就知道:《性爱与人生》、资深品酒师的品酒经验、神秘学与生活、Perl6使用体验、R语言介绍、能量工作分享、DropBox简介等。。下次有兴趣的同学,不管你在哪个行业,都值得过来玩一玩。。 更多信息,见推上的标签:http://twitter.com/#search?q=%23barcampGZ 辛苦今天的主办方,让咱们一群技术宅长了见识!会后,我们几个要好的朋友一起饭醉了一番,借用星星的话:@mikespook: #barcampGZ 之后,跟 @jeff_jie、@cncamp、老潘(推多少?忘了……)众人在有福气腐败……这家貌似换厨师了,味道好了不少。饭局中,大家聊了很多非技术话题,并一致认为,技术宅是没有出路的…… Brief intro of Dropbox View more presentations from jeffkit.

Posted in 技术, 软件 | Tagged , , | Leave a comment

python调用shell脚本的两种方法

python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。 现假定有一个shell脚本test.sh: #!/bin/bash echo "hello world!" exit 3 os.system(cmd): 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0×100,换算为10进制得到256。 如果我们需要获得os.system的正确返回值,那使用位移运算可以还原返回值: >>>  n = os.system(test.sh) >>> n >> 8 >>> 3 os.popen(cmd): 这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)。使用os.popen调用test.sh的情况: python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。 明显地,像调用”ls”这样的shell命令,应该使用popen的方法来获得内容。

Posted in 技术 | Tagged , , | Leave a comment

Pinax的意义

某天在研究pypy的时候无意中看到了pinax,了解之下,觉得pinax真的很聪明,跟我正打算做的事情很像!她是一个基于Django的基础应用–我这里讲基础应用的意思是她既不是开发框架,又不是一开箱即用的成熟应用(当然你不介意那简陋的界面的话,它是开箱即用的),而是介于两者之间的东西。她集成了很多第三方的Django app,这使得她自己内置了很多SNS网站、公司内部网站所需要的基础功能,你要做一个SNS网站,拿来改改界面就好,你要做公司内网应用,拿来改改界面也行了。 初次接触时,还没有安装来研究,就屁颠屁颠地跟老潘说这是个好东西(我对云和企业内部办公系统有些想法,经常和老潘交流),老潘一看说颇有Plone的影子了。后来安装下来看了看,离plone所谓的应用服务器那个级别还差远了,pinax可以看作是一系列的Project template(项目模板)。接下来给出几种模板的应用运行时的截图,大家看看就明白了。至于更深入的探究不是今天要说的,有兴趣的同学直接试一试更有意义。 图一:basic_project,最简单的应用模板。   图二:内部应用的模板,提供了几种内部应用用到的功能,如任务、wiki等。   图三:Pinax提供的最复杂的一个应用模板,SNS应用,不少SNS网站是基于这个来开发的。 Pinax给开发者带来什么?一、没有技术上的转变,该用Django还是使用Django那套东西。二、提供了一套基础网页模板和Tab布局。这个虽然简单,但十分实用,要换套皮肤,把现成的扔给美工MM略作修改即可,无需从0开始。三、Pinax提供的最复杂的应用模板是一个SNS应用,实际上是一个完全可以马上投入使用的产品。Pinax说,我们已经为您提供所有需要的,你要做的只是让你的网站看起来与众不同。 题外话:一、Django变得越来越强大的同时也变得复杂,要全部掌握Django的内容门槛不低,但这不妨碍初学者快速上手。二、有人说,django变得越来越像zope,但实际上django的门槛恐怕没有zope的20%吧,虽然django渐渐肥胖,但新增的很多东西都是可选的,并且是在web开发过程中必需去解决的问题。大家看到新出一个web framework很清爽简单,不过走着瞧吧,到最后,他不是整合其他第三方的基础模块就是自己继续砌砖,直到又有ORM、Template、Form、中间件、UrlRoute、I18N,I10N等等等等,大家殊途同归,区别不过是OEM或Fullstack而已。三、Django社区很活跃,看看第三方的app就知道,以至于有人可以全使用第三方的应用(没有自己的Model)搭起一个博客,以及现在这个pinax。 四、web应用开发领域,可重用的东西太多,于是有了框架,而技术之上的业务层面,可重用的东西也有很多,例如用户、权限、流程引擎等,Django首先把这业务层面可重用的东西做了一套参考标准并放到开发框架里面来了,大善!太实用了!这也是我几年前希望为公司内部的开发框架做的事(后来遇上Django后,没太多激情在java的webframework上折腾这些了)。 

Posted in 技术 | Tagged , , | 2 Comments