克莱's profile克莱沃曼PhotosBlogListsMore Tools Help

Blog


    November 29

    成功安装Chrome OS到硬盘上

    Chrome OS open source 之后,人们有两种方式来使用它,一种是用虚拟机,另外一种就是通过U盘启动。Google说不支持硬盘,而我们最需要的就是把Chrome OS安装到自己的计算机的硬盘上直接启动,从而作为我们机器的主操作系统。那么到底有没有可能把它安装到硬盘上呢?我今天做了一个实验,成功地安装到了我的机器上,我的机器上是SCSI硬盘。步骤如下:

    1. 通过U盘启动,进入Chrome OS。
    2. Ctrl+Alt+T, 打开terminal。
    3. /usr/sbin/chromeos-install
    4. 成功之后,关机,拔下U盘,开机。机器就会从硬盘启动到Chrome了。

    Chrome在我硬盘的分区如下:

    /dev/sda1 15xxxxx Linux

    /dev/sda2 972800 EFI (FAT-12/16/32)

    /dev/sda3 972800 Linux

    /dev/sda4 972800 Linux

    不知道IDE硬盘如何,大家可以尝试一下.

    November 28

    我为什么推崇Chrome OS?

    今天看到有朋友在我以前的老文章留言,我又重新回顾了一下,这文章是我批判Live Mesh的。当时我还没有接触过Windows Azure,更加没有Google要出操作系统的消息。当时的我对于Web OS的理解以及对当时情况的迷惑,绝大部分Chrome OS都给了我一个答案,以及印证了我当时的想法。最有意思的是,我对Live Mesh最反对的一点就是那个sync,把云上的数据要sync到本地才能运行应用。而Google的Chrome OS的设计竟然是不支持硬盘,也就是说根本就不需要云和本地数据的sync(当然cache还是需要的,这跟你把所有数据都sync是不同的)。从这点来看,就知道Google的系统是多么符合我对Web OS的理解了。当初写文章的时候找不到一款符合我定义的Web OS,现在已经有答案了。网友如果感兴趣可以看看我以前的老文章。

    Live Mesh 跟我对云计算的理解格格不入 (一)

    Live Mesh 跟我对云计算的理解格格不入 (二)

    Live Mesh 跟我对云计算的理解格格不入 (三):云平台

    Live Mesh 跟我对云计算的理解格格不入 (四):云应用和云共享

    November 27

    再谈一下UI自动化吧

    本来不想再谈这些内容了,因为太基本,简单了。可是最近竟然发现一直不屑于UI自动化的我,仿佛都成为一个UI自动化专家了。我发现很多人,包括论坛上的网友,还有很多身边的同事都对UI自动化充满了一些恐惧感,从而不敢触及它。当然也有一定的原因是觉得UI自动化没太深的技术含量,这也是我讨厌UI自动化的唯一原因。但是,一旦让这些人去做UI自动化的话,是很难做好的,因为UI自动化需要一定的经验,而我个人认为一年的经验,一个正规的项目应该都能具备编写良好UI自动化测试的能力。因此,对于后来的人,我想把UI自动化关键的几条再谈一谈,UI自动化确实没什么技术含量,你掌握了以下几点也能成为一个小专家了。

    1. 用高级语言编写自动化程序,在UI的部分调用UI自动化工具。我反对纯用UI自动化工具去写自动化,因为那样就太死板了,而且功能不强大,不灵活。我推荐学好一门高级语言,把大多数的自动化都用这门高级语言实现,只在需要UI操作的时候才调用UI工具。
    2. 只在你测试的UI模块上进行自动化的测试,其他地方避免用UI去操作,使用高级语言去实现。这样你需要用UI的地方就进行了最小化,从而使得只有在真正需要UI的地方才自动化UI,因此测试程序会相对更稳定。
    3. UI自动化最基本的操作就是发现控件和操作控件。尽量避免用text来发现控件,而使用一些固定的控件属性来发现,比如Control ID等等。这样的话,测试程序会更稳定,开发改变文本不会影响到你,而你也不用担心localization的问题。
    4. 操作控件分为模拟用户操作和事件驱动。简单的例子就是,模拟用户操作就是鼠标真的去点一下,而事件驱动则是跳过点击直接引发点击的事件。我以前用过具有这种功能的工具,但是最近几年用的工具不具备这个功能。
    5. 解决好同步问题。UI自动化最不稳定的地方就是同步问题了,你不能连续点击,而需要等待到一定的情况才能进行下一次点击。各种情况都不太一样,需要一些经验进行良好的程序设计。但是,简单来讲,要做到等待的情况发生能立刻返回到程序,不能空等。
    6. 减少其他UI对你自动化程序的影响,比如关闭Windows balloon,等等。一般来说是发现了有其他UI影响你的情况,就想一下workaround, 不会有什么大问题。

    从我的经验上来看,一般UI自动化有问题都能归结于以上几点,而一旦你解决了以上几点的话,UI自动化就变成了一个熟练工的工作了,没什么挑战性。我本人的有些模块的UI自动化基本可以达到100%的通过率,而所有模块的自动化也能达到95%以上的通过率。不过我基本已经脱离UI自动化了,因为太没有技术含量了,不过我还是认为如果你刚刚进入测试的工作,或者从来没有接触过UI自动化,或者从来都没有做好过UI自动化的话,在这上边工作个2,3年会有一定的收获的。

    November 26

    Google Chrome OS 问题解答(1)

    在使用Chrome OS的时候自己也有些疑问,有些找到了解答,有些是推测,写下来想跟使用Chrome OS的网友分享。

    1. Chrome会不会支持插件,比如Flash,Silverlight等等?

    Google在Web开发上非常推荐用开放的标准和技术。他们认为使用Javascript和HTML5完全可以做到不再需要Flash,Silverlight这类插件。并且,Chrome OS是不允许安装任何程序的,因此用户也不可以安装插件。所以,像Silverlight,Java,Quicktime等等目前浏览器比较流行的插件,Chrome都不会提供官方支持。但是,我估计是因为Flash的应用实在是太广泛了,Chrome内置了对Flash的支持。这就给微软出了个难题,“如何通过Silverlight服务所有的用户?”。微软的Silverlight战略终于开始尝到些苦头了,需要看别人的脸色行事了。如果Chrome能够流行开来,还有什么开发商会选择Silverlight呢?

    2. Chrome将会怎样支持离线应用?

    目前看来,Chrome很可能会倾向于HTML5的离线支持,而不是Gears,毕竟HTML5是开发的标准。也许这也是为什么Google并没有在自己的产品里大范围使用Gears的原因。我尝试在Chrome OS上安装Gears,并没有成功。

    3. Chrome 不能安装传统的软件?

    传统的软件有一个很大的问题就是需要安装。比如,你重装了系统需要重新安装所有的软件,你使用另外一台新计算机也需要安装所有的软件才能正常工作,娱乐。Google的Chrome是不允许安装软件的,很大的原因就是想解决这个问题。但是,这并不代表你不能使用传统的软件,只是你会更方便,比如输入网址,或者点击一个链接就可以使用了。Chrome提供Native code的支持,因此,现在所有的传统软件其实都是可以通过一定的修改和特殊的编译在Chrome上运行的。当然这需要Chrome占据一定市场份额之后才有软件开发商愿意和值得去这么做。

    4. Chrome 不能打游戏?

    跟上一个问题类似,游戏商完全可以编写在Chrome上运行的游戏。虽然现在没有这样的游戏,但是Chrome并不是一个不能打游戏的系统,未来的潜力还是有的。

    5. Chrome使用Gmail帐号登录,没有网络怎么办?

    第一次登陆Chrome需要网络,你的登录信息会被cache起来,因此以后即使断网,你一样可以登录。

    6. 为什么进入Chrome之后发现很慢,点鼠标要等个2,3秒才有反应?

    很可能你的机器使用的是Nvidia显卡,而Nvidia显卡没有open source 的显卡驱动,所以Chrome都是通过软件的方式来显示,因此很慢。

    7. 怎么调分辨率?

    进入到Terminal, 然后 /usr/bin/xrandr –size 1280x1024

    8. 怎样调音量?

    进入到Terminal, 然后 /usr/bin/alsamixer

    November 25

    从Chrome来看Google和微软的战略,现状及未来展望

    互联网已经发展到了云计算时代,而云计算一个非常重要的问题就是支持多设备,比如PC,Netbook,Mobile等等,以及多系统,比如Windows,Mac,Linux等等,而一个公司能否成功,很大程度上在于对他们支持的多少。我今天就想简单分析一下微软和Google的各自战略以及对未来的展望。因为有很多话要说,所以可能会有点乱,有些没有整理好的思路,以后补上。

    毫无疑问,微软的战略核心就是Windows,因此出现了Windows 7, Windows phone, Windows Live, Windows Azure 等等术语。而微软的直接想法就是把在PC上的操作系统Windows的品牌和优势扩展到手机,互联网和云计算上来。 而Google的战略核心则是在Chrome。很多人奇怪为什么Google把OS和Browser都叫一个名字,其实这正体现了Chrome在Google战略的核心地位,跟微软一样,把什么东西都贴上了Windows的标签。那么我想从底层到上层来分析一下微软和Google的情况。

    • OS: PC windows和windows mobile其实是两个系统,而Google虽然有Chrome和Android,但是将来要合二为一,我们有理由相信合并之后的OS还是叫Chrome。看看Mac和iphone其实是用了同一个系统,而且获得了巨大的成功,因此未来微软也非常有可能把两个Windows也合并起来。在这一层来看,双方都支持多设备,不过现在还没什么交集,Chrome OS主要应用在上网本上,而微软的对策则是Windows 7 Starter。相比Chrome OS来讲,Windows的巨大优势在于桌面应用,不知道被限制了很多功能的Starter还能不能像以前的XP对Linux在上网本上产生巨大的优势呢?不过总而言之,微软在OS这一层的垄断地位目前是无人能及的,Chrome只不过是有可能通过上网本去改变一些。
    • Browser:微软的browser就是IE,只能运行在Windows上。Google的Browser是Chrome,可以运行在不同的操作系统。由于历史原因,无论IE怎么烂,兼容性也是其他浏览器不可比拟的。由于很多网站只能通过IE才能良好地浏览,使得互联网用户必须在某种程度上粘在IE上,从而也就是粘在了Windows上。由于桌面程序在不断地,快速地往Web上转移,Windows通过桌面应用来粘住用户的可能性越来越低,因此IE就显得非常重要,更像是Windows的一道护身符。而Google Chrome浏览器则是新一代的浏览器,支持不同的系统平台,甚至通过Frame可以运行在其他浏览器之上。我说过Chrome OS不是那么重要,Chrome Browser才是Google的战略关键,Google的目的就是想在Browser这一个层面一统江湖,从而确定像微软在OS上那种垄断地位。一旦这种情况发生,Google就可以通过浏览器控制Web服务提供商,就像微软通过OS来控制软件商一样。当然这是Google的目标,在实现目标之前肯定会有一番龙争虎斗,Google也未必最终会成功,但是今后几年的互联网焦点都会落在浏览器竞争上。
    • 应用: Google在Web应用这个层面是全面地取得了领先,并且比微软走得要远很多。现在微软的唯一领先之处也许就是Live Messenger了,可是它毕竟是一个桌面程序,论Web应用的话,GTalk肯定要更强。Google的Web应用是依赖所有浏览器都支持的Javascript,而微软基本放弃了Javascript而强力推自己的Silverlight。由于IE只支持Windows,而互联网又需要支持多系统,Silverlight则是微软的多系统支持的解决方案。从需要安装这个角度,我就更倾向于Javascript,但是从开发人员来说Silverlight应该更合理,方便。由于Web2.0的这股热潮正是靠AJAX推动的,使我们看到很多通过Javascript实现的Web应用典范,比如Gmail, Facebook, Twitter, 还有Javascript的巅峰之作Gwave。而我并没有看到什么热门网站是通过Silverlight来实现的,毕竟Silverlight出道的时间也不短了。因此,我很怀疑Silverlight能够改变游戏规则。而Silverlight完全是微软自己的标准,并不是开放的,而对于以开放为基础的互联网来说,还是有些格格不入。

    综上所述,目前来看,Google在Web应用是全面地领先微软,而微软在OS上的垄断地位也很难撼动,双方今后几年的争夺焦点主要会集中在浏览器上。由于微软一向是以OS为中心,而Google是很明显以Browser为中心,所以胜利的天平很可能像Google一边倾斜。而一旦Google在Browser上取得胜利,微软的OS的优势也会面临相当大的威胁。

    最后回答一下一些网友的典型提问,“Linux这么多年挑战Windows彻底失败,Chrome就是一个Linux怎么可能成功呢?”,“Firefox挑战IE只有一点小成果,Chrome怎么可能成功呢?”我们如果分析一下,Linux挑战Windows是在OS这一层来挑战的,而Firefox挑战IE是在浏览器这一层挑战的,但是Google不同,Google是在三层全面地,立体地发动挑战的。换句话说,Linux做的再好,在应用层没有支持怎么办?Firefox做的再好,应用层都去兼容IE怎么办?而Google本身就是个应用大户,不存在这个问题,它与微软公司的发展是采取了截然相反的路程。微软是通过OS来控制应用,比如通过Windows集成IE打败了Netscape,通过Windows集成Hyper-V打Vmware,通过Windows集成.NET挑战Java, 通过Windows的优势开发杀毒软件因此导致杀毒领域的一片混乱。所以说,微软是采取的自下向上的发展方式,而Google则是采取的自上向下的方式。先有了广泛的应用,比如Search的垄断,Gmail,GReader, GDocs, GVoice, GWave, GTalk, 等等。然后在这个基础之上杀入浏览器领域,并且进一步杀入OS领域。对于用户来说,首要关心的并不是什么OS,浏览器,而是应用。对于一个典型的网友来说,即使用Windows,用IE,还是离不开Google Search。而Google开发了Browser和OS之后,想用Google 的各项服务就可以不用IE和Windows。这就是Google对于微软的最大威胁,你做的再强也离不开我,而我做好了就可以不需要你。我们有理由相信,用Google的各种Web应用,Chrome OS肯定会达到最好的效果,其次就是在其他系统上用Chrome Browser。而Google可以借应用的巨大优势让用户跳过微软,而微软却很难通过Silverlight加自己或者第三方应用去挑战Google的应用。因此,未来的Web应用会决定底层浏览器和OS的成败,而微软的优势还是历史上遗留下来的桌面应用,而这个优势现在越来越小了。这也是为什么由Google去做Browser和OS很可能会产生跟Linux和Firefox不同的效果。

    最后总结,微软的打算是把Windows扩展到多设备,但是解决不了多系统的问题,就出了Silverlight。而Google则是打算通过Chrome Browser解决多设备,多系统,甚至多浏览器的问题。不得不说Google的眼光真是更高一筹。

    November 24

    Google Chrome OS 试用初步印象

    上次那个虚拟机没搞定,这次的U盘启动这个搞成功了,而且还支持我新买的一台2500廉价东芝笔记本。下面说说自己的一些体会,总的来说跟我心中的设想几乎是完全一致的,甚至更好一点。本来以为因为驱动的原因,基本不支持现有的机器,没想到Chrome现在支持的机器并不少。虽然现在bug还挺多,或者功能还不完善,但我也还没看到什么重要的原因使我不能用它做个Windows替代,毕竟对Windows的很多方面早就忍够了。

    1. 先谈界面。Chrome OS的界面几乎是Windows 7界面的一个翻版。在Web OS的概念中,应用程序就是Web应用,或者说一个个的网站/网页。因此,如果从这个角度上去看,Chrome左上角那个按键就是活生生的Windows开始菜单,虽然现在十几个图标,但是以后扩展的可能是一定的,应该会搞的非常类似开始菜单。靠右的小Tab就是Widnows 7 Pined program再加上Startup,这个设计跟我使用Chrome Browser的习惯不谋而合。我就是设置Chrome启动的时候打开我最常用的Gmail, Reader, Wave等等,因此我很喜欢这个设计。再往右就是一个个Web应用的Tab了,就像Windows Taskbar一样,你可以在应用程序中间来回切换。最后右上角就是Windows的状态条了,包括电池,网络,还有个系统菜单是Windows没有的,但是好像没太大必要出现在那里,因为地址栏右边的工具条也包括了。Home Page则相当于Windows的Desktop,上边列出了你常去网站的快捷链接,Windows里是快捷键,不知道以后会不会加入壁纸的功能呢?总的来说,Chrome Browser就相当于Windows的Desktop,而Chrome OS是支持多个Browser窗口的,但是Windows并不知道多个桌面,当然这个意义也不是很大。
    2. 用途。目前来讲Chrome肯定不能作为主OS来用,比如这个镜像是通过BT下载的,U盘的制作也是通过Windows应用,Chrome都不可能实现。但是,作为一个替代OS给上网本用,给那些像我一样使用计算机几乎100%就是上网的人群来说,我并没有看到有什么大问题。快速启动,无需安装,管理应用,自动更新/恢复系统,设置/数据同步,Single Sign On等等优点都是Windows不具备的,而相反在Windows上表现出来的缺点又是无法让我忍受的。比如,我看着Windows开机/关机那么慢就着急,很多时候还关不掉。我特别不愿意在Windows上安装应用,迫不得已要安装的时候都很恼火,而且极其不信任有些应用,用完卸载的时候也不清楚是否卸载干净了,是不是还留下什么烂七八糟的东西。系统整天自动更新让我要启动机器,系统万一有点什么问题恢复起来也是很不理想,基本就是重装系统,而重装之后又要重新安装软件和配置系统。机器自己有个帐号去登录,登录之后去网站还需要另外的账户。这些恼火的地方,在Chrome上都不存在了,我不知道我为什么不去用Chrome?
    3. 目前的问题。Bug还是很多,刚开始用的时候好像很快就会crash,要关机再开机。后来发现,有些时候不是crash,它自己会恢复,重启什么的,而且如果你老老实实看网页的话,crash不算严重,还算是可以一用,当然希望能够有一个相对稳定的版本出来。Sync现在并不work,菜单也是灰色的。分辨率会变,有的时候重启变低分辨率了,如果再重启就可能又高分辨率了。重启或者关机的时候总是有个disk I/O error。性能并不比Widnows上的Chrome Browser快,而且目前肯定不如在其他系统直接用Chrome Browser好用。
    4. 一些技巧。我基本不怎么懂Linux,因此这些技巧不知道是不是大家都知道呢?
    • 一些有用的快捷键:Ctrl+N (new windows), Shit+ESC (task manager), F11 (full screen), F8 (shortcuts), F12 (windows preview), Ctrl+Alt+T (new terminal),

    Ctrl+Shift+W (close window)。

    • 重启:Ctrl+Alt+T, sudo reboot
    • 关机:Ctrl+Alt+T, sudo shutdown –h now
    • 进入Terminal返回Windows,F12
    • 改密码:在另一台Linux机器上把passwd里的root和chronos的密码删除。
    • 中文输入:在谷奥上看一个网友发的搜狗云输入法,试了一下还不错。
    November 22

    Chrome OS 就是 Web OS

    Chrome OS发布会已经过去几天了,照理说当天我会写篇文章出来的,可是一来现在比较懒,懒得长篇大论,二来Chrome OS跟我几个月前的想法基本一致,没太多意外,因此就觉得没什么必要写这个文章了。最近这几天看了不少评论,比较意外地是绝大多数人对Chrome OS持有否定的态度。本来按我的设想正面负面的应该是五五开的局面,没想到其实绝大多数网友的思维惯性还是很大的,还深深陷入在PC OS的时代。今天看到一篇文章与我的观点及其一致《Underwhelmed By Chrome OS? That's Kinda the Point》,更觉得没必要再表达些什么,可是由于我还有一个观点没看到人提起,就随便写写表达一下我的看法。

    最近这两年大家被云的概念搞得模模糊糊的,什么是云?什么是云操作系统?这个概念都很少有人能分清楚,更让大家忘记了在炒作云之前的热门话题“Web OS”。在PC刚开始的时候就是个单机系统,后来发展到了网络应用就在PC OS上加入了相应的功能,比如RPC,DCOM等等,又后来由于Internet的发展,PC OS上又加入了浏览器,成为了现在的模样。也就是说,目前的OS实际上还是从单机OS繁衍过来的,根基还是在本地计算。另一方面,在局域网的时代我们开发应用都是C/S结构的,也就是说client/server结构,而在10年前开始往BS,browser/server的结构转变,最近几年转变的尤其快速,甚至单机应用也在很大程度上向B/S的结构转变。那么我们知道,在C/S时代我们的OS是分Client和Server的,比如XP/Server2003。可是在B/S时代,我们的OS还是老的样子,分为Client和Server,比如Windows最新的Win7和Server 2008 R2。那么是不是这个结构有点过时了呢?我的回答是肯定的。在B/S时代,我们应该在操作系统层面有一个全新的结构,那就应该是Web OS和Cloud OS。什么是Web OS?什么又是Cloud OS?有的网友竟然拿Chrome OS跟Windows Azure进行比较,简直是驴唇不对马嘴。按照我的理解,Chrome OS就是Web OS,Windows Azure则是Cloud OS。在一个新的时代,云计算的时代,OS一定要脱离PC时代的概念,而跟云的概念紧密结合起来。Cloud OS是云里的一个虚拟服务器,具体到有多少台服务器,服务器上装的什么操作系统,一点也不重要,重要的是他提供的服务。而Web OS则是云的端,也就是云的接入点。而Web OS不应该仅仅是一个PC上的OS,它可以在多种设备上安装,提供接入到云的服务,比如手机。用户也不在乎到底是用的什么设备,设备上到底装的什么系统,只要通过Web OS能访问云就可以了。因此,Chrome Browser比Chrome OS重要的多。Chrome OS是一个纯Web OS,而Chrome Browser则是其他设备和系统上的虚拟Web OS。以后的真正焦点还是应该集中在Chrome Browser上来。别忘了现在是Browser/Server的时代,Browser才应该是故事的主角。

    在Web OS这个术语很热的时候,我试用过一些所谓的Web OS,没什么满意的。他们大多是建筑在Adobe的Flash上面。而Facebook带给了我不少Web OS的感觉,可是它还远远不够。Chrome Browser的出现使我对Web OS的理解有深了一个层次,而Chrome OS的公布则是第一个让我彻底信服的Web OS。Google这一步走的可能超前了一些,可是事实上也许是微软拖后腿时间太长了,别忘了C/S到B/S的转变可是已经发生了很多年了。也许很多网友并不知道,微软正在研究开发很多Chrome OS已经实现的功能,很遗憾第一步被Google迈出去了,就像Office online一样,Google推出很多年,微软还没有完全实现。所以,Google的Chrome OS的方向是对的,无论成功与否,都是一个非常积极的尝试。(微软完全有时间和资源短时间改善Windows把Chrome打败)

    最后说一下我的失望之处就是由于驱动的问题,Chrome OS不能安装在绝大多数的PC上,而我也不太可能为了使用它而花钱买一台新机器。可是我说过了,以后的真正重点还是在浏览器上,因此Windows7+Chrome Browser也是一个很好的选择。