之前 Google 的 nofollow 用于 <meta> 标签中,如:
<meta name="robots" content="nofollow">
表示拒绝 robot 跟踪本页链接,但可索引本页。而如今已经可以细化到每一个链接了,即在链接标签 <a> 中直接使用 nofollow 属性,如:
<a href="http://www.site.com/page.html" rel="nofollow">Visit My Page</a>
使用了 nofollow 属性之后意味着什么呢?
1) Robot 不会跟踪此链接地址;
2) 不会对此链接地址进行 PageRank 计算;
3) 此链接标签所包含的文字也不会作为检索的关联词。
Google 想通过这种方式来阻止 SPAM,例如,通过在邮件地址或 BLOG 评论的链接标签中加入 onfollow,可以有效地向 robot 表明不要对相关链接地址进行跟踪、索引,虽然还不知道这个 nofollow 属性是否对 SPAM 有效,但至少 Google 给了页面所有者选择是否对链接地址进行索引的权利。
参考资料:
Google, Yahoo, MSN Unite On Support For Nofollow Attribute For Links
Google To Add "Nofollow" Tagging Of Links To Fight Spam?
一本不错的在线书籍:Multithreading - The Delphi Way,作者 [i]Martin Harvey[/i] 对 Delphi 的 MultiThread 表述得很通俗易懂。此书适合有 Delphi 面向对象编程基础的读者。Introduction.
This guide is intended for anyone who is interested in improving performance and responsiveness in their Delphi applications by using threads. It covers a range of topics from absolute beginner to intermediate level, and some of the real world examples raise issues bordering on the advanced. It assumes that the reader has a reasonable knowledge of Object Pascal programming, including simple object orientation, and a working understanding of event based programming.
Table of Contents.
Introduction.
Dedications.
Recommended Reading.
Navigation hints.
Change history.
Credits.
Chapter 1. What are threads? Why use them?
Chapter 2. Creating a thread in Delphi.
Chapter 3. Basic synchronization.
Chapter 4. Simple thread destruction.
Chapter 5. More thread destruction. Deadlock.
Chapter 6. More synchronization: Critical sections and mutexes.
Chapter 7. Mutex programming guidelines. Concurrency control.
Chapter 8. Delphi thread safe classes and Priorities.
Chapter 9. Semaphores. Data flow scheduling. The producer - consumer relationship.
Chapter 10. I/O and data flow: from blocking to asynchronous and back.
Chapter 11. Synchronizers and Events.
Chapter 12. More Win32 synchronization facilities.
Chapter 13. Using threads in conjunction with the BDE, Exceptions and DLLs.
Chapter 14. A real world problem, and its solution.
上周五和Data去银行交电话费,发现要排长队,于是就作罢,路过卖彩票的小店,想起很久没买彩票了,于是机选了5注7/32的北京福采,回公司的路上还聊我们公司的人买彩票经常中奖,特别是第一次买的时候,记得3D彩票刚出来的时候我就买了3个号码,都是到我家的公共汽车号,什么858、849之类的,结果后来849竟然中了,一共1000元,交完税之后剩980,请大家吃了顿饭
。
周一来到公司,上北京风采对了一下奖,中了个六等奖(末奖),10元,平本,不赔不赚,那天下午出去办港澳通行证,正好路过小店,于是过去把奖兑了,用那10元又机选了5注,今晚在家上网对奖,我靠,又中奖了,这回是五等奖,50元,看来老天真是有眼呀,除去买彩票的成本10元,正好把我前两天办港澳通行证亏的那40元给补回来了,谢天谢地,阿弥陀佛 
OOP and PerformanceObject oriented programming, compared to procedural is typically seen as a trade off: increased "developer performance" through better modularity / re-use vs. slower processing, based on the extra runtime lookup overhead objects introduce (compared to the equivalent collection of functions + variables).