Category: 未分类

  • SEO 的技术含量

    现在几乎是个人都知道 SEO 这个词,尽管可能这些人中有的连这三个字母分别代表什么都不知道。那些给企业做垃圾网站的公司旗号中肯定包含一条 SEO,而很多传统企业的老总也慢慢地知道 SEO 这玩意对它们很有用。在办公楼的楼道里经过,也时不时听到有人在讨论 SEO – “哎呀,SEO 上不去,怎么整啊……” 曾经见过一张名片,title 是“智者”,自称是互联网、航空航天、SEO 的专家。 在这样的环境下,我就得到一种印象,SEO 大概是互联网上最没有技术含量的东西了,打着 SEO 旗号的,全都是骗钱的。尤其是那些根本不懂互联网的人,还沾沾自喜地提一下 SEO 以炫耀自己对互联网地独到理解,真是让人反胃。 直到最近我才发现 SEO 原来可以很有技术含量 —— 不过上述地那些人做的事除外。搜索引擎技术是很复杂的技术,非常有技术含量,因此针对搜索引擎所做的 SEO,自然也应该有一定技术含量。最早期最弱智的 SEO 方法如关键字堆砌、隐藏字符等等,现在应该已经被认为是垃圾技术,当然了,国内大部分 SEO 高手还在使用。 SEO 应该从全局考虑,最好地引导搜索引擎(最终是引导执行搜索的用户)找到你网站上他们想要的最合适的内容,给搜索的各方带来最高的效益。最初级的做法就是想尽一切办法不惜作弊来提高排名、吸引流量。但是用户到了网站上大多数情况下都会觉得内容很不相符,很快跑掉。这种方法仅对色情网站有效。流量来了只是第一步,转化率才是重点。 还有个简单的例子,一个网站的首页可能有了很高的排名(或许比如 Page rank 非常高),而内页对于搜索引擎来说权重比较低,于是用户搜索很多关键词,网站的首页都排在前面,真正跟这个关键词更相符的页面可能出不来,这也是失败。如何在网站的众多页面中合理分布权重,让最相符的内容排在第一位,这也是重点。 搜索引擎肯定会越来越聪明,产品本身还是最重要的,SEO 只是起个辅助、指导的作用。做 SEO 的兄弟们,有点技术含量好吧……

  • 还是 ubuntu 省事

    上周在一台联想的新机器上安装 Linux,最初是用一张自定义的 CentOS 5.2 netinstall disc,结果每次 usb-driver 加载结束的时候,都出来一屏乱码然后就没动静了,此时仅仅加载了内核,什么信息都没法看。于是我猜想是不是联想的隐藏分区在作怪,可是删除了之后依旧是一样的问题。不过使用另一张 redhat installation DVD 却可以正常地安装,安装结束后,终于知道了那屏乱码是啥原因——内核 too old, 不支持这个网卡。最终,安装了内核地 headers,然后在 Intel 网站上下载了驱动的源代码,终于编译出来这个 driver,可以上网了。不过后来欲安装图形界面的时候,又发现它完全不支持附带的 21′ LCD. 安装图形界面主要是想解决在该 server 上登录某 VPN 网络的问题。后来发现该 VPN server 提供了针对 debian 系列的 deb package 供安装,于是试试 Ubuntu,开始拿了一张 8.10 的盘,live cd 测试发现对屏幕的默认支持不太好,于是下载 9.04 刻录了一张,安装完成后,非常完美,VPN 果然可用,我只需静下心来配置我的服务器软件了。 Linux 的桌面,折腾好了可以爽一爽,但是折腾不好的话,会让你很郁闷,还是找个省事的好,呵呵。

  • vim 为啥把人吓跑

    在 unix 环境工作难免要碰到 vim. 我倒也经常用 vim 做一些简单的编辑,但是似乎没怎么写过大段的代码。今天有人想用它来写 ruby 的时候,我帮忙去找 ruby 相关的配置,很快发现 vim 本身就带了丰富的完善的 ruby 配置,只是默认没有 enable. 在几个 mac, linux 的系统中,我发现情况都是这样,可能是 vim 为了性能考虑?vim 安装时就带了许多的语法高亮、缩进等定义,分布在安装目录下的 plugin, indent 等目录中。只需要在你的 .vimrc 文件中加上这么一行: filetype plugin indent on vim 在打开文件中就会根据文件类型选择不同的缩进方式。试了一下 ruby 的缩进,非常棒。好像很多用户想用 vim 编辑某种语言程序时,都会在网上到处搜该语言的配置文件,拿到一个就 paste 到自己的 .vimrc 中试试,结果折腾半天也不好,遂放弃。 刚刚在 Google Reader 里看到一篇旧文,说 vim 的配置使用自己特定的语法是个硬伤,确实。上面简单的一个命令,如果没有看过一些 vim 的文档,谁也看不出它会起什么作用。许多人尝试 vim 好多次,好多次被吓跑。第一次可能是因为它的 mode 的概念,进去都不知道怎么编辑。第二次可能就是因为不会配置—— vim…

  • Purple Dragon Book!

    计算机系的同学一定听说过“龙书”吧?编译原理的经典之作 – Compilers: Principles, Techniques, and Tools. 很幸运,我们当时的课本就是它。 刚才和同学聊到编译原理的好书还有“虎书”和“鲸书”时,他提醒我龙书已经出来第二版了 – Compilers: Principles, Techniques, and Tools (2nd Edition),让我比较吃惊。2006年出的,那时已经毕业了。做毕业设计的时候,老师就提到后来发展的许多新技术,龙书中都是看不到的,让我看虎书。现在应该好了: Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. 关于“龙书”,这里有一个词条,原来之前还有一本绿龙书,出版于1977年。不到10年,红龙书出来了,而现在的紫龙书时隔20年才出来。看到定价请不要害怕,国内已经有影印版。 看这本书以及另一本讲计算机体系结构的书的时候,给我印象最深的是,这些作者可以把如此深奥、晦涩、难懂的知识这么流畅地传授给你,让你感受不到门槛。他们不仅是科学家,还是教育家,他们写书的时候不仅要自己懂,而且要考虑如何让读者懂。而国内的作者们,肚子里本来就没东西的就不用说了,有些学术水平比较牛,写出的书看起来却不相称,许多感觉是在给自己打草稿。 另外提醒大家,千万不要看那些糟蹋原著的中文译本。与其花时间在猜测那些蹩脚甚至错误的翻译文字上,不如花点时间学好英文,去看原著。

  • Mac Terminal 的命令编辑技巧

    初次试用 Mac 的 Terminal,肯定会觉得在命令行上移动光标非常不方便 —— Mac 的大部分程序中按下 Home/End 键都不是到达行首或行末,这让初次接触 Mac 的用户们很烦恼。这个其实比较容易解决,在 Mac 中,多数情况下 Ctrl-a/Ctrl-e 是行首、行末。接下来就说说其它的一些技巧,让你在 Terminal 中的工作更加高效。 现在的 Mac OS X 中的默认 shell 都是 bash 了。bash 的最基本的技巧就不必多说了,大家按得最多的,我想可能是上下方向键(或者 Ctrl-p/Ctrl-n),还有 Ctrl-r 搜索命令历史。 —————–不仅限于 Mac—————– 有一个我们一般不去碰的命令 —— “set -o vi”,它会把 bash 命令行的编辑方式改成 vi,当然了,默认 mode 是 “Insert”。你可以试试执行这个命令,然后输入命令,按下 ESC. 这时 j/k 就是上一条/下一条命令,h/l 就是左右移动了,再试试 w? 如果你喜欢 vi,这也许是个不错的选择 🙂 默认的编辑方式是 emacs,可以通过 “set…

  • Site24x7 – 网站监控小工具

    前文说到 VPS 被服务商无声无息地关闭,后来我就在网上找,看有没有针对俺这种小客户地免费监控工具。我不需要你每天从全球各地发来请求测量网站的 accessibility, response time,只需在它 down 的时候及时提醒我一声就好了。 这篇文章对于廉价或免费的监控服务做了比较详细的比较,我看了看,感觉 site24×7 比较好用。免费的监控服务对我来说已经够用了,只需要给我发个邮件即可。它甚至有短信提醒,支持的列表上有中国的主要运营商,至少我测试中国移动是可以的。不过只有免费的 10 条短信,用完后买 50 条需要 10 美金,还是比较贵的。 可以查看完整的 pricing 及 feature comparison.

  • Apache 中禁止通过其它域名访问

    现如今办什么事都不方便,有一天发现某 VPS 不能访问了,问服务商怎么回事,答曰指向该 VPS 的某域名没有beian,所以给你关了。国内的服务也就这样了,上面对他们野蛮,他们现学现卖,对客户也一样野蛮,连一声通知都没有。再说这个没有beian的域名,一个夹杂着字母和数字的 .cn 垃圾域名,我们根本没见过。照这样,我去花一块钱整个域名指向 miibeian,是不是它就该关了? 本来,法律法规是弱者约定用来约束强者的工具,但是现在它对强者毫无作用,反而被强者用来欺压弱者。 国内的主机商还有个特点是擅长使用 QQ,却不屑于使用其它的交流工具比如 Email. 客服丝毫不懂技术,死活要让我去把这个域名备案,shit. 后来又说,你的 VPS 上解除绑定不就行了?shit,我疯了,自己的事还忙不过来,去绑定这么个破域名。好吧,来“解除绑定”。 httpd.conf 加上这么三行: RewriteEngine on RewriteCond %{HTTP_HOST} !^(.*)\.yourdomain\.com [NC] RewriteRule ^/(.*) http://www.pig.com/ [L,R] 其实就是用的 mod_rewrite, 在请求的域名不是你的域名的情况下,重定向到一个其它的地址。 许多人可能会首先想到 mod_access,但这个似乎是用来控制 visitor IP 来源的,而不是他访问的地址。 写完发现,本文本来空洞无物,加了些抱怨,显得丰满了许多。

  • 几个一直读错的英文单词

    我一直认为自己的英文发音是比较准确的。如果发音不标准,至少也知道这个单词的音标是什么,大部分生词看到拼写也能知道它的音标。 我第一个发现的一直读错的英文单词是 archive. 中间的字母i,我一直认为发音是 [i:],当听到一个同学读 [ai] 的时候,心想他一定是错了,不过后来自己回去查,发现自己一直都是错误的发音。 我记得前段时间 aw 曾经再 twitter 上征集容易读错的单词列表,不知道后来有没有继续,我也 search 不到当时的 tweet 了。当时我就回复了他一个 archive. 不过最近的这一段时间,因为连续遇到一些英文比较牛的朋友,我开始愈加谨慎起来,于是陆续发现了自己更多的错误,包括: navigate. 第一个字母我曾经以为发音是 [ei] analytic. 我模仿 analysis 的音标来读 iterate. 第一个字母我认为是 [ai] 提醒一下,金山词霸这样的辞典是不怎么严谨的,它标注的音标有时候可能不准确。有时候你会发现同一个单词查出来有不同的读音(不是多音词),肯定有一个是错误的。查读音的话,比较权威的是这个:Cambridge English Pronouncing Dictionary,一个研究语言学的朋友推荐的 🙂 他还跟我说,英文单词千万不要望文生音。上面提到的几个单词,实际上都是我犯了“望文生音”的错误。 英语和美语的读音有一些常见的比较有规律的差异,可以在这里看看。 我个人觉得吧,发音准确对学好英语还是挺重要的。

  • 使用英文版本网站的好处

    前几天,Charles 抱怨 subversion 的客户端版本不兼容问题搞得他很烦。因为 TortoiseSVN 的最新版本在 working copy 中记录的是 1.6 的 svn client metadata 格式,而 NetBeans 使用的是他自己安装的 CollabNet 版本的 1.5.6,因此用 TortoiseSVN 更新了一下 working copy,NetBeans 就无法操作了。 Charles 坚持他在 collab.net 上看到的最新版本就是 1.5.6,然而我去看的时候,明明是已经有 1.6 版本的。我没太注意过 subversion 跟 CollabNet 到底是啥关系,反正是非常非常紧密的关系,不可能 svn 出了1.6 而 CollabNet 没有对应版本的(CollabNet 应该是主导作用的,它网站上下载的版本按理说应该是完全一样,虽然我从来没用过它的版本)。一番思考之后,Charles 终于发现了原因——他被重定向到了中文站,哈哈。 这个故事告诉我们,有英文站尽量用英文站,不要图省事用中文版本,除去读到错误翻译的风险,你还有可能因为翻译的延迟而误事。Google 的产品也是一样,新特性都最先在英文版里尝试。 Charles 说使用中文被 Collab 鄙视了,我又想到了 skype,中国人被鄙视得更加彻底,访问 skype.com 直接被重定向到 tom.com(肯定是根据 IP 判断地理位置),然后给你个贴了小广告的版本。去广告的最简单办法是访问…

  • PHP Warning: PHP Startup: Unable to load dynamic library

    首先,做 web 开发一定要学会看日志。做了一个简单的 PHP 数据库程序,访问时页面全是空白怎么办?看看 Apache 的 error.log (Windows). 在 Windows 上安装 PHP 之后,如果是以 Apache 方式运行,那么 Apache 启动的时候在 error.log 里一般会出现许多 warning,大致是这样的: PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\Program Files\\PHP\\ext\\php_gd2.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0 这个错误分两种情况处理。第一种情况,某些 ext 子目录中的扩展依赖于 PHP 安装根目录下的 dll,比如 ext/php_mysql.dll 就依赖 libmysql.dll,如果你发现错误日志中有 mysql 扩展,那就说明 PHP 安装的时候,没有在 PATH 环境变量中加上 PHP…