IE6方程式: 提高开发效率
Jeremy Keith在他的博客中写到关于如何选择对IE6支持的问题。对于不同的网站,他们有不同的用户群,如果很少部分的人用IE6,还要考虑对老版本的支持么?又如果在IE6中发现很小的错误,是否要修正,应该用多少工作时间?
Jeremy分析了不同层面极端的几个方案:
- 将所有的 IE6 访问者踢出你的站点
- 完全遵循标准开发,并且没有任何针对 IE6 的测试
- 只使用 Dean Edwards 的脚本让 IE6 支持额外的 CSS
- 编写针对 IE6 的样式解决大部分问题(比如布局等)
- 让站点在 IE6 以及其他浏览器上看起来一摸一样
并和Cennydd Bowle一起推算出一个数学公式(使用 t 表示总的开发时间、t6 表示花在 IE6 上的时间;所有的访问者数目表示为 a、 a6 则表示正在使用 IE6 的访问者):
p = 50 [ log ( at6 / ta6 ) + 1 ]
运算出来的p概率可以判断是应该应用 Dean Edwards 的 IE 脚本:
当然在某些极端的情况下,比如公司的政策内部一定要运用IE6,作为内部网络软件开发人员,应当要保证IE6的100%正常运作。在浏览器支持的问题上,Yahoo YUI发布过一篇很好的文章"Graded Browser Support", 作为好的开发人员,这篇文章应该是必读的。
当然这些都不能解决本质问题,为软需要加大力度让客户门升级自己的IE。在2008年低,我们的AJAX技术不能单单的存活在1997年的浏览器技术上。
Xiaonei is a bad sample for China web industry
If you are a western reader, you may not hear about xiaonei(校内, means “at the school”). Searching “xiaonei” at Google UK site, possibly, the first one is their home page and the next would be this criticism article “”http://mashable.com/2006/10/24/blatant-facebook-rip-off-gets-acquired/" target="_blank">Blatant Facebook Rip-Off Gets Acquired“.Also you will find ”http://www.crunchbase.com/company/xiaonei" target="_blank">CrunchBase giving the company a definition:
Xiaonei.com is a Chinese Facebook clone that was acquired by Oak Pacific, a Chinese internet consortium for an undisclosed sum.
Personally, I’m a Xiaonei user. The application itself is fairly immature. There is a big question of how their team manages the development because all the ongoing new features expose a lot of bugs, which means the users will definitely spot these bugs – seems (to me) that they don’t have a good development procedure.
Why this is bad sample? Everyone cares about what other people think of your country. You have seen a lot criticism news on how people clone Wii turning it to Vii, how people clone iPhone turning it to M4, etc. Every time I see those similar products coming out and read western users’ comments, you will get the impression of “copy cat”, “cheap bad product”. This is not positive impression if national industry wants to enter the world wide market.
Here we come, another bad sample. I think developers at Xiaonei has been brain-washed. I talked to one of the xiaonei developers a few weeks ago. Basically, he thinks that the clone is nothing wrong and the interface clone is not a big worry. (Well, I would worry about the icons copyright issue, isn’t it important?). What gives me a even bad impression is the company have a large number of developers graduated from top 3 universities in China. Then, you have to think about the education, what do they learn at university? University is not about knowledge, it’s the place where students grow up and shape their own personalities.
Here is a video, the CEO of Xiaonei talks about Product DNA), on YouTube. Ironic. Basically, what he said was that Chinese market is always clone others idea (online video market). It’s not going to be a good market share if he builds a video site clone again. So, here we come! The SNS clone is a better money booster.
The web industry in China is a sad story. Less people care about standards and health of the web. I read an article a few days ago saying the most dangerous domains are end with “.hk” and ".cn’. I’m a Mac user now, but I did get a lot of spams back to the Windows days when I browse some chinese sites(sometimes, they don’t render well in Firefox).
A product has its own “personality” I believe. It generates the culture in the company and exposes to the world – especially dealling with the web. The product name is under the clone category, it will never get out from it. Everyone knows we need to protect the natural enviroment, it hits back if you don’t. So does the web.
It's all about OPEN these days
最近两年,我一直在关注一些Open Source(开源)相关的信息。例如, 有关开源的项目, 开源的理念和经营模式。很多大型的公司选择项目工具的时候都会避免一些开源的项目,特别是一些桌面程应用序都会最后选择Micr*soft的解决方案。为什么他们不选择开源的语言或者Framework进行项目开发呢?可能有以下几个原因:
- 开发效率。大多开源的项目开发效率相比商业化的软件还是慢很多。对于用户来说,他们所看到的只有最后的结果,比如说他们需要一个创建历史纪录的功能,只要你们写的软件能做到这个功能,用户根本不会在乎开发人员是如何实现的。人力资源是很昂贵的,所以企业更愿意花大比的钱买license,节省开发时间。另一个问题是IDE, 大部份开源的程序缺少效率高的IDE, 企业级别的IDE支持。
- 技术支持。商业的产品大多有比较好的技术支持,如果他们提供的产品有一个严重的bug要修理,购买的license会带有高级用户的支持联系方式,一般第三方公司会在很快的时间内给你解决办法(这样项目就会承担很小的Risk)。特别是做一个大项目,用很多第三方的软件节省开发周期,那他们之间会有很多不兼容的问题,这个时候更需要技术支持。相反,开源的更需要community的支持,要看这个社区的规模,要看项目的Status(active?)。如果开源项目完全停止,那企业无法很快找到解决办法,或者根本没有办法追究责任。
- 开发人员缺乏。懂得开源程工具和framework的人比较占少数,在欧洲,高等教育选择教开源工具比较多,但是真正的工作的时候大多公司还是选择商业的解决方案。所以毕业的学生到了这些公司,开发商业化的库,end up with these skill sets. 即使有开发人员,可能真正成为expert的人也是个别的。
- 安全问题。开源的代码公开,所有的安全问题是公开的。企业当然需要隐私并且牢牢把握主安全这个窗口。
那这样,open source还有存在的意义么?或者创造开源就是那些passionate的人们的产物?如果这样想,我觉得完全是错的。相反,开源其实是非常重要的。大部分的商业产品是从开源发展出来,拿了开源的主意。拿一些最近的例子,iPhone的interaction设计是从一个大学Touch Technology衍生而来的,他们有相同的操作方法(多触点操作),有相同的, 相同的产物还有MS的Surface产品; 苹果的Mac操作系统是从开源的Linux衍生而来的; 我们现在用的Internet Address System(internet protocols-HTTP, FTP等等) 都是开源的; 挑战IE的Firefox也是开源的产物。
Open给我们带来了什么?
- Freedom。虽然没有商业支持,但是开发起来更加的自由。其实商业软件有他们的局限性。如果想做出一些新颖的东西其实是比较困难的,商业化的程序都有自己的模式,如果违反他们设计的模式开发,只会给项目带来很多麻烦。
- Standard。每商业产品都会为了版权设计自己的规范。其实这样给用户和开发人员带来很多麻烦,对技术或者任何产品的发展都是不力的。最典型的就是MS最早发布自己的HTML规范,直到现在他对公认的W3C规范负面影响很大。
- Interaction。交流是非常重要的,人们可以任意发表自己的建议,所以最后的解决方案都是用户最想要的结果,或者说是Best solution。在社区会有不同技术类型的开发人员,他们提出的建议可以让人们考虑每一个问题角度。然而商业化的,永远都是局限在一些开发人员的解决方案,他们的经验和知识都是很有局限性的。
说到这里就想起Steve Jobs在第一次被Apple开除之前的一个采访,印象很深,他说:“The only thing about ********* is, they just have no taste.” 我感觉到他说的那家公司也正在市场转型。现在的趋势,对于用户来说,单有技术是不够的,他们需要的不是技术,而是技术在现实生活种的应用。什么是应用? 应用就是User friendly。所以现在真正缺乏的是前端的工程师,他们懂得用户真正的需求。如果用商业软件,是很少有机会做出一些另人惊人的产品的。说说为什么?那我们看看一些有名的网络产品,Google(大多的内部系统都是开源的), Facebook(开源程序语言开发,并且把platform设为开源), Twitter(开源RoR的产物), Yahoo!(运用很多的开源项目开发出来的). Linux(最稳定,最受欢迎的host平台之一), Wiki(最强大的社区字典), 等等。(太多了,如果大家熟悉还有例子,可以留言)。
也许,再过不久封闭模式的开发会跟不上社区模式的进度。也许,社区模式的开发能做出更加有创意的产品。
可以退休的IE6
如果一个用户用非Grade-A浏览器浏览网页的时候, 大多会看到一些广告说"本网站只支持, IE7", 或者"请升级您的浏览器"。 作为开发人员, 我们是不是要告诉用户"There is a better browser for you." 当然,一个浏览者用的是IE6, 我们也需要告诉他们IE7已经发布了,"快点更新吧"。 当然还有其他的选择, 比如Firefox 3, Opera 9.5, Safari 3.1.
作为一个网络开发人员, 我们用很多的经历只是要确保IE6能够运行我们设计的网络程序。 而且还要写一些CSS hacks保证页面的结构和其他的浏览器保持一致。 这样就好像我们在开发一个现在的网络应用程序, 又要考虑到8年前的祖先级别的机器也能运行。
记得前一阵子看了MS下一个IE小组项目经理的留言,不得不让我大笑。他们说到了向后支持的功能,他们要保证IE的backward capability。 如果是一个优秀的老产品, 作为开发人员应当保证向后兼容性, 但是如果一个完全错误百出,开发问题严重的产品, 难道我们还要去支持?
如果开发一个简单页面的网络程序, 我们并不用担心会有兼容问题。 特别是这几年, 新颖的Web2.0/3.0程序日益见涨, 比如 MobileMe, 280 Slides, Yahoo! Mail,等等, 可以说要考虑到IE6, 就好像要一个486运行Vista, 所以干脆就让用户更新计算机吧。 这样问题都解决了。
苹果最近在WWDC上更新了.Mac的服务, 升级到MobileME. 有趣的是作为一个这样大型的网站, MobileMe不兼容IE6. 不过我也怀疑, 如果是苹果的用户,又有多少人会用IE的产品(也不是没有可能). 也许他们会用Sarfari/Firefox在Maxoxs上, 到Windows上使用IE7或者Sarfari for Windows.
MobileMe是用SproutCore写的. SproutCore是一个Ajax famework, 很多人都把IE6兼容性抱怨在SproutCore上. 但是事实SproutCore确实是兼容IE6的. 那到头来还是苹果开发那头下的决定放弃IE6?
如果苹果是第一个开始放弃IE6的, 接下来的会是谁?
采访280 Slides的开发人员
最近看到280 Slides的release, 第一感觉让人觉得惊讶。界面很像Mac的设计,有很多人叫它"Keynote on the web". Boucher, Tom Robinson和Francisco Tolmasky在采访中还介绍了一些设计思路和未来的计划。相比Google Doc看重在互动和共享, 280 Slides更注重用户的体验。
访谈里面谈到Objective-J,Obj-J运用JavaScript并把它变成面向对象的语言(就好像把C转成Obj-C). 和Obj-C相近, 写代码的时候会看到很多方括号([]). 浏览器读到.j文件的时候会处理这些文件,这样就以为着开发人员可以做任何的标准的JavaScript的效果。提到Obj-J是不是很难学的问题,如果做过是一个JavaScript或者Obj-C的开发人员很快就能学会使用新的语言,但是了解frameworks需要一些时间。
Obj-J的framework被命名为Cappuccino. 开发者用Cappuccino的时候不用担心DOM的object, 不用担心CSS, HTML只要主意界面的开发。同时给开发人员一种开发平台的感受,而不是只是写一些代码。说道这个framework的起源是从3人大学开始的,之后为了开发一个网络程序,需要一个强大的javascript支持,所以设计了自己的framework。
更另人惊讶的是,Objective J将会是开源的,所有的代码都将可以在objective-j.org下载的到(现在可能还不存在)。这样还有很多经常遇见的问题,比如open source license, source control system, 还有documentation等等。(not an easy job :P)
Google Earth’s 3D Goodness Comes to the Browser
At the Google I/O conference today, VP Engineering Vic Gundotra stressed the supremacy of the browser among all internet-enabled platforms.
So it should come as no surprise that the Google Earth team has announced on the same day that it has ported the Google Earth desktop client’s 3D mapping technology into the browser.
Website developers are now able to embed 3D maps, which can be modified using Google’s JavaScript API to add KML data, draw 3D buildings, attach callbacks, and more. The entire embed is powered by a special Google Earth Browser Plugin that end users must install. Unfortunately, it’s only available for Internet Explorer and Firefox users on Windows.
Peter Birch from the Google Earth team stressed to me at Google I/O the convenience of porting KML-based applications from 2D maps to 3D ones within the browser. Existing Maps API developers need only to add a single line of JavaScript to their initialization code. Developers who’ve created KML extensions for the Google Earth desktop client can bring those into the browser as well.
Peculiarly, Google is not offering the equivalent of a default installation of Google Earth in the browser. If you want to search the globe from square one, you still need to visit the 2D Google Maps website. Therefore, this release is mainly a developer one – not really a new product launch. Hopefully we’ll see a “3D Globe” option in Google Maps soon.
网络移动化的革命
记得几年前当WAP, GPRS让人们享受到移动网络的时候,人们还只能初步的浏览简单的页面,小小的手机屏幕和移动平台的浏览器总是有局限的。记得那个时候有一个简单的开发理念,就是所有的网站都要有一个手机移动版本。直到现在其实很少的网站能会特别给手机做一个版本,这样的例子大多应用在社区网络和邮件系统,比如BBC News, Gmail等等。
当iphone的Safari出现的时候,完全给移动网络造成了革命性的影响。对XHTML, CSS, JavaScript的处理, Safari都做到了几乎完美,所有的rendering几乎于计算机平台的浏览器相近。这个时候,是不是我们应该重新审视移动网络的技术? 过去我们要网站适应移动技术,现在是否是技术要适应网络的技术的变? 当国内从2.5G, 2.7G进入3G, 4G的网络的过程中,信息传输速度会不断增加,渐渐满足移动数据的传输需求。
Touch Screen的手机继续发展,会给用户带来更多的移动享受。过去几年,当HTC, Dell(PDA, Windows平台)占据大多触屏移动市场,近一年来很多的移动厂商在向触屏市场发展,比如Nokia(symbian S60 touch interface), Blackberry(最新的Bold?), Apple(iPhone, iPhone 2.0beta), Microsoft(MS Surface)。
但无论是软件还是硬件的发展,最终首易的目标还是用户。
Amazon发布EndUserBlog
Amazon随着Engadget, Gizmodo, 也发布了自己的Gadget小工具Blog 叫End User. 写Blog的作者都是Amazon内部的工作人员,他们会介绍一些自己喜欢或者关注的产品。
明显的是这样可以帮助Amazon促进销售量。网站明确属于Amazon, 现在还没有很大的社区规模,也没有很多的留言反馈。
(题外话)我随便路过看看发现一张很幽默的图。 感觉这图有点讽刺的效果。虽然自己不是vista的用户,明确的是在IT人员里面Vista没有好的口杯,不然Dell就不会减少Vista的对外销售,增加Ubuntu,增加XP的零售商品了。
EndUser名字很好听,问题是不是公司真的关注用户的感受?或者就是简单的Web2.0效应希望增加销售率而已
Facebook隐藏Chat Tags
1个月左右前,Facebook宣布会开发站内Chat功能。现在虽然不见这样的新功能出现,如果技术人员自己观察,从HTML代码里面可以看到一些隐藏的Div tags。看来Release date就快接近了。
有些网站早已推出了站内聊天功能。比如Google Mail, 就可以站内聊天,并把聊天纪录存为"Chat"标签下,可以和在线的gmail联系人聊天,窗口可以迁入或者在新窗口聊天。我经常用聊天功能和Paul(周游世界回来的), Chris(暂时到印度去开发软件)聊天。基本上不能感觉的网络的延迟性。
这么说,校内也有聊天功能,尝试用过两次,可用性觉得一般。如果说国外和国内有网络问题的话,8M的网络速度还要等很长时间能打开。
想到有趣的一个点子,等Facebook的Chat功能公开的时候,再来比较比较,看哪个做的更好些?
Facebook VS 校内网 = Bobble Tech
上周末,同学告诉我国内有一个xiaonei.com(本以为拼音是小内网,什么小内?)。 打开页面发现设计,颜色,排版,功能完全和Facebook相近。 见过Facebook是如何把MySpace的市场慢慢变小的,可是没有见过这样完全拷贝的。
虽然Facebook很早以前就宣布自己是opensource了,但那些简单的代码能构件一个相同的网站么? Layout有很多工具可以把整个网站下载到硬盘上,但只不过是一个静态的CSS和HTML文件。
创建校内网的几个清华大学的学生早已把这个项目给卖掉了,也许考虑到以后吃官司的问题。我真为千橡“企业”感到脸红,拿着一个复制的主意打的国家企业的口号,到国际上还不是给国家丢脸。先不说侵权问题,因为两个Service用的是不用的语言些出来的,表面上看校内是用Java写的,而Facebook是PHP5.
技术上来说,校内还停留在Facebook 05-07年出的技术上-也就是在Facebook推出video, plugins, apps, API之前。 虽然校内还是利用了少部分的Ajax的技术,应用单一,对用户的使用体验和页面调用速度没有提高。想问,当清华大学那些第一班开发人员走后,是不是停止开发了? 有一些修改得地方,比如加自定义得css style sheet, 其实是火上焦油,给自己得服务器加上负担,让不懂设计规范得User把网站弄得眼花撩乱。 Facebook 表面看起来无聊,至少他是规范得整体得。
当老大说要到中山大学做讲座的时候,买这样一个没有创新的复制项目,能台起头称自己是CEO的还真那个… 可惜这个社会就是哪里有机遇哪里就有投资,谁有大项目谁就是老大。
无奈下该气愤还是气愤,到该用的时候还是不得不用。
Here is the fact. I was talking about Xiaonei to Chris, who is now in India hiring people develop his web project. We were agreed that this is the example as the big sell of Bebo – how websites can easily get away with mediocre products. In any other profession this is really unforgiven. Of course, a rip off will never be as good as the original.



