看到CPyUG里一个很牛的帖子里LZ有句话:
Python是在多特(www.doute.com)下载的
当时我就震惊了。手里的酱油撒了一地。
拽一个函数过来看看
set( iterable)
Return a set whose elements are taken from iterable. The elements must be immutable. To represent sets of sets, the inner sets should be frozenset objects. If iterable is not specified, returns a new empty set, set([]). New in version 2.4.
假如一个超级初学者来看这段文字,他是绝对不会知道set可以用来过滤iterable里的重复项的。。。。Python(不仅仅是Python)文档还有非常多的改进空间。
Update 2008-12-24 18:28:
性能测试:
测试数据:几万条email地址
程序1:
def foo(alist):
d = dict()
sd = dict()
for i in alist:
if id(i) not in d:
d[id(i)] = ''
else:
sd[i] = ''
return sd.keys()
import time
a=time.time()
open('out.txt', 'w').write(''.join(foo(open('noname.txt'))))
print time.time()-a
程序2:
import time
a=time.time()
open('out.txt', 'w').write(''.join(set(open('noname.txt'))))
print time.time()-a
测试结果:
1.py
0.0699999332428
2.py
0.0369999408722
猜也能猜到。。。Python过程实现的Hash判断重复和CPython内置的,肯定CPython的快多了。。。

Don't use Perl. It's counter revolutionary
不要用Perl,那是反革莫道不消魂命。Long live the struggle against bracist imperialism!
反“括号帝国主义”斗争永垂不朽!Strive for excellence in modules
为模块的优越性而奋斗!
解释下什么是“括号帝国主义”
{
{
{
{
}
}
}
}
这就是bracist。
Python里用的不是花括号,而是缩进。。。
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance
锟斤拷是什么?我也是最近才搞明白的。
http://www.baidu.com/baidu?word=%EF%BF%BD%EF%BF%BD
http://www.google.com/search?hl=en&q=%E9%94%9F%E6%96%A4%E6%8B%B7
我考证了一下,这个乱码的原因来源相当经典。
Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER
那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。
如果这个'\xef\xbf\xbd',重复多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话
一个汉字2个字节,最终的结果就是:锟斤拷 哈哈。。。
Python代码:
>>> u'\uFFFD'.encode('utf-8')*2
'\xef\xbf\xbd\xef\xbf\xbd'
>>>
>>> print u'\uFFFD'.encode('utf-8')*2
锟斤拷
例如这个招聘就非常经典:
单位性质: 外商独资企业 所属行业: 线缆
单位规模: 100 - 499人 注册资金: 1299
联 系 人: 锟斤拷锟斤拷 联系人职位: 锟斤拷锟斤拷
传 真: 021-69178632 联系电话:
电子信箱: xuan_guo@walsin.com
通信地址:
邮 编:
单位网址:
单位介绍: 台锟斤拷锟斤拷业锟斤拷台锟斤拷锟斤拷锟侥碉拷f锟斤拷锟斤拷锟斤拷锟?锟斤拷锟斤拷/锟斤拷锟斤拷
招聘职位:锟斤拷锟斤拷 人数:20人
发布日期: 2007-07-17
联系人: 锟斤拷锟斤拷
编码问题真是个TMD烦人的问题。例如:
最后我在wikipedia上开了一个 锟斤拷 的页面。瓦咔咔。。瓦咔咔。。。
Zine是个alpha状态的blog平台,基于Python写的,用到了Werkzeug, Jinja模板引擎和SQLAlchemy。
不多说了。上图




项目地址:http://dev.pocoo.org/projects/zine/
Hg源码:http://dev.pocoo.org/hg/zine-main
示例:http://textpress.pocoo.org/
有个notify系统,比如集成XMPP事件通知之类的。还有很多皮肤和插件
如果你有很多问题,例如为什么yet another blog platform?为什么不用Django/pylons?请看FAQ
快成功了。已经可以兼容Nodebox的库了。目前由于float('-inf')这种负无穷大的表示方法还只有Python 2.6才能兼容,还需要对code进行一些hack。GTK的字体渲染还有待研究,gtksourceview2还需一些设定才能实现代码高亮。

最近Python Planet里刮起了一股show自己Social Software Graph的热潮,其中Arthur Koziel的这一篇,图形最帅气。

这个非常cool的图形不是Visio做的,也不是OmniGraffle做的,而是Nodebox的Graph库用Python代码画出来的。
NodeBox is a Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented.
Nodebox是Mac OS X上,基于Cocoa,Python编写的,用于创建2维静态/动画/交互式visuals(这个visuals实在不好翻译。。。visualization的意思是可视化。)工具,可以输出为pdf或者Quicktime格式。Nodebox是免费的而且文档齐全。你可以理解为新时代的Logo语言,或者processing(最近刚好1.0)的Python版。
其实我很想不通,为什么酷酷的东西总是Mac上最先出现?为什么Windows总是最受歧视的?Nodebox也推出过一个NodeBox 2.0b1 for Windows版本,基于Jython的,可以用,但是最恼火一点就是不支持上面提到的Graph这个库。Nodebox官方的态度也和大多数Mac only装逼软件类似,拒绝向Linux或者Win32移植。
不过现在好了。几个月前,已经有按耐不住的人Ricardo Lafuente开始把Nodebox克隆到GTK环境,用Cairo图形引擎了。名字叫Shoebot
名字来自Drawbot(Nodebox也源自于Just van Rossum的这个项目)和Shoes(Ruby的Nodebox),跨平台(OS X/Win/Linux),可以导出到Inkscape,看起来非常不错。
主页:http://tinkerhouse.net/shoebot/
Hg源码托管:http://freehg.org/u/rlafuente/shoebot-ng/ https://code.goto10.org/hg/shoebot
下载:http://tinkerhouse.net/shoebot/Docs/Install 很可惜的是,Windows版本仍然在开发中。等吧。
更新微博(identi.ca):http://identi.ca/shoebot
Shoebot-devel邮件列表:http://lists.tinkerhouse.net/listinfo.cgi/shoebot-devel-tinkerhouse.net
非官方编译的library:http://hv-a.com/shoebot/libraries/ 包括那个graph库。赞啊赞
NND,如今这世道也太欺负人了。工作之后一定买一个苹果本本。
转载自CPyUG
gentoo cx_Oracle连Oracle
程磊
cx_Oracle必须用oracle客户端。oracle有一个instance client,是一个thin client。相对于普通的客户端小了不少。我最讨厌一个客户端好几百M了。
安装这 个,比较小巧方便。到http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html 下载。里面的basic是必须下载的。其他的想sqlplus的可以选装。下载oracle-instanceclient-basic到一个目录下,比如是instanceclient。然后
配置ORACLE_HOME到这个目录同时要添加这个目录到LD_LIBRARY_PATH。
然后下载cx_ORACLED的源码,python setup.py build或install,就行了。要注意的有几点:
1.必须保证client所需要的包都有,我下了sqlplus的文件,然后执行,发现少了libaio,装上,sqlplus正常工作,那么 cx_ORACLE也可以正常工作了。
2.必须保证ORACLE_HOME设置正确和LD_LIBRARY_PATH添加client目录。
3.instanceclient里面有个libclntsh.so.11.1的包,oracle在这个lib后面加了版
本号,但是cx_Oracle只认libclntsh.so,所有要cp一份在client目录下,否则编译
会报cannot find -lclntsh
测试:
import cx_Oracle
conn = cx_Oracle.connect("***/***@//192.168.10.176:1521/orcl")
cursor=conn.cursor()
ok成功了。
现在不用把libclntsh.so复制到/usr/lib下了。方便多了。
刷广播啊刷广播,为了发展历史悠久光荣伟大的刷广播事业,我特地写了一个豆瓣插件来完成这件工作。以后通过GTalk就可以直接刷广播了。
参考这里的ping2douban图文教程

原理是: Google Talk -> XMPP -> Ping.fm Customize URL -> Ping.fm -> ping2douban -> 豆瓣API -> 豆瓣广播
程序跑在GAE上。当然也可以同步刷twitter,plurk和friendfeed
python -mSimpleHTTPServer
恩。Windows, Linux, Mac通用。Darkhttpd,Http File Server之类的可以退休啦。
Update: 感谢CPyUG的zq大妈推荐好帖子:个趁手语句 | 4G spaces