东日制作室 (sunistudio.com) » NC-SHOW (nicrosoft.net) » 钚铑铬 (ncblog.net) 注册 | 登陆 | 归档
   MacPorts真爽    @ 2010-07-27, 3:26

找不到psycopg的mac版发行包,编译源码又总是出错(依赖的包太多了),后来找到了MacPorts。

Ports,BSD上的Ports,是gentoo的portage/emerge的老祖宗,Mac上也有Ports,呵呵。安装了Ports之后,只需要:
sudo port install py26-psycopg2
就搞定了,他会自动下载所有依赖的包的源码,并编译安装(包括PostgreSQL 8.4.4,Python 2.6.5以及一堆依赖库)。

在习惯了gentoo的emerge之后,对于要自己去下载软件包已经有点不习惯了(包括在Windows上),想要什么,直接emerge,源码就自动来了,并且编译安装好。现在有了MacPorts,在Mac上也完全能这样舒服了,真爽。



分类:我用软件, 钟爱Python | 没人评论 | 211 次阅读
   这两天很开心    @ 2010-07-24, 23:05

果真云开日出了,这两天过得很开心。

最近可乐越来越喜欢并且会玩积木了,去年10月回上海时,看他在家里无聊,带他去超市里买了一套类似乐高的那种塑料的山寨版的积木回来。不过,那时候他并不怎么懂得玩,兴趣也不是很大。后来带回珠海来,也只是随便扔着基本没怎么玩过。前阵子开始,似乎慢慢有了兴趣,会自己用积木搭一些形象出来,然后告诉我们这是什么,看着还挺像那麽一回事。他有兴趣,又能拓展想象力,我觉得很好。另外,也让他有机会进行一些思考,比如那天,他把积木搭成一个“7”字型,摆在床上无法直立起来。问我放在地上是不是就能直立起来,我想当然的回答说,不行的。他指着顶上弯曲出来的那部分问,“是因为这个吗?”,我说是的。他说“我试一下”,于是他把积木摆到地上,还真就成功立住了,于是他很得意。 :grin: 我比较高兴他会说“我试一下”,而不是直接相信我说的“不行的”。

于是,周二,在淘宝上给他买了一套正版的乐高大桶装,不过,周五晚上才拿出来,说给他的礼物。他很高兴和兴奋,周五晚上,我也就完全沉浸在陪儿子玩乐高的天伦之乐中了,这种感觉的美妙,是无法用语言表达的。与其说,我买玩具,抽时间陪他玩,不如说,是用这些,换取他带给我的快乐。

今天上午起床后,他继续拉着我陪他玩积木,玩了一上午。中午去公司工作,为解决python从PostgreSQL读取大量数据(不能一次性取)的问题,找到了psycopg模块(支持server side cursor,之前用的pygresql不支持),同时psycopg在windows有amd64的支持,也顺便解决了pygresql在windows平台不支持64位的麻烦。

傍晚,一家三口又去了海滨公园(可乐说,一定要爸爸妈妈陪他去玩),也弥补了前面几次来海滨公园,可乐都没有玩到游乐场的遗憾。

一直玩到游乐场关门,再回公司,写完了一个模块,然后回家。心情很舒坦。



分类:可乐成长日记, 点滴随笔, 钟爱Python | 没人评论 | 190 次阅读
   Python处女作基本完成    @ 2010-05-25, 2:23

4月24日开始用Eclipse来真正的写第一个Python程序——xxsp的跨平台核心,整整一个月后的今天,基本完成了,1700余行代码(包括注释、空行)。

由于Python自带的标准库已经很强大了,这个程序完全没有使用其他第三方的模块。更重要的是,它的跨平台特性,使它特别的符合项目的需求,目前在Windows和Gentoo Linux上都已经顺利跑起来了。另外,应该说,用Python可以比较容易的把代码写得很优雅。

前两天已经提及了,这次由于在web服务端也采用了Python来写(web.py框架),使得客户端与web服务端交换数据的开发工作量大大减小。正合了CPyUG的倡议——人生苦短,我用Python。



分类:X, 工作, 钟爱Python | 2 个评论 | 345 次阅读
   Python客户端POST复杂数据结构到web服务端    @ 2010-05-21, 18:02

昨晚要解决python写的客户端向web服务端提交一个较复杂的数据结构(多层的词典),原本打算在客户端把数据结构生成XML然后POST给web服务端,然后由服务端的php脚本解析XML,不过想想转为XML,再解析XML的过程,就很繁琐,头疼。后来想未必要用XML(不需要通用,却平白增加了网络传输量),可以自己定义一个格式来传送,不过,始终因为这个数据结构比较复杂,光来回转换这个过程就觉得麻烦,更不用说传送过程中出错,服务端如何校验数据正确性等细节问题了。

后来灵光一闪,想到为什么服务端不也用Python来写呢?因为Python的pickle直接可以把整个词典对象(不论多复杂)序列化,然后POST给服务端的Python脚本来反序列化,直接就可以在服务端得到这个词典对象了。于是在web服务器(nginx)上装了flup,spawn-fcgi,以及轻巧的web.py框架(尝试了一下django,感觉太庞大、复杂了,不适合这个简单应用),然后只要几行代码就搞定了(为了减小网络传输,用zlib把序列化了的对象再压缩一下):

客户端打包:

data = zlib.compress(pickle.dumps(dict))
params = urllib.urlencode({'s':data})
...  # POST 数据

服务端解包:

class xxapp:
	def POST(self):
		data = urlparse.parse_qs(web.data())
		dict = pickle.loads(zlib.decompress(data['s'][0]))
                ...



分类:X, 工作, 钟爱Python | 2 个评论 | 473 次阅读
  NC-BLOG v4 based on WordPress     版权所有© 2004-2010, 东日制作室     内容版权© Nicrosoft