Skip to content

{ Category Archives } 工作日志

密码保护:新浪:关于开放API平台的思考

无法提供任何摘要。这是一篇受保护的文章。

通用排序服务器 续

代码地址: 通用排序服务器:http://code.google.com/p/fulin/source/browse/C++/cntsvr/sdp/?r=13 更新: 1. protocol 层增加缓冲区,以减少 pipeline 的次数。频繁的 pipeline 会因为锁争用的缘故导致性能严重下降。 2. 增加了一层 udp 转发的 so ,在进程之间也可以配置形成新的 pipeline 3. 增加了增量排序的实现:在 mcdb (memcachedb) 里保存快照,排序的 value 为总值减去快照值 4. 增量的时间单位是天,其他的增量,如周,月等,为日增量的合并排序的结果。当前使用 bash 脚本实现,脚本中使用 od ,awk ,sort 等工具。当前的实现由逻辑错误,各相同 id 的日增量没有合并 。(已合并) 5.  mcdb 安装,配置,rotate 脚本等此处暂时省略。 PS: Linux 2.6.9 内核的 syslog 真的很烂。 PS2:mcdb 在主库崩溃的时候,重启辅库,似乎会导致辅库也僵死。计划今天晚些时候重现一次。

varnish 架构(翻译)

原文链接:http://varnish.projects.linpro.no/wiki/ArchitectNotes 译者序:工作中用到了 varnish ,网上却鲜有中文资料。前任一篇《使用Varnish代替Squid做网站缓存加速器的详细解决方案[原创]》,侧重于应用,而原理甚少。故试译此文,存投石引玉之念。 (未完成)

nginx

Nginx 概述 HTTP基础功能: 处理静态文件,索引文件以及自动索引; 反向代理加速(无缓存),简单的负载均衡和容错; FastCGI,简单的负载均衡和容错; 模块化的结构。过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理; SSL 和 TLS SNI 支持;

Tagged

生活还在继续

从上个月的最后一天,也就是上周一开始,转部门的事情从意愿变成了行动。 新浪支付(http://sinapay.sina.com.cn)上线完成,但离步入正轨还差十万八千里——掉单还需要人工干预,对账还需要人工统计,给客服用的系统,给财务用的系统,等等等等,都还在 ToDoList 上,更不用说二期的给其他部门提供付费接口,二期在电信部署一套机器,二期换用更稳定的数据库集群,二期,更遥远的目标。 播客这边本来是希望做系统开发,却又因种种原因,需要先做一段系统管理员。播客的系统已经运行了一年了,该有的东西都有,文档也比较齐全,接手起来还算顺利。但角色的转变还是需要一个熟悉的过程——太多的机器(140+),复杂的拓扑(squid(varnish)->apache(ngix)->memcachedb->mysql(r+w)),新颖的程序(cacti,cmdb,f5 tmui),以及纷杂的人际关系。 在指定的时间内完成了 MandManager 图和接口机改造草案表,虽然完成的并不完美;安心的过了一个清明假——虽然千辛万苦去一趟植物园,还差点回不来;好好的看了一本《计算机体系结构》,虽然还有更多的书,堆在书架上好久了,还没有来得及翻。 生活还在继续。过去的,过去了;未来的,还未来。

里程碑——新浪支付上线

3月12号,植树节,孙氏中山君忌辰。 昨天,2008年3月11号,下午18时整,新浪支付(http://sinapay.sina.com.cn/)在一片匆忙中,终于上线了。大约2分钟后,迎来了第一个非内部人员的注册用户,4分钟后,迎来了第一笔充值。15分钟后,迎来了第一笔掉单:充值游戏接口返回超时。30分钟后,迎来了第一笔帐务错误:为不登录而直接充值的用户准备的默认帐户内,余额不足了——也就是说,某个幸运儿可能从银行或者用卡,打算往游戏帐户里充值10块钱,而我们的系统为他充了20块,甚至更多。 手忙脚乱的时候,更容易出错。应该在后台跑的一个进程,死活跑不起来。因为部署在正式机上,又没法调试——操作的直接是真实帐户!一点一点的 echo, dump,最后发现是正则匹配的时候,少匹配了一项服务器 env 变量,真是无语了。不管它为什么少匹配了,直接将其写在程序里,先跑起来再说。 上线之后,终于可以不用操心 jira 里的 bug 了,但还是没有空闲的可能:需要时刻监控这所有服务器上的 error log。开着一堆的服务器连接,不停的 tail -f ,不停的到处救火,这就是上线的日子里的生活。 等好不容易稍稍平静一点,心情也稍微的可以宽慰些许了。于是回家,一觉睡到大天亮,到起床时还临时决定去文慧园的中国银行,将助学贷款给全部结清了。 于是,无债一身轻,无“上线”压力一身更轻。

被保护: 腾讯面试

3月8号,妇女节。 承蒙mango邀请,我来到腾讯位于北京的办公室面试。 因为昨晚加班将代码上线及线上微调(http://sinapay.sina.com.cn),一直弄到12点才回家,凌晨2点才睡觉,所以今天早上起来都还是晕晕的。一看时间,不好,9点20了。约的是 10 点,所以赶紧打车。 腾讯北京的办公室位于银科大厦(silver tech),16F – 21F。打车过去一会就到了。上到17层,居然让在门外等着。门口的椅子上坐满了来面试的人,年轻的,年老的都有。旁边两个人聊天,听了一会,原来他们是应届生,来面试体育编辑及奥运频道编辑。感慨一下时光流逝,似乎不久前自己还是应届生,转眼间,就成“跳跳”族了。 也许是因为来的人比较多,需要排队等待面试官的面试。坐在门口很无聊,想着腾讯这么大一个公司,怎么也不稍微人性化一点,安排一个会议室什么的让大家等,或者在门口摆点报纸杂志什么的给大家看看也好啊——有保安在门口,也不用担心谁将报纸带走了。 大约10点20,终于叫到我了。进门左拐,在一个呈圆弧形凸出的房间里见到了面试官——房间外围都是落地玻璃,往外看去,中关村西区的繁华尽收眼底。互相报了姓名才知道,他就是在qq上聊过的mango ——跟想象中的相差比较大的说。聊了聊自己的工作经历,熟悉的技术,以及对一些技术问题的探讨,例如 memcache,网通电信同步等等。 接下来是笔试——因为上次网上笔试做的不够理想,mango另外给了我一份试题,让我现场再做一下。这套题比起上一次做的来,稍微简单了一些,但还是有大量的需要手写代码的题目,没有时间写具体代码,只好使用伪代码进行主要算法的描述。看的出来,这套题侧重于测试应聘者的真实“写”代码能力,而不是理论知识:PHP获得用户真实ip(考虑代理服务器),获得用户上传的文件的真实类型,检查用户提交的email是否符合格式要求,无一不是写过很多代码的人才写的出来的。还有,使用 php5,mysqli 写无限子菜单(标明使用 php5 大概是希望用类实现吧),strtolower 中文乱码(要求使用3种不同的办法解决)等,也是需要写过一些代码才知道怎么回事。一般写 PHP 的团队是不太注重设计模式的,但自从 PHP5 出来之后,也有的项目开始使用一些简单的设计模式了,比如单例 (Singleton) 模式。对数据库技巧的考察也有:2个表的数据合并显示,不允许使用联合查询——一般大网站都不允许使用复杂的SQL的,前面的应用服务器想方设法降低数据库的压力,复杂的SQL要求尽量在前端进行简化后才被送到真正的SQL服务器执行。题目很简单,因为前几天自己正好做了一个更复杂的:多个表的数据合并显示,而且还要有翻页功能。做了大约 2 天,而且只能做到翻 下一页 和 上一页,无法给出所有的页码链接——因为在不允许一次取得所有记录的前提下,翻到第 n 页的时候,只能取得 n+1 页和 n-1 页的位置指针,其他的页码中的数据分布情况无法获得。笔试中最遗憾的是关于 xml 和 html 的“实体” 以及区别。我愣了半天,硬是没有想起来什么是 “实体”。笔试完了跟 mango 聊起试题的时候才知道,所谓的实体,就是那些单引号,双引号,&,<,> 等需要编码的字符。 笔试结束,已经是 12 点过了。mango 拿着试卷,边看边再次跟我聊。这一次聊的时候更多是关于腾讯那边工作的内容了。包括工作地点,待遇以及福利什么的。只是那边要求的时间太紧,而这边新浪支付即将上线,户口,违约金等等又困绕着,左右权衡,还真不好选择。 PS. 面试中问到了一个问题,关于程序运行过程中获得程序的输入输出,其实是 strace 命令的用法,当时不会,记录在次以备查: strace命令用法 调用: [...]

腾讯的笔试

腾讯的笔试原预计周日进行,临时调到昨天晚上。 在进行了一整天的 SetErrorCode 后,来不及做任何准备,就开始了答题。 家里小蔡的电脑很不习惯,没有 Cygwin,没有 PHP 手册,没有 SSH,用 PuTTY 连上公司的测试机还慢的像断了腿的蜗牛。自己以前留存下来的经典代码也无法参考。用 QQ 而不是更干净整洁的 TM,用 IE 而不是自己熟悉的 FF。一个小时的中文测试,居然到了快 20 分钟的时候才做完第一题。 腾讯招 PHP 的是QZone空间的部门,可是打开空间看了看,并没有发现 PHP 的丝毫痕迹。QZone 使用大量的 Js,对搜索引擎极其不友好,只支持 IE 等做法恰恰跟自己喜欢的方式相左。本来还希望往服务器配置,优化,管理的方向转,但仔细一看QZone的服务器,Server: WS CDN Server,这是啥?Server我知道,CDN我知道,可是WS是什么? 腾讯的笔试题比较重视正则表达式,短短的7道题,居然有2道与正则有关。关于 PHP 的安全模式,命令行模式,魔术函数,以及网络调用都有涉及。令我感到意外的是,居然有一道算法题,使用 PHP 实现双向队列。这本来应该是我的强项,只是最后却因为时间关系而来不及细写。 英文的测试题相对简单多了,大约腾讯并不要求很高的英文能力吧,以至于像我这样只过了六级,又好久没有折腾英语的人,都非常轻松的完成了答题,而且时间上居然还有一点富余。 其实说起来,还是要非常感谢腾讯的 lin,为了这次笔试陪我加班到那么晚。即使这次没有成功,腾讯还是以后可能优先考虑的一个选择。

腾讯的笔试

腾讯的笔试原预计周日进行,临时调到昨天晚上。 在进行了一整天的 SetErrorCode 后,来不及做任何准备,就开始了答题。 家里小蔡的电脑很不习惯,没有 Cygwin,没有 PHP 手册,没有 SSH,用 PuTTY 连上公司的测试机还慢的像断了腿的蜗牛。自己以前留存下来的经典代码也无法参考。用 QQ 而不是更干净整洁的 TM,用 IE 而不是自己熟悉的 FF。一个小时的中文测试,居然到了快 20 分钟的时候才做完第一题。 腾讯招 PHP 的是QZone空间的部门,可是打开空间看了看,并没有发现 PHP 的丝毫痕迹。QZone 使用大量的 Js,对搜索引擎极其不友好,只支持 IE 等做法恰恰跟自己喜欢的方式相左。本来还希望往服务器配置,优化,管理的方向转,但仔细一看QZone的服务器,Server: WS CDN Server,这是啥?Server我知道,CDN我知道,可是WS是什么? 腾讯的笔试题比较重视正则表达式,短短的7道题,居然有2道与正则有关。关于 PHP 的安全模式,命令行模式,魔术函数,以及网络调用都有涉及。令我感到意外的是,居然有一道算法题,使用 PHP 实现双向队列。这本来应该是我的强项,只是最后却因为时间关系而来不及细写。 英文的测试题相对简单多了,大约腾讯并不要求很高的英文能力吧,以至于像我这样只过了六级,又好久没有折腾英语的人,都非常轻松的完成了答题,而且时间上居然还有一点富余。 其实说起来,还是要非常感谢腾讯的 lin,为了这次笔试陪我加班到那么晚。即使这次没有成功,腾讯还是以后可能优先考虑的一个选择。

新浪年会

公历的年初,农历的年底。 公司选择在这样的一个时候在这样一个地点来开这样一个年会:没有其它公司员工都有的年终,没有年底双薪,有的只是中奖面不到 1% 的抽奖。 本来以为所谓的年会,应该是一个“会”,也就是领导们讲讲话,大家鼓鼓掌,然后一些员工代表什么也发发言,大家继续鼓鼓掌。哪知道一开始,就吓了一跳:艳舞,惊艳全场。音响,灯光,烟雾,口哨,尖叫,看架势,整个一娱乐晚会。 带了相机,却没有拍到什么好的照片——虽然坐在所谓的 VIP 区域,却是vip的最后一排。想要看拍的好的照片,点击 这里 吧:(http://photo.sina.com.cn/list/photo_s.php?uid=1400314314&ctg_id=99798) http://photo.sina.com.cn/list/photo_s.php?uid=1400314314&ctg_id=99798 http://photo.sina.com.cn/list/photo_s.php?uid=1151840394&ctg_id=100380 http://photo.sina.com.cn/list/photo_s.php?uid=1495295187&ctg_id=99867 http://photo.sina.com.cn/list/photo_s.php?uid=1400042283&ctg_id=100257 http://photo.sina.com.cn/list/photo_s.php?uid=1402618337&ctg_id=101469