九月 03

试用 Google Chrome 浏览器

Google 昨天发布了一款开源的浏览器,已经可以下载。目前还只有 Windows 的版本,据说以后还会推出 Linux 和 Mac 的版本。

Google Chrome

和目前主流的 Internet Explorer 和 FireFox 比起来,Chrome 的特点就是简洁轻便,Installer 的大小约为 22.8M,和通常的 Windows 应用程序相比,Chrome 窗口没有标题栏和菜单栏,也没有状态栏,界面上除了标签栏、按钮/地址栏和书签栏三行以外,剩下的空间全部留给打开的网页。在地址栏后面有连个按钮,分别是针对当前页面的操作菜单和浏览器的设置菜单,因此操作起来也比较简单,这算是秉承了 Google 一贯的风格。值得一提的是,在地址栏中,URL 的域名以外的部分会显示成灰色,而域名是黑色,这样使得域名看起来更加突出。

虽然界面简洁,操作简单,但功能上该有的也一点都不含糊。支持多页面浏览、内置多款搜索引擎、支持字体缩放。可以从 Internet Explorer 或者 FireFox 导入书签、搜索引擎设置、已经保存的密码以及浏览历史记录。另外,还有下载管理、密码保存、界面默认字体和编码设置、代理服务器、内容和弹出窗口过滤、网络欺诈和恶意软件保护、SSL 证书管理等,可谓应有尽有。同时浏览器以及预置了包含简体中文和繁体中文在内的 42 种界面语言以及拼写检查。从安装目录的文件夹设置上看,应该也支持第三方插件和换肤功能,只是在浏览器界面上还没有体现出来。

对于网页开发人员来讲,Chrome 也体贴的预先内置了源代码查看器(带语法高亮)以及 DOM 查看器以及 JavaScript 调试功能。 IE 和 Firefox 则需要安装第三方插件实现这一功能。

经过测试发现 Chrome 在我机器上的 User Agent 值为:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

用的可能是 Safari 内核。目前的版本为 0.2.149.27,还只是处在测试阶段,相信以后会更加完善。

九月 02

修改 IE 默认 HTML 查看器

众所周知在 Internet Explorer 打开的网页中,点鼠标右键,选“查看源代码”,即可查看所打开的网页的HTML 源代码,但通常系统会用 Notepad 打开,如果要仔细查看源代码内容,Notepad 可能显得不那么方便。修改一下注册表键值,即可用自己顺手的文本编辑器打开。

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerView Source EditorEditor Name]

将 (default) 的值改成编辑器的路径即可,例如用 UltraeEdit,可以写:

"C:Program FilesUltraEdituedit32.exe"

如果没有这个键,按照路径创建即可。

我一直用 EditPlus,要将 EditPlus 关联到 IE,可以直接在设置里打开这个选项。具体的:

Tools / Preference… / General / Use EditPlus in Internet Explorer 5

这个方法应该适用于 Windows 所有的版本,已知在 Windows 98 / Me / 2000 / XP 上有效。

九月 01

用 Cobertura 测量测试覆盖率

单元测试相信大家都不陌生,测试先行编程(Test-First Programming)和测试驱动也不是什么新概念了。测试改进了代码质量,但这也只是针对实际测试到的那部分代码而言的。您需要有一个工具告诉您程序的哪些部分没有测试到,这样就可以针对这些部分编写测试代码并找出更多 bug。

现在,有 Cobertura (cobertura 在西班牙语是“覆盖”的意思)这个免费的 GPL 工具在 Java 领域来完成这个任务。Cobertura 通过在执行测试时,用额外的语句记录哪些行被测试到、哪些行没有被测试到,通过这种方式来度量字节码,以便对测试进行监视。然后它生成一个 HTML 或者 XML 格式的报告,指出代码中的哪些包、哪些类、哪些方法和哪些行没有测试到。可以针对这些特定的区域编写更多的测试代码,以发现所有隐藏的 bug。

先来看看生成报告的样子吧:

Cobertura 报告示例(点击放大)

可以看到报告列出了每个包的行覆盖率、分支覆盖率以及复杂度。点击进去,可以看到针对这个包里头每个类的报告,进而每行代码的测试情况,以及被测试到的次数。这里是 Cobertura 官方网站上给出的一个报告的 Sample。
继续阅读 »

八月 28

Blogger Feed 地址被封?

之前用 Blogger Feed 的 JSON 回调功能实现了侧边栏的“最近评论列表”,后来在把页内评论表单改成 AJAX 方式的时候,也顺便把文章下方的评论改用 AJAX 异步获取了,这样在提交评论后可以立即显示出来,而不用等待 Blogger 通过 FTP 发布重建页面。

可是最近一段时间,发现这两处的评论列表都出现了问题,显示时好时坏,到后来就直接停止工作了(一直显示 Loading Comments…)。而且,在访问了我的 blog 地址的一段时间内,无法打开 www.blogger.com 域名下任何页面。但是如果使用代理,则以上问题都不存在。所以我想大概是 Blogger 的 Feed 地址被封了。

Google 了很久也没看到有类似的案例,因为作为 Blogger 的用户,BlogSpot 和自定义域名的 blog 上,feed 是可以正常访问的。但是对于本站这种 FTP 发布的来说,就只能依赖 http://www.blogger.com/feeds/... 这个地址了。估计是国内用 Blogger FTP 发布的 Blog 并不多,也很少有依赖 feed 地址来实现功能的,所以也就没太关注这个问题吧。通过 Google 找到另一个用 Blogger FTP 发布的例子,mixfog,细研究下发现博主完全摒弃了 Blogger 的评论系统,自己实现了一套评论,可以自动获取并显示评论者留下的 URL 的 favicon,还可以回复评论,真是有心啊……

为了解决这个问题,我寻思了好久都没有找到办法。因为打开评论的 feed 地址是在 JavaScript 调用的,因此要求所有的访问者都能访问这个地址才行。我试过写一个中转的 PHP 程序在服务器上来获取内容再直接返回,可在服务器上实验时直接返回了 404,看来在国内是没办法访问到的了。

今天突然想起来如果能够在国外的网站上做这样一个中转,就可以解决了,于是问了下朋友 liuming,把中转的 PHP 页面放到他的 DreamHost 主机上,于是问题就解决了…… 在此深表谢意!郁闷了好久的问题终于解决了。

顺便说句题外话,DreamHost 上 500G 空间、可开无数独立站、每月流量限制 5T 的虚拟空间,一年才 119 美元,看样子比我在国内租的合租服务器划算多了啊…… -_-bb

五月 30

Google 的新 Favicon

刚刚发现,Google 似乎更换了网站的 favicon:

和以前旧的纯色边框比起来,现在的浅色渐变和四周的圆角显得更时尚!如果你看到的还是旧的图标,可能是因为缓存的原因。打开 http://www.google.com/favicon.ico 应该可以看到新的图标。另外,Gmail 和 Blogger 的图标还暂时没有发现有变化。

五月 29

用 AJAX 实现 Blogger 页内评论

之前服务器上有 Java 环境时,一直用一个自己写的 Servlet 作为中间代理来向 Blogger 的评论页面 POST 表单数据,实现页面内的评论操作,后来转挂在朋友的 IIS 服务器下,由于对 ASP 不熟,这一功能就一度取消了。现在购买了新的 Linux PHP 服务器,因此用 PHP 重新写了一个同样功能的中间代理来实现这一功能,并且实现成了 AJAX 的模式。评论内容的读取也一样通过 Blogger Feed 的 JSON 模式读取,因此提交评论后可以立即显示出来,而不用再等待 Blogger 重新生成 HTML 页面并通过 FTP 上传这一漫长的过程。(虽然实际上后台它还是不可避免的执行了这个过程。)

经过多次测试,应该可以用了。关于 Spam 的问题,以前的验证码是直接读取的 Blogger 页面的 Captcha 图片,现在 Google 改变了表单结构以至于程序已经无法自动做这个动作。所以我取消了 Blogger 自己的 Captcha 验证,自己写了个简单的加减法验证,虽然仍然不能完全杜绝 Spam,但已经比几天前测试时裸奔的情况好多了。当时夸张到一个下午一张帖子被贴了 50 多条 Spam 评论。毕竟传说 Google 的 Captcha 也已经被破解了么,同样不能完全杜绝 Spam。 ;-)

另外,Backlink 不显示的问题也修正了。不过,经过前端时间页面恶意代码事件的影响,目前似乎已经没什么 Backlink 了…… :-(

五月 28

更换服务器

前段时间 blog 一直挂在朋友公司的服务器那里,不知道怎么可能中了病毒,会给网站内的网页和 JavaScript 脚本加尾巴以传播恶意软件,连 Google 也给这个域名下的搜索结果加上了“传播恶意软件”的警告信息。虽然一再通知朋友,但是似乎病毒很顽固,即使手工把“尾巴”去掉了,每次更新又会被加上。这段时间给大家造成了困扰,在这里表示诚挚的歉意。

在网上了解到现在有服务器合租这种服务器的租赁模式,5-30 人共享一台服务器,费用比自己租赁托管服务器要便宜很多,贷款和资源又比虚拟空间模式更能得到保障。有些比较好的合租服务商还有良好的服务器控制面板,可以自行控制域名绑定、FTP / 数据库帐号、网络邮局等,因此特地选了一个基于 Linux 的 64 位 PHP 服务器,并且已经开通了常用的 PHP 扩展库,6G 的空间,一共可以开 4 个独立的站点,非常的方便。关键是有专业的队伍维护,至少不会再有病毒干扰了。目前已经通过 Google 的 Webmaster 工具提交 Google 重新审核过,Google 已经去掉了“传播恶意软件”的警告,朋友们以后可以放心访问这个 blog。 ;-)

另外,目前自己只用得到 1-2 个独立站,还可以开 2 个,如果有朋友有需要用 PHP + MySQL 空间,可以联系我,大家充分利用资源!

一月 22

微软将强制将浏览器升级到 IE7

在 Solidot 上看到InfoWorld 的报道称,微软将在 2 月 12 日通 Windows Server Update Services 把所有 Windows 系统的浏览器强制升级到 IE7,不会像以前那样要经过用户的许可。微软给出的理由是“安全原因”。

Solidot 上还调侃说,对 WEB 开发者来说这是个好消息;对以前只支持 IE6 的网站来说,这是场灾难。

此话不假。以前做 WEB 界面,在所有为浏览器兼容性付出的工作中,50% 的时间花在让 IE 和 FireFox 兼容,另外 50% 的时间花在让 IE 的不同版本之间兼容。作为同一个公司推出的同一系列产品,对一种有标准的文档的理解会有如此大的差异,真的可以说是一件让人费解的事情。不过现在微软终于醒悟了,既然事实已经造成,那就让糟糕的过去都消失掉吧……

二月 13

MySQL 的自动断开连接问题

最近发现 MySQL 会自动断开 IDLE 时间超过 8 小时的数据库连接,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。

有两个办法可以解决这个问题:

第一个办法是修改 MySQL 的配置参数。这个参数的名称是 wait_timeout,其默认值为 28800(单位秒),刚好就是 8 小时。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL 会主动断开这个连接。

有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。

第二个办法是如下修改 JDBC 连接的 URL:

jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true

添加 autoReconnect=true 这个参数,即能解决这个问题。

另外,对于 Java 的应用程序,据说第三方的数据库连接池应用 Proxool 能够对断开的数据库连接发起自动重连,不过我没有用过,有兴趣的朋友可以尝试一下。

一月 08

不再厌恶中文版 Windows XP

一直很厌恶简体中文版的 Windows XP,而尽可能的用英文版,不是我为了炫耀英文——其实刚开始使用英文版的时候真的有种找不到北的感觉——之所以会厌恶,完全是因为字体!

厌恶 Windows 系统“宋体”的默认西文字体已经有年头了,我是不会在任何场合下使用其对应的西文字体的,只要有可能我就会用 Tahoma 或者 Verdana 来替代。诚然,宋体在 12px 以及 14px 下作为正文字体是非常合适的,也很入眼,但是在比 12px 更小或者比 14px 更大的场合,这款字体就不那么好看了,加上它没有很好的支持 Anti-Aliasing 和 ClearType,因此在 Windows Vista 中才会替换成了以前说过的“微软雅黑”。

通常中文版的 Windows XP 装好后,大部分的字体都可以通过“显示属性”对话框中“外观”选项卡下的“高级”选项对话框来设置。然而,登录界面以及登录后屏幕左下角“开始”按钮上偌大的“开始”两个字,可以说要多难看有多难看。经过一番 Google 和琢磨,现在终于找到办法来将这两处的字体换掉。这样一来,我就可以比价舒服的用中文版的 Windows XP了。以下是修改方法:
继续阅读 »

正在加载在更多文章…