今天的几个感悟

第一,人一定要站在风口浪尖上,站在台风口上,即使是猪也是能飞起来的;从我个人角度上来看,选择很重要,每一个选择真的是决定之后很久很久的一条路;

第二,自己还是要专注的做技术,我曾经想当然的以为产品能决定很多很多东西,但其实,今天听了个风投以及几个想拿风投的同学的聊天,差距还是很远很远;自己当然还是要练表达的,把事情表示清楚,这是最基本的,但是一方面自己要多练习这个,另外一个方面还是要把自己的强处做的更强一点,当然我觉得自己离这个目标越来越近了,这也是为啥留在百度再留两年的一个原因,大搜的检索系统我还有一些模块不是很清楚,之前虽然也写了一些检索系统,但是更多是自己根据经验设计出来的,真正线上大环的那套系统,我想搞明白他怎么run的;

第三,多交流,多和不同行业的人交流,多听听他们的话,获益匪浅

 

一最重要,三其次,二要好好做

精确搜索&模糊搜索

随便写写

简单讲讲垂搜网站的检索系统,检索系统需要满足从海量的数据中去获取最符合用户需求的数据返回给网民,这就是检索系统,所以一般的检索系统基本上会涉及到数据的组织,数据的查询规则,数据的实时排序等等因素,结合之前的项目,说说我自己是怎么做的;

之前做的一个精确检索采用的是空间换时间,考虑到团购会影响的因素主要包括:已购词、品类、地域、品牌、商家等因素,所以在处理这个问题的时候,精确匹配实际上是采取了自己圈定一批词,这批词能够确定之前这些选项,如“便宜的耐克鞋”事先会对这个词进行标注,“运动”、“耐克”会体现解析出来,地域信息也会根据ip来进行获取,然后会根据这些信息,直接去查kv表,而kv表,就是一开始客户在上传物料的时候,直接生成对应的链,这样精确检索实际上就是一个分类问题,把物料全都精确的分到具体的类别进去,精确检索就是把客户的需求精确的定位到某一个分类,模糊查询就是把客户的需求定位到某几个分类,然后这些分类进行合并或者取交;

这个系统的好用与否取决于两部分,一部分是物料精确的分到某个分类中,另外一部分是query精确的分到某个分类中,因为检索行为实际上是根据分类来定义的,但是而根据行业词表之前的经验来看,这种做法完全取决于分类的精细程度;微购做了个更复杂的分类系统,以及设计了一个语法来表示分类之间的并和交的问题,但是所有的精确性都取决于分类是否能够精确;为啥这么做,因为业务简单,数据量少,分类也比较明确,所以可以用这种方法来做,如果维度多几个,这样做就很难去做了;

而以我的经验来看,加快性能的几种方法,一种是空间换时间,这是最简单的方法,也就是加机器,一种是在线换离线,把业务相关的全部放在线下做,把在线全部算成kv表,实在不行需要放在线上的,比如实时个性化推荐,这种要根据之前一个session的内容出推荐结果,线上也只能做最简单的合并求交操作,还有一种就是写代码的水平,在大部分的业务中,写代码的水平不是核心问题,但是一旦要考虑到性能这种case,写代码就成为最核心的问题了,所有的问题最后都归咎为写代码,再好的架构,如果写代码的比较挫,也不行;回想这么多年来自己的写代码水平,哎,也就勉强算个一般般,能钻个细节,但是复杂的acm就搞不定了。。。或者5页的:

另外一种,精确检索可以衍生为“特征”对应的倒排链,多条倒排链先进行合并,再进行条件过滤后,最后进行排序(个性化和自然各给一部分权重),返回结果,这样得到的实际上就是最重要的结果,如果性能不够,一方面可以直接裁剪(最重要的往往就是前面几页),另外,就用高级一点的数据结构,但是维度越高,在拆库和合并的时候就越复杂,还可以用一张大一点的kv表,一张不够就用两层,一层kv再查一层kv,总是能解决问题的;

开源

公司最让我觉得蛋疼的,就是所有数据都藏着捏着,生怕被外面的人知道了;很多时候不仅怕外面的人知道,也害怕内部的人知道。。。当然从公司的角度,这种行为是可以理解的。。但是从我个人来说,有时候觉得很无力,第一:数据来源于网民,我们没有能力回馈网民也就算了,还不能给一些可以回馈给网民的同学来用,从程序员的角度来看,有点不大气;第二:公司无非怕数据被别人知道了,用了,产生了新的好东西。。但是就公司这么蛋疼的内部创新,这么多年来,做了什么产品出来。。。还不如把东西给别人,无非就是对自己不自信呗。。要是我的话,怕什么新产品出来呀。。数据是我的。。人才我也有,难道还怕干不过别人么?

 

一个不愿意开源的公司,最后一定肯定及确定是会被淘汰的。。。

沟通杂谈

一个不是特别好的项目,如果自己还不想尽办法来解决问题和坑。。。把期望寄托于老板。。或者pm的宏观伟略。。我想除非狗屎运来了。。不然肯定是要夭折了。。。

 

成功。。最重要的当然是运气。。但是就算有运气,你也要有能顺势的本事。。

新西兰游记

新西兰是个很好很好的国家,这次旅行一共花了15天,玩的也很愉快,写个简单的攻略,供以后回忆;

攻略在之前的很长时间其实都没有做,这次也确实是我懒了,所以基本上都是明明和我妹子在做的,他们两每个人都做了一个攻略,不过一个是顺时针的,一个是逆时针的,然后到了奥克兰,我们自己merge了一下,觉得太辛苦,就画了一个更小更小的圆,然后我们就按照这个小圆走了;

行程:
4.5: 上海->广州->奥克兰,到达奥克兰为4.6的早晨7点
4.6: 等了半天的酒店班车没来,明明坐上车过来接我们了,稍微的等待了一会,就去逛奥克兰了;到了的第一个感觉就是天好蓝呀,云层很低,看起来感觉很好的样子,之前是以为新西兰的纬度低导致的,回来查了查百度,奥克兰大概是介于上海和北京之间的纬度,也不算是特别高的纬度,所以,就算是它比较奇特吧;打的去了市中心,吃了新西兰的第一顿饭,面包还是啥的,然后就开始漫长的逛街走路,天空塔好矮,完全称不上地标嘛,海边挺好的,风景很好,当时的第一感觉就是,天很蓝,海很蓝,风景特美;海边躺了会,然后去吃中饭,明明先买了帽子,然后我们发现可乐和国内一个价格,只是要乘以汇率5,顿时觉得喝东西好贵。。。。好不容易找到了一个吃中餐的地方,吃了个饭,胖子点了个面,餐馆里面好多鸟,都飞到桌子上来吃东西了,尼玛。。。吃完旁边找了公园遛了遛,逗逗公园的乱七八糟的鸟,躺草皮上晒晒太阳。。然后尼玛。。我们4个都睡着了。。。睡了好一会,下午继续逛,奥克兰大学,不知道是不是假日,学校里面没啥人,除了图书馆。。。图书馆里面空间还不错,比较有立体感,和国内稍微不一样,国内的房子内部结构基本都一样的,外部也基本都一样,国外的别墅基本都不一样,没有相似的;图书馆看完,继续逛校园,后面一个公园上去,喝了杯咖啡+冰淇淋,就是奥克兰博物馆,挺不错的地方,外面挺漂亮,里面展品很多,二楼是动植物,和国内不一样,有很多是活的,和动物园一样,挺有意思,然后就是打车回来了,晚上找了家宾馆边上的地方吃饭,披萨+一些杂七杂八的东西,没啥感觉;
4.7:早上起床后坐飞机去基督城了,下了飞机拿了行李,去取了车,然后就是开到城里,先去租东西,然后就是三商超市买化妆品,女人到了这个时候,就是特别有精力,2,3个小时随随便便就过去了,买完已经6点,然后就回来做了点饭吃饭了,火一直不大,所以下面下了很久很久。。。接着就是睡觉了
4.8:早上在旁边的公园走了一下,看到一群小孩子在打橄榄球,绕着公园走了一小圈,走到一个小湖边上,看到一群人在玩航船的模型,其实我也喜欢这种安静的运动,发发呆,最近老是想到死,生命一辈子其实很短很短的,最近都是这个矛盾,一方面吓的要死,另外一方面在不停的拖延拖延,每个人都需要一个时间去养成一个习惯,我的问题就在于人太随性,不是很坚持一些好的东西;然后就是开车去看星星的地方了,一路上风景不错,是真不错,中间下车去取了点钱,感慨就是国外人真是车遇人,在红绿灯前面一定让路,然后一路到达我们第二个景点,下午4点左右到的,老板说房间没有清理好,就去看星星的山顶去了一趟,喝了杯咖啡,还不错,虽然天气不好,但是山顶看下去看得挺远,有点当年格尔木的感觉,下来做饭,明明和老婆吵了一吵。。。(原因是老婆没拿行李回来。。)尼玛,我家都是老子做下人的么。。极度感觉到家庭地位的严重不平等。。哄了一会,然后一起去看星星了,风景还可以,没有银河,但是能看到还挺多的星星,挺漂亮的,然后他们就好了。。。
4.9:昨天晚上得出的结论,就是直接去库克山,徒步完,然后去瓦拉卡,库克山很美,像南迦巴瓦。。不过确实天气不太好,在库克山的某个顶上求了个婚,然后哈哈。。。一路风景都挺好,路上风景也挺好,很漂亮,到瓦纳卡的时候已经6,7点了,吃了个饭,我带着妹子出去看了看,看到一个叫prime的酒吧,然后就回来睡觉了。。
4.10:沿着湖边上走了一圈,2-3个小时吧,湖边还不错,跑步的人挺多的,有点霍比特人的感觉,然后就去开了个飞机,飞机因为天气原因,只开了半个小时,但是真的,飞机上看到东西确实和下面不一样,尤其比较低的时候,下面的湖确实还不错,上升和降落都有点狠奇妙的感觉,接着就去puzzle world玩了玩,有个房间,里面是倾斜的,根据视差的原因,很真实,直接的结果就是头很晕很晕,然后和胖子一起走了个迷宫,1-2个小时,虽然最后还是没有走出来。。。o(╯□╰)o
4.11:早上出发,翻了座山,去皇后镇,翻山的时候,还碰到一个邵阳的妹子。。。然后路过一个小镇,正好是百年庆,游行了好多好多老爷车,还有各种表演的,真不错,还有小飞机在做各种翻滚动作的,也有意思,然后就是去皇后镇了,第一个感觉,真漂亮,湖很美,真很美,然后就是发呆了。。。
4.12:天气不好,就去坐天空缆车了,在上面吃了顿自助,做了个滑车,不过很冷。。所以做滑车的时候看到的风景再美,也就那样了,晚上回去的时候买了扑克,打算天气再差就打牌了。。。然后打了几个小时牌。。王胖子刚学,水平不行,就被干掉了。。
4.13:果然天气不好,就只有在家里打牌了。。。
4.14:继续天气不好,早上出去沿湖走了走,就去峡湾了,到了找萤火虫洞,结果发现虫洞需要坐船,导航给了个对岸的路线。。。开回来,坐了个船去虫洞,虫洞不怎么样,但是一路的风景还不错,坐船的感觉还挺棒的;
4.15:今天是去峡湾,这100多公里,有点惊醒动魄,我一度在山上打滑,吓出他们一声冷汗。。峡湾很不错,看到了海豹,风景很赞。。还有各种各样的鱼,路上看到雪上,瀑布,挺好看的。。。回来就是他们两个睡觉,我一个人直接就开回来了;晚上打了个牌,继续睡觉
4.16:今天是去duniding,开到,然后想去看企鹅,开过去,发现企鹅下班了,看到一头巨大无比的海豹在马路边上,吓死,然后另外一边就是一堵墙。。全部是海豹。。。碰到一个台湾大叔,一开口就是我们台湾国怎么怎么样,你们大陆对台湾国怎么怎么看,台湾怎么怎么好,实在对国家大事评判不了,之前怕我听不清楚,说了2,3遍taiwanlism。。。其实了,实在对这些不感兴趣。。所有权的问题,都是上位者要考虑的,我们做群众的,只要生活安康就好了。。
4.17:今天去看了个很斜的坡。。一路跑上去,快挂的节奏,然后沿着海边继续开,开到一个岸边,很多很多的海鸟,密密麻麻占满了。。还有1-2只灵活的海豹,爬过来爬过去。。。还不错
4.18:这就是一天的赶路之旅,中午就到了,然后就是买东西,买完东西然后就是回去整理东西,手工
4.19:还车。。坐飞机去奥克兰。。送明明走。。我们去徒步,走了好多个小时
4.20:回程。。旁边是一个开大圈的大叔,也是两对夫妇,3000+的公里,真是佩服,悲剧的是到了广州,雷暴。。然后再广州睡了一晚上。。吃了个夜宵。。在一个吃还显得地方,点了两个蔬菜。。o(╯□╰)o
4.21:终于到家了。。大清早第一班飞机,然后胖子去上班,我去交车牌钱。。。

时间很长。。其实还不错,不过就是有点赶,跳伞没有去。。感觉有点遗憾。。不过放松的心情,假期有有就好了。。接下来的时候就是要好好好好的努力了,国内环境这么差,上海广州上方都是一层的灰,真的是生活在hard模式里面了。。。要加油了

 

IMG_2190IMG_2014IMG_2002IMG_2227IMG_2228

智能账户推荐

做智能账户推荐的时候,还处在刚入百度的阶段,基本上啥都不懂,而项目主要分为两个阶段:
第一个阶段是和伟锋、清姐一起做的,主要是推荐和系统框架的搭建,当时候的分工是清姐做框架,我来写业务,伟锋写一个kv表,框架是拿着kr的框架来改的,主要的修改我都不太记得了,业务也没啥好说的,就是这个后端访问一下,那个后端访问一下,然后串起来就好了,当时觉得挺头疼,现在看看,查pv、黄反毒过滤、已购词过滤、去重等等,基本都是现成的东西;kv表示所有做技术的人都想写的一个东西,因为大家都只想用自己的东西,基本上和其他的大同小异,就是简单点而已,不过作为三个刚刚入职不久的新人,能够顺利没有问题的做完,就是最大的成果了;项目花了差不多3个月的时间,有趣的点比如第一次和pm沟通,仰慕到pm的淡定,一个女生面对一屋子的大男生,很淡定的说no,那种风姿和气场,虽千万人吾往矣;还有现在来看这个事情我们基本上就是打了个酱油,因为说到底就是拿了个词表,然后做做各种过滤,就返回给前端了,词表的逻辑不是我们做的,性能也没有刻意的去要求,老板当时也是不容易,拼了个老命把这个拿过来,当然也算让老板满意,没有出太大的篓子,确实也是过的太不容易了;
第二个阶段是我和国富、梦龙做的,老板叫伟锋和清姐先去做节日营销,再去做行业推荐了,现在看来,也是在下一盘很大的棋,不过当年的行业确实是比较重要的一块,所以老板又站对了,只是当时的自己肯定是看不到这么远的,当然也没有看这么多,第一年的同学基本上只会想一个事情,就是如何把这个项目做好,第二个阶段多了几个事情,技术上不说了,从业务上看主要是三块,增加了两块内容,一块是业务的识别,一块是账户的组织,其他的在推荐逻辑上增加了一个相关性计算,整体和原来比就是多了头和尾,更加的健全了,首先是知道了做什么,然后是告诉给什么,最后是对账户重新组织一遍,调用的主要是行业分类服务,没有做性能的优化,不过当时的看的比较浅,所以一下子就陷入到业务的细节上去了,看的都是一个一个的细节,但是刚开始做都是这样子吧;
整体来看,做这个之前,对凤巢的业务真的是模模糊糊,做完这个之后,对百度的商业运作模式,各种kpi指标,基本上都有所了解,就不算业务的新人了,总体来说还是收获很大的

通用网站架构(起始)

原来觉得自己已经做过几个日pv上大几百万的网站,对通用的网站架构起始已经有一些了解,昨天在家的时候,仔细的想想,自己做的还只是一个大型网站的基础部分,或者只是他的一些组件,有很多的东西和需要注意的细节起始还没有考虑到,可能一个基础的网站我能搭出来了,但是更加细节的可能还不行

先说说会的:

1. 基础服务搭建:环境一般都是最麻烦的,nginx+php-fpm+redis+mysql+img-magic,这些组件的环境,以及快速链接各种服务器

2.php框架,MVC框架,常用的lib,连redis/mysql/mcpack,url改写规则

3.KV系统,高性能的C系统,以及转发switch用来做负载均衡

4.抓取系统,结构化抓取,网页渲染抓取

5.图片处理:常用的图片处理,和图片网站

6.通用的日志处理和数据可视化

7.基础的策略,切词、plsa、wordsim、分类、聚类、预测,基本上都能做出来,选特征可能会比较麻烦,但是简单能看到效果的还是很快能搞出来

感觉功能都是够用了,我能想到的大部分的网站,基础框架貌似都可以了,量要是多了,估计就需要各种优化了,不过这个作为一个开篇吧,以后想到什么再开始慢慢的讲;

最后补一个图片,锋哥的,以后慢慢的学习,慢慢的补上来;

QQ截图20150327104103