- 浏览: 127555 次
- 性别:
- 来自: 广州
最新评论
-
anicething:
没看到图啊
WSGI初探 -
powertech:
研究的挺深
WSGI初探 -
banxi1988:
wsgi的设计确实参考了servlet.见:http://ww ...
WSGI初探 -
luoboiqingcai:
好文
WSGI初探 -
Arbow:
实测scala没有这个问题:)scala> val li ...
Python闭包再研究
文章列表
搬家啦。
要离开写了3年的博客还是有些舍不得。
不过觉得,有了自己的独立域名,是一种新的起点。
我会把这里的精华文章手工迁移到新的博客,并且从今以后会奉献更加优秀的文章给大家的。
地址:http://linluxiang.info
今天在珠三角技术沙龙分享了一个关于如何在UIWebView的限制环境中,在JavaScript里面调用ObjC的函数的方法。
下面把slide分享出来,希望大家指摘,slide的最后一页有源码在github上面的地址。
需要注意的是,因为我使用了json-framework,可能编译的时候需要下载Json-framkework并且按照它的要求配置XCode,麻烦大家移步。
后续可能会放出如何将别的Xcode Project以静态编译的方式加入自己的项目里面的方法,敬请期待。
简介:在UIWebView的限制条件下,如何绕过苹果的SDK的限制,利用伪造CachedResponse对象和后端 ...
wsgi初探
前言
本文不涉及WSGI的具体协议的介绍,也不会有协议完整的实现,甚至描述中还会掺杂着本人自己对于WSGI的见解。所有的WSGI官方定义请看http://www.python.org/dev/peps/pep-3333/。
WSGI是什么?
WSGI的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。
也就是说,WSGI就像是一座桥梁,一边连着web服务器,另一边连着用户的应用。但是呢,这个桥的功能很弱,有时候还需要别的桥来帮忙才能进 ...
前两天写了一篇文章,讲了一下Python的闭包。刚好今天又看到一个小问题,和Python闭包有点相关。顺手记录下来。
如下一段代码,
funcs = []
for i in xrange(10):
def bar(n):
return n + i
funcs.append(bar)
print funcs[3](5)
这段代码中,我们期望得到的结果是3+5为8。但是实际得到的结果是什么呢?是14。
14是怎么来的?
反汇编看看:
7 0 LOAD_FAST ...
其实很早以前就想写这么一篇文章了。一直没有机会。正好今天和同事讨论Python闭包的问题,趁着没遗忘赶快记录下来。以下代码运行的Python版本是2.5。
问题还是那个很经典的问题:如下代码会抛一个错误
def foo():
...
原来以为Python编源代码头部的#encoding: utf8的字符串对于python的实际编码解析是没有影响的。
但是今天发现一个很好玩的问题。Mark一下。
当python的代码中存在类似u'中文'这样的字符串的时候,假设是utf8编码,本地保存在py文件中的时候,是按照u'\xe4\xb8\xad\xe6\x96\x87'这样的实际本地编码保存的。
如果编码声明字符串是#encoding: utf8。
那么在使用的时候没有任何的影响。
但是如果编码声明字符串的时候使用#encoding: gbk
那么在执行import module的时候,python会尝试利用gbk编码去解 ...
今天更新mercurial的时候遇到了一个问题。
执行hg,结果报错:LookupError: unknown encoding: x-mac-simp-chinese
想到这个问题我以前在用django的时候碰到过,原来以为是django的问题,现在才知道原来是普遍的python的问题。
去hg的源代码里面minirst.py里面看了一下,发现是直接调用mercurial的encoding函数的encoding这个变量。
找到encoding.py里面,
try:
encoding = os.environ.get("HGENCODING")
...
作为珠三角技术沙龙的组织者之一,在这里做个小广告,珠三角技术沙龙2010Q4开始报名了。有重量级的讲师和话题哦。
讲师与课题简介:
1. 陈硕,北京师范大学电子系硕士,《代码大全》和《C++编程规范(繁体版)》译者,现任职于香港某跨国金融公司IT部门,从事实时外汇交易系统开发。擅长C++多线程网络编程和实时分布式系统架构。主题:《分布式系统:一种工程方法》内容简介:本次演讲将从工程角度探讨分布式系统的设计与维护,涉及系统的消息模型﹑协议格式的选择﹑为系统演化做的准备﹑故障处理策略及监控机制等等方面。并总结了一些构建块(building blocks) 以供听众在日后的开发工作中选择 ...
先提示,本文需要一定的python源码基础。许多内容请参考《python源码剖析》。下面切入正题。
今天在群里有人问了一个问题。形如如下的一段程序。
class person:
sum = 0
def __init__(self,name):
self.name=name
person.sum += 1
def __del__(self):
person.sum -= 1
print "%s is leaving" % self.name
...
今天在做分析http错误请求处理的时候遇到一个问题:当发生500错误的时候,如何将错误输出到日志当中呢?
搜了一下python的doc,在logging模块中有不起眼的一行代码提供了解决方案。
mylog.error('error!', exc_info=True)
其中,mylog就是Logger实例,当exc_info设置为True的时候,logger就会自动的调用sys.exc_info()函数,将traceback的信息打印到日志中。
突然想到生物进化和软件进化的关系。也许有一点点相似吧。
两者都不能重来,只能在前者的基础上去继续进化。
今天在编译一个用到boost_program_options的库的时候出现了一点点小问题。总是提示说找不到boost_program_options这个库。
去/usr/local/lib下面看了一下,发现原来改名成libboost_program_options-mt.dylib了。搜了一下名字中这个mt的意思。
原来是boost1.33的新特性,就是区分了某些lib是单线程或者多线程的。这个区分导致必须显式的指明使用的是多线程还是单线程的库。
自然mt就是指的多线程,st指的单线程。
改用-lboost_program_options-mt以后,编译ok。问题解决。
最近在看Objc的开发,虽然Xcode很好用,但是还是不太习惯这种大型的IDE开发。
于是自己尝试着在Terminal下面编译。
先是最简单的一段程序。
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[])
{
NSLog(@"Hello, World!");
return 0;
}
直接 gcc helloworld.m,报错。
错误提示如下
Undefined symbols:
"___ ...
2009总结并2010展望
用一个字来总结对2009的感受:我。
用一句话来总结就是:我要做我自己的主人。
大致按照年表来看,我的2009有以下几件大事。
- 3月:开始关注实习。尝试联系Zoom.Quiet。
- 4月初:准备实习相关资料。
- 4月底:跑到珠海面试并获得认可。买了一台Mac。
- 6月底-9月初:在金山实习。
- 9月:开始准备找工作。
- 10月:找工作并找到工作。最终达成了自己原定的2nd目标:网易游戏。
- 12月:陪伴家人。
- 12月底:偶然的知道了@xiaolai的讲座信息,听了他的讲座,看了他推荐的书《把时间当 ...
最早听说GeekCook还是在Twitter上面。。人们口口相传,曾经有这样的一个卖家,他卖的东东别具一格。于是乎上去看了一下,发现满城尽是和谐的关键字。顿时被吸引了。
对于在淘宝上放上这么和谐的东西还是有点点担心。
而需要通过翻山越岭介绍自己的产品,产品又不能针对山里面的东东,会不会有点点问题呢?
先是想买一些衣服,后又觉得,衣服不能时时穿,不能时时表现我渴望和谐的心。
So,决定把这份和谐饮进自己体内,决定买一个杯具。
经过同学推荐,觉得如下图的杯具比较适合表现自己杯具的心。
杯具的图片和文字是可以自己选择的。
关于杯具的网址是
http://it ...