Web 2.0 的视觉设计

前两天在 del.icio.us 上看到了《The visual design of Web 2.0》这篇文章,读完之后觉得甚有道理,于是发信问原作者Jonathan能否将其翻译成中文,作者爽快地答应了,只要求链接到他的原文。忙了一个晚上终于翻译完了,才发现我的英文水平真的下降了很多很多,甚至连 as far as … be concerned 都不知道是什么意思了……虽然蹩脚的翻译使原文减色许多,但希望能够传达原文的意思。

翻译文如下。(Original article


前一阵子维基百科的Web2.0条目包含了一节内容,专门描述Web 2.0的视觉元素,讲述了渐变色、绚丽的图标、反射效果、阴影以及大号字体等等。

但是几天之后维基人投票决定撤掉“视觉元素”这一部分。推究其原因,可能是Web 2.0的特性不能通过一系列的视觉规则来精确地定义。如果 Web 2.0 被理解为一种内容生成和发布的途径,那就没必要将其禁锢在视觉效果的框框里。

尽管如此,事实上大多数 Web 2.0 网站都有某种独特的艺术风格。也许维基人觉得这不属于Web 2.0的讨论范畴,但我却认为这十分必要。让我们开始 Web 2.0 的视觉之旅,看看所谓“Web 2.0风格”起着怎样的作用。

(Read More)

Javascript常犯的一个错误

用Javascript经常会遇到一个很头疼的问题:Firefox下工作正常的代码,放到IE下就出现语法错误。这时可以检查一下是否有类似于下面的代码。

<script>
var a = {name:"charlee",};
alert(a.name);
</script>

生成对象时,对象的最后一个属性后面多了一个逗号。频繁添加删除属性时,经常会忘记删除最后的逗号。Firefox会忽视这个逗号,而IE却会报错。

(Read More)

Javscript字符串替换函数的benchmark

感谢Clear为我们提供了这个效率更高的字符串替换函数。这是经常使用的HTML特殊字符替换函数,即将 &、<、>、” 等函数替换成 &、<、>、"。通常的作法都是连续使用数个 replace 函数,而Clear仅使用一个 replace 就完成了替换。

我对这两个函数作了benchmark,发现新函数的效率约为原函数的1.4倍。虽然没有预想中那么高效率,但当要替换的字符串更多时,效率应该会提高吧。

测试方法为,对一个2048字节长的字符串分别执行两个函数100次,取其执行时间。下面为10次测试的结果。toTXT_1 为通常的作法,toTXT_2 为Clear的方法。

toTXT_1(ms)toTXT_2(ms)toTXT_1/toTXT_2
1609120475%
2250154769%
1672131379%
1813125069%
1844121966%
2063142169%
2031117258%
1797136076%
2015128164%
1860150081%

测试程序在这里

(Read More)

如何修改Linux主机名

主机名一般是在安装时设定好的,若想修改,则需要进行以下步骤。

  1. 执行命令 hostname,修改当前系统的主机名

     # hostname newhost
    
  2. 修改 /etc/sysconfig/network,使得下次启动时使用新的主机名

     hostname=newhost
    
  3. 修改 /etc/hosts。不修改的话,apache等需要解析主机名的服务将不能启动

     127.0.0.1    newhost localhost
    
  4. 最后就是命令行提示符中的主机名还没有改变,如果很在意的话,重新登录一下就行了

(Read More)

VMware的网络类型

VMware支持三种类型的网络:NAT,Bridged,Host-only。

NAT

这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。

vmware-network-nat.png

Bridged

这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。

vmware-network-bridged.png

Host-only

这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。

vmware-network-hostonly.png

(Read More)

真正免费的VMware

本文参考了这篇文章

VMware是一个简单易用而且十分稳定的虚拟机软件。VMware公司最近公布了免费的 VMware Player, 它能够运行 VMware 制作的虚拟机,但是制作虚拟机就需要花费数千元购买 VMware Workstation。 (当然,破解不在本文讨论范围之内。)好在我们可以运用另一款免费的软件 QEmu 来制作虚拟机, 这样就能够做到完全免费了。

  1. 首先下载 VMware Player并安装。
  2. 下载 QEmu for Windows,并将其解压。
  3. 运行命令行,进入 QEmu 所在的目录,执行以下命令。

     qemu-img create -f vmdk image.vmdk 10G
    
    create建立虚拟硬盘
    -f vmdk指定虚拟硬盘的格式为VMware
    image.vmdk虚拟硬盘的文件名
    10G虚拟硬盘的大小
  4. 制作配置文件。用文本编辑器编辑一个 image.vmx 文件,内容如下。

     config.version = "8"
     virtualHW.version = "3"
     memsize = "256"
     ide0:0.present = "true"
     ide0:0.fileName = "image.vmdk"
     ide1:0.present = "true"
        
     # CD-ROM配置
     ide1:0.fileName = "auto detect"
     ide1:0.deviceType = "atapi-cdrom"
     # 如果使用光盘镜像,则用以下两行代替上面的两行
     # ide1:0.fileName = "/path/to/foo.iso"
     # ide1:0.deviceType = "cdrom-image"
        
     # 网络配置
     ethernet0.present = "true"
     ethernet0.connectionType = "nat"
     guestOS = "otherlinux"
    
  5. guestOS的值可按以下方法来配置。

    Windows Server 2003 Standard Editionwinnetstandard
    Windows XP Professionalwinxppro
    Windows 2000 Professionalwin2000Pro
    Red Hat Linux (generic)redhat
    SuSE Linux (generic)suse
    Netware 5netware5
    Netware 6netware6
    Solaris 9solaris9
    Solaris 10 (experimental)solaris10
    FreeBSD (generic)freebsd
    Other Linuxotherlinux
    Other Linux 2.4x kernelother24xlinux
    Other Linux 2.6x kernelother26xlinux
  6. 双击建立好的 image.vmx 即可启动虚拟机。

(Read More)

Firefox: 我常用的插件

Firefox 拥有强大的插件功能是众所周知的,而面对众多琳琅满目的插件, 初学者往往不知道应该如何选择。这里show一下我常用的 Firefox 插件, 一来是给大家提供一点参考,二来是做个备份,重装系统时不必再逐个查找了。

(Read More)

Firefox2的一个bug

今天在调试程序时发现一个很奇怪的错误,查到最后发现原来是 Firefox 的一个bug。 window.open 打开的页面中,通过 prototype 定义的属性不会被对象所继承。 最明显的例子就是 Function.prototype(我也只测试了这一个), 通过 window.open 打开的页面中的函数不能继承 Function.prototype 定义的属性。

(Read More)

Ubuntu 6.10 edgy升级指南

这里有一篇关于如何安装 Ubuntu 6.06 的文章,虽然有些老了,但是本文是在这篇文章的基础上写成的,看看也许能有些参考。

修改 /etc/source.list,将其中的所有 dapper 替换成 edgy。

如果你使用了 http://packages.freecontrib.org/ubuntu/plf/ 的源,则要将这个源的 dapper 替换为 edgy-plf,并执行以下命令以添加公钥。

# wget http://packages.freecontrib.org/ubuntu/plf/12B83718.gpg -O- | sudo apt-key add -

然后执行

# apt-get dist-upgrade

注意观察要更新的软件包,你会发现安装程序需要删除一部分软件,包括显卡驱动!所以升级之后图形界面会有问题,这个问题我们升级以后再修复。

然后就是漫长的下载和安装过程。

如果你以前修改过登录界面(gdm)的主题,那么在安装新版时,安装程序会提示你是否要覆盖/etc/gdm/gdm.conf-custom文件。

Configuration file `/etc/gdm/gdm.conf-custom'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : background this process to examine the situation
 The default action is to keep your current version.
*** gdm.conf-custom (Y/I/N/O/D/Z) [default=N] ?

这时你可以选择 d,然后复制下自己修改过的部分,然后选择 Y 安装新版 gdm.conf-custom,安装结束后将自己的修改内容恢复即可。

安装成功之后重新启动计算机……啊?gdm启动失败……这正是由于上面升级时删掉了显卡驱动的问题。此时先按Ctrl+F2切换到控制台,然后登录系统并切换到 root 用户,执行下列命令:

# apt-get install libgl1-mesa-glx

然后再执行

# apt-get install xorg

如果你以前安装过 ATI 或者 GeForce 的官方显卡驱动,那么系统中的 /etc/X11/xorg.conf 为使用官方驱动的版本,而升级时官方显卡驱动被卸载了,因此需要将 xorg.conf 恢复成安装显卡驱动之前的状态。假设当初安装的是 ATI 驱动并且使用 aticonfig 命令自动配置了显卡,那么原始的 xorg.conf 会备份成 /etc/X11/xorg.conf-original-0,用这个文件恢复即可。

# cp /etc/X11/xorg.conf-original-0 /etc/X11/xorg.conf

然后再次重新启动,这样就可以进入图形界面了。

备注:据旺旺同学的经验,如果按照以上的方法还是不能恢复的话,可以试试以下两个命令:

# apt-get remove xserver-xorg-driver-ati
# apt-get install xserver-xorg-video-ati

(Read More)

O'reilly Code Search的妙用

阅读 O’reilly 的书籍免不了要执行书上的示例代码,而手工输入代码又十分浪费时间。其实只要将书上的代码利用 O’reilly Code Search 搜索,即可得到该代码的电子版,然后复制粘贴即可。

(Read More)