雅虎,伟大的先行者

2008年11月23日

很久很久以前,互联网世界一片混沌,众多的资源零星的分布在看不见摸不着的没有边界的虚拟空间里,虽然聪明的人们发明了简单易记的域名系统,但是如果你不知道你的内容在哪里域名上,无论如何是找不到的。

就在这个时候,雅虎的诞生像光一样照亮了混沌的互联网世界。

1999年我第一次来到网吧,打开Netscape浏览器,头脑中出现的唯一一个域名就是www.yahoo.com,互联网大门由此敞开。通过Yahoo,你可以在互联网上找到你所需要的所有内容(只要它存在)。这样一个简单的目录,造就了一代传奇。后来搜狐完美继承了雅虎的目录式门户,又成就了另一个互联网传奇。

现在来看,雅虎的成功是运气造就的,时代给了他一个机会。后来随着互联网内容的爆炸式增长,目录列表繁重的查找体验已经满足不了用户的需要,于是关键字搜索功能应运而生。

当Google的两位创始人拿着自己的论文和算法找到雅虎想要卖给他们的时候,雅虎犯了当年IBM对待微软同样的错误,粗暴的拒绝了这个天上掉下的馅饼。不得不说,雅虎的创始人的眼光过于短浅了。因为Google的两位创始人在写出这个算法的时候,雅虎的搜索能力在互联网的杂乱无章面前就已经显出了疲态。而雅虎却被自己的收入蒙蔽了双眼。

2008年,雅虎被微软摆了一刀,又恰巧赶上金融危机,从此坠入深渊。杨致远在雅虎的命运转折点之前又一次犯了致命的自大的错误,不但损失了金钱,而且损失了更为重要的名誉。

雅虎在门户和搜索之间摇摆不定,在庞大的中国市场折戟沉沙,被人遗忘,在门户方面已经远远落后于Myspace和facebook这些新兴的SNS门户,在搜索方面更是无法望Google之项背,在这种不利的市场环境下,杨仍然盲目的自己对雅虎的价值判断,不得不令人感慨。杨是拿雅虎当作自己的孩子来看待的,而不是自己的产品。如果能在金融危机爆发之前把雅虎甩给微软,那杨致远将成为历史上最有价值的CEO——公司卖出后半年就跌价300亿,远超过史玉柱的战绩。

可惜,没有人再给他第二次机会,杨的黯然离去,似乎也让我们看到了雅虎这个昔日霸主未来的命运。为他悲伤的人不多,因为现在的网民都是在Google和百度的光环下成长起来的,记得他的人也不多了。

业界动态 , , ,

浦发银行对待支付宝和客户的态度问题

2008年11月21日

在淘宝和百度的软文大战中,先是有“新闻”指出多家银行正在封杀支付宝,远离支付宝,随后支付宝马上站出来声明,这纯属造谣,我们正在跟更多的银行达成协议。

随后,中信银行将自己的信用卡在支付宝的使用额度限制到了1000/月。这个额度,连个很普通的水货手机都买不到。此言一出,网上立马充满了准备注销信用卡的声音。

此前我一直使用浦发的信用卡,由于在淘宝上做点小生意,所以支付宝的交易额度也挺大。以前浦发信用卡的额度限制是每笔3000,每日也是3000,每月无限度。结果昨天再支付的时候一笔3000的充值连续出错,立马想到,浦发信用卡也修改了自己的额度限制。于是上支付宝网站查公告,没有,上支付宝论坛,也没看到消息,上浦发银行的网站,也没找到,用Google搜都没有找到任何消息。于是打电话到浦发客服,客服告诉我,刚刚修改了规则,单笔1000,每日5000。至于为什么不发公告,客服人员也说不出个道道。

今天再次完成一笔1000元的支付宝充值的时候,又连续报错。再打电话到浦发客服中心,告诉我,接到上级通知,刚刚修改了规则,现在是单笔500,每日限额1000。我问哪里有这条公告,答:正在处理。

浦发平常动不动就给我发点手机短信和Email提示这提示那的,为什么这额度修改不提示?技术原因?

支付宝上至今仍然写着单笔3000的限额。

是支付宝的问题,是浦发的问题,还是有啊的反击?

业界动态 , , , ,

树形结构数据的数据表设计

2008年11月20日

程序中用到树形结构的地方有很多,比如自定义文章分类,允许用户无限级添加子分类,比如用户交流的时候的回复,可以对回复进行回复。树形结构可以完全避免让用户的逻辑思维和使用习惯受程序的限制,最大限度的给用户自由,实现对数据的最大利用。

对于以行和列为基础来保存数据的关系形数据库而言,无法直接保存树形的数据,所以必须以其它的方式来实现。

最基本的方式就是保存一个ParentID,显示每条记录的时候去它的下级内容,以递归的形式把树显示出来。这是最简单的逻辑,而且实现起来不复杂,代码写出来也很容易阅读和理解,而且对条目数量也没有任何限制。但是如果每条记录都要执行一下Select,无疑会给数据库造成巨大的压力。即便一次读到数据库里,在内存中一次次的遍历,也会非常浪费CPU资源。

另外一个方式是给每个对象加一个排序字段,让数据在取出来的时候就直接排成按照树形结构的顺序取出来,在显示的时候也无需多次遍历,只要逐条输出就可以,只要根据排序字段和深度来计算它的缩进深度就可以了。

通常的排序字段使用一个简单的字符串即可,比如第一条记录的值为01,第二条为02,第一条的下级内容为0101,0102,依次类推。从数据库中取出的时候,数据库对字符串字段的排序是以字节所代表的值的大小来排的,所以排序之后的顺序就是01/0101/0102/02/0201这个样子。显示的时候这一个值就可以表示出它的上级和它的深度,相当方便。但是这种方式的一个主要坏处是内容的条数受限制,如果每一级用两位数字来表示,那同一级最多就只允许99条内容。用三位就是999条,一旦超出,整个逻辑就被破坏了。所以使用之前需要考虑清楚你所容许的最大条数是多少。(这个字段不止限于数字,同样可以用字母,比如009之后是00A,一直到Z,那么三位所允许的条数限制就是36*36*36,也就是46656条。如果用四位,就达到了168万条,通常这已经足够了。)每层的条目有限制,但是总的层数却是没有限制的,因为可以用nvarchar(max)来保存这个字段,字段长度不限。所以理论上你每一层给它10位也没问题,这样每层的条目限制就成了36的10次方,已经足够多了。

还有一种排序字段是使用数字,比如这篇文章http://www.cnblogs.com/zhuor/archive/2006/08/26/487095.html,但是这篇文章的使用方式有个问题,新的回复会出现在同一级回复的最前面。如果用于回复表,这个显示顺序是很奇怪的。但是让小数不断的除以2,也会受到float的小数点容量限制。

所以,目前我们认为,最好的方式还是使用字符串。

技术文章

百度所做的,只是道德问题,不是法律问题

2008年11月19日

百度很惨,成了过街老鼠,人人喊打。是个报纸就出来揭一下搜索黑幕,是个电视台都站出来摆明立场,逼的老总出来道歉,股价暴跌。

百度所做的事情其实是很自然的,作为一个纯商业公司,利益是第一位的,手段没有错,只是执行力度的问题。好比养猪,一个好的养猪人知道应该在三个月的时候杀才是最大利益,一个差的养猪人却喜欢在两个月的时候杀掉,钱是一样赚的,只是长远与否的问题。

不管怎么骂百度,对它的MP3搜索丝毫没有影响,百度最大的市场在哪里?在网吧。百度最大的用处在哪里?在MP3。这场道德危机被媒体和个人站长过分的夸大了,其实真正受竞价排名伤害的,还是这些出钱做竞价排名的人,而不是搜索这些关键字的人。因为一条搜索记录被不良医院骗一万块钱,发生的概率和波及范围绝对要比电视直销里不怕高空摔的国产名牌全能手机要少很多。

搜索技术文章,我用Google,因为百度其实不怎么懂中文,特别是中英文混合的时候。但是这并不是我骂百度的理由,搜MP3的时候,我必须用百度。当然,百度把竞价排名的搜索结果跟非竞价排名的放在一起,很容易被点到,但是这也不是我骂百度的理由。出钱做竞价排名的网站上满屏的广告比这个厉害多了,毕竟百度还是标出了哪些是推广链接。

就像开源软件,Linux是免费的,所以你要求他按照你习惯把桌面做成跟Windows一样,不好意思,没人理你。Mysql是免费的,所以你想让他们加上Oralce的一些特性,对不起,也不会理你,人家有人家的开发目标,你只有选择用或者不用的权利,没有别的。百度也是免费的,你可以选择用或者不用,但是你不能要求他不放广告,或者少放广告,这与你无关。

现在大家最开心的,百度最担心的,就是因为这个事件影响了百度的竞价排名销售体系,如果ZF这时候插一脚,非得出个什么规定,每个关键字广告条目不能多于三个,那才真的是没有天理了。其实百度大可不必担心,一个愿打一个愿挨的问题。当我想找一个商业的Flash报表控件的时候,我就会去Google搜Flash图表,然后在右边的广告里点一个。因为免费的基本上没几个好用的。当然,如果我要找搬家公司,我是不会去百度搜索搬家公司的,我会打114,而如果我要找家具卖场或者家电评论,用百度也不会带来任何问题。

至于那些自愿去点击了推广链接,而又寄期望于这是家诚信合法的公司,就好像你让出租车司机带你去PJ,而又寄希望于他无私的帮你推荐了一个最漂亮最实惠的店一样,又或者你跑到电脑城让促销人员帮你推荐机器而又指望他是个完全诚信的人一样。这不是脑残吗?你会去信任电线杆子上的治疗性病的小广告吗?不会,那你为什么相信百度上贴的小广告呢?如果电线杆子属于私人企业的话,它们也会被标价贴小广告的。

CCAV曝光百度的非法医院问题,有什么法律依据吗?没有,拿的还是道德的准绳。一个企业以道德为由在13亿人面前骂另一个企业,无非还是因为垄断地位和政府背景。如果阿里妈妈站出来骂百度,即使说的再怎么有道理,也没权利上CCAV吧?再说,中央台的广告有人审核吗?奶粉不是照样做广告,不孕医院不是照样做广告?全能手机不也照样卖?

百度不会因为少卖几个关键字而死掉,百足之虫,死而不僵,中国被人骂着活下来的企业并不少见,橡果国际都没死掉,百度当然更没有理由死掉。只是一个活着的身份而已,伪君子或是真小人,照样活。

劝那些跟风骂百度的人闭嘴吧,这年头,哪个生意人的道德都高尚不到哪里去。

业界动态 , , ,

sql server 2005数据库日志无法收缩

2008年11月14日

数据库出问题的过程:数据库体积很大,分两个文件,共40多G,没有启动完整日志,用的是简单日志。经过几次非法关机重启,数据库状态被标为可疑,无法使用。为了尽量减少损失,没有采取还原备份的方式,想办法恢复此数据库。按照下面的步骤解决了状态为可疑的问题:

USE MASTER
GO
SP_CONFIGURE ‘ALLOW UPDATES’,1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption ‘MyDB’, ’single user’, ‘true’
GO
DBCC CHECKDB(’MyDB’,'REPAIR_ALLOW_DATA_LOSS’)
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure ‘allow updates’, 0 reconfigure with override
GO
sp_dboption ‘MyDB’, ’single user’, ‘false’
GO

数据库可以用了,但是操作系统日志里频繁的出现一些sql server的错误日志,类似于

伺服器: 訊息 7105,層級 22,狀態 6,行 1

text、ntext、或是 image 節點的分頁 (1:62855),插槽 19 不存在。

这种(原文找不到了,这个是网上找的)。后来对几个大的表进行了单独的dbcc checktable修复操作,显示修复了一些错误,数据库使用起来比较正常了。

为了防止这种意外再次发生,把数据库日志改成了完整。后来发现日志膨胀的速度非常快,到了20G的时候,想收缩一下日志,结果失败。

无论是把日志改为简单,还是执行BACKUP LOG with no_log,再去收缩日志仍然显示可用空间为0,收缩没有任何效果。

最后日志一直增长到60G,正好这个时候换了台新服务器,于是只复制了数据库文件过来,日志文件没有复制过来,再附加,可以自动生成一个新的日志文件(前提是必须在原服务器上分离,直接停止数据库服务是不行的,附加的时候会说数据库没有正常关闭,必须要原来的日志文件才能附加。因为这个,40几G的数据库在两台机器之间拷了两回。)

在这个新的日志增长到6G的时候,再尝试截断后收缩,结果还是说里面的可用空间为0,无法收缩。后来再博客园朋友的提示下,用DBCC UPDATEUSAGE命令修复数据库的行记录数,修复了一些错误,但是还是无法收缩。根据该网友的提示,换了一些英文关键词在Google上搜索,后来找到这样一个函数:DBCC OPENTRAN(dbname),显示

已复制的事务信息:
最早的分布式 LSN : (0:0:0)
最早的非分布式 LSN : (1051867:2025:1)
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

而在其它正常的数据库上运行这个命令,则没有前面三行东西。那么,问题应该是在这里了。再加上这些关键词,最后,终于找到一个跟我差不多原因的一篇帖子:http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3757111&SiteID=1&pageid=0

这篇文章的最后给出了微软MSDN的一个链接,里面提到了一个命令:sp_removedbreplication。通常如果你设置过数据库复制或发布,而后来设置失败并没有启用,可能会导致这个问题,你看不到跟复制有关的内容,但是在数据库里却存在这样的东西,于是日志被它堵住了,这成了一个永远无法完成的命令,所以后续的日志都无法截断。执行了这个命令以后,强制清除了复制内容。虽然我的数据库从来没有手工设置过复制相关的东西,但是不知道修复数据库的时候改错了什么东西,造成了这样的后果。执行了这个函数以后,再去收缩日志,可用空间变成了99%,成功将日志文件收缩到10M大小。

一个困扰了一个月的问题终于解决了。

技术文章

金甲战士,一切只为向利益看齐

2008年11月12日

中国在恶搞了蜡笔小新之后,又来了一次恶搞奥特曼。金甲战士的造型说不是抄袭奥特曼的话,连村头的二傻子也不会相信。但是,很容易的可以看出,这部片子在恶搞之余,真正的目的,也不过是为了钱。

片子的拍摄成本很低。为了降低拍摄成本,一切都趋于简化,尽最大努力减少道具成本,而大量的使用电脑技术来补充。但是真正的电脑特效一点也不比制作道具便宜,所以,本片不得不使用最最简单的电脑技术,画出来的卡通人物,基本上连七巧板的过场动画都不如。另外,把超级英雄做成跟真人一样大小,也省却了搭建迷你城市模型的工作,所有的战斗场面,都是在公园里拍的,两个人拍拍姿势,用电脑加点闪光上去,就OK了。

而跟成本最小化相对应的,就是想办法把利益最大化。片子里所有使用到的道具和模型,包括服装,刀剑,还是飞机,全部使用最最简单易行的造型来实现,毫无质感可言,很明显,这样最有利于市场化,而且市场化的成本也很低。当然了,越是精致的玩具越容易卖的贵,但是买的人少的话,可能会有亏本的危险,而现在这样就不会,就算卖不出去,也亏不了多少。如果能借点奥特曼的东风卖上一些,那就大赚特赚了。

中国的动画片工作者,已经愚昧到只能靠抄袭人家几十年前的东西来混口饭吃了。而国家又用法律手段禁止在黄金时段播放国外动画片,小孩子在9点钟睡觉之前都不可能看到一部好的动画片,只能看一些低幼的东西,长此以往,一定会大大影响我们下一代的想像力和创造力,而抄袭事件本身,又会严重影响他们的道德观和价值观,这样的幼儿教育,如何保证我们的未来?

影视杂谈