日志分类:都是高科技

优酷的搜索让我失望了

虽然身为著名视频网站T公司的超级工程师,但我总是去优酷看视频,最重要的原因是优酷的视频清晰,特别是一些电视剧、电影,播放器的尺寸也比自家的大,当然我有个更加冠冕堂皇的理由:去视频老大哥家里看看有什么好东西,回来怂恿产品经理也设计一个类似的。优酷的准实时搜索做的比较早,产品经理当时经常骂我:人家优酷能搜出7分钟前上传的视频,我们连7个小时前的也搜不出来。后来我们把这块也实现了,用户上传视频后10分钟内就能搜到,终于敢抬起头走过产品经理的办公桌了。

我是美剧TBBT(the big bang theory)的粉丝,这部剧中文名叫生活大爆炸或者天才理论传,美国时间一般是每周一晚上播1集,北京时间周二中午优酷上就能找到无字幕版,下午六七点就能找到有字幕版,我已经习惯了这样的周二生活:吃完午饭去优酷看无字幕版,由于英文水平不咋地,下班后再看一遍有字幕版。今天就是周二,午饭后看了s03e09无字幕版,心里默数由于语言障碍有23个笑点没弄明白,憋着下班时再找有字幕的看。可是吃完晚饭后我去搜索时居然没找到有字幕的,所有可能的关键词我都试过了,排序方式也选按“上传时间”倒排,就是没有,难道字幕组的人去集体冬泳了?心有不甘的回到家里,例行上网歌颂了几遍党和政府,眼看十点过了,上优酷搜,还是没有,我心里一紧,难道优酷的搜索出问题了,真是比自己负责的系统出了宕机事故还紧张。

出于对自己和优酷负责的态度,我试着找了s03e08,很多,都是一周前上传的,随便找了其中一个上传者,进入他的播客主页,赫然发现s03e09有字幕版早就上传了,果然是搜索系统出了问题,索引没及时更新,截了两张图以作纪念。

此外上面截图里该播客的前几个新视频无一例外都搜不到。我一直认为搜索的实时性对于UGC网站来说是极其重要的,想象一下:用户在上传成功后马上能搜到自己的成果是多么有成就感啊!我今天没搜到TBBT s03e09非常沮丧,真希望这只是一次偶然发生的小故障,期盼优酷的搜索技术同学能戒躁戒躁,不要躺在以往的成绩上睡大觉,不要把精力花在华而不实的项目上,不要在重要功能点上出现反复,以科学发展观、三个代表思想指导自己的工作,擎起国内视频搜索的大旗,屹立在不老的东方。如果下次我还搜不到TBBT,会打电话过去骚扰你们客服的,嗯哼。

原文发表于2009年11月25日

多个权限的存储结构

我不想在blog上写技术,原因有两个:1.我十分担心写的内容涉及到公司核心技术机密,会被公司的法务抓起来刑讯逼供,要知道这群人都看过风声,手段高明的很,如果在我额头上刻上“间谍”、“叛徒”,以后再也找不到工作。2.怕皋博士发现我并不是和他一样不学无术,天天看AV,这样就会失去我最亲密的朋友,落得百年孤寂。

前几天dexter怂恿我:“你不写技术怎么能彰显你的功力,扩大blog的影响呢?”虽然我很功利,但是显不显功力我倒不在意,后者倒是我担心的关键,我的blog流量最高一天也没超过5个独立ip,偶尔有人也是搜索AV女星、黄色网站来的,虽然我和他们有同样的爱好,但是恐怕让他们失望了,这个blog基本上是属于纯文学范畴。dexter说国内的活跃互联网用户以it民工居多,要抓住他们就要写技术,我过得了皋博士这个心理关口,但还是忌惮法务的野蛮,dexter说不要紧,我去看了他的blog,哇靠,就算我这个不懂js的人也知道土豆前端是怎么写出来的了,就都不算泄密我还怕他奶奶个奶。

我很想写站内搜索,可是题目太大,一时不知从何下笔;想写TDD—测试驱动开发,但发现自己从来没严格执行过;想写项目管理中的思辨,但又觉得太虚;想写P2P开发中要注意的若干问题,但我又不会。这可难倒我了,正巧在做发布,敲些linux command line,想起半年前做的一个后台,里面的权限存储结构设计受到了linux权限的启发,就写这个好了。

问题:一个系统有n个模块,可以自由设定某个管理员可以管理哪些模块,怎么存储这些权限呢?

最直接的想法是数据库表里建立n个布尔型字段,每个管理员对应一串true、false,这样一来表设计就比较啰嗦,这还不是最麻烦的,过两个月产品经理说要增加一个模块,这个模块也要有独立的管理权限,这就逼着你在数据库加字段,很可能要请DBA操作。半年前我就碰到这样一个后台,9个模块,不同的管理员权限范围不一样,当时正在敲chmod 774 *.sh,就有灵感了,r=4,w=2,x=1,3种权限正好用二进制的其前3位表示,9个模块可以用9位二进制数表示,如果以后增加管理模块,只要增加第10位,11位,…就行了,事实上,半年后增加了5个管理项,现在数据库里每个管理员对应着一个整数,只用位操作就知道他的管理范围。mysql里int最大到2147483647,能存30个权限,bigint可以存62个权限,如果用unsigned可以多存一位,超过了这个数字就自己想办法吧!

这个问题讲完了,很简单的东西,但不是每个coder能想得到,写下来希望对某些人有帮助。其实我是不愿意做管理后台系统的,这涉及到大量的表单提交,而表单校验是很无聊的一件事,毫无技术含量,比如用户名是不是只含有大小写字母和数字,身份证号码是不是15或18位出生年月是否合格,url地址是否可以访问,我可以在这列一份五万字的怨念,但除了皋博士没人愿意看这些,想到这篇blog是为广大it民工写的,我就此打住,此致敬礼!

原文发表于2009年11月20日