共勉
"诸君离学校而去了。在社会上立身的困难,恐怕比在学校里求学还要加甚。若非立志奋斗,则以前所受的教育,反足以增加人生的苦恼,或转为堕落的工具。这是诸君所当特别注意的。事业的成功,须经过长时间的辛苦艰难——成功的代价,走过了许多荆棘的路,方才能寻获康庄大道。立志是砍荆棘斧斤,奋斗是劳力。万不可希望以最少的劳力,获最大的成功。" -- 蒋梦麟
Knight's Blog
蚂蚁金服技术专家, 前滴滴海浪技术主管, 前百度资深研发工程师,现居杭州。 擅长于大规模的系统平台服务架构,尤其擅长个人作战,例如一个人快速完成一个技术难度较高产品的所有工作。以下大部分作品只有我一个人完成所有工作:

- 亿级别搜索平台(sov5.cn)
- 资源内容平台(p.sov5.cn )
- 阅读内容平台(jintiankansha.me )
- 语言招聘平台(51tra.com )
- 垂直社区平台(python88.com)
- 大规模分布式爬虫
- 中间件架设(disconf,CanalX)
- 广告平台(百度联盟广告)
- 租车平台(滴滴租车)
- 资源下载平台(misou.com)
- 计算机图形图像技术(一篇一作)
- 机器学习(一篇一作)

等领域具有颇有经验。
联系方式: knightliao AT gmail.com
联系
近一个月内十大热门文章
最热结点
OS X下安装RabbitMQ
工作 • 1896 浏览 • 2015-01-29 13:19
OS X下安装RabbitMQ RabbitMQ是用Erlang写的OpenSource的消息队列(Message Queue)软件,并且有付费的商业版支持。 所谓消息,在类似JMS等现代系统里,尝尝作为一种异步操作的机制,来实现快速的轻量的信息交换。其最简单的模式就是发布-订阅( Publish/Subscribe)。 RabbitMQ的主页在 [http://www.rabbitmq.com/ ](http://www.rabbitmq.com/)。 ##1. 安装 Ra……
继续阅读
互联网广告系统业务串讲
工作 • 1604 浏览 • 2015-01-28 13:07
###互联网广告产业链: 从luma的一张图开始:这张图是luma做的美国的互联网广告的产业链,其中有主要的链条是advertiser-agency-DSP(demand side platform)-ad exchange-ad network-SSP(supply side platform)-publisher ![http://ww3.sinaimg.cn/bmiddle/60c9620fjw1ep958v7bf4j20go0ciadu.jpg](http://ww3.sinaimg.c……
继续阅读
DSP市场新宠 PPB
工作 • 1278 浏览 • 2015-01-28 12:50
### DSP市场新宠 PPB PPB 是指 是程序化优选购买,广告主定义他们期望的受众,系统帮助其找出优选的媒体来购买受众,为广告主提出最优媒介计划,并通过程序化购买方式执行,并按照期望的周期反馈监测结果。 传统的DSP和RTB模式中,广告主很难去定位自己媒体资源,投放的效果很难控制,是很open的。在中国的大环境下,代理商和广告公司较为强势,在指定优质媒体上投放RTB广告,需求日益强烈。因此,这也就是诞生了PPB模式。 PPB还很新,2014年刚兴起,目前主流DSP市场还较少有支持……
继续阅读
生成PDF的工具选择
工作 • 1546 浏览 • 2015-01-26 21:13
生成PDF工具 ### 选择 一开始有两种选择 - pdfkit(wkhtmltopdf) - xhtml2pdf 第二种选择与平台无关,它是纯python生成 ,具体做法就是将生成HTML代码+CSS代码,利用reportlab来画图生成pdf。优点是与平台无关,缺点是画出来的图与浏览器生成的图根本无法一致(这是因为reportlab的画图算法与wkhtmltopdf根本无法相提并论。) 第一种选择是用python去调用 wkhtmltopdf 系统命令生成pdf. wkh……
继续阅读
我的产品观
工作 • 1278 浏览 • 2015-01-21 11:51
可能是受老周的影响,近来我越来越喜欢讨论产品设计的问题,对于技术没有以前那么狂热。对于创作一个非技术类型的用户产品,近来我的一个观点是: 技术虽然也重要,但是在产品初期,一定要做成:一方面技术简单极速实现,另一方面须注重产品设计与用户体验,突破运营,以极快的速度提高用户流量。 现在做产品,或者说创业吧,用户体验与速度都是非常关键的。历史上以少胜多,以弱胜强,无非就是通过惊人异样的产品特性作为突破点,然后以雷电般的速度 摧毁敌方势力。 这里举个反例吧。我们在做DSP第一版时,对于创意……
继续阅读
Python开发工具合集(UPDATE)
工作 • 1273 浏览 • 2015-01-20 11:04
- Python2.7 - Mock: nose - Framework: - Tornado: - Django: - DB: peewee - Template: JinJa2
继续阅读
Java开发工具合集(UPDATE)
工作 • 1533 浏览 • 2015-01-20 10:58
- Java7 - Framewok: - Spring - Programming Tools: - Mock: - jmockit [http://techv5.com/topic/696/](http://techv5.com/topic/696/) - wiremock - Lomock: [http://techv5.com/topic/1135/](http://techv5.com/topic/1135/)……
继续阅读
【百度学堂】百度人物 李明(高级产品架构师,工作十年) 访谈 thinking mobile
工作 • 2019 浏览 • 2015-01-19 15:54
以后我每周都会看一次百度学堂,跟大家分享一下百度牛人们对于产品、技术的看法。 今天的人物是李明。他04年加入百度,工作十年有余,现在已经是高级产品架构师了。今天他会给大家分享关于对于百度移动产品以及直达号的理解。 ##《百度人物 李明(高级产品架构师,工作十年) 访谈》thinking mobile 1. PC产品到移动产品:百度移动的流量超过了PC的流量 2. 一个人做好一个产品的方方面面,而不仅仅只是产品经理。 2. 做好小事:整理歌词。通过去其它网站抓数据快速填充后台。 3. ……
继续阅读
activemq安装方法
工作 • 1251 浏览 • 2015-01-09 17:53
## 安装方法 建议下载 bin 版本进行安装 ## start & stop nohup bin/activemq > /tmp/smlog 2>&1 & bin/activemq stop ## 配置文件是 conf/activemq.xml ## Monitor ActiveMQ http://localhost:8161/admin admin/admin conf/jetty-real.properties ## 参考……
继续阅读
VPN的一天
工作 • 2041 浏览 • 2015-01-07 22:03
今天搞VPN搞了一天,要嘛安装一直不成功,要嘛安装成功后不稳定,最后还是花钱买个云梯吧,有钱任性啊!! ## 安装l2tp vpn notes 1. [Mac OS X 下无密钥方式连接基于L2TP协议的VPN ]( http://lxneng.com/posts/177) 2. [在 Ubuntu上搭建 L2TP/IPSec VPN](http://www.wangyuxiong.com/archives/52330) 按照这篇文章基本上是可以成功的。 额外的参考: http://blog……
继续阅读
tornado部署的几点总结
工作 • 1456 浏览 • 2014-12-26 01:20
具体部署可参见:[http://tornado.readthedocs.org/en/latest/guide/running.html](http://tornado.readthedocs.org/en/latest/guide/running.html) **几点注意的是:** - nginx默认是没有缓存的 - js/css:使用tornado进行版本化(文件内容md5),然后使用nginx对版本块的文件进行永久cache,这样可显著提高性能,并且也不会在文件更新后破坏用户体验。 ……
继续阅读
Spring MVC 配置小结
工作 • 2034 浏览 • 2014-12-22 21:19
## Spring MVC 配置小结 spring mvc 作为非常 成熟的 J2EE 架构方案,适合大规模的业务平台架设。 它是spring项目的一部分,但是,在配置时,它一般的spring项目有点不一样。 ### springmvc配置与spring配置的关系 spring容器是 springmvc 容器的父容器,springmvc 可以访问 spring 容器,反之则不可。 可以通过这篇文章来了解: [http://sishuok.com/forum/blogPos……
继续阅读
Jquery FileUpload IE8 无法上传图片的问题
工作 • 4107 浏览 • 2014-12-20 01:01
今天被Jquery FileUpload的一个问题整死了。。花了几尽N个小时才搞定。。。 **问题描述如下:** 页面上有一个按钮和一个隐藏的input file 控件。当点击按钮时,去触发 input file 控件的click事件。此过程在IE8及其以下版本均无法正常work. 具体原因我也不大懂。但后面的我try出来的解决方案是: 去掉按钮,页面上只留下 input file 控件。点击按钮时直接上传文件。此方法具有很强的兼容性。 另外,IE下必须使用 jquery……
继续阅读
IntelliJ热部署 Java Maven代码
工作 • 3022 浏览 • 2014-12-17 14:49
Eclipse下写java还是可以的,但是处理XML啊,js,python 啊ecipse弱爆了啊。 作为一个全能性选手。。。这样是不能完全 愉快的玩耍的。 因此,最近又重新要返回 IntelJ了。 自从玩PyCharm非常爽之后,上手IntelJ 终于会比较习惯些。 **需要注意以下几点:** 1. InTeliJ的java与Eclipse的Java貌似有些不一样(当然是InteilJ比较标准),因此,有些类在eclipse跑得通,但是在 InteliJ 下跑不通。解决办法就是 使用……
继续阅读
稳定的邮箱还是得用企业邮箱
工作 • 1446 浏览 • 2014-12-04 00:33
平时喜欢搞些小网站的同学,一般会用域名邮箱来处理用户注册的问题。一个比较好的解决方案就是使用QQ邮箱的域名转发功能。 域名邮箱是不错,但是在实战中,随着使用次数的增多,会越来越不稳定,例如,会出现不定期的发送邮件失败。错误则显示各种各样,要嘛是无法登录,要嘛是突然connection lost。让人无语啊。带来用户一系列的抱怨。 最终解决办法是采用企业邮箱。天下没有免费的午餐,免费的东西可能不是那么靠谱。。企业邮箱我推荐阿里云,服务超细心,谁用谁知道。不管是域名验证、客户端设置什么的,非常快,而……
继续阅读
peewee的 @db.commit_on_success 事务 坑
工作 • 2740 浏览 • 2014-11-30 01:56
最近使用python的ORM peewee,踩了一个大坑 @db.commit_on_success 是一个注解式写法,加了此注解的函数会被“切面”。对于一般函数来说,work perfect. 但是,如果把此 方法 加在 action(controller)上面呢,会发生什么事情呢? 在这种情况下, - 1):如果你的db是不断长连接的(没有池),那没啥问题。因为所有请求均是使用同一个数据库连接。 - 2):如果你采用了池化DB连接技术,每次用户请求都会在池中寻找可用连接,每次请求结束……
继续阅读
zookeeper session expired的处理方法
工作 • 4945 浏览 • 2014-11-18 20:22
##ZK 会话失效 怎么办? 官方的解答比较多,可见下面英文。总结来说,就是以下几点: - zk client在与所有server断开连接后(有可能是各种原因),client 会收到 disconnted消息。当zk server 恢复后,zk client会自动与server连接上,但是此时会话已失效,client收到 session expired消息。前一个会话的所有数据均丢失。接下来你要怎么做,得看你的程序用途: - 如果只是读写,没有主备机切换情况(就是当一台主机一台备机,当……
继续阅读
Dbproxy Notes
工作 • 1836 浏览 • 2014-11-12 13:46
目前业内有的dbproxy方案有: - 开源的 amoeba [https://github.com/rocksolidwebdesign/amoeba](https://github.com/rocksolidwebdesign/amoeba) - 360的 Atlas [https://github.com/Qihoo360/Atlas](https://github.com/Qihoo360/Atlas) - 淘宝的 cobar [https://github.com/alibaba/co……
继续阅读
项目上线的一些思考
工作 • 1679 浏览 • 2014-10-31 16:17
做大项目,一定会涉及到上下游依赖,上线的顺序就尤为重要。一般来说,无非有以下两种 1. 下游先上线,此版本需要兼容上游旧版本。然后上游就可以放松的上线。 2. 上游先上线。此种做法要求下游旧版本需要能支持上游新版本。然后下游的新版本需要考虑新版本数据(某些情况下,亦需要考虑旧版本数据)。 第一种做法,好处就是几乎可以应对所有情况。因为我们在做项目时可能都无法预期未来的变化的,让下游来做旧版本兼容,可以应对所有情况。不好的地方就是下游代码恶心。 第二种做法,好处就是下游和上游代码均是相对c……
继续阅读
关于业务系统视图数据不同步的问题
工作 • 1390 浏览 • 2014-10-31 12:44
我们在做业务系统时,经常会遇到 数据视图不同步的问题。尤其是hibernate,它帮你做视图时,这个问题尤为严重,因为你不知道什么时候读的是缓存,什么时候不是缓存。或者你需要了解它的缓存机制。 如果我们没有使用hibernate, 自己来做视图时,就要考虑到这些问题。 例如: ![image](http://ww2.sinaimg.cn/bmiddle/60c9620fgw1elu8o7v500j20hn04k0tb.jpg) `stateMachineMgr.handle` 这句会……
继续阅读