43个你应当避免的Web设计错误

原文链接。 这是一篇关于网站易用性的文章,作者以亲身体会讲述了43条 网站设计中常犯的错误,而无疑这些错误会大大影响网站的可用性。 如今网站易用性已成为一种趋势,但纵观国内的各大网站, 似乎易用性并未成为设计者们广泛理解的概念, 因此希望这篇文章对大家能有作用。

  1. 用户必须在几秒钟知道网站是做什么的。注意力是因特网上最有价值的货币。 如果访问者无法在几秒钟之内得知你的网站的方向,他很有可能转而访问其他网站。 你必须迅速地告诉访问者为什么要在你的网站上花费时间。

  2. 让网站易于速读。因特网不是书,因此没必要使用大段的文字。 也许我访问你的网站时我正在忙于其他工作,我不得不迅速读完所有内容。 项目符号、标题、副标题、列表,这些都能帮助读者迅速找到他想要的内容。

  3. 不要使用难于阅读的花哨字体。当然,某些字体可以让网站精彩纷呈。 不过它们容易阅读吗?如果你的主要目的是传递信息并让读者阅读, 你应该让阅读过程舒服些。

  4. 不要用小字体。如上一条所述,你得让读者阅读时感到舒服。 虽然我的Firefox有放大功能,但如果必须放大才能看清一个网站的话, 我就再也不会去访问它了。

  5. 不要打开新浏览器窗口。我的第一个网站曾经经常这么做。 原因很简单,在新窗口中打开外部链接,用户就不必离开我的网站。 错!让用户决定如何打开链接,否则浏览器上大大的后退按钮就没必要存在了。 不用担心用户离开你的网站,在必要的时候他们会回来的。

  6. 不要改变用户的浏览器窗口大小。用户有权控制自己的浏览器。 如果你改变窗口大小,你会在他们面前失去信用。

  7. 不必要时不要让用户注册。直白地讲,我上网是为了获取信息,不是为了别的。 不要强迫我注册并留下我的电子邮件以及其他信息,除非特别必要(比如你 能提供的消息非常有价值)。

  8. 不要在未经访问者同意的情况下为他们订阅电子杂志。 不要在访问者注册时自动给他们订阅电子杂志。 不请自来的邮件可不是个交朋友的好办法。

  9. 不要过多使用Flash。Flash不仅会增加网站的读取时间, 过度使用甚至会让访问者感到不快。只有当静态页面无法表达你的意图时 才使用Flash。

  10. 不要播放音乐。早些年Web开发者都喜欢在网站中集成音乐,结果他们失败了。 记住,永远不要使用音乐。

(Read More)

Feedburner订阅者100人纪念

自从2006年9月开始将这个blog转到Wordpress上并加入feedburner之后, 到现在为止8个月的时间,订阅者数终于达到了100人。 当然与其他大牛们相比算不了什么,不过我个人还是挺高兴的。 因此发篇文章纪念一下。 谢谢大家的关注。

subscriber-counter.png

(Read More)

如何成为一个优秀的程序员

这是前一阵子给新人讲perl时顺便聊的一些废话。暂且存放在这里。

关于自学

程序员这个行业需要不断地学习、充电。有人说过,现今的知识体系在20年之后就会成为一堆垃圾。 注意这是指整个IT行业说的,具体到某个人的话,可能五年后你的知识就没用了。 所以要不断地开阔眼界,学习知识。

那么如何学习?我认为最重要的就是学会搜索。如今,你不会编程没关系,不会配服务器没关系, 只要你会搜索,你就是好的程序员。Web2.0的发展,使得论坛、个人网站等过时,维基、博客流行起来, 而大量有价值的技术信息都分散在成千上万个博客上。因此,你得学会用好搜索引擎,推荐使用Google。 大部分人喜欢用百度,我无可厚非,不过个人认为,对于程序员来说,Google的准确性要比百度高很多。

(Read More)

扑克牌验证码

前两天在smalldust的blog上看到了关于扑克牌验证码 的想法。觉得这个想法甚是有趣。 想起了以前在一个网站看到一个猫验证码的想法,基本上就是随机出九张图片, 让评论者选出哪几张图是猫,以此来防止垃圾评论。 而smalldust的扑克牌验证码则是一个更有趣的主意。

与smalldust交涉之后做了这个插件,可以在评论页面上显示扑克牌验证码。 版权采用GPL。截图如下:

扑克牌验证码

trump-auth-10.zip

(Read More)

bash命令行历史用法小结

忙了一天做幻灯片,累死了。看来就算是自己熟悉的东西,想要给别人讲明白也不是件容易的事儿。 好在工作中发现了一个有用的命令:fc,使得今天总算有点乐趣。fc是bash的一个内部命令, 作用是修改命令历史中的命令。man bash然后搜索fc即可看到用法。

顺便总结一下bash命令行历史的用法:

  • history: 命令查看以前用过的命令行列表。
  • !123: 执行命令历史中编号为123的命令。
  • !cat: 执行最后一条以cat开头的命令。
  • !!: 执行上一条命令。
  • fc: 打开编辑器(vim)编辑上一条命令。
  • fc 123: 编辑命令历史中编号为123的命令。
  • fc 123 130: 编辑命令历史中123-130的八条命令,退出后依次执行
  • fc ls: 编辑最后一条以ls开头的命令。
  • fc -s ls=cat ls: 将最后一条以ls开头的命令中的ls替换成cat,然后执行

(Read More)

ActivePerl模块手动安装

ActivePerl是Windows下最常用的Perl版本,它使用一个名为ppm的工具来管理模块。 安装Perl模块最简单的方法就是利用 ppm,search之后再install。但由于某些原因(比如ppm不能上网)导致不能直接 使用ppm安装模块时,可以利用下面的方法。

用浏览器打开ActiveState的Perl模块发布站, 然后选择相应的版本(一般是选择8xx的Windows目录)。注意模块列表页面比较大,须耐心等待。 模块列表打开后选择自己需要的zip包下载,例如我下载了 DBD-Oracle-1.17.zip。

下载之后将其解压到C:\下(不一定是C盘,但一定要解压到根目录下),出现两个文件:DBD-Oracle-1.17.tar.gz和 DBD-Oracle-1.17.ppd。然后打开命令行,切换路径到到 C:\,然后输入 ppm-shell 启动 ppm,输入以下命令即可安装。

install C:\DBD-Oracle-1.17.ppd

(Read More)

APS: 代理认证的好帮手

最近公司启用了域,并且代理服务器加上了NTLM认证,只有加入域的电脑才能够使用。 这样一来,虽然IE和Firefox能够正常通过代理上网,但是像FlashGet等不支持NTLM代理认证的 下载工具就没法使用了。

不过今天发现了APS这个工具,它能够帮你进行NTLM代理认证, 使得不支持NTLM认证的工具也能正常使用代理。其方法就是在本地机器上再架设一个不需要认证的代理, FlashGet使用这个代理上网,而APS接收到FlashGet的请求之后,将其加上认证信息,再转发给 真正的代理服务器。

目前最新版为 0.9.9.0.1,下载最新版解压缩即可。它用python写成,需要先安装Python才能正常使用, 推荐使用2.4以上版本。

解压之后修改里面的server.cfg文件,进行以下设置。

# 本地代理的监听端口
LISTEN_PORT:5865

# 实际的代理地址
PARENT_PROXY:172.28.14.3

# 实际的代理端口
PARENT_PROXY_PORT:8080

# 你的机器在域上的机器名
NT_HOSTNAME:<机器名>

# 你的机器加入的域的名称
NT_DOMAIN:<域名称>

# 域用户名
USER:<用户名>

# 域密码
PASSWORD:<密码>

之后打开runserver.bat,修改其中的python路径指向正确的python解释器即可。

运行runserver.bat,APS即在本机的5865端口架设一个代理,然后令FlashGet使用127.0.0.1:5865作为代理即可正常使用。

(Read More)

GoDaddy域名重定向DIY

最近好多人都在问我GoDaddy的域名转向设置方法。其实我没用过GoDaddy的域名转向, 而且据说在中国国内无法访问域名转发服务。幸好GoDaddy对每个域名都提供了免费的虚拟主机, 虽然是带广告的,不过我们可以用它来做自己的域名重定向。 方法么,自然是用mod_rewrite了。

(Read More)

基于Trac的项目管理系统构建(Windows篇)

关于Trac的介绍请参见前一篇文章

这里我们要构建一个基于Trac的项目管理系统。代码管理使用subversion,项目管理使用Trac。所需要的软件包如下:

很遗憾subversion现在仍然不支持最新的Apache 2.2系列,因此我们只能使用Apache 2.0系列。 而pyPgSQL 2.5.1版和ClearSilver 0.9.4不支持Python 2.5,因此只能用 Python 2.4。

另外,虽然Trac支持SQLite,但SQLite支持的SQL语法有限,实际应用中会有诸多不便, 因此我们选择了PostgreSQL作为后台数据库。

(Read More)

Trac 介绍

今天介绍一下Trac,一个基于Web的bug管理系统。

Trac拥有强大的bug管理功能,并集成了Wiki用于 文档管理。它还支持代码管理工具Subversion,这样可以在 bug管理和Wiki中方便地参考程序源代码。

bug管理

在Trac中,项目中出现的问题称为ticket。像bug、功能改进、 TODO等都可以写成一个ticket。

  • 可设置ticket的优先级别。
  • 可以设置ticket的里程碑,表明这个ticket应在何时完成,并能够通过条形图方式显示里程碑的完成度。
  • 可以自定义条件生成bug报告,并可以通过SQL语句自定义报告的格式。

Subversion集成

通过Subversion集成,开发者可在Trac中以Web方式浏览代码库中各个版本的代码 和代码的修改历史,并可方便地比较各个版本间的差别。

Wiki

支持常用的Wiki语法。同时增加了许多bug管理的专用标记, 可以方便地创建到ticket、代码行甚至修改历史的链接。

Trac使用Python写成,后台使用SQLite或PostgreSQL数据库, 因此构筑一个完整的Trac系统需要安装以下软件:

  • Apache
  • Python
  • Subversion
  • PostgreSQL(可选)

下回继续介绍Trac的安装方法。

(Read More)