华子的代码空间

逆水行舟,不进则退。 关注系统编程、网络编程、并发、分布式。

2012年12月3日

tornado模板解析过程总结

摘要: 0. RequestHandler中调用loader.load函数,传入模板文件名,生成模板实例 (1). 检测模板文件名,并返回合法的文件名 (2). 根据文件名做模板的内容缓存,节省了每次解析模板内容并编译的开销 (3). 如果未找到编译好的模板,则调用Template类创建新模板1. 将内容用_parse函数逐行解析: (1). 对于普通的表达式直接加入到_Expression实例中 (2). 遇到end则直接返回,并继续处理下一行 (3). 如果都不是,则得到操作符,例如是if,extends等等 (4). 遇到extends, import, include, set, raw, m 阅读全文

posted @ 2012-12-03 17:59 华子的代码空间 阅读(496) 评论(0) 推荐(0) 编辑

python线程的又一细节

摘要: 首先,在python的线程中,任何在run函数中调用的代码,都是运行在新线程中。其他的实例方法,全部运行在主线程中。上代码: 1 #!/usr/bin/python 2 # -- coding: utf-8 -- 3 4 import threading 5 import signal 6 import time 7 8 # 注意:run函数中执行的代码都是在新线程中 9 # 而hander方法在主线程中,可以查看它们的thread id10 11 def thread_sig():12 # 在子线程中发送信号13 signal.alarm(3)14 15 class ih... 阅读全文

posted @ 2012-12-03 17:37 华子的代码空间 阅读(5714) 评论(0) 推荐(0) 编辑

一些重要的算法

摘要: 下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)A*搜寻算法 俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。Beam Search束搜索(bea 阅读全文

posted @ 2012-12-03 03:06 华子的代码空间 阅读(183) 评论(0) 推荐(0) 编辑

中国的互联网:草根与精英

摘要: 我有两个朋友。L的公司在上海,大半时间跑广东。他是华南某所不太知名的大学毕业的,小眼睛质朴男,多年以前还是个文学青年。哥们做手机网游的,我见他使过好几款手机, 但最贵的一个也不过1千多块钱。比起什么Web2.0、移动互联网的概念,他更关心珠三角的几千万农民工和城市边缘的大学生“蚁族”,怎么关心?在东莞的 夜宵摊上跟他们拼啤酒,在富士康厂区外网吧里刷夜,跟靠做他们生意开上宝马的便利店老板扯淡……W猫在北京中关村。他从小就是个脑袋很大眼睛发亮的天才少年,数理化成绩很好,逻辑思维超强,英文和中文一般流利。在首都某著名大学毕业后,W 直接去美国名校拿了硕士,接着回国创业。我一直觉得,他是硅谷Geek们 阅读全文

posted @ 2012-12-03 03:05 华子的代码空间 阅读(211) 评论(0) 推荐(0) 编辑

tornado模板语法

摘要: tornado的文档非常的匮乏,不过这是表面现象,其实个中乾坤都在源文件里,源文件的注释里有非常的文档资料,值得仔细研究。今日将模板系统的内容翻译之,以供日后使用。此处意译为主,并未逐字翻译A simple template system that compiles templates to Python code.一个简单的模板系统,将模板编译成python代码Basic usage looks like::基本的用法如下: t = template.Template("<html>{{ myvalue }}</html>") print t.ge 阅读全文

posted @ 2012-12-03 03:01 华子的代码空间 阅读(1008) 评论(0) 推荐(0) 编辑

很有意思的总结

摘要: 欲先为贼;利先为贩;义先为商!善己者为奴,善伴者为工,善众者为商!羡鱼者终穷,羡渔者终饱,羡网者终富!奴者多怨,工者多思,商者多行!嗜蜜者多盗,品苦者多商!三四者为奴,一一者为商!滥情者为奴,多情者为工,寡情者为商!小贩:嗜蜜、好群、意淫、尚奢巨商:品苦、喜独、意精、知俭 阅读全文

posted @ 2012-12-03 01:31 华子的代码空间 阅读(172) 评论(0) 推荐(0) 编辑

2012年11月30日

pdb常用调试命令

摘要: 常用的调试命令h(elp),会打印当前版本Pdb可用的命令,如果要查询某个命令,可以输入 h [command],例如:“h l” — 查看list命令l(ist),可以列出当前将要运行的代码块(Pdb) l497 pdb.set_trace()498 base_data = {}499 new_data = {}500 try:501 execfile(base_file_name,{},base_data)502 -> execfile(new_file_name,{},new_data)503 except:504 logger.writeLog(“error! load resu 阅读全文

posted @ 2012-11-30 18:30 华子的代码空间 阅读(2672) 评论(0) 推荐(0) 编辑

python的元类

摘要: 类是用来生成实例的模板,而元类则是用来生成类的模板。在 Python(以及其它语言)中,类本身就是可以被传递和自省的对象。正如前面所讲到的,既然可以用类作为模板来生成对象,那么用什么 作为模板来生成类呢?答案当然是元类(metaclass)。python 2.2+以后提供了一个称为type的特殊类,它是一个类工厂。使用type创建新类:>>> X = type('X', (), {'foo': lambda self: 'foo'})>>> X, X().foo()(<class '__main_ 阅读全文

posted @ 2012-11-30 17:30 华子的代码空间 阅读(302) 评论(0) 推荐(0) 编辑

sys.modules和__import__

摘要: >>> import sys# 这个时候os这个module已经被加载了,但是在当前作用域并不可见。>>> sys.modules['os']<module 'os' from '/usr/lib/python2.7/os.pyc'>>>> # 访问os会被提示NameError>>> osTraceback (most recent call last): File "<stdin>", line 1, in <module 阅读全文

posted @ 2012-11-30 14:53 华子的代码空间 阅读(2328) 评论(0) 推荐(0) 编辑

2012年11月28日

PEP8中文翻译

摘要: Python 编码风格指南Horin|贺勤Email: horin153@msn.com Blog:http://blog.csdn.net/horin153/PEP: 8 Title: Style Guide for Python Code Version: 54700 Url:http://www.Python.org/dev/peps/pep-0008/译者:为了尽可能使译文保留原滋原味,译者尽可能进行直译;保留原始文档的布局、缩进、换行风格 (阅读时请最大化);尽量不在译文中穿插个人评注。 对有疑问的翻译,在译文后面的括号中给出原文;对部分标题和专业词汇,同时给出 原文和译文,以方便阅 阅读全文

posted @ 2012-11-28 16:40 华子的代码空间 阅读(1519) 评论(1) 推荐(0) 编辑

导航