从老家回来第一天,特向各位博友拜个晚年~
祝福大家新年快乐,龙年大吉!
家庭幸福美满,事业蒸蒸日上!
心想事成,万事如意!
给大家拜个晚年
作者是 杂项.
发布于 in最后更新于 .
作者是 杂项.
发布于 in最后更新于 .
从老家回来第一天,特向各位博友拜个晚年~
祝福大家新年快乐,龙年大吉!
家庭幸福美满,事业蒸蒸日上!
心想事成,万事如意!
作者是 Web开发.
发布于 in最后更新于 .
前几天同事的程序有个很奇怪的bug,跟大家分享一下。 描述如下:一个http接口在测试环境下能够正常访问,在外网环境下就会直接超时,并且超时的消耗是建是0ms。 我strace了一下,libcurl在测试环境能正常发包,在外网环境却总是直接返回,连连接都没有尝试建立。 仔细研究了他的代码,发现并没有什么不合理之处,一筹莫展时发现有如下代码:
curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, (int)(timeout_sec*1000)); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS, (int)(timeout_sec*1000));
突然想起之前有文章说curl只支持秒级的超时时间,而我们外网的超时配置的是0.5秒。 把超时时间改成1秒之后,果然一切正常了。 google上搜了一下,在如下链接找到了答案: http://stackoverflow.com/questions/1856473/why-would-curl-ignore-curlopt-timeout-ms-but-honor-curlopt-timeout
The version of curl I am using (7.15.5) doesn't support CURLOPT_TIMEOUT_MS. According to Greg I ...
作者是 Web开发.
发布于 in最后更新于 .
前段时间一直没写博客,昨天更新了一篇,今天突然又来了兴致,那就再更新一篇吧(所以说啊,治疗拖延症最好的方法就是现在开始做) 这篇还是一些技术的整理,主要是用于备忘,大家如果觉得太简单就一笑而过啦~
一. python通过图片内容判断图片类型
前段时间写了一个小站练手,http://xiangshuguo.com,一个支持自由上传的图片小站。 因为要限制上传图片的格式,所以要做文件类型检测,代码如下:
def get_image_type(pd, is_path=True): ''' 获取图片的类型,支持传入路径和文件内容 ''' if is_path: f = file(pd, 'rb') data = f.read(10).encode('hex') else: data = pd.encode('hex') ftype = None if data.startswith('ffd8'): ftype = 'jpeg' if data ...
作者是 Web开发.
发布于 in最后更新于 .
几年之前刚玩wordpress的时候,还是用apache+wordpress,而后来虽然自己成了nginx粉,却也只是用来做nginx+python的开发,没有把nginx+php配合起来。这次趁这要搭建wordpress的调试环境,所以重新梳理了一遍。 PS:网上很多盛传的版本,基本都不太准,我这里算是亲身试验了,给大家个准的 PS2:这次就在windows下来搞了,其实在linux也是一样 OK,我们正式开始 一. php安装部署
extension=php_mysql.dll将如下代码去掉注释,来指明ext的路径
extension_dir = "ext"
二. mysql安装部署
作者是 Vim.
发布于 in最后更新于 .
前言:
昨天突发奇想,当我用vim读文档,看代码的时候,如果有一段我觉得特别好,想要分享给大家,有没有快捷点的方式呢? 所以需求也就来了,在Vim里面分享内容~而目前用的最广的,自然是微博~(由于笔者只用腾讯微博,所以只实现了腾讯微博……)
细化一下功能:
如果你读这篇文章比较早,应该还能看到页面右侧的微博里有这条微博:
花了一晚上,终于把用vim发腾讯微博给折腾出来了,明天写博客跟大家分享,敬请期待! 来自weibo.vim
在正式开始介绍之前,声明一下:
OK,废话不多说,开始介绍吧
一. 环境依赖
作者是 Web开发.
发布于 in最后更新于 .
接着回归简单,向Django说再见,继续来聊用bottle做web开发。 其实上一篇文章已经讲的比较清楚了,这一次主要从另一个角度来分享一下:物理设计 干脆直接贴出来吧:
bottle_site_tpl/ |~conf/ |~depend/ | |+autumn/ | |+jinja2/ | |+wtforms/ | |-__init__.py | `-bottle.py |~log/ | `-site.log |~module/ | |-__init__.py | |-forms.py | |-models.py | |-mysession.py | `-web_func.py |+static/ |~views/ | `-test.html |~web/ | |-__init__.py | `-test.py |-myapp.py `-setting.py
可以看出,最外层有两个文件,分别是setting.py 和 myapp.py。 setting ...
作者是 Web开发.
发布于 in最后更新于 .
前言:这是我最近在公司内部分享的一篇文章,大家反响比较强烈,所以也分享到博客里来。 一转眼,来公司已经三年多了。 这三年里,所属部门在变,地理位置在变,技术也日新月异,但是有很多设计原则却是一直不曾改变的,而这次就是我用自身的实践来谈谈我对其中的一个的理解---有损服务。 记得当年qwang用一个很形象的比喻来解释有损(原话记不太清楚了): 比如一个人在沙漠里迷失了寻找水源,那么在他还能走的时候,就尽量走;实在走不动了,用爬的;最后爬也爬不了了,起码要保证自己活着。 所以我们从这个比喻中起码可以获得如下几个信息:
接下来就从自己印象比较深刻的有损服务项目讲起吧。
一、空间应用列表有损服务优化
想当年,苍井空还是处女,玛利亚还姓圣母。好吧,扯远了,想当年第一款国民级应用《QQ农场》横空出世,其空前的火爆导致空间个人中心应用列表的农场图标变得如此重要。 然而由于各种网络等各种原因,这个列表的展现总是会有一定的失败率,而且只要稍微失败就会招来大批用户的投诉。 我们分析一下这个模块的功能:
于是优化开始了……
Step1. 应用信息本地cache
由于应用列表第一个要获取的就是应用自身的信息 ...
作者是 Web开发.
发布于 in最后更新于 .
我这几天在微博上写了一句话: 回归简单,即便开始反而会变得更加复杂。 回想起当年刚用Django写素材管理系统还历历在目,最近却已经逐渐脱离Django了。 成长总是分阶段的吧,勇敢的抛弃一些东西,接纳新的东西,也许就是成长了。 至于原因呢,也是我一直在总结的,大家可以一起看一下。 Django适合做中型项目,但却不适合小型和大型项目 为什么这么说呢?
作者是 Vim.
发布于 in最后更新于 .
前段时间在做文件扫描的时候,有一些关于字节、字符数统计的需求,考虑到有同学也可能用的到,所以整理一下记录在这里。
1.统计当前字符之前的所有字节数
command! -nargs=0 CountBytesBack :normal mxvgg"ay`x:echo strlen(@a)<CR>
2.统计当前字符之后的所有字节数
command! -nargs=0 CountBytesForward :normal mxv$G"ay`x:echo strlen(@a)<CR>
3.统计当前文件所有字节数
command! -nargs=0 CountBytesAll :normal mxggVG"ay`x:echo strlen(@a)<CR>
4.统计当前文件所有字符数
command! -nargs=0 CountCharsAll :%s ...
作者是 杂项.
发布于 in最后更新于 .
这次QCon在杭州举办,有幸作为腾讯开放平台部派出的讲师参加,对外分享了《腾讯开放平台的OpenAPI设计》,演讲的ppt已经由InfoQ在网上公布,文章末尾会贴出下载链接,有兴趣的朋友可以看看。
这几天也有很多思索和感悟,今天就和大家分享一下。
一. 切身的感觉到公司实在是 “做得多,说的少”,外界对腾讯的了解太少
“多做少说”当然好,毕竟是多干实事。
但是真的是想象中的那么好吗? 我引用孔子的一个故事: 鲁国之法:鲁人为人臣妾於诸侯,有能赎之者,取其金於府。子贡赎鲁人於诸侯,来而让,不取其金。孔子曰:“赐失之矣。自今以往,鲁人不赎人矣。”取其金,则无损於行;不取其金,则不复赎人矣。 什么意思?就是如果大家都把“多做少说”作为标杆,那么“多做多说”是不是反而会受到鄙视,进而会不会“多做”都收到影响? 所以虽然并非我所能控制,但是后续我也一定会做出努力,让公司对外的分享更开放一些。
二. 技术不在于有多强,而在于是否契合业务
大会上包括ebay,百度,阿里,腾讯都分享了自己的技术经验。对比了一下,其实对于这种海量服务的处理模式都差不多,无非是异步化,分布式,NoSQL等等。 但是不是我们看到这些牛B的技术就忘了那些基础的MySQL,Apache呢? 我看未必 ...