Yangfan.net

分类:Tech

共 72 篇文章,当前第 5 页

  • 简单的功能,复杂的实现

    2006/11/21

      想在HTML里实现一个很简单的功能,就是在<a>标签被点击的时候,执行一个javascript函数。然后发现,居然在IE6,Opera9和FireFox2三种浏览器里,实现方法还不一样。

      当然,通用实现是存在的,即<a href=“javascript:dosth(p,q);“>xxx</a>,这样所有浏览器都能认识。可是我不想这么写,因为这样的话鼠标移上去状态栏就会出现我的函数名,很难看。于是换一种写法<a onclick=“dosth(p,q);“>xxx</a>。更简洁了是吧?可是问题就接踵而至了。

      首先,不带href的<a>在IE6里是不能触发:hover的css的,也就是说原来鼠标移上去的效果没了,这应该和IE6不支持div:hover这样的写法是一个毛病,这个不难解决,加一个href=”#“就可以了,反正在FireFox和Opera里都不会因此出错。

      真正的麻烦从这里开始了:我的<a>标签不是直接写在html里面的,而是用javascript生成的。这部分代码很简单:

       act=“dosth(p,q);”;

       i=document.createElement(“a”);

       with(i) {

        setAttribute(“href”,”#”);

        onclick=act;

       }

      结果呢,在Opera里运行正常,而在IE和FireFox里,居然都不执行dosth(p,q)的函数!跟踪分析发现,这俩浏览器不支持onclick这么写——但是也不报错。既然不支持,那就写成onclick=new Function(act);,这时候IE和Opera正常,FireFox依旧不认。改用setAttribute(“onclick”,act);好了,这下Opera和FireFox倒是都认识了,正确执行了,而且用FireFox好用的查看部分源代码功能可以看到输出是完全正确的(貌似只有FireFox提供了这个强大而实用的功能,其他浏览器都不能看执行结果的代码)。但是IE,却不执行dosth(p,q)函数,仿佛根本不存在一样——而直接在html里按这样的href+onclick属性书写是没有问题的。

      最后反复调试,还是解决不了问题,没办法,只能用最无奈的方法,判断浏览器,然后对人说人话,对鬼说鬼话了。如果是IE和Opera就执行onclick=new Function(act);,如果是FireFox,就执行setAttribute(“onclick”,act);。

      这好端端的一个简单功能,非要整得这么麻烦,唉。

      更新@11.23:原因找到了,非常简单,不要在with(i)里面写onclick=new Function(act);,直接在外面写i.onclick=new Function(act);,就搞定了。这也许是FireFox的一个Bug,但是触发条件未知,因为我做一个简单的页面代码单独测这个是可以pass的……

    02:13 | 分类: Tech

  • About Web —— 创意无用

    2006/11/02

      对做网络服务来说,尽管没有创意是万万不能的,但是创意却也不是万能的。 单凭一个绝好的创意就能成功一个网站的时代早就过去了(或者从来不存在这样的时代)。 成功,或者是靠细节的实现,或者是靠技术壁垒,或者是靠大量的投入和推广,还需要靠一点点运气。总之,绝不是靠创意。
      当你觉得你有一个绝妙的Web Service的创意的时候,冷静一下,先想想为什么它是绝妙的,为什么你会相信它能给你带来成功。
      也许你会说:*互联网上还没有这样的网站,还没有这样的服务,我是第一个,我是开创者,而我的创意又是如此美妙,所以,我能成功!*可是,真是如此吗?为什么互联网上没有这样的网站和服务呢?几种可能:
      1. 曾经有过,或者现在也有,只是已经死了,或者小到你不知道。这样的可能性很大,毕竟这年头,无数人挖空心思想捞互联网的金子,他们不比你笨,为什么他们不会先想到,先下手呢?如果先行者已经成了烈士或者正在苟延残喘,那么你在动手前一定要仔细分析他们的情况,究竟为何而败,是技术问题,还是推广问题,还是这样的服务根本不对路。自己实现能否解决他们的问题?如果不能,就不要浪费时间和精力了。如果能,并且最后成功的话,成功的原因也已经是你的实现而不是创意了——因为有同样创意的网站已经失败过了。如果你根本没有发现先烈的踪迹,而贸然行动,那么,大浪淘沙,你一定是那粒沙子,除非你强大到根本不需要借鉴别人的经验和教训。
      2. 确实从来没有过。这样的可能性也存在。不过同样的,别人不比你笨,为什么不会先想到,先下手呢?这就要好好进行分析。也许,这样的创意根本没有任何可行性,于是别人分析了之后就放弃了。所以,当确认你的创意真的还没有被实现的时候,一定要格外小心,反复推敲,因为一旦行动,你将没有任何可以参照的经验。不如多问问自己: 谁会使用这样的服务?目标用户群有多大?他们凭什么要使用我的这项服务?用了它能带来什么好处?现有的其他公司的其他现有服务为什么不能取代我的服务? 类似的问题每天问自己一些,连续地打击自己,如果最后还是觉得这个主意不错,那么恭喜你,或许这个主意真的不错。
      3. 已经有了这样的网站,但是我觉得我有他们没想到的东西,可以做得比他们更好。这是最不靠谱的想法,因为你一旦做出来,他们可以很容易地借鉴过去。任何一个上线的Web Service本身并没有任何秘密可言。你绞尽脑汁想出来的功能可能还没给你带来第一批用户就已经被别人抄走了——除非在你积攒起足够的人气之前,你所有对手的技术实力都不足以抄袭你的特色功能——那就是技术壁垒造就的成功,同样和创意无关。
      假如你的创意真的是独一无二的好创意,并且已经将其转换为产品上线了,那么,很快你就将面临很多竞争对手。当他们看到你的网站的时候,会一拍脑袋:啊,多好的主意,为什么我不做一个呢?于是,同类网站就会如雨后春笋般冒出来,至于数量,参考一下国内150多个播客站好了,想发网络财的人绝对比想象中的多。这时候假如你的产品本身黏性不强,或者你立足未稳,面临这样的冲击就非常危险。在同类网站的竞争中,技术质量,产品亲和度,推广力度,等等任何一个细节都可能成为胜败的关键手,而如果同质化严重的话,那么刺刀见红的避免不了的了,在这个阶段,创意已经没有任何用处了,最后脱颖而出的,也许既不是最早的那家,也可能不是产品做得最好的那家,而是最善于运营的那家。
      所以,我的观点是, 如果你拥有一个独一无二的好创意,并对其非常看好的话,在没有把握的时候,不要把它做成产品 ,除非对下面两个问题有肯定的回答:
      当我没有足够充裕的投资的时候,我能不能依靠技术和产品的优势在和仿照者的竞争中站稳脚跟?   当我的网站刚刚步入正轨的时候,诸如腾讯,百度,新浪这样的巨头携其千万级的用户基础介入,我能否抵挡他们的攻势?   我有过几个深入思考过的较为完善的创意,但是没有一个能够让我有底气回答这两个问题。所以我宁愿将它们埋藏,也不愿意为人作嫁衣裳。在只有1%成功机会的情况下就付出100%的努力,这不是冒险,而是送死。我承认在互联网上有不合常理令人拍案的奇迹发生,但是, 期待奇迹不如期待自己,稳稳当当地做事,比梦想着天上掉馅饼要有意义的多。 永远不要相信一个创意就能改变一切的童话故事。

    23:08 | 分类: Tech

  • 相册搬家

    2006/10/12

      我把自己在这个空间上的相册删除了,搬到了Picasa上,可以点击左边列表里的链接过去。因为不想同步维护两个相册,所以就选择了搬家。两相对比,搬家的原因很简单也很充足:

      1. Picasa Web是专业的相册服务,功能强,管理方便,别人浏览起来也方便。用本地软件上传相片非常简单,尽管我并不打算用Picasa的软件来管理我的本地相片。

      2. Live Space带的这个相册无论是上传,管理还是浏览都做到了人类可以想象的最不方便最不一目了然的极限。

      3. 把相片这个模块从我的空间首页去掉可以极大加快我的空间的载入速度,浏览器假死的时间会缩短很多。尽管对于整个一坨Space代码来说,依然非常慢,但是毕竟能有明显的改观。

      4. 我相信Google能把Picasa越做越好,同时也相信微软会让Live Space这个相册继续超越底线。

      我新的相册地址:http://picasaweb.google.com/yangfan。这个域名长了点,不过google可以一夜之间把writely变成docs,为什么不期待它哪天就把相册的二级域名变成photo/album/gallery之一呢?在Google行动之前,我先把http://photo.yangfan.name也指向了相册。

      

    23:59 | 分类: Tech

  • MSN搜索悄然行动

    2006/09/13

      今天用MSN,忽然发现“发送”按钮下面多了个“搜索”按钮,一按,直接就把我打的字给搜索了,搜索结果同时发给两边聊天的人。很显然,这是MSN搜索引擎的圈地运动,微软再次祭起其百试不爽的捆绑大旗,这次的目标,直接就是占领用户桌面。另外,这功能应该是早就埋伏在客户端里了(8.0和7.5都有),不用任何更新,直接悄悄发个激活指令就能用。不知道MSN里还埋伏了些其他什么东西。

    19:41 | 分类: Tech

  • 网易在搞什么

    2006/09/02

      网易推出了自称是功能最全速度最快的博客产品。既然牛吹这么大,就去看看吧。去了它首页,随便点了一个推荐的Blog。好家伙,一屏幕几十个“加载中”,而且很长时间之后没有任何加载出来的征兆,估计后台忙着呢。这就是他传说中采用ajax技术数据交换异步执行的结果。将来任何一个写ajax介绍和经验的人,一定要记住这里有一个极其经典的反面教材。网易向我们展示了ajax滥用的后果,这可是一般情况下看不到的!

      N次刷新之后终于能看到个完整页面了,所谓的功能强大就是把所有你能想到的你想不到的你能用到的你用不到的功能都平铺出来,堆在一起给你看得眼花缭乱不知所云。至于界面,在各大网站一片追求简洁的大好形势下逆流而上,看了几个模板都是非常低龄化的,和qqzone有的一拼了。

      这样的产品,高端用户看不上,低端用户不会用,读者读得一头雾水……真好意思拿出来发布。上次看了会百度空间的web源码之后已经觉得很奇迹了,不过人家虽然代码一团糟,好歹用户体验上设计得很不错。没想到这回还有更奇迹的,从里到外,没觉得有哪点竞争力……

    01:16 | 分类: Tech

  • 遭遇不兼容

    2006/08/28

      本来打算用纯css做网站来着,结果发现IE和firefox对css的解析差距也太大了一点。在IE下调的界面到firefox下一团糟,而在firefox下调好的界面跑到IE下也走型得厉害。经过不断调整,终于发现这俩其实是半斤八两,谁都不比谁支持得更好。有的代码IE能明白,而有的就是firefox能明白。最后彻底崩溃,改用table+css的混合型写法。

    19:50 | 分类: Tech

  • About Web —— Web2.0的用户分层

    2006/08/16

      对于Web2.0网站来说,用户的分层很明显,作为网站的开发者来说,针对不同的用户,需要开发不同层次的功能以对应。

      目前有种流行的二八说法,说的是对于Web2.0来说,20%的用户创造了80%的内容,而80%的用户是沉默的大多数,只创造20%的内容,更有悲观者认为,Web2.0只对1.5%的网民有效,即只有1.5%的网民贡献内容。例如wikipedia中超过70%的页面只被1.8%的用户编辑过。两个数据差距如此之大其实也很正常,因为本身对内容的创造者和获取者的划分就是模糊的,直接的二分并不科学,也不利于做针对性的开发。有一个Yahoo Group的数据,说的是1%的用户创建讨论组,10%的用户活跃在发起心主题和讨论主题中,而100%的用户从他们那里获得信息。这个例子里已经把用户划成了1:10:100的三层,而Nivi把Web2.0的用户模糊地划分成创作者,引用者,评论者,浏览者四个层次,并认为每下降一个层次的用户数会以指数级增长。无论如何,相对而言更细致的划分会带来更合理的结果。最终的用户分层必然是金字塔结构的,顶端是创造核心内容的用户,而底端则是贡献点击量的大量用户。
      对于国内的以创造内容而非聚合内容为目的的Web2.0网站来做用户分层的假象模型,我想我可以得到4个层次的用户: 创作者 评论者 点击者 浏览者 。注意这里我把Nivi模型中的引用者去掉了,因为在大多数网站中,无论是引用还是被引用都是很困难的事情,能熟练引用的用户往往是熟练于技术而非内容,他们的存在相对独立。引入的点击者则是愿意在网站上做简单调查或者评价投票的用户。
      这四个层次的用户比例该是什么?我没有对任何一个发展健康的Web2.0做过调查,因此无从得知。但是可以想象的是,这必然是个金字塔结构,如果单纯按上面的各种数据来看,或许每一层是上层的4或5倍是个比较理想的数字。例如 有1个创作者,那么就有4个评论者,16个点击者,以及64个浏览者
      位于金字塔顶端的创作者大约只占1%强,但是他们贡献的是网站的核心内容,这些用户是网站必须抓住,也是同类网站必须争夺的用户。没有谁会愿意在两个同类的网站上都充当同样的创作者,发布同样的内容。他会选择一个较好的——当然,如果他事先已经有了选择,那么迁移的收益必须比迁移成本大才可能造成用户的搬迁。需要指出的是,创作者的数量与质量直接指数影响金字塔下面几层用户的数量和质量,而创造者对于网站吸引更多的创作者或者把评论者转变为创作者是有强烈正反馈的。因此一个注重内容的Web2.0网站必须牢牢抓住创作者,甚至为这1%的用户投入大量精力去开发功能。 把20%以上的成本放在这1%的用户身上,绝对不是浪费
      评论者不创造核心内容,他们只对已有的内容进行文字评论。或许他们不愿意在一个陌生的网络环境中敞开心扉,或许他们觉得自己的能力不足以创造内容——内向与自谦是中国人很显著的特征——所以他们更愿意与原有内容的作者进行交流,对内容进行评价。 一旦当他们对网站环境产生了熟悉感和信任感,在同时受到相当鼓励的情况下,他们会转变成创作者
      而点击者,则是层次更加细化的结果。他们浏览网站,不过不贡献包括评论在内的文字或者图片内容——他们不愿意或者不熟悉这样的操作或者两者皆有,但是确实他们他们贡献了内容,他们贡献的内容仅仅依靠点击一下鼠标就可以完成。例如大多数网站都有的评价系统,只需要用一秒钟就可以给文章或者图片投票打分。 他们扮演的是内容的评判者的角色,他们的选择影响内容的排序,从而影响整个网站的内容质量 ,无疑,这也是对内容的贡献。另一个例子是在豆瓣上随处可见的“我读过”“我想读”这样的按钮,而在另一些类似的网站上,当你点击这样的按钮,有可能会出现一个小表单,试着让你写下些什么,这就是 一种主动的尝试把点击者引导为评论者的尝试
      而对于真正的,位于金字塔底端的浏览者来说,他们不会做这些事, 他们甚至不会为了访问内容而注册一个帐号,如果这是必须的,那么他们会选择离开 。这样的浏览者位于金字塔的低端,数量庞大,但是几乎没有忠诚性。因为没有任何迁移成本,他们可能同时浏览多个同类网站,或者在这些网站间摇摆。他们甚至不贡献网站的注册用户,而单纯只贡献流量——当然,流量就意味着广告收入和VC的青睐。
      因此我觉得,在做一个Web2.0网站之前,在做需求的时候,应该考虑到不同层次用户的不同需求,而非泛泛而谈,创作者的需求和浏览者也许没有共通之处,也许有的功能只有1%的人喜欢或者能用到,但是这部分用户大多是创作者,那么,这远比一个能被50%的浏览者用到的功能要有意义的多——如果他们矛盾的话。同样的,在功能设计时,如何把每层的用户自然地引向上一层,也是非常值得花心思的。

    01:38 | 分类: Tech

  • 研究了一晚上Live Space的web页面代码

    2006/08/11

      先感叹下好久不搞web导致有的代码都看不明白了,不过基本还是把结构和功能弄得八九不离十。

      然后就要严重感叹一下微软的代码繁琐程度了,终于知道为什么space这么慢了,别的不说,光js文件就加载了25个一共514k,这要能快得起来就见鬼了。随便看了几个js,完全没搞懂这样的功能为什么能写得如此冗长。微软完全是没考虑用户的带宽和cpu,所以就他这代码,拥有页面下载慢,浏览器处理更慢,时不时把浏览器弄崩溃等功能,完全可以想象得到。

    01:00 | 分类: Tech

  • 糟糕的Live Space

    2006/08/02

      如果要用两个字来形容这次msn space到live space的升级,那就是糟糕,如果是四个字,那就是糟糕透顶。

      目前所听到的全是一片骂声。本来我也不怎么挑剔,Blog区域变宽影响排版了,那我就分两栏变成分三栏;RSS订阅全部重新抓一遍,直接都标记成已读就是了,也不费事;上头多个大广告,忍,谁让我是免费用户;配色方案难看了,我就换一种,勉强挑个能看的。但是最让我受不了的,是Live Space的css时灵时不灵,有的时候页面看着正常,有的时候完全没有css,甚至图都刷不出来。我永远无法知道读者在看我的space的时候看到的是什么样子……

      另外,值得注意的是所有Space标题都是Windows Live Space,而原来个人的空间名称,只是作为一个模块显示。也就是说,微软无时无刻不在提醒你:我的地盘我作主

    19:59 | 分类: Tech

  • 疑似被盾

    2006/08/01

      今天一早就有传言说Feedburner被盾了,后来还有流言说电信盾了网通还能连。我白天在公司是铁通,已经连不上了,回来是网通,还能正常访问。不知道是电信误操作还是各个运营商开盾开得不同步。

      不过Feedburner这东西,对于一般用户来说,意义不是很大,所以即使被盾,网上反应也远不如当年Google事件那么激烈。但是对于真正使用Feedburner来做Blog publish的人,以及通过Feedburner订阅他们Blog的人来说,麻烦就大了。而值得注意的是,他们恰恰是掌握着互联网话语权的人群,他们有自己的表达渠道和方式,让他们不爽了,声音不会小的。

      另外,与Feedburner同时被电信黑手的还包括box.netIMDB,对于后者,实在想不出有什么理由。

    19:53 | 分类: Tech