2007-10-09

如果一个web开发者的PC到现在还没有装Firefox浏览器,在我看来已经不能算是一个合格的web开发者。首先一个web开发人员需要考虑的 就是跨浏览器问题,Firefox市场份额的急剧扩大,已经是web开发人员在开发过程中必须考虑的一款浏览器,而不像以前只要在ie上测试通过就可以。 还有一个更重要的原因是Firefox数量众多的插件和扩展,对于一个web developer来说,里面有很多非常有价值的工具。合理的利用这些工具,可以让开发事半功倍。

Debugging工具

Firebug - 可以让你实时的编辑html和css源码并preview,分类查看页面中的html、css、javascript代码以及dom树.

JavaScript Debugger - 一个强大的javascript调试工具.

Console Two - 帮助显示页面上的javascript错误和html语法警告.

Analysis分析工具

View Source Chart - 以图表的形式显示页面中用到的颜色.

OperaView - 在Firefox的tab中用opera打开页面.

View Dependencies - 显示当前页面中包含的已经加载的其他文件列表.

lori - 告诉你加载页面花了多长时间.

HTML Validator - HTML语法校验插件,会分析当前页面的html中出现的错误和警告.

CSS Validator - 验证css语法.

RSS Validator - 验证RSS格式.

Window Resizer - 调整窗口大小到各类标准大小,如1024*768,800*600等等,方便在各个大小下查看页面的显示效果.

IE Tab - 在firefox的tab中用ie打开页面.

ViewSourceWith - 默认情况下firefox中的“查看页面源代码”使用firefox的一个窗口打开的,这个插件可以指定外部的应用程序来浏览页面源代码。

CSS

Aardvark - 把鼠标移到页面元素上,会显示当前元素css的attributes和classes.

Font Finder - 功能同Aardvark差不多.

SEO

Niche Watch Tool - Very good plugin that provides you the technical information like backlinks, page rank, keywords strength… everything a webmaster needs to analyze his site.

KGen - This addon retrieves all words of a page and lets you know how many times they appear; interesting for SEO optimization.

其他

Greasemonkey - 允许你通过写javascript在客户端控制网站页面的显示。

ColorZilla - 颜色收集器,把鼠标移到页面元素上,可以显示出当前元素的颜色参数值.

Screengrab! - 保存当前页面为图片.

Image Zoom - 帮助你缩放页面上的图片.

Web Developer - 不多说了,web开发人员必须,功能超级强大.

ShowIP - 显示当前浏览页面对于的IP地址. ServerSpy - 显示当前浏览页面所在web server的具体名称和版本号

Tags: .
2007-09-01

这段时间装了一些扩展,Firefox的运行环境估计被搞的有点乱了,启动速度很慢,打开标签页的速度也没有原先快了。Google上搜了一下“speed up firefox”,找到些有用的建议。

加快启动速度:

  1. 选项-主要-系统默认值中,取消“启动时总是检查firefox是否为默认浏览器”。
  2. 在启动ff的快捷方式里面加入启动参数: /Prefetch:1,也就是比如:如 “C:\Program Files\Mozilla Firefox\firefox.exe” /Prefetch:1
  3. 另外在你的 FF 快捷方式后面加上 -turbo如 “C:\Program Files\Mozilla Firefox\firefox.exe” -turbo
  4. 删除一些不用的扩展和插件,还有一点要注意,有些扩展和插件是恶意的或者存在缺陷的,比如会导致内存泄露等等,对这类扩展建议删除。
  5. 高级-更新中,取消“自动检查下列更新”中的所有更新选项。
  6. 不要用花哨的主题(Theme),建议还是用默认的Firefox主题。
  7. 定期删除网页缓存和cookies。

加快网页浏览速度:

在地址栏输入“about:config”,设置以下参数的值:

network.http.pipelining, true
network.http.proxy.pipelining, true
network.http.pipelining.maxrequests, 30
content.notify.backoffcount, 5
plugin.expose_full_path, true
ui.submenuDelay, 0

(如果about:config中没有相关的参数,可以在Application Data下找到一个prefs.js的文件,在里面加javascript代码就可以了)

更多的设置或者一些帮助加速的插件见下面的相关链接

Tags: .
2007-08-23

近年来,随着互联网的迅速发展,伴随而来的是各类Web应用的大量普及,Web2.0、SNS这类概念层出不穷,简单的基于HTML的Web应用已 经不能满足用户的需求和体验,随之出现了flash以及这两年很火的ajax技术。但是这些技术有一个通病,就是还是逃不出浏览器这个大框框,在安全性和 应用范围存在着明显的局限性,比如不能直接操作文件系统,处理声音、视频、图像有一定局限性等等。这时候看出web程序不如传统的桌面程序的一些缺点,如 何既能保留web应用程序的跨平台性,又有传统桌面应用的强大功能,同时保准在开发上的相对简单。这就是RCP(Rich Client Platform)平台要解决的问题。

RCP平台应该具有的功能

  1. 跨平台,支持各类主流操作系统,基于RCP构建的应用程序理论上可以在不修改代码的前提下运行在各个操作系统上。
  2. 支持插件扩展机制,提供标准的接口或者API,让应用程序开发用户可以很容易的基于平台开发插件或者各类扩展。
  3. 具有网络分发和更新功能,支持插件或者扩展的自动更新机制以及网络分发,如Eclipse的“Find and Install”和Firefox的xpi网络安装方式。
  4. 嵌入Web浏览器,现在的应用都已经离不开web,嵌入的Web浏览器可以整合外部的web应用,充满利用web的优势。

现有的RCP平台:

  1. Eclipse RCP,从Eclipse项目中提取出来的一个平台,底层为OSGI架构,基于Java和Swt,同时提供了很好的plugin机制,可以通过SWT中的Browser对象嵌入安装在操作系统中的Web浏览器。基于Eclipse RCP的程序应用已经非常多,如RSSOwlAzureus等。
  2. Adobe AIR,以前也叫Apollo,主要应用Ajax、Flex、Flash技术,让用户把传统的Web技术应用于桌面开发,现在成熟的应用还不多。
  3. Mozilla XULRunner, 这是有Mozilla支持的一个平台,Mozilla的主要项目现在都是基于这个平台开发,如Firefox,支持XUL规范,提供了各种语言的COM接 口,如JavaXPCOM,可以扩展COM,插件和扩展可以通过javascript与COM交互,更便于用户来写插件和扩展,看看针对Firefox的 那么多插件,就知道它在扩展方面的优势了。这段时间炒的沸沸扬扬的Joost客户端就是基于XULRunner开发,还比较有名的应用有 Songbird、Miro。
  4. Microsoft Silverlight,微软的东东,没有太仔细研究。

每个平台深入进去都有很多值得研究的地方,现在还都是起步阶段,彼此之间似乎还不能存在竞争关系,个人看好XULRunner,但是Mozilla实力相对较弱,如果能够被Google收购或者Google能够来支持XULRunner,它的机会将会更大。

Tags: ,,.
2007-06-20

Google高调发布了Google Gears,一个离线 web框架。随着ajax技术的大量应用,web应用程序开始转向Rich Client的方向,这类程序需要从server端获取大量的javascript代码,并且在客户端不能保存太多的状态值,即时要保准这些状态值,当关 闭浏览器以后,这些值就消失了,要真正做到Rich Client,如传统的C/S程序,web应用程序还是有太多来至浏览器的限制。而且客户端的每次影响状态改变的操作需要即时同步到服务器端,导致了客户 端和服务器的通讯量增大。

种种限制必将影响ajax技术的发展。这也是这两年ajax应用增多以后,很多公司都遇到了同样的问题,于是纷纷开始考虑离线web技术。现在可以选择的离线web技术除了google gears外,还有:

  • Apollo (Adobe)
  • Dojo Offline Toolkit (Dojo/Sitepen)
  • Slingshot (Joyent/Magnetk)
  • Firefox 3 Offline Support (Mozilla)
  • XUL Runner (Mozilla)
  • Zimbra

这几个框架或者技术里面,从现有的状态来看,google gears的跨平台能力相对较强。现在支持ie6.0+、firefox1.5+,同时支持windows/mac/linux。

Google Gears已经开源,有心想成为offline web的一个标准,但是从现在的状态来看,还有更长的路要走,毕竟这项技术刚刚起步,其他公司也不可能放弃自己的技术来支持gears,微软还没有发布类 似的技术框架,估计今年内也会有类似的产品出来。如果google真有心把gears做成一个业界的标准,建议向IBM学习,学学Eclipse是如何一 统天下的,首先不要叫Google Gears,去掉google的影子,然后搞个几千万美金成立一个基金会,独立来运作,这样更容易吸引其他公司参与进来。

Tags: .
2007-05-23

在今天,经历了如此发展历程的开源软件,已经不仅仅是开放源代码的免费软件了。开源软件与商业本身并不冲突,事实上,它也是一种新兴的商业模式。与传统的商业软件相比,开源软件采用了开放源代码、免费分发等形式,这就减少了营销与销售成本,更易于广泛传播。
其实,开源软件可以是成功的商业行为,那么这意味着什么呢?首先,商业公司必须要能够生存和盈利;其次,商业公司生存的意义在于为用户创造价值。下面我们来看看开源软件是如何生存、如何创造价值,并如何借助其创造的价值来获得回报的。

盈利模式之一:多种产品线

在这种模式中,利用开源软件为直接产生收入的专有软件来创造或维持一种市场地位。例如,开放源代码的客户端软件带动了服务器软件的销售,或者借用开源版本带动商业许可版本的产品销售。这种模式应用得比较普遍。
如MySQL产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本,分别采用不同的授权方式。开源版本完全免费以便更好地推广,而从专业版的 许可销售和支持服务中获得收入。再如Red hat自Red hat Linux后将原桌面操作系统转为Fedora项目,借Fedora Core Linux在开源社区的声望而促进Red hat Enterprise Linux AS/ES/WS服务器产品线的销售。

盈利模式之二:技术服务型

在这种模式中,开放源代码软件采用了一种全新的市场定位,并非面向产品,而是针对技术服务。JBoss就是这种模式的典型代表,JBoss应用服务器完全免费,而通过提供技术文档、培训、二次开发支持等技术服务而获得收入。

盈利模式之三:应用服务托管(ASP)

这种模式适用于基于开源软件的应用服务供应商(ASP)。例如,PHP Live就是一种构架于PHP、MySQL之上的开源软件,它可为企业用户提供实时交谈服务。目前已经有数十家公开提供PHP Live托管服务的应用服务提供商。

盈利模式之四:软、硬件一体化

这种模式主要是针对硬件制造商的。随着竞争的普及,市场压力迫使硬件公司开发并维护软件,但是软件本身却并不是利润中心,因而采用开源软件。这种模式被 很多大型公司广泛采纳,比如IBM、HP等服务器供应商巨头,通过捆绑免费的Linux操作系统销售硬件服务器。而Sun公司近期将其Solaris操作 系统开放源代码,以确保服务器硬件的销售收入,也是这种模式的体现。

盈利模式之五:附属品

在这种模式中,出售开放源代 码的附加产品。比如在低端市场,出售杯子和T恤衫等;在高端市场上,出售专业编辑出版的文档和书籍。O’Reilly集团是销售开源软件附加产品公司的典 型案例,它出版了很多优秀的开放源代码软件的参考资料。O’Reilly实际上雇用和支持了一些著名的开放源代码黑客(例如Larry Wall和Brain Behlendorf),并以此提高它在市场上的声望。

盈利模式之六:品牌战略、服务至上

在这 种模式中,开源公司通过开源软件先天的传播优势,以极低的成本建立和传播品牌,并通过向用户提供产品相关的服务来获得回报。康比尔公司的 Compiere ERP&CRM软件就是这种模式的典型案例。康比尔公司开发了开源的ERP&CRM软件,由于其产品优秀,很快便获得了北美、欧洲和亚洲 中小企业用户的认可,Compiere品牌也因此迅速地传播到了世界各地,在企业管理软件市场已经成为全球知名品牌。

盈利模式之七:市场策略

这种模式是一种快速抢占市场的营销策略,主要是为以后增强版产品的销售打下基础。这种情形的案例有很多,比如微软宣称部分公开Office的源代码,就 是执行这种策略;另一个案例则是CRM领域的新星Sugar CRM,这款由速加科技开发的开源版本从公开下载后就广为传播,这为其后来盒装专业版套件做好了口碑上的准备。

Tags: .
2007-03-02

REST(Representational State Transfer),有人翻译成中文为“具象状态传输”,最近在开发者社区中被广泛讨论,可以把它理解为同MVC和Ajax一样,是一种架构模式,来源于 最初对互联网web架构的定义,在URI和HTTP这类标准之上的一套web通用架构,URI表示资源,HTTP协议提供GET/POST/PUT /DELETE四种基本操作动作,任何动作都可以由这四种最原子的动作组成。当然REST只是一种架构和思想,所以也不限于URI和HTTP协议,用户可 以自己定义新的协议实现REST架构,如用直接在TCP/IP协议上来实现REST架构。

因为现有的浏览器软件提供商都没有实现HTTP协 议中的PUT和DELETE方法,所以严格来讲,现在的web应用都不是REST架构,包括html中的form method也只能是GET和POST方法,但是很多web应用服务器都已支持PUT和DELETE方法,如java servlet api可以看到put和delete接口。一些http client如apache commons httpclient也支持这两种方法。在现阶段要实现REST架构的应用程序,我们只能借助ajax(XMLHttpRequest可以支持PUT和 DELETE方法)或者在某些情况下自己写客户端。

REST架构的特点在于把一些逻辑放在了客户端,客户端与服务器端的交互就是对服务器端资源的操作,或者可以理解为远程资源调用,Ruby on Rails在REST架构上已经有所尝试,估计在今后几年内,REST架构会有一个大的发展。

资源:

Tags: .
2007-01-02

如果你有这些平台上的开发经验,你应该已经知道如何选择,如果你只是做过Java开发或者PHP开发,在技术社区疯狂追捧RoR的浪潮中,在是否应该选择RoR上还犹豫不决,下面这段文字或许对你有所帮助。

你 的工作是编写高质量的、美观的web应用。你必须在明天之前把它开发出来,同时又必须在未来几年中维护和扩展它。你可以选择Java,基于J2EE的解决 方案通常有着良好的结构,但编写Java程序的工作量之大是令人生畏的。你也可以选择PHP之类的脚本语言,这样你可以快速的写出代码,但又得担心如何在 未来的几个月乃至几年中维护和扩展这些代码。

Ruby on Rails很可能正是你在寻觅的中庸之道。

Rails是一个完备的MVC web框架,它可以帮助你开发出结构严谨的应用程序,而又不会给你带来沉重的时间压力。你只须专注于应用的功能,Rails会帮助你搞定技术细节的问题。而且,由于采用Ruby编程,你将可以充分享受这个世界上最具动态性的语言的挥洒自如。

注:摘自《Agile Web Development with Rails》

Tags: .