<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://blog.vichamp.com/styles/feedsky8.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://blog.vichamp.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/vichamp" type="application/rss+xml"></fs:self_link><lastBuildDate>Mon, 23 Aug 2010 08:23:21 GMT</lastBuildDate><title>叹为观止</title><description>Victor.Woo 的个人空间</description><image><url>http://www.feedsky.com/images/feedsky_logologo.gif</url><title>叹为观止</title></image><generator xmlns="http://www.w3.org/2005/Atom" uri="http://www.google.com/reader">Google Reader</generator><id xmlns="http://www.w3.org/2005/Atom">tag:google.com,2005:reader/user/14282123654484183987/state/com.google/broadcast</id><link xmlns="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/"></link><gr:continuation>COmu65u5t5UC</gr:continuation><link xmlns="http://www.w3.org/2005/Atom" rel="self" href="http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast"></link><author xmlns="http://www.w3.org/2005/Atom"><name>Victor.Woo</name></author><pubDate>Mon, 08 Feb 2010 02:32:56 GMT</pubDate><managingEditor>Victor.Woo</managingEditor><item><title>WPF MVVM Application</title><link atom:type="text/html">http://visualstudiogallery.msdn.microsoft.com/en-us/5e74cdc6-e1c5-40b4-815a-d5b1dbabc5a8</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://visualstudiogallery.msdn.microsoft.com/en-us/5e74cdc6-e1c5-40b4-815a-d5b1dbabc5a8">tag:google.com,2005:reader/item/777360fd77b2be1a</id><content xmlns="http://www.w3.org/2005/Atom" xml:base="http://visualstudiogallery.msdn.microsoft.com/en-us/site/search?sortBy=Date" type="html">&lt;table style=&quot;width:100%&quot;&gt;
    &lt;tr&gt;
        &lt;td valign=&quot;top&quot; style=&quot;width:75px&quot;&gt;
            
                &lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/en-us/5e74cdc6-e1c5-40b4-815a-d5b1dbabc5a8/image/file/34691/3/thumbnail.png&quot; alt=&quot;WPF MVVM Application&quot; style=&quot;border:1px solid #d5d5d5&quot;&gt;
            
        &lt;/td&gt;
        &lt;td valign=&quot;top&quot;&gt;
            Ein WPF Projekt mit Vorbereitung für MVVM. Inklusive BaseViewModel und BaseController.
            &lt;br&gt;
            &lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;

            &lt;br&gt;
            &lt;strong&gt;Created by: &lt;/strong&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/site/profile?userName=Pascal%20Lauener&quot;&gt; Pascal Lauener (Lauener Pascal)&lt;/a&gt;&lt;br&gt;
            &lt;strong&gt; Published Date: &lt;/strong&gt; 8/23/2010&lt;br&gt;
             &lt;strong&gt;Cost Category: &lt;/strong&gt;Free&lt;br&gt;
            &lt;strong&gt;Version: &lt;/strong&gt;1.2&lt;br&gt;
            &lt;strong&gt;Supported Visual Studio Versions: &lt;/strong&gt; Visual Studio 2010
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>Pascal Lauener (Lauener Pascal)</name></author><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://visualstudiogallery.com/xml/RecentlyAdded.xml"><id>tag:google.com,2005:reader/feed/http://visualstudiogallery.com/xml/RecentlyAdded.xml</id><title type="html">Visual Studio Gallery Feed - Sorted By: Published Date, Sort Order: Descending</title><link rel="alternate" href="http://visualstudiogallery.msdn.microsoft.com/en-us/site/search?sortBy=Date" type="text/html"></link></source><content:encoded>&lt;table style=&quot;width:100%&quot;&gt;
    &lt;tr&gt;
        &lt;td valign=&quot;top&quot; style=&quot;width:75px&quot;&gt;
            
                &lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/en-us/5e74cdc6-e1c5-40b4-815a-d5b1dbabc5a8/image/file/34691/3/thumbnail.png&quot; alt=&quot;WPF MVVM Application&quot; style=&quot;border:1px solid #d5d5d5&quot;&gt;
            
        &lt;/td&gt;
        &lt;td valign=&quot;top&quot;&gt;
            Ein WPF Projekt mit Vorbereitung für MVVM. Inklusive BaseViewModel und BaseController.
            &lt;br&gt;
            &lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;
&lt;img src=&quot;http://i2.visualstudiogallery.msdn.microsoft.com/content/common/emptystar.png&quot;&gt;

            &lt;br&gt;
            &lt;strong&gt;Created by: &lt;/strong&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/site/profile?userName=Pascal%20Lauener&quot;&gt; Pascal Lauener (Lauener Pascal)&lt;/a&gt;&lt;br&gt;
            &lt;strong&gt; Published Date: &lt;/strong&gt; 8/23/2010&lt;br&gt;
             &lt;strong&gt;Cost Category: &lt;/strong&gt;Free&lt;br&gt;
            &lt;strong&gt;Version: &lt;/strong&gt;1.2&lt;br&gt;
            &lt;strong&gt;Supported Visual Studio Versions: &lt;/strong&gt; Visual Studio 2010
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;</content:encoded><enclosure url="http://i2.visualstudiogallery.msdn.microsoft.com/en-us/5e74cdc6-e1c5-40b4-815a-d5b1dbabc5a8/image/file/34691/3/thumbnail.png" length="1024" type="image/png"></enclosure><pubDate>Mon, 23 Aug 2010 16:23:21 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/777360fd77b2be1a</guid><dc:creator>Pascal Lauener (Lauener Pascal)</dc:creator><fs:srclink>http://visualstudiogallery.msdn.microsoft.com/en-us/5e74cdc6-e1c5-40b4-815a-d5b1dbabc5a8</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634192/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>Released: 6.4 beta 2c (Apr 19, 2010)</title><link atom:type="text/html">http://visualwebgui.codeplex.com/releases/view/43872</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="Released: 6.4 beta 2c (Apr 19, 2010) 20100419074914A">tag:google.com,2005:reader/item/266b24849ca4b09d</id><author xmlns="http://www.w3.org/2005/Atom" gr:unknown-author="true"><name>(author unknown)</name></author><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://visualwebgui.codeplex.com/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2Fvisualwebgui"><id>tag:google.com,2005:reader/feed/http://visualwebgui.codeplex.com/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2Fvisualwebgui</id><title type="html">visualwebgui Release Rss Feed</title><link rel="alternate" href="http://www.codeplex.com/visualwebgui/Release/ProjectReleases.aspx" type="text/html"></link></source><description>&lt;div&gt;A revisiov to the first fully featured version of Visual webGui offering web/cloud development tool that puts all ASP.NET Ajax limits behind with enhanced performace, scalability, extensibility and customization capabilities.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</description><pubDate>Mon, 19 Apr 2010 15:49:14 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/266b24849ca4b09d</guid><dc:creator>(author unknown)</dc:creator><fs:srclink>http://visualwebgui.codeplex.com/releases/view/43872</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634194/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>How to write custom static code analysis rules and integrate them into Visual Studio 2010</title><link atom:type="text/html">http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into-visual-studio-2010.aspx</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9986012">tag:google.com,2005:reader/item/b39a357bfda89b53</id><author xmlns="http://www.w3.org/2005/Atom"><name>Duke Kamstra</name></author><gr:likingUser>07158073815668104036</gr:likingUser><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://blogs.msdn.com/fxcop/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/fxcop/rss.xml</id><title type="html">Code Analysis Team Blog</title><link rel="alternate" href="http://blogs.msdn.com/b/codeanalysis/" type="text/html"></link></source><description>&lt;p&gt;This blog explains how to implement your own static code analysis rules for analyzing your .NET (C#, VB.NET, etc) code. The material was written by Todd King, one of the developers on the Visual Studio Code Analysis team.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE: Writing custom FxCop rules, the associated APIs and the process for installing them is not a supported feature of the product. We are providing this information because we get so many questions about how to do it.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Prerequisites&lt;/h1&gt;  &lt;p&gt;You must be using Visual Studio 2010 Premium or Visual Studio 2010 Ultimate to implement custom code analysis rules.&lt;/p&gt;  &lt;h1&gt;Creating the MyCustomRules project&lt;/h1&gt;  &lt;p&gt;NOTE: If you already have an existing custom rules project you can skip this step.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;Create a new class library project and name it whatever you want your rules assembly to be named. For the purposes of this blog I’ve named it MyCustomRules.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Next add a reference to the FxCop assemblies. Your custom rules project will need to reference FxCopSdk.dll and Microsoft.Cci.dll. Visual Studio 2010 installs the assemblies in “C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop” on a 32-bit OS and “C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop” on a 64-bit OS. In order to avoid path resolution issues when the project is built on different computers you can use the $(CodeAnalysisPath) MSBuild property. The property will resolve to the location where the FxCop assemblies have been installed. Use the following procedure to define the references to the two assemblies &lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;Open up your project in Visual Studio 2010.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;In Solution Explorer right click on the project and select &lt;b&gt;Unload Project&lt;/b&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Now right click on the project and select edit MyCustomRules.csproj&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Find the ItemGroup xml element where your project’s references are and add the first two &amp;lt;Reference&amp;gt; elements described in the following code snippet&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px;white-space:nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;ItemGroup&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;FxCopSdk&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;HintPath&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;$(CodeAnalysisPath)\FxCopSdk.dll&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;HintPath&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Private&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;False&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Private&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;Microsoft.Cci&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;HintPath&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;$(CodeAnalysisPath)\Microsoft.Cci.dll&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;HintPath&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Private&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;False&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Private&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;System&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;System.Core&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;System.Xml.Linq&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;System.Data.DataSetExtensions&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;Microsoft.CSharp&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;System.Data&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Reference&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Include&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;System.Xml&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;ItemGroup&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Close the editor, right click on the project and select &lt;b&gt;Reload Project&lt;/b&gt;.&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Now we need to setup the RuleMetadata.xml file for this project. The RuleMetadata.xml file is where various properties of the rules for this project will be stored. For example this is where the rule description, resolutions, message level, owner contact info, etc is stored.&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;To Add a RuleMetadata.xml file right click on your project and select add new item. &lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;             &lt;p&gt;Type &lt;b&gt;XML File&lt;/b&gt; in the Search Installed Templates control.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Select the &lt;b&gt;XML File&lt;/b&gt; template and name it RuleMetadata.xml (it can be named whatever you want, for the purposes of this blog I’ve named it RuleMetadata.xml).&lt;/p&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;At this point you don’t have any rules so all you need to do is add a root Rules element as follows. Where the FriendlyName value is some user readable string that will be displayed to the user as the name of your rules assembly.&lt;/p&gt;          &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px;white-space:nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;xml&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;encoding&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; ?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Rules&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;FriendlyName&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;My Custom FxCop Rules&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;      &lt;ol&gt;&lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Next set the RuleMetadata.xml file as an EmbeddedResource for our rules assembly&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;In Solution Explorer right click on the file RuleMetadata.xml and select &lt;b&gt;Properties&lt;/b&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;In the Property Tool window change the &lt;b&gt;Build Action&lt;/b&gt; property to &lt;b&gt;Embedded Resource&lt;/b&gt;.&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h1 dir=&quot;ltr&quot;&gt;Implementing a custom rule&lt;/h1&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;Note that we have not released an SDK for implementing custom rules, so the API is undocumented and will almost certainly change in the future. With those caveats in mind, the following example describes how to implement a simple rule. The rule we will implement checks whether or not the identifiers for private and internal fields use Hungarian notation.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;1. Define an abstract class that inherits from the FxCop API and initializes the resources defined in the XML file.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;using&lt;/span&gt; Microsoft.FxCop.Sdk;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;namespace&lt;/span&gt; MyCustomFxCopRules&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;{&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;internal&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;abstract&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;BaseFxCopRule&lt;/span&gt; : &lt;span style=&quot;color:#2b91af&quot;&gt;BaseIntrospectionRule&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    {&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        &lt;span style=&quot;color:#0000ff&quot;&gt;protected&lt;/span&gt; BaseFxCopRule(&lt;span style=&quot;color:#0000ff&quot;&gt;string&lt;/span&gt; ruleName)&lt;/li&gt; &lt;li&gt;            : &lt;span style=&quot;color:#0000ff&quot;&gt;base&lt;/span&gt;(ruleName, &lt;span style=&quot;color:#a31515&quot;&gt;&amp;quot;DukesFirstFxCopRule.DukesFirstFxCopRule&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color:#0000ff&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color:#2b91af&quot;&gt;BaseFxCopRule&lt;/span&gt;).Assembly)&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        { }&lt;/li&gt; &lt;li&gt;    }&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt; &lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;Where the resource name is the default namespace of your project + whatever you named the RuleMetadata.xml file. &amp;quot;MyCustomFxCopRules.RuleMetadata&amp;quot; in the example above.    &lt;br&gt;&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;&lt;strong&gt;NOTE: Make sure you use the &lt;u&gt;default namespace&lt;/u&gt; for your project in the resource name. If you do not FxCopCmd.exe will return error CA0054 because it is unable to load your rule.&lt;/strong&gt;&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;2. Define a class to implement the rule and derive from our previously defined class.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;internal&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;sealed&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;EnforceHungarianNotation&lt;/span&gt; : &lt;span style=&quot;color:#2b91af&quot;&gt;BaseFxCopRule&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;{&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;public&lt;/span&gt; EnforceHungarianNotation()&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        : &lt;span style=&quot;color:#0000ff&quot;&gt;base&lt;/span&gt;(&lt;span style=&quot;color:#a31515&quot;&gt;&amp;quot;EnforceHungarianNotation&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;    { }&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;3. Define the visibility of the code elements we want to analyze by overriding the TargetVisibility property. Normally it is fine to leave this at the default implementation of &lt;i&gt;TargetVisibilities.All&lt;/i&gt; however in this case we only want to analyze fields that are not externally visible so we want to return a value of &lt;i&gt;TargetVisibilities.NotExternallyVisible&lt;/i&gt;. Add the following code to the EnforceHungarianNotation class definition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;// Only fire on non-externally visible code elements.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;override&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;TargetVisibilities&lt;/span&gt; TargetVisibility&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;get&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    {&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        &lt;span style=&quot;color:#0000ff&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;TargetVisibilities&lt;/span&gt;.NotExternallyVisible;&lt;/li&gt; &lt;li&gt;    }&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;4. Since this rule is supposed to fire on fields, which are members of types, we override the Check(Member) method. We need to verify that the member being examined by the check method is actually a field. This could be done either by trying to cast it to a Microsoft.FxCop.Sdk.Field type or checking if the member’s NodeType is NodeType.Field. Once we know we are looking at a field we need to determine if it is a static field or not so we know which kind of Hungarian prefix should be expected. To do this we can check the IsStatic property on the field. Now we just need to determine if the field’s name starts with the expected Hungarian notation prefix and if not report a rule violation. To do this we get the field’s name using the Name property (actually need to call Name.Name to get the string form of the name, just one of the quirks of the current API) and check if it starts with the expected prefix. If not then we need to construct a Problem object and add it to the rule’s ProblemCollection accessed through the inherited Problems property. Add the following code to the EnforceHungarianNotation class definition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;override&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;ProblemCollection&lt;/span&gt; Check(&lt;span style=&quot;color:#2b91af&quot;&gt;Member&lt;/span&gt; member)&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;{&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#2b91af&quot;&gt;Field&lt;/span&gt; field = member &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;Field&lt;/span&gt;;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; (field == &lt;span style=&quot;color:#0000ff&quot;&gt;null&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;    {&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        &lt;span style=&quot;color:#008000&quot;&gt;// This rule only applies to fields. &lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#008000&quot;&gt;// Return a null ProblemCollection so no violations are reported for this member.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        &lt;span style=&quot;color:#0000ff&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;null&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;    }&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; (field.IsStatic)&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    {&lt;/li&gt; &lt;li&gt;        CheckFieldName(field, s_staticFieldPrefix);&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    }&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;else&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    {&lt;/li&gt; &lt;li&gt;        CheckFieldName(field, s_nonStaticFieldPrefix);&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    }&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#008000&quot;&gt;// By default the Problems collection is empty so no violations will be reported &lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008000&quot;&gt;// unless CheckFieldName found and added a problem.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;return&lt;/span&gt; Problems;&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;string&lt;/span&gt; s_staticFieldPrefix = &lt;span style=&quot;color:#a31515&quot;&gt;&amp;quot;s_&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;string&lt;/span&gt; s_nonStaticFieldPrefix = &lt;span style=&quot;color:#a31515&quot;&gt;&amp;quot;m_&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;5. Rule resolutions are stored in the RuleMetadata.xml file. Calling GetResolution will retrieve that resolution string and also fill in any string arguments passed in. Finally we need to create a Problem object from the Resolution object we just created and add that Problem to the Problems collection for this rule. Add the following code to the EnforceHungarianNotation class definition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;void&lt;/span&gt; CheckFieldName(&lt;span style=&quot;color:#2b91af&quot;&gt;Field&lt;/span&gt; field, &lt;span style=&quot;color:#0000ff&quot;&gt;string&lt;/span&gt; expectedPrefix)&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;{&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; (!field.Name.Name.StartsWith(expectedPrefix, &lt;span style=&quot;color:#2b91af&quot;&gt;StringComparison&lt;/span&gt;.Ordinal))&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    {&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#2b91af&quot;&gt;Resolution&lt;/span&gt; resolution = GetResolution(&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;          field,  &lt;span style=&quot;color:#008000&quot;&gt;// Field {0} is not in Hungarian notation.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;          expectedPrefix  &lt;span style=&quot;color:#008000&quot;&gt;// Field name should be prefixed with {1}.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;          );&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#2b91af&quot;&gt;Problem&lt;/span&gt; problem = &lt;span style=&quot;color:#0000ff&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color:#2b91af&quot;&gt;Problem&lt;/span&gt;(resolution);&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        Problems.Add(problem);&lt;/li&gt; &lt;li&gt;    }&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;6. The final step is adding the appropriate rule metadata for this new rule to the RuleMetadata.xml file in our project. The following rule metadata can be defined in the RuleMetadata file.&lt;/p&gt;  &lt;ul dir=&quot;ltr&quot;&gt;   &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;Display name of the rule.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;Rule description.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;One or more rule resolutions.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;The MessageLevel (severity) of the rule. This can be set to one of the following:&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div style=&quot;margin-right:0px&quot;&gt;CriticalError&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style=&quot;margin-right:0px&quot;&gt;Error&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style=&quot;margin-right:0px&quot;&gt;CriticalWarning&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style=&quot;margin-right:0px&quot;&gt;Warning&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style=&quot;margin-right:0px&quot;&gt;Information&lt;/div&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;The certainty of the violation. This field represents the accuracy percentage of the rule. In other words this field describes the rule author’s confidence in how accurate this rule is.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;The FixCategory of this rule. This field describes if fixing this rule would require a breaking change, ie a change that could break other assemblies referencing the one being analyzed.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;The help url for this rule. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;The name of the owner of this rule.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style=&quot;margin-right:0px&quot;&gt;The support email to contact about this rule.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;For the example EnforceHungarianNotation rule described in this sample the RuleMetadata.xml file should look something like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;xml&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;encoding&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; ?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Rules&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;FriendlyName&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;My Custom FxCop Rules&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Rule&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;TypeName&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;EnforceHungarianNotation&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Category&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;MyRules&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;CheckId&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;CR1000&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;Enforce Hungarian Notation&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Description&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;Checks fields for compliance with Hungarian notation.&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Description&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Resolution&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;Field {0} is not in Hungarian notation. Field name should be prefixed with &amp;#39;{1}&amp;#39;.&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Resolution&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;MessageLevel&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Certainty&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;100&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;Warning&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;MessageLevel&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;FixCategories&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;NonBreaking&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;FixCategories&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Url&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Owner&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Email&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Rule&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Rules&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;&lt;strong&gt;NOTE: The TypeName attribute of the Rule element must match exactly with the name string passed in to the base constructor of the rule implementation. If they do not match FxCopCmd.exe will return error CA0054 because it is unable to load your rule.&lt;/strong&gt;&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt; &lt;/p&gt;  &lt;h1&gt;Debugging custom rules&lt;/h1&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;You can debug custom rules through FxCopCmd.exe. Normally you would run your rule against another project. To simplify the instructions in this blog we’re going to run our new rule against the implementation of the rule itself. In the project properties for your custom rules project on the Debug tab do the following&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;1. Configure the project to launch an external program and enter in the path to FxCopCmd.exe. For example    &lt;br&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;2. For command line arguments specify    &lt;br&gt;/out:&amp;quot;results.xml&amp;quot; /file:&amp;quot;MyCustomRules.dll&amp;quot; /rule:&amp;quot;MyCustomRules.dll&amp;quot; /D:&amp;quot;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop&amp;quot;&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;3. Set the working directory to the build output folder. For example    &lt;br&gt;C:\Projects\MyCustomRules\MyCustomRules\bin\Debug\&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;Now you can to debug your custom rules by simply hitting F5 from your custom rules project. Try it&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;1. Set a breakpoint on the statement&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; (!field.Name.Name.StartsWith(expectedPrefix, &lt;span style=&quot;color:#2b91af&quot;&gt;StringComparison&lt;/span&gt;.Ordinal))&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;2. Press F5 and execution should stop at the breakpoint.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;3. Press F5 again and execution should complete successfully.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;4. Note that there is not a results.xml file in the …\Debug folder because there are no rule violations in the code we are running the rule against.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt; &lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;Let’s create a rule violation so we can verify that our rule is behaving as it should.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;1. Add the following code to the EnforceHungarianNotation class definition&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; m_Foo;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;2. Press F5&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;3. Disable the breakpoint and Press F5 again&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;4. Examine the results.xml file in the …\Debug folder. Note the description of the rule violation. It works!&lt;/p&gt;  &lt;h1&gt;Running custom rules&lt;/h1&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;At this point we have verified that our rule functions as expected. To run our custom rule using the command line utility FxCopCmd simply use the command line options we defined in the Debug options. Run FxCopCmd.exe /? For a list of all the command line utility’s options.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;A new feature in Visual Studio 2010 is called rule sets. Rule sets are a new way of configuring which rules should be run during analysis. The easiest way to integrate your rules into Visual Studio 2010 is to copy them to the %Program Files%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules directory. If you are replacing an existing assembly you will need to restart Visual Studio after copying the file. Once the file is copied to the Rules directory the next time you launch the rule set editor you should see your custom rules. Try the following procedure&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;1. From your project’s property settings select the Code Analysis tab&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;2. Click on the Open button to open the Rule Set editor&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;3. Create a custom rule set by doing a File à Save As and saving the rule set to MyCustomRuleSet.ruleset&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;4. Click on the button &lt;b&gt;Show rules that are not enabled&lt;/b&gt; in the rule set editor’s button bar. Your custom rule(s) should appear in the list.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;&lt;a href=&quot;http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_4.png&quot;&gt;&lt;img style=&quot;border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_thumb_1.png&quot; width=&quot;450&quot; height=&quot;326&quot;&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;If you don’t want to mess with your Visual Studio installation by adding your own custom rules to the built in Rules directory that Visual Studio uses, you can manually edit a custom rule set instead.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;1. Create a new rule set and save it.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;2. Open that new rule set file in a text or xml editor and add a RuleHintPaths section with a Path element with the location of your custom rules. The path to your custom rules can include absolute file paths, relative paths, and use environment variables. For example your rule set file might look like the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;xml&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;encoding&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;RuleSet&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;My Custom Rule Set&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;Description&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;ToolsVersion&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;10.0&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;RuleHintPaths&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Path&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;%CustomRulesPath%&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Path&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Path&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;..\..\CustomRules&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Path&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Path&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;C:\CustomRules&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;Path&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;RuleHintPaths&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;RuleSet&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;3. Now open that rule set file with the visual studio Code Analysis Rule Set Editor (the default editor for *.ruleset files). Your custom rules should appear in the editor as seen above.&lt;/p&gt;  &lt;h1&gt;Troubleshooting Visual Studio integration&lt;/h1&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;If code analysis is reporting errors performing analysis due to exceptions, more details on those exceptions can be found in the *.CodeAnalysisLog.xml file in the bin directory of the assembly being analyzed (see the Exceptions section of the report file towards the bottom).&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;When you run code analysis from Visual Studio the FxCopCmd command line utility is invoked to perform the analysis. To discover exactly what command line options are being passed to FxCopCmd by Visual Studio so you can reproduce and debug the error outside of Visual Studio, first set the build output verbosity to Normal or higher. This can be done by going to Tools - &amp;gt;Options -&amp;gt; Projects and Solutions -&amp;gt; Build and Run.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;&lt;a href=&quot;http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_2.png&quot;&gt;&lt;img style=&quot;border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_thumb.png&quot; width=&quot;630&quot; height=&quot;368&quot;&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;Run code analysis and view the output window. You should see the exact command line arguments passed into FxCopCmd right after the “Running Code Analysis…” message.&lt;/p&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;For more information on where FxCopCmd is looking for assemblies you may increase the trace level of FxCopCmd to 3. This can be done by modifying the FxCopCmd.exe.config file in the same directory as FxCopCmd.exe as follows&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style=&quot;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt&quot;&gt; &lt;div style=&quot;background:#fff;max-height:300px;overflow:auto&quot;&gt; &lt;ol style=&quot;background:#ffffff;margin:0;padding:0 0 0 5px&quot;&gt; &lt;li&gt; &lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;switches&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color:#008000&quot;&gt; &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;        &lt;span style=&quot;color:#008000&quot;&gt;TraceSwitch has the following values&lt;/span&gt;&lt;/li&gt; &lt;li&gt;          &lt;span style=&quot;color:#008000&quot;&gt;Off = 0, Error = 1, Warning = 2, Info = 3, Verbose = 4&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;                  &lt;span style=&quot;color:#008000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#008000&quot;&gt;BooleanSwitch has the following values&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;          &lt;span style=&quot;color:#008000&quot;&gt;Off = 0, On = 1        &lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#008000&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color:#008000&quot;&gt; TraceSwitch&amp;#39;es &lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;Trace&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;3&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color:#008000&quot;&gt; BooleanSwitch&amp;#39;es &lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;TraceExceptions&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;=&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt;0&lt;/span&gt;&amp;quot;&lt;span style=&quot;color:#0000ff&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#a31515&quot;&gt;switches&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style=&quot;margin-right:0px&quot; dir=&quot;ltr&quot;&gt;Once this is done the xml reports (like the *.CodeAnalysisLog.xml file mentioned earlier) produced by FxCopCmd will contain a DebugInfo section that details what search paths FxCopCmd used and exactly where it resolved each assembly reference to. This information can also be determined by examining the trace messages emitted by FxCopCmd to the console.&lt;/p&gt;&lt;img src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=9986012&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;</description><pubDate>Sat, 27 Mar 2010 07:58:11 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/b39a357bfda89b53</guid><dc:creator>Duke Kamstra</dc:creator><fs:srclink>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into-visual-studio-2010.aspx</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634200/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>总结：0 bug事件、交大ACM夺冠</title><link atom:type="text/html">http://www.cnblogs.com/JeffreyZhao/archive/2010/02/07/0-bug-and-sjtu-acm-champion.html</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://www.cnblogs.com/JeffreyZhao/archive/2010/02/07/0-bug-and-sjtu-acm-champion.html">tag:google.com,2005:reader/item/a6a6e3f18e592afd</id><author xmlns="http://www.w3.org/2005/Atom"><name>Jeffrey Zhao</name></author><gr:likingUser>08189333423216324137</gr:likingUser><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://www.cnblogs.com/JeffreyZhao/rss"><id>tag:google.com,2005:reader/feed/http://www.cnblogs.com/JeffreyZhao/rss</id><title type="html">博客园-老赵点滴 - 追求编程之美</title><link rel="alternate" href="http://www.cnblogs.com/JeffreyZhao/" type="text/html"></link></source><description>&lt;p&gt;阅读: 11808 评论: 55 作者: &lt;a href=&quot;http://www.cnblogs.com/JeffreyZhao/&quot;&gt;Jeffrey Zhao&lt;/a&gt; 发表于 2010-02-07 03:51 &lt;a href=&quot;http://www.cnblogs.com/JeffreyZhao/archive/2010/02/07/0-bug-and-sjtu-acm-champion.html&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;如果您还没有上&lt;a href=&quot;http://twitter.com/&quot;&gt;推特&lt;/a&gt;（或是还没有想到办法上），那您失去的不光是一个风靡世界的网络应用，您同时还失去了一个优秀的信息获取平台及讨论环境。目前国内大部分靠谱的技术专家都在推特上有帐号，您几乎不会错失任何有价值的信息，更可以&lt;a href=&quot;http://www.cnblogs.com/JeffreyZhao/archive/2010/02/03/twitter-talk-about-ms-dev-at-20100201.html&quot;&gt;参与一些有价值讨论&lt;/a&gt;。周六是休息日，因此也在推特上和大家聊得不亦乐乎。不过推特的一个缺陷可能便是难以留住有价值的信息，它们会随着时间推移渐渐消失，因此还是及时记录一下吧。&lt;/p&gt;
&lt;h1&gt;0 bug事件&lt;/h1&gt;
&lt;p&gt;0 bug事件原本什么都不是，只不过是有人使用非常普通、就事论事地方式，在豆瓣上指出了《0 bug》一书中不妥的地方。但是由于作者令人费解地谩骂和指责使“事态升级”。再由于网络上围观群众（&lt;a href=&quot;http://www.cnblogs.com/JeffreyZhao/archive/2010/02/01/logic-is-not-everything.html&quot;&gt;其中也有我的份&lt;/a&gt;）与作者本身不断地进行“交锋”，0 bug事件终究一发不可收拾了。&lt;/p&gt;
&lt;p&gt;其实我对这件事情已经不太在意了，因为我本来就是围观群众，而且目前0 bug事件已经出离了纯粹的技术讨论。不过现在我继续谈这个问题，是因为直接参与此次事件的双方又有新的动作了。首先是大牛&lt;a href=&quot;http://www.cnblogs.com/miloyip/&quot;&gt;Milo Yip&lt;/a&gt;已经在园子里建立博客了，他的原话是希望“&lt;font color=&quot;#ff0000&quot;&gt;將會陸續把牆外的技術文章整理及分享&lt;/font&gt;”，不过第一篇文章是&lt;a href=&quot;http://www.cnblogs.com/miloyip/archive/2010/02/06/1665099.html&quot;&gt;对0 bug事件的过程进行了系统的总结&lt;/a&gt;；当然&lt;a href=&quot;http://blog.csdn.net/tonyxiaohome/&quot;&gt;0 bug&lt;/a&gt;老师也没有闲着，他这几天还在勤劳地进行辩解。不久前又转载了一篇雄文《&lt;a href=&quot;http://blog.csdn.net/tonyxiaohome/archive/2010/02/05/5291216.aspx&quot;&gt;五毛党与网络打手&lt;/a&gt;》，从始至终地坚持他的观点：此次事件是“敌对势力”在对他进行“有组织，有预谋”的抹黑。&lt;/p&gt;
&lt;p&gt;而事情发展至今又有新的亮点，那便是CSDN的编辑同志们将此次事件相关的文章放上了首页。在此截图留念：&lt;/p&gt;
&lt;img src=&quot;http://images.cnblogs.com/cnblogs_com/jeffreyzhao/csdn-0bug.png&quot; alt=&quot;&quot;&gt;
&lt;p&gt;哈，前两篇都是。&lt;a href=&quot;http://blog.csdn.net/Raptor/archive/2010/02/05/5290875.aspx&quot;&gt;第一篇文章&lt;/a&gt;指出了0 bug老师在此次事件中的问题所在，其中一点正好回应了0 bug老师的观点：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;按我以前接触过的国内出版业人士来看，肖老师在BLOG里说的“书黑”这种事情在中国的确很可能发生。但是他的错误在于，把所有提意见的读者都当成了 书黑，这未免有点被迫害妄想过头了吧。要知道，请一帮网络黑社会也是要花不少钱的，一个编辑做一本书赚的钱估计是不够的，更何况目标还是这样一技术含量比 较高的书。 &lt;/p&gt;
&lt;p&gt;其实光是从Milo指出的几个问题来看，他就不可能是什么书黑，哪有C++水平这么高的书黑——要是C++功力这么深还当什么书黑啊，书黑能赚几个钱。而作者连这点都看不出来，显然他的C++功力也不怎么样，以此推断，那本书显然也的确不怎么样。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;而&lt;a href=&quot;http://blog.csdn.net/tonyxiaohome/archive/2010/02/05/5290195.aspx&quot;&gt;第二篇文章&lt;/a&gt;的作者正是0 bug老师本人，其主要意思是指目前指出的问题似乎都有“无中生有”的感觉，因为这些“攻击”根本没有找准位置。&lt;/p&gt;
&lt;p&gt;0 bug老师是&lt;a href=&quot;http://student.csdn.net/&quot;&gt;CSDN学生大本营&lt;/a&gt;的头牌，因此CSDN的态度对于这个事件的意义重大。而这次CSDN首页推荐的作法，我个人看来已经是一种表态了。因为这两篇文章，无论是对“技术”及“产业”来说都几乎没有意义，推荐它们的原因似乎只是为了揭露0 bug事件本身。很明显，0 bug事件对于CSDN来说并不光彩，而CSDN的编辑同志没有遮掩，将其公开地表达出来，我想他们在这个问题上的确值得我们尊敬。&lt;/p&gt;
&lt;p&gt;就我的看法，0 bug事件可以说是继《&lt;a href=&quot;http://www.cnblogs.com/jeffreyzhao/archive/2009/09/23/1572868.html&quot;&gt;JavaScript征途&lt;/a&gt;》之后又一个和技术图书出版有关的经典案例了，两者的相同之处在于作者对于读者所指出的“硬伤”都采取了类似的态度。上次的事件似乎已经平息，只有&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;ei=_8ttS5DKBsyIkAW4zrHUBw&amp;amp;sa=X&amp;amp;oi=spell&amp;amp;resnum=0&amp;amp;ct=result&amp;amp;cd=1&amp;amp;ved=0CBcQBSgA&amp;amp;q=JavaScript+%E5%BE%81%E9%80%94&amp;amp;spell=1&quot;&gt;搜索引擎中的头条&lt;/a&gt;清楚地记录着相关内容。我真的希望图书出版行业的这类经典案例可以少一些——亦或是多出现一些，以此推动一个革命，最终改变目前令人难堪的现状？&lt;/p&gt;
&lt;p&gt;在推特上，&lt;a href=&quot;https://twitter.com/jasonlai&quot;&gt;@jasonlai&lt;/a&gt;同学发表了一些看法：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;老话，咱圈真乱。另外，国内技术媒体和出版圈子还是需要提高一下道德底线啊，出书审校不负责任，写软文换赞助的事情比比皆是。最近小关注了一下&lt;a href=&quot;http://www.techcrunch.com/2010/02/04/an-apology-to-our-readers/&quot;&gt;TechCrunch炒掉写软文实习生的事件&lt;/a&gt;，感触颇深，能那样做才是受尊重的媒体。&lt;/p&gt;
&lt;p&gt;仔细看了某口水战事件的讨论始末。有知识没文化真恐怖啊，某“大师”的气度，&lt;a href=&quot;http://www.danielbru.com/2010/02/the-line-was-crossed/&quot;&gt;还不如一个17岁小孩&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;说到这里，我想起在我的博客上有朋友回复说，写《JavaScript征途》的朱老大最近又有一本新书《&lt;a href=&quot;http://www.china-pub.com/49015&quot;&gt;Flash CS4基础与案例教程&lt;/a&gt;》出版发行了。我在这里谨代表我个人（请注意，不代表其他人哦）表示恭喜，并对国内有如此高产的作者感到自豪。让我们欢呼吧！&lt;/p&gt;
&lt;h1&gt;交大ACM夺冠&lt;/h1&gt;
&lt;p&gt;交大牛啊，继2002及2005年之后，他们&lt;a href=&quot;http://news.csdn.net/a/20100205/216923.html&quot;&gt;再次获得了ACM竞赛的世界冠军&lt;/a&gt;！想当年我也在信息学奥林匹克竞赛的道路上探索过，但由于直升大学时被交大拒绝，一气之下报考复旦大学，从此改变了我的人生轨迹——呃，扯远了，没别的意思，还是回到这则新闻上来。&lt;/p&gt;
&lt;p&gt;不过，奇怪的是，似乎很多人的对这个事件还是发表了许多在我看来毫无道理负面评价（当然并不是所有的负面评价都是没有道理的，例如说ACM夺冠对于国内普遍现状几乎没有帮助，这我同意）。具体地就不多提了，您可以自己去看新闻后面的回复。我想说的是，我这次真的想用“喷子”来形容某些人了。&lt;/p&gt;
&lt;p&gt;的确，国内大学教育是有很多问题，你们的失望我可以理解，但是为什么那么倾向于“轻视”一个东西？的确，交大的弟兄们是非常重视ACM竞赛，但是他们的确通过刻苦训练拿到了世界冠军，这一点不假。嗯，你可能会说“ACM这种比赛没有什么意义，考题海战术取胜，胜在中国人最擅长的应试教育，否则为什么拿了那么多次世界冠军，那些搞ACM的人最终成功的有几个？”那么我们现在就来讨论这个问题吧。&lt;/p&gt;
&lt;p&gt;其实以前也有过类似的问题，便是“中科大少年班”。有许多人质疑对此类少年天才的培养方式——的确，可能这种方法自有其不科学之处，但是类似于“除了张亚勤之外又有谁成功了”这样的论据我是非常不屑与之辩驳的。对此我只想问几个问题：成功的标准是什么？所有成功的人你都认识吗？&lt;/p&gt;
&lt;p&gt;这里我不想谈什么“金钱不是唯一标准”等会被人耻笑为“幼稚”的道理，我们就拿钱来说吧。我举个例子，世界上有许多大型银行或是企业，他们的总裁，或是副总等高管都是有钱人，可谓非常成功，但是你现在能够说出其中几个人的名字？再问，就拿微软来说，除了盖兹，鲍尔默等人，你又能说出多少人呢？微软的&lt;a href=&quot;http://www.microsoft.com/presspass/exec/techfellow/default.mspx&quot;&gt;Technical Fellows&lt;/a&gt;以及&lt;a href=&quot;http://www.microsoft.com/presspass/exec/de/default.mspx&quot;&gt;Distinguished Engineers&lt;/a&gt;也都很成功（即使只谈钱），但是这几十人中你又认识多少人呢？&lt;/p&gt;
&lt;p&gt;是啊，成功的人太多了，不能因为你没有听说过就“认定”他们不成功。事实上，无论是ACM冠军选手或是中科大少年班的成员，他们中的大部分在社会地位还是经济方面都是普通人难以项望其背的。只不过，他们没有让你们知道而已。例如，他们可能出国深造，成为顶尖的科研人员或是教授，享受着几十万美元的年薪，过着滋润的生活。你可能连Jim Gray都不知道是谁，不知道他们不是很正常的事情吗？&lt;/p&gt;
&lt;p&gt;其实我在学校的时候也一直关注ACM成员，事实上我就没有发现有哪个ACM高手是写不好程序的。&lt;/p&gt;
&lt;p&gt;Oren Eini写过&lt;a href=&quot;http://ayende.com/Blog/archive/2009/12/12/setting-the-record-straight-i-am-not-the-main-contributor.aspx&quot;&gt;这么一篇文章&lt;/a&gt;，其中心思想是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am not the main contributor (of NHibernate), I am just the loudest one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这句话的说法一点没错。就拿我来说，我&lt;font color=&quot;#ff0000&quot;&gt;不是&lt;/font&gt;最好的.NET程序员，我只不过是在博客园积分最多，并且可能最积极参与社区活动而已。如果要正确定位我在社区中的表现，也只（可能）是loudest，而远远谈不上，甚至永远不可能是best。要在技术社区中产生正面的影响力，水平只是一方面，而“其他某些方面”也是非常重要的。记得网络红人&lt;a href=&quot;http://blog.sina.com.cn/ayawawa&quot;&gt;ayawawa&lt;/a&gt;说过这么一句话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;比我漂亮的都没我聪明，比我聪明的都没我漂亮。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;那么我也来说一句类似的：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;比我会吹牛的技术都没我好，技术比我好的都没我会吹牛。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;所以，我也就是一个小样儿而已——但是我还是自信比ACM事件中大部分无理由的喷子们要强上不少。&lt;/p&gt;
&lt;p&gt;五毛与无美分无异。&lt;/p&gt;
&lt;img src=&quot;http://www.cnblogs.com/JeffreyZhao/aggbug/1665244.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt;&lt;p&gt;评论: 55　&lt;a href=&quot;http://www.cnblogs.com/JeffreyZhao/archive/2010/02/07/0-bug-and-sjtu-acm-champion.html#pagedcomment&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/JeffreyZhao/archive/2010/02/07/0-bug-and-sjtu-acm-champion.html#commentform&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://job.cnblogs.com/&quot;&gt;找优秀程序员，就在博客园&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;最新新闻：&lt;br&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/58326/&quot;&gt;鲍尔默盛赞苹果产品成功 双方或加深合作&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-03-09 20:51)&lt;/span&gt;&lt;br&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/58325/&quot;&gt;Mozilla预览防止Flash崩溃的新特性&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-03-09 20:32)&lt;/span&gt;&lt;br&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/58324/&quot;&gt;微软MIX10在即，我们会看到什么？&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-03-09 19:48)&lt;/span&gt;&lt;br&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/58323/&quot;&gt;史玉柱：网游国家队进不来 进来了也没机会&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-03-09 18:20)&lt;/span&gt;&lt;br&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/58321/&quot;&gt;谷歌街景奖：最美的街道&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-03-09 17:22)&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://www.cnblogs.com/024hi/archive/2010/03/09/1681863.html&quot;&gt;微软 MIX10在即，我们会看到什么？&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot;&gt;博客园首页&lt;/a&gt;  &lt;a href=&quot;http://home.cnblogs.com/&quot;&gt;个人主页&lt;/a&gt;  &lt;a href=&quot;http://news.cnblogs.com&quot;&gt;新闻&lt;/a&gt;  &lt;a href=&quot;http://home.cnblogs.com/ing/&quot;&gt;闪存&lt;/a&gt;  &lt;a href=&quot;http://home.cnblogs.com/group/&quot;&gt;小组&lt;/a&gt;  &lt;a href=&quot;http://space.cnblogs.com/q/&quot;&gt;博问&lt;/a&gt;  &lt;a href=&quot;http://space.cnblogs.com&quot;&gt;社区&lt;/a&gt;  &lt;a href=&quot;http://kb.cnblogs.com&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 07 Feb 2010 03:51:00 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/a6a6e3f18e592afd</guid><dc:creator>Jeffrey Zhao</dc:creator><fs:srclink>http://www.cnblogs.com/JeffreyZhao/archive/2010/02/07/0-bug-and-sjtu-acm-champion.html</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634202/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>大脑欺骗之旅——从西洋镜到阿凡达</title><link atom:type="text/html">http://songshuhui.net/archives/33156.html</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://songshuhui.net/?p=33156">tag:google.com,2005:reader/item/9b9564eb264dfaa8</id><content xmlns="http://www.w3.org/2005/Atom" xml:base="http://songshuhui.net/archives/33156.html" xml:lang="en" type="html">&lt;h3&gt;第五期征文作品赏析（七）&lt;/h3&gt;&lt;table style=&quot;border-collapse:collapse;width:92pt&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;122&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;作者：打破的管道   二等奖&lt;/p&gt;&lt;p&gt;一切还要从混沌初开、任嘛没有的创世纪说起……  上帝说“要有光！”，于是就有了光。&lt;/p&gt;&lt;p&gt;上帝说“晚上也要有！”，于是有了爱迪生，很快爱迪生就奉旨发明出了晚上的光。&lt;/p&gt;&lt;p&gt;上帝说“要让人们看到我！”，于是便有了画家和雕刻家。  上&lt;/p&gt;&lt;p&gt;帝说“要能动的，笨蛋！”，于是有了电影。&lt;/p&gt;&lt;p&gt;我记忆中看的第一部电影就是讲的耶稣受难，是外婆带着我去的天主教堂。在当时，教堂是为数不多的能自主放映影片的场所。因为年龄太小的缘故，已经记不起太多影片细节了，只觉得色调昏暗，故事沉闷，片中人物个个衣衫褴褛。但有一处印象深刻，我当时真就以为那是耶稣本人！而这电影嘛，一定是耶稣受难时现场拍摄下来的。（后来我才知道原来还有演员这种职业-_-|）&lt;/p&gt;&lt;h3&gt;西洋镜与左轮枪&lt;/h3&gt;&lt;p&gt;1999年，胡安导演的一部《西洋镜》把观众带回到慈禧太后时期的中国，回顾了电影在当时的中国如何艰难起步。一时间，西洋镜这个旧时候的物件又重新走进了中国百姓的视野。&lt;/p&gt;&lt;p&gt;西洋镜是上海人的叫法，北方叫拉洋片，说的都是一回事。就是一个可以旋转的鼓，内壁上贴着一圈“连环画”（这才是名副其实的连环画，因为真的连成了一个环）。通过一道狭长的切口，可看到鼓内侧的图片一张张地闪过，就像动起来一样。&lt;/p&gt;&lt;div style=&quot;width:248px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image0024.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image002&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image002_thumb4.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; width=&quot;238&quot; height=&quot;277&quot;&gt;&lt;/a&gt;&lt;p&gt;西洋镜&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image0031.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image003&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image003_thumb1.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; width=&quot;244&quot; height=&quot;233&quot;&gt;&lt;/a&gt;&lt;p&gt;西洋镜里的图画&lt;/p&gt;&lt;/div&gt;&lt;p&gt;为了表现出连续的动作，要求连环画中每相邻的两格相差不能过大，这样重复度就很高，一转圈下来也表现不了多少内容。因此一般都把影片设计成可循环的，即让最后一张与第一张的动作衔接起来。西洋镜虽然简陋，但它所使的“骗术”和现代电影是一样的，都是利用了人眼的视觉暂留特性。&lt;/p&gt;&lt;p&gt;先看一下什么是视觉暂留。光一旦在视网膜上成像，大脑视觉系统就会把这一瞬的视觉维持一段时间。根据光的强度不同，维持的时间也不一样，对于中等亮度的光刺激，大约为0.05秒到0.2秒。我们把一幅静态的图像叫做一帧，电影通常的播放速度是每秒24帧。也就是说，你所看到的影像不是绝对的连贯，而是间断的24张照片在一秒钟之内轮番闪过。&lt;/p&gt;&lt;p&gt;也许你已经明白了，摄影机无非就是一台高速连续拍照的相机。其工作原理也没什么神秘，胶片感光、换下一格胶片、再进行感光，如此循环往复。可即使原理如此简单，在电影诞生之初，实现起来也相当的麻烦。看看在1878年，人们是怎么笨手笨脚地把一匹奔跑的马拍进电影的吧。首先，在马的跑道两侧密集地架设起多台相机，每隔21英寸就有一台。当马从相机前经过时，马腿会扫到一根绊线，由这绊根线来触发相机快门完成拍摄。最后再把胶片从多台相机里依次取出，按顺序拼接成电影胶卷。&lt;/p&gt;&lt;p&gt;这样的拍摄代价显然太大，不仅需要的相机数量过多，还要设计好如何在恰当的时间触发相机快门，另外收集和拼接胶片也是个麻烦事。于是后来就有人用轮子进行了改进。赞美轮子吧！自轮子之后，人类就再没有过真正像样的发明了。&lt;/p&gt;&lt;div style=&quot;width:224px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image007.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image007&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image007_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image007&quot; width=&quot;214&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;p&gt;造物主啊！太像了简直！这一个盘子六个眼儿的神圣徽记！也只有蜂窝煤能与之媲美！&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;width:215px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image005.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image005&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image005_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image005&quot; width=&quot;205&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;p&gt;像吧？&lt;/p&gt;&lt;/div&gt;&lt;p&gt;不要受上图误导，其实放映机轮子上的窟窿眼并没有什么实际用途，是我忍不住才将它俩放在一起。不过放映机的原理与左轮枪的确有着异曲同工之妙——感光、下一格胶片、再感光、再下一格，这是放映机；嘭！下一发子弹！嘭！再下一发！这是左轮枪。它们都借助了转轮，使得某个重复的步骤自动化，从而大大加快了速度。&lt;/p&gt;&lt;p&gt;速度！还是速度！有道是“天下武功，唯快不破”。很多事物本身并不神奇，可一旦速度快到一定程度，便能像电影那样，骗得我们一愣一愣的。很多魔术戏法也是靠速度取胜，快到使人看不清看不见。当然了，练就一双魔术师的快手需要下很大功夫，而一秒钟拍24张照片也是要付出代价的。我们不妨来算一下，按照这个速度拍摄，胶片的消耗量有多大。&lt;/p&gt;&lt;p&gt;普通的摄影机每拍摄一秒钟，也就是24张画面，需要消耗45.75厘米长的胶卷，那么拍一部两小时的电影，就是45.75厘米每秒×7200秒=329400厘米，大约是3.3公里。摄影机如此大的弹药消耗量，再拿左轮枪来和它比较，显然有点儿跟不上了。要说门当户对的，还得是美国陆军M134型机枪，每分钟6000发子弹的射速可不是盖的。&lt;/p&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image009.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image009&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image009_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image009&quot; width=&quot;244&quot; height=&quot;171&quot;&gt;&lt;/a&gt;&lt;p&gt;M134机枪的外形和摄影机十分相像  难怪在英语中摄影和射击是同一个词（shoot）&lt;/p&gt;&lt;/div&gt;&lt;p&gt;M134虽然威武，但越往高速领域，机械运动的先天劣势就越发明显。白展堂的葵花点穴手“指如疾风、势如闪电”，可就算风再快，也终究快不过电。这时候，电子器件的优势就显现出来了。高速摄影机就好比摄影器材中的高射速机枪。目前主流的高速摄影机，每秒1000帧已经不在话下。然而它的快，恰恰是为了拍摄慢镜头。若以1000帧每秒的速度拍摄，然后以25帧每秒的正常速度播放，那么从观看者的角度，影片中的时间流逝速度只有现实中的1/40。&lt;/p&gt;&lt;p&gt;当时间慢下来，我们会发现一些平时根本无法察觉的现象。尽管这些现象其实天天在我们眼前发生，可看起来仍像是奇迹一般。你可以看清子弹穿过苹果的瞬间，气球爆开时的形状，以及火花是如何慢慢变成一团火焰的。探索频道还专门为此制作了一个系列节目《暂留时空》，目前已经播到第三季。&lt;/p&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image011.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image011&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image011_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image011&quot; width=&quot;244&quot; height=&quot;153&quot;&gt;&lt;/a&gt;&lt;p&gt;高速摄影机拍摄的肥皂泡破开的瞬间&lt;/p&gt;&lt;/div&gt;&lt;p&gt;终于，摄影机为自己正了名。它除了会蒙骗我们的大脑，有时候也能揭开一些真相。但并不是所有人都对高速摄影表示欢迎，其中最有怨言的，恐怕就是被拆穿了西洋镜的魔术师们。&lt;/p&gt;&lt;h3&gt;Cameron的Camera&lt;/h3&gt;&lt;p&gt;卡梅隆（Cameron）！注意不是卡梅隆·迪亚兹，而是詹姆斯·卡梅隆（&lt;a href=&quot;http://en.wikipedia.org/wiki/James_Cameron&quot;&gt;James Cameron&lt;/a&gt;）！这电影圈里总算轮到技术派露一回脸了！如果世界不像现实中这么浮躁，哪怕只一点点，那么詹姆斯·卡梅隆，这位拍摄了《终结者》、《泰坦尼克号》和《阿凡达》的导演大师，名气上也绝不该输给一个靠身材和脸蛋吃饭的女明星。  要问导演们的最钟爱之物是什么，排在最前的答案一定是摄影机(Camera)。另一位大导演斯蒂芬·斯皮尔伯格这样给人讲起他的导演生涯“我的第一部影片，我永远记得，是16岁那年，我用那架8毫米摄影机……”可见导演对摄影机的情愫，就好比战士对待枪一样。&lt;/p&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image013.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image013&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image013_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image013&quot; width=&quot;244&quot; height=&quot;169&quot;&gt;&lt;/a&gt;&lt;p&gt;都是爱“枪”人  詹姆斯·卡梅隆（中）长期占据着电影技术的制高点&lt;/p&gt;&lt;/div&gt;&lt;p&gt;自《泰坦尼克号》以来，卡梅隆足足有12年没什么大的动作。不过这位加州大学物理系毕业的技术狂人一刻也未曾停下脚步。他在探寻，在等待，探寻更好的电影特效技术，等待更多的影院安装上3D银幕。&lt;/p&gt;&lt;p&gt;有人说，神作《阿凡达》的问世，可将电影史从此划分为“阿凡达前”和“阿凡达后”。从电影制作技术的角度讲，这种说法并不夸张。卡梅隆十年磨一剑的坚持，给3D电影制作工艺带来了无数改进。弱水三千，只取一瓢，来看一下电影是如何拍成3D的。&lt;/p&gt;&lt;p&gt;3D的D是维度（Dimension）的开头字母，3D就是三维立体的意思。我们平日看的电影是二维的，多出来的第三维是干嘛用的呢？二维与三维的关系其实就像平面几何与立体几何的关系（有同学说，两者的关系就是立体几何比平面几何更难考及格-_-||）因此不难理解，多出来的那一维，就是三维坐标系里冲你指过来的Z轴。&lt;/p&gt;&lt;p&gt;只睁一只眼能精确把握前后距离吗？不妨做个小实验，把一支笔横在面前，取下笔帽装进口袋里，然后闭上一只眼，取出口袋中的笔帽，尝试套回到笔上。通常一只眼的时候很难一次成功，但两只眼都睁开就要容易得多。&lt;/p&gt;&lt;p&gt;人是通过两眼所见景象的细微差别来判断前后距离的。物体离你很近时，这差别会很大，而当它逐渐远离你的时候，这差别会越来越小，直到两只眼睛所见几乎一样。观察者离得越近，对距离就越敏感。这就解释了为什么眼前站着的两个人虽然相隔很近，也能轻易判断出谁前谁后，而远处的两座高楼可能相隔很远，却拿不准哪座在前。眼睛对远距离的敏感度不如近距离细腻，俗语“望山跑死马”就蕴含了类似的道理。因此在3D电影里，近景镜头有着先天优势，难怪导演们对火车扑面而来这一类近景冲击镜头偏爱有加了。&lt;/p&gt;&lt;p&gt;拍摄3D电影，需要两台摄影机分别模拟左右两眼的视线，同时拍摄下略有差别的两份影像。在放映时，将这两个影像叠加在一起投射到银幕上，观众须戴上特制的3D眼镜，令左眼只能看到左边摄影机拍下的影像，右眼只能看到右边的。这样一来，就还原出两个摄影机眼球在现场拍摄时的所见，给人以身临其境的距离感。&lt;/p&gt;&lt;p&gt;欣赏3D电影时，观众仿佛置身其中，而非只作为一个旁观者。因此3D电影的早期尝试较多出现在恐怖片和情色片，毕竟对这两类片子而言，身临其境的第一人称视觉体验实在叫人难以抵挡。&lt;/p&gt;&lt;p&gt;3D电影对大脑的欺骗提高了一个层次，但也带来了副作用。头晕恶心是最为常见的一种。也许你的大脑还不太习惯上这样的当——以为自己在山谷中急速翱翔，但事实上却坐在影院一动不动。这副作用尽管不是人人皆有，而且詹姆斯·卡梅隆的工作组也极力从技术上将其降到最低，但仍然没有根除。&lt;/p&gt;&lt;p&gt;万灵药未出，小偏方横行。下面这个偏方就专门预防3D眩晕，不敢说药到病除，但也能减轻不少症状。本偏方在此免费奉上，请记住七字诀“老老实实跟镜头”。一般镜头焦点对准哪里，哪里的图像就最清晰，而且也一定是导演希望观众注意的地方。不要对焦点以外的事物产生好奇，紧跟导演的思路，否则难受起来我这儿可没有治后悔的偏方。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image015.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image015&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image015_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image015&quot; width=&quot;244&quot; height=&quot;131&quot;&gt;&lt;/a&gt; 蒙骗大脑的技术在不断升级，也许未来的终极影院就只是摆在客厅里的一张躺椅。只要舒舒服服躺下，给脑袋接上电，各种感觉就源源不断地向你涌来。不光能听能看，还能感受到爆炸的冲击波，女主角身上的香水味，甚至可以让彩色的声音尝起来是甜的，cool！！ 要是高兴了，就来上一大口味道可调节的虚拟爆米花，如果你愿意分享，身旁依偎的虚拟女友也将手伸进爆米花袋，无名指上还带着你刚刚为她虚拟出来的五克拉钻戒。&lt;/p&gt;&lt;p&gt;这想象中的未来影院就没有副作用吗？09年出品的科幻电影《未来战警》给出了一种回答——有！而且远不止头晕这么轻描淡写。先抛开这类科幻题材惯用的耸人听闻的阴谋论不说，光是存在这样一个虚拟天堂，就是对人性的极大挑战。当人的一切愿望都能通过电子虚拟的手段轻易满足，谁还愿意从美梦中醒来？躺在那样的椅子上沉睡，人类剩下的唯一有意义的部分，不过是一团连接着导线的脑组织。&lt;/p&gt;&lt;p&gt;从西洋镜到阿凡达，一路匆匆走过，这趟大脑欺骗之旅终要告一段落了。心里还在惦记情色3D电影？忘掉它吧，看在詹姆斯·卡梅隆的份上！ （巧得很，JC除了是James Cameron的缩写，还是……没错，耶稣基督Jesus Christ.）&lt;/p&gt;&lt;p&gt; 本文地址（转载请注明出处）： 复制&lt;br&gt;收藏、分享这篇文章：&lt;a href=&quot;javascript:void(0);&quot; title=&quot;百度搜藏&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/baidu.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;百度搜藏&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;GOOGLE书签&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/google_bmarks.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;GOOGLE书签&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;收藏到豆瓣&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/douban.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;豆瓣&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;收藏到开心网&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/kaixin.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;开心网&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;收藏到qq书签&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/qqbookmark.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;qq书签&quot;&gt;&lt;/a&gt;       &lt;a href=&quot;http://songshuhui.net/?p=33156&amp;amp;akst_action=share-this&quot; title=&quot;更多分享方式&quot; rel=&quot;noindex nofollow&quot;&gt;更多...&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://songshuhui.net/?ak_action=api_record_view&amp;amp;id=33156&amp;amp;type=feed&quot; alt=&quot;&quot;&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>科学松鼠会</name></author><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://songshuhui.net/feed/atom"><id>tag:google.com,2005:reader/feed/http://songshuhui.net/feed/atom</id><title type="html">科学松鼠会</title><link rel="alternate" href="http://songshuhui.net/" type="text/html"></link></source><content:encoded>&lt;h3&gt;第五期征文作品赏析（七）&lt;/h3&gt;&lt;table style=&quot;border-collapse:collapse;width:92pt&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;122&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;作者：打破的管道   二等奖&lt;/p&gt;&lt;p&gt;一切还要从混沌初开、任嘛没有的创世纪说起……  上帝说“要有光！”，于是就有了光。&lt;/p&gt;&lt;p&gt;上帝说“晚上也要有！”，于是有了爱迪生，很快爱迪生就奉旨发明出了晚上的光。&lt;/p&gt;&lt;p&gt;上帝说“要让人们看到我！”，于是便有了画家和雕刻家。  上&lt;/p&gt;&lt;p&gt;帝说“要能动的，笨蛋！”，于是有了电影。&lt;/p&gt;&lt;p&gt;我记忆中看的第一部电影就是讲的耶稣受难，是外婆带着我去的天主教堂。在当时，教堂是为数不多的能自主放映影片的场所。因为年龄太小的缘故，已经记不起太多影片细节了，只觉得色调昏暗，故事沉闷，片中人物个个衣衫褴褛。但有一处印象深刻，我当时真就以为那是耶稣本人！而这电影嘛，一定是耶稣受难时现场拍摄下来的。（后来我才知道原来还有演员这种职业-_-|）&lt;/p&gt;&lt;h3&gt;西洋镜与左轮枪&lt;/h3&gt;&lt;p&gt;1999年，胡安导演的一部《西洋镜》把观众带回到慈禧太后时期的中国，回顾了电影在当时的中国如何艰难起步。一时间，西洋镜这个旧时候的物件又重新走进了中国百姓的视野。&lt;/p&gt;&lt;p&gt;西洋镜是上海人的叫法，北方叫拉洋片，说的都是一回事。就是一个可以旋转的鼓，内壁上贴着一圈“连环画”（这才是名副其实的连环画，因为真的连成了一个环）。通过一道狭长的切口，可看到鼓内侧的图片一张张地闪过，就像动起来一样。&lt;/p&gt;&lt;div style=&quot;width:248px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image0024.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image002&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image002_thumb4.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; width=&quot;238&quot; height=&quot;277&quot;&gt;&lt;/a&gt;&lt;p&gt;西洋镜&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image0031.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image003&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image003_thumb1.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; width=&quot;244&quot; height=&quot;233&quot;&gt;&lt;/a&gt;&lt;p&gt;西洋镜里的图画&lt;/p&gt;&lt;/div&gt;&lt;p&gt;为了表现出连续的动作，要求连环画中每相邻的两格相差不能过大，这样重复度就很高，一转圈下来也表现不了多少内容。因此一般都把影片设计成可循环的，即让最后一张与第一张的动作衔接起来。西洋镜虽然简陋，但它所使的“骗术”和现代电影是一样的，都是利用了人眼的视觉暂留特性。&lt;/p&gt;&lt;p&gt;先看一下什么是视觉暂留。光一旦在视网膜上成像，大脑视觉系统就会把这一瞬的视觉维持一段时间。根据光的强度不同，维持的时间也不一样，对于中等亮度的光刺激，大约为0.05秒到0.2秒。我们把一幅静态的图像叫做一帧，电影通常的播放速度是每秒24帧。也就是说，你所看到的影像不是绝对的连贯，而是间断的24张照片在一秒钟之内轮番闪过。&lt;/p&gt;&lt;p&gt;也许你已经明白了，摄影机无非就是一台高速连续拍照的相机。其工作原理也没什么神秘，胶片感光、换下一格胶片、再进行感光，如此循环往复。可即使原理如此简单，在电影诞生之初，实现起来也相当的麻烦。看看在1878年，人们是怎么笨手笨脚地把一匹奔跑的马拍进电影的吧。首先，在马的跑道两侧密集地架设起多台相机，每隔21英寸就有一台。当马从相机前经过时，马腿会扫到一根绊线，由这绊根线来触发相机快门完成拍摄。最后再把胶片从多台相机里依次取出，按顺序拼接成电影胶卷。&lt;/p&gt;&lt;p&gt;这样的拍摄代价显然太大，不仅需要的相机数量过多，还要设计好如何在恰当的时间触发相机快门，另外收集和拼接胶片也是个麻烦事。于是后来就有人用轮子进行了改进。赞美轮子吧！自轮子之后，人类就再没有过真正像样的发明了。&lt;/p&gt;&lt;div style=&quot;width:224px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image007.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image007&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image007_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image007&quot; width=&quot;214&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;p&gt;造物主啊！太像了简直！这一个盘子六个眼儿的神圣徽记！也只有蜂窝煤能与之媲美！&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;width:215px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image005.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image005&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image005_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image005&quot; width=&quot;205&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;p&gt;像吧？&lt;/p&gt;&lt;/div&gt;&lt;p&gt;不要受上图误导，其实放映机轮子上的窟窿眼并没有什么实际用途，是我忍不住才将它俩放在一起。不过放映机的原理与左轮枪的确有着异曲同工之妙——感光、下一格胶片、再感光、再下一格，这是放映机；嘭！下一发子弹！嘭！再下一发！这是左轮枪。它们都借助了转轮，使得某个重复的步骤自动化，从而大大加快了速度。&lt;/p&gt;&lt;p&gt;速度！还是速度！有道是“天下武功，唯快不破”。很多事物本身并不神奇，可一旦速度快到一定程度，便能像电影那样，骗得我们一愣一愣的。很多魔术戏法也是靠速度取胜，快到使人看不清看不见。当然了，练就一双魔术师的快手需要下很大功夫，而一秒钟拍24张照片也是要付出代价的。我们不妨来算一下，按照这个速度拍摄，胶片的消耗量有多大。&lt;/p&gt;&lt;p&gt;普通的摄影机每拍摄一秒钟，也就是24张画面，需要消耗45.75厘米长的胶卷，那么拍一部两小时的电影，就是45.75厘米每秒×7200秒=329400厘米，大约是3.3公里。摄影机如此大的弹药消耗量，再拿左轮枪来和它比较，显然有点儿跟不上了。要说门当户对的，还得是美国陆军M134型机枪，每分钟6000发子弹的射速可不是盖的。&lt;/p&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image009.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image009&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image009_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image009&quot; width=&quot;244&quot; height=&quot;171&quot;&gt;&lt;/a&gt;&lt;p&gt;M134机枪的外形和摄影机十分相像  难怪在英语中摄影和射击是同一个词（shoot）&lt;/p&gt;&lt;/div&gt;&lt;p&gt;M134虽然威武，但越往高速领域，机械运动的先天劣势就越发明显。白展堂的葵花点穴手“指如疾风、势如闪电”，可就算风再快，也终究快不过电。这时候，电子器件的优势就显现出来了。高速摄影机就好比摄影器材中的高射速机枪。目前主流的高速摄影机，每秒1000帧已经不在话下。然而它的快，恰恰是为了拍摄慢镜头。若以1000帧每秒的速度拍摄，然后以25帧每秒的正常速度播放，那么从观看者的角度，影片中的时间流逝速度只有现实中的1/40。&lt;/p&gt;&lt;p&gt;当时间慢下来，我们会发现一些平时根本无法察觉的现象。尽管这些现象其实天天在我们眼前发生，可看起来仍像是奇迹一般。你可以看清子弹穿过苹果的瞬间，气球爆开时的形状，以及火花是如何慢慢变成一团火焰的。探索频道还专门为此制作了一个系列节目《暂留时空》，目前已经播到第三季。&lt;/p&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image011.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image011&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image011_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image011&quot; width=&quot;244&quot; height=&quot;153&quot;&gt;&lt;/a&gt;&lt;p&gt;高速摄影机拍摄的肥皂泡破开的瞬间&lt;/p&gt;&lt;/div&gt;&lt;p&gt;终于，摄影机为自己正了名。它除了会蒙骗我们的大脑，有时候也能揭开一些真相。但并不是所有人都对高速摄影表示欢迎，其中最有怨言的，恐怕就是被拆穿了西洋镜的魔术师们。&lt;/p&gt;&lt;h3&gt;Cameron的Camera&lt;/h3&gt;&lt;p&gt;卡梅隆（Cameron）！注意不是卡梅隆·迪亚兹，而是詹姆斯·卡梅隆（&lt;a href=&quot;http://en.wikipedia.org/wiki/James_Cameron&quot;&gt;James Cameron&lt;/a&gt;）！这电影圈里总算轮到技术派露一回脸了！如果世界不像现实中这么浮躁，哪怕只一点点，那么詹姆斯·卡梅隆，这位拍摄了《终结者》、《泰坦尼克号》和《阿凡达》的导演大师，名气上也绝不该输给一个靠身材和脸蛋吃饭的女明星。  要问导演们的最钟爱之物是什么，排在最前的答案一定是摄影机(Camera)。另一位大导演斯蒂芬·斯皮尔伯格这样给人讲起他的导演生涯“我的第一部影片，我永远记得，是16岁那年，我用那架8毫米摄影机……”可见导演对摄影机的情愫，就好比战士对待枪一样。&lt;/p&gt;&lt;div style=&quot;width:254px&quot;&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image013.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image013&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image013_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image013&quot; width=&quot;244&quot; height=&quot;169&quot;&gt;&lt;/a&gt;&lt;p&gt;都是爱“枪”人  詹姆斯·卡梅隆（中）长期占据着电影技术的制高点&lt;/p&gt;&lt;/div&gt;&lt;p&gt;自《泰坦尼克号》以来，卡梅隆足足有12年没什么大的动作。不过这位加州大学物理系毕业的技术狂人一刻也未曾停下脚步。他在探寻，在等待，探寻更好的电影特效技术，等待更多的影院安装上3D银幕。&lt;/p&gt;&lt;p&gt;有人说，神作《阿凡达》的问世，可将电影史从此划分为“阿凡达前”和“阿凡达后”。从电影制作技术的角度讲，这种说法并不夸张。卡梅隆十年磨一剑的坚持，给3D电影制作工艺带来了无数改进。弱水三千，只取一瓢，来看一下电影是如何拍成3D的。&lt;/p&gt;&lt;p&gt;3D的D是维度（Dimension）的开头字母，3D就是三维立体的意思。我们平日看的电影是二维的，多出来的第三维是干嘛用的呢？二维与三维的关系其实就像平面几何与立体几何的关系（有同学说，两者的关系就是立体几何比平面几何更难考及格-_-||）因此不难理解，多出来的那一维，就是三维坐标系里冲你指过来的Z轴。&lt;/p&gt;&lt;p&gt;只睁一只眼能精确把握前后距离吗？不妨做个小实验，把一支笔横在面前，取下笔帽装进口袋里，然后闭上一只眼，取出口袋中的笔帽，尝试套回到笔上。通常一只眼的时候很难一次成功，但两只眼都睁开就要容易得多。&lt;/p&gt;&lt;p&gt;人是通过两眼所见景象的细微差别来判断前后距离的。物体离你很近时，这差别会很大，而当它逐渐远离你的时候，这差别会越来越小，直到两只眼睛所见几乎一样。观察者离得越近，对距离就越敏感。这就解释了为什么眼前站着的两个人虽然相隔很近，也能轻易判断出谁前谁后，而远处的两座高楼可能相隔很远，却拿不准哪座在前。眼睛对远距离的敏感度不如近距离细腻，俗语“望山跑死马”就蕴含了类似的道理。因此在3D电影里，近景镜头有着先天优势，难怪导演们对火车扑面而来这一类近景冲击镜头偏爱有加了。&lt;/p&gt;&lt;p&gt;拍摄3D电影，需要两台摄影机分别模拟左右两眼的视线，同时拍摄下略有差别的两份影像。在放映时，将这两个影像叠加在一起投射到银幕上，观众须戴上特制的3D眼镜，令左眼只能看到左边摄影机拍下的影像，右眼只能看到右边的。这样一来，就还原出两个摄影机眼球在现场拍摄时的所见，给人以身临其境的距离感。&lt;/p&gt;&lt;p&gt;欣赏3D电影时，观众仿佛置身其中，而非只作为一个旁观者。因此3D电影的早期尝试较多出现在恐怖片和情色片，毕竟对这两类片子而言，身临其境的第一人称视觉体验实在叫人难以抵挡。&lt;/p&gt;&lt;p&gt;3D电影对大脑的欺骗提高了一个层次，但也带来了副作用。头晕恶心是最为常见的一种。也许你的大脑还不太习惯上这样的当——以为自己在山谷中急速翱翔，但事实上却坐在影院一动不动。这副作用尽管不是人人皆有，而且詹姆斯·卡梅隆的工作组也极力从技术上将其降到最低，但仍然没有根除。&lt;/p&gt;&lt;p&gt;万灵药未出，小偏方横行。下面这个偏方就专门预防3D眩晕，不敢说药到病除，但也能减轻不少症状。本偏方在此免费奉上，请记住七字诀“老老实实跟镜头”。一般镜头焦点对准哪里，哪里的图像就最清晰，而且也一定是导演希望观众注意的地方。不要对焦点以外的事物产生好奇，紧跟导演的思路，否则难受起来我这儿可没有治后悔的偏方。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image015.jpg&quot;&gt;&lt;img style=&quot;border:0pt none;display:inline&quot; title=&quot;clip_image015&quot; src=&quot;http://songshuhui.net/wp-content/uploads/2010/01/clip_image015_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image015&quot; width=&quot;244&quot; height=&quot;131&quot;&gt;&lt;/a&gt; 蒙骗大脑的技术在不断升级，也许未来的终极影院就只是摆在客厅里的一张躺椅。只要舒舒服服躺下，给脑袋接上电，各种感觉就源源不断地向你涌来。不光能听能看，还能感受到爆炸的冲击波，女主角身上的香水味，甚至可以让彩色的声音尝起来是甜的，cool！！ 要是高兴了，就来上一大口味道可调节的虚拟爆米花，如果你愿意分享，身旁依偎的虚拟女友也将手伸进爆米花袋，无名指上还带着你刚刚为她虚拟出来的五克拉钻戒。&lt;/p&gt;&lt;p&gt;这想象中的未来影院就没有副作用吗？09年出品的科幻电影《未来战警》给出了一种回答——有！而且远不止头晕这么轻描淡写。先抛开这类科幻题材惯用的耸人听闻的阴谋论不说，光是存在这样一个虚拟天堂，就是对人性的极大挑战。当人的一切愿望都能通过电子虚拟的手段轻易满足，谁还愿意从美梦中醒来？躺在那样的椅子上沉睡，人类剩下的唯一有意义的部分，不过是一团连接着导线的脑组织。&lt;/p&gt;&lt;p&gt;从西洋镜到阿凡达，一路匆匆走过，这趟大脑欺骗之旅终要告一段落了。心里还在惦记情色3D电影？忘掉它吧，看在詹姆斯·卡梅隆的份上！ （巧得很，JC除了是James Cameron的缩写，还是……没错，耶稣基督Jesus Christ.）&lt;/p&gt;&lt;p&gt; 本文地址（转载请注明出处）： 复制&lt;br&gt;收藏、分享这篇文章：&lt;a href=&quot;javascript:void(0);&quot; title=&quot;百度搜藏&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/baidu.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;百度搜藏&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;GOOGLE书签&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/google_bmarks.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;GOOGLE书签&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;收藏到豆瓣&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/douban.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;豆瓣&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;收藏到开心网&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/kaixin.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;开心网&quot;&gt;&lt;/a&gt; &lt;a href=&quot;javascript:void(0);&quot; title=&quot;收藏到qq书签&quot;&gt;&lt;img src=&quot;http://songshuhui.net/wp-content/plugins/share-this/qqbookmark.gif&quot; style=&quot;margin:0 5px&quot; alt=&quot;qq书签&quot;&gt;&lt;/a&gt;       &lt;a href=&quot;http://songshuhui.net/?p=33156&amp;amp;akst_action=share-this&quot; title=&quot;更多分享方式&quot; rel=&quot;noindex nofollow&quot;&gt;更多...&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://songshuhui.net/?ak_action=api_record_view&amp;amp;id=33156&amp;amp;type=feed&quot; alt=&quot;&quot;&gt;</content:encoded><category domain="http://songshuhui.net">物理</category><category domain="http://songshuhui.net">原创</category><category domain="http://songshuhui.net">征文比赛005号</category><category domain="http://songshuhui.net">电影</category><category domain="http://songshuhui.net">阿凡达</category><pubDate>Fri, 29 Jan 2010 11:10:36 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/9b9564eb264dfaa8</guid><dc:creator>科学松鼠会</dc:creator><fs:srclink>http://songshuhui.net/archives/33156.html</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634203/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>正则表达式判断号码靓号类型</title><link atom:type="text/html">http://www.williamlong.info/archives/1972.html</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://www.williamlong.info/archives/1972.html">tag:google.com,2005:reader/item/7aa41754e36e5923</id><author xmlns="http://www.w3.org/2005/Atom"><name>williamlong (williamlong)</name></author><gr:likingUser>09389274787431089700</gr:likingUser><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://feed.williamlong.info/"><id>tag:google.com,2005:reader/feed/http://feed.williamlong.info/</id><title type="html">月光博客</title><link rel="alternate" href="http://www.williamlong.info/" type="text/html"></link></source><description>&lt;p&gt;　　很多网站需要将好的会员号留着，或用于日后的盈利。实现方法不是本文讨论范围，本文仅列出用于检测靓号类型的一些正则。&lt;/p&gt;&lt;p&gt;　　靓号检测：主要可以检测连号（正连 12345、倒连65432）、AABB号、手机号码、日期号（生日号、年度号）、ABBCABB号，3位以上重复号。更多类型号码检测可以根据以下表达式改造。&lt;/p&gt;&lt;p&gt;　　' 匹配6位顺增&lt;br&gt;　　regex.Pattern = &amp;quot;(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\d&amp;quot;&lt;/p&gt;&lt;p&gt;　　' 匹配6位顺降&lt;br&gt;　　regex.Pattern = &amp;quot;(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\d&amp;quot;&lt;/p&gt;&lt;p&gt;　　' 匹配6位顺增或顺降&lt;br&gt;　　regex.Pattern = &amp;quot;(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\d&amp;quot;&lt;/p&gt;&lt;p&gt;　　匹配4-9位连续的数字&lt;br&gt;　　(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3,}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){3,})\d&lt;/p&gt;&lt;p&gt;　　匹配3位以上的重复数字&lt;br&gt;　　([\d])\1{2,}&lt;/p&gt;&lt;p&gt;　　匹配日期类型的数字&lt;br&gt;　　(19|20)[\d]{2}(1[0-2]|0?[1-9])(31|2[0-9]|1[0-9]|0?[0-9])&lt;/p&gt;&lt;p&gt;　　手机号码类&lt;br&gt;　　(13[0-9]|15[0-9]|18[0-9])([\d]{2,4}){2}&lt;/p&gt;&lt;p&gt;　　匹配33111类型的&lt;br&gt;　　([\d])\1{1,}([\d])\2{2,}&lt;/p&gt;&lt;p&gt;　　匹配5331533类型的&lt;br&gt;　　(([\d]){1,}([\d]){1,})\1{1,}&lt;/p&gt;&lt;p&gt;　　匹配22334,123355类型的&lt;br&gt;　　([\d])\1{1,}([\d])\2{1,}&lt;/p&gt;&lt;p&gt;　　以上正则均在MTracer 2.0中调试并在实际应用中通过，欢迎大家发表自己的看法以及分享自己的技术与心得。&lt;/p&gt;&lt;p&gt;　　来源：沈力投稿，&lt;a href=&quot;http://shen.li/blog/post/Regular_Expressions/Regular_expressions_to_determine_the_number_type.html&quot;&gt;原文地址&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1972.html&quot;&gt;评论《正则表达式判断号码靓号类型》的内容...&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;相关文章:&lt;/h3&gt;&lt;ul&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1961.html&quot;&gt;通过Ping.FM和HelloTXT的Custom URL自定义同步服务&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1879.html&quot;&gt;轻松搭建一个Windows SVN服务器&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1878.html&quot;&gt;TortoiseSVN使用帮助和下载&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1874.html&quot;&gt;关闭博客留言本功能&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1872.html&quot;&gt;报表工具的价值和发展浅析&lt;/a&gt;&lt;/p&gt;&lt;/ul&gt;关于我们：&lt;a href=&quot;http://www.google.com/reader/shared/williamlone&quot;&gt;我的Google Reader&lt;/a&gt; - &lt;a href=&quot;http://twitter.com/williamlong&quot;&gt;我的Twitter&lt;/a&gt; - &lt;a href=&quot;http://www.facebook.com/williamlong&quot;&gt;我的Facebook&lt;/a&gt; - &lt;a href=&quot;http://twitter.com/yueguangboke&quot;&gt;月光博客Twitter&lt;/a&gt; - &lt;a href=&quot;http://www.facebook.com/pages/c1abb75e/91612663347&quot;&gt;月光博客Facebook&lt;/a&gt; - &lt;a href=&quot;http://williamlong.kaixin001.com&quot;&gt;我的开心&lt;/a&gt;&lt;br&gt;月光博客投稿信箱：williamlong.info(at)gmail.com</description><category>编程开发</category><pubDate>Fri, 30 Oct 2009 22:34:36 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/7aa41754e36e5923</guid><dc:creator>williamlong (williamlong)</dc:creator><fs:srclink>http://www.williamlong.info/archives/1972.html</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634205/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>使用Firefox作为主浏览器的十个理由</title><link atom:type="text/html">http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/">tag:google.com,2005:reader/item/b02c215c2cd357ed</id><content xmlns="http://www.w3.org/2005/Atom" xml:base="http://chiong.cn/" type="html">&lt;p&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/amaze/276717286/art01.html&quot;&gt;&lt;img border=&quot;0&quot; ismap src=&quot;http://www1.feedsky.com/r/i/feedsky/amaze/276717286/art01.gif&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;下文改写自SpreadFirefox网站《&lt;a href=&quot;http://www.spreadfirefox.com/node/3354&quot;&gt;attn:new campus reps..spread firefox by sending emails&lt;/a&gt;》一文，供各Mozilla火狐浏览器校园大使采用。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;也许你曾听朋友提起过“Firefox浏览器”，也许你曾看到身边某个电脑高手熟练地使用Firefox浏览器，也许你曾看到网络上提到Firefox已经是市场占有率仅次于Microsoft的IE的浏览器。但是由于种种原因，你没有尝试使用一下Firefox浏览器。现在让我告诉你使用Firefox作为你的主浏览器的十个理由吧。Firefox确实是个伟大的程序，听我娓娓道来吧:)&lt;/p&gt;
&lt;p&gt;10、&lt;strong&gt;免费&lt;/strong&gt;。百分百的免费。你下载使用它不需要花一个子儿。Firefox是来自免税非营利性的Mozilla基金会的产品。这个基金会的宗旨是创造出更多创新性的开源软件。Mozilla基金会完全由捐赠资助。因此如果你喜欢Firefox，当然我打赌你使用一段时间之后会这样的，考虑一下捐一些钱给他们吧。&lt;/p&gt;
&lt;p&gt;09、&lt;strong&gt;跨平台支持&lt;/strong&gt;。Windows？没问题；Macs？没问题；Linux？没问题。什么，你买了台最新款的电脑？放心，Firefox肯定能在上面很好运行的。&lt;/p&gt;
&lt;p&gt;08、&lt;strong&gt;小巧&lt;/strong&gt;。它只需要占用很少的硬盘空间，从服务器下载程序安装包的时候也非常快。不像某些浏览器，它才不是臃肿的恐龙呢。&lt;/p&gt;
&lt;p&gt;07、&lt;strong&gt;扩展性好&lt;/strong&gt;。你几乎可以通过插件和扩展来加入任何功能。庞大的Firefox开发者社区提供了数以万计的扩展程序供普通用户使用，你所需做的仅仅是轻轻一点鼠标安装一下。你可以移除掉Google搜索结果中的垃圾信息。你可以校正网页的显示字体。你还可以查看当前的天气预报。Firefox的附加组件管理器能让你看到你已经安装了哪些项目，而如果你想要移除某些附加组件的话，所需的也不过几次鼠标点击而已。&lt;/p&gt;
&lt;p&gt;06、&lt;strong&gt;安全&lt;/strong&gt;。Firefox不运行ActiveX组件，也不运行VB脚本。这使得恶意软件攻击你的浏览器的难度比IE大很多。而且Firefox浏览器的源代码编写的时候更加精细，这也意味着更少的攻击弱点。想要更安全一些？考虑安装JavaScript监控扩展吧。&lt;/p&gt;
&lt;p&gt;05、&lt;strong&gt;轻松切换&lt;/strong&gt;。Firefox足够智能化，它在安装时会帮助你把现在的书签（收藏夹）、cookies和其他浏览器设置导入进去，让你更好地切换到新浏览器。&lt;/p&gt;
&lt;p&gt;04、&lt;strong&gt;换肤&lt;/strong&gt;。Firefox的外观和质感是完全可定制的。你可以使用主题管理器，下载安装数以千计的皮肤。&lt;/p&gt;
&lt;p&gt;03、&lt;strong&gt;内置搜索引擎&lt;/strong&gt;。无论你是Google的拥趸，还是百度的粉丝，你都不需要浪费你的浏览器主页，将其设置为Google或者百度的首页。你可以直接从控制栏中的搜索框中开始搜索。从现在开始你可以挑选设置你自己的独一无二的主页了。&lt;/p&gt;
&lt;p&gt;02、&lt;strong&gt;广受赞誉&lt;/strong&gt;。Firefox已经先后荣获PC World杂志年度产品奖、Softpedia用户选择大奖、福布斯最佳Web产品奖、SC Magazine主编奖、CNET编辑选择奖、Laptop Magazine编辑选择奖、PC-Welt读者选择最佳Internet工具奖……太多荣誉了。所有人都喜欢它，你为什么不也试试呢？&lt;/p&gt;
&lt;p&gt;01、&lt;strong&gt;标签式浏览&lt;/strong&gt;。如果你曾一次性打开多个浏览器窗口，你会发现安排好这些任务和窗口是一件多么让人抓狂的事。Firefox内置的标签式浏览功能能够让你在一个窗口中处理这所有的网页，更快更方便。某个网站正在下载中？那么就打开新的标签做别的事吧。Firefox的标签式浏览是如此的优雅、规整与精致。&lt;/p&gt;
&lt;p&gt;其实关于使用Firefox作为主浏览器的理由，我三天三夜都讲不完的。但是我想上面的十点作为我的理由列表上的最重要的十点已经完完本本告诉你了。现在你就开始自己去Firefox的官方站点下载一份免费的Firefox浏览器，让它运行给你看吧。我保证你不会后悔的:)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mozillaonline.com/&quot;&gt;http://mozillaonline.com&lt;/a&gt;&lt;/p&gt;
	&lt;p&gt;&lt;/p&gt;
	&lt;hr noshade style=&quot;margin:0;height:1px&quot;&gt;
	本文由 棠棣 于 2009 发表在 &lt;a href=&quot;http://chiong.cn&quot;&gt;奇巧淫技&lt;/a&gt; |
	  &lt;a href=&quot;http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&quot;&gt;永久链接&lt;/a&gt; |
	  &lt;a href=&quot;http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/#comments&quot;&gt;35 comments&lt;/a&gt; |
	  &lt;a href=&quot;http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/trackback/&quot;&gt;Trackback&lt;/a&gt;
	© 本文基于&lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.5/cn/&quot;&gt;署名-非商业性使用-相同方式共享 2.5 中国大陆协议&lt;/a&gt;创作.
	&lt;a href=&quot;http://feed.feedsky.com/amaze&quot;&gt;订阅Feed&lt;/a&gt; | 在&lt;a href=&quot;http://del.icio.us/post?url=http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&amp;amp;title=%E4%BD%BF%E7%94%A8Firefox%E4%BD%9C%E4%B8%BA%E4%B8%BB%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E5%8D%81%E4%B8%AA%E7%90%86%E7%94%B1&quot;&gt;del.icio.us&lt;/a&gt;收藏 | 在&lt;a href=&quot;http://technorati.com/search/http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&quot; title=&quot;Search on Technorati&quot;&gt;Technorati&lt;/a&gt;搜索
	&lt;hr noshade style=&quot;margin:0;height:1px&quot;&gt;
&lt;a href=&quot;http://www.51fanli.com/?woochiong&quot;&gt;&lt;img title=&quot;返利&quot; src=&quot;http://51fanli.com/img/menu/logo.gif&quot;&gt;&lt;/a&gt;
&lt;hr noshade style=&quot;margin:0;height:1px&quot;&gt;
	推荐：&lt;a href=&quot;http://chiong.cn/2008/03/a-glance-of-web-20/&quot;&gt;乱花渐欲迷人眼之Web 2.0一瞥&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&amp;amp;title=%E4%BD%BF%E7%94%A8Firefox%E4%BD%9C%E4%B8%BA%E4%B8%BB%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E5%8D%81%E4%B8%AA%E7%90%86%E7%94%B1&amp;amp;tags=Browser,%20%E6%B5%8F%E8%A7%88%E5%99%A8,%20%E7%81%AB%E7%8B%90,%20%E7%81%AB%E7%8B%90,&quot;&gt;&lt;img src=&quot;http://chiong.cn/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>棠棣</name></author><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://chiong.cn/feed/"><id>tag:google.com,2005:reader/feed/http://chiong.cn/feed/</id><title type="html">奇巧淫技</title><link rel="alternate" href="http://chiong.cn" type="text/html"></link></source><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/amaze/276717286/art01.html&quot;&gt;&lt;img border=&quot;0&quot; ismap src=&quot;http://www1.feedsky.com/r/i/feedsky/amaze/276717286/art01.gif&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;下文改写自SpreadFirefox网站《&lt;a href=&quot;http://www.spreadfirefox.com/node/3354&quot;&gt;attn:new campus reps..spread firefox by sending emails&lt;/a&gt;》一文，供各Mozilla火狐浏览器校园大使采用。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;也许你曾听朋友提起过“Firefox浏览器”，也许你曾看到身边某个电脑高手熟练地使用Firefox浏览器，也许你曾看到网络上提到Firefox已经是市场占有率仅次于Microsoft的IE的浏览器。但是由于种种原因，你没有尝试使用一下Firefox浏览器。现在让我告诉你使用Firefox作为你的主浏览器的十个理由吧。Firefox确实是个伟大的程序，听我娓娓道来吧:)&lt;/p&gt;
&lt;p&gt;10、&lt;strong&gt;免费&lt;/strong&gt;。百分百的免费。你下载使用它不需要花一个子儿。Firefox是来自免税非营利性的Mozilla基金会的产品。这个基金会的宗旨是创造出更多创新性的开源软件。Mozilla基金会完全由捐赠资助。因此如果你喜欢Firefox，当然我打赌你使用一段时间之后会这样的，考虑一下捐一些钱给他们吧。&lt;/p&gt;
&lt;p&gt;09、&lt;strong&gt;跨平台支持&lt;/strong&gt;。Windows？没问题；Macs？没问题；Linux？没问题。什么，你买了台最新款的电脑？放心，Firefox肯定能在上面很好运行的。&lt;/p&gt;
&lt;p&gt;08、&lt;strong&gt;小巧&lt;/strong&gt;。它只需要占用很少的硬盘空间，从服务器下载程序安装包的时候也非常快。不像某些浏览器，它才不是臃肿的恐龙呢。&lt;/p&gt;
&lt;p&gt;07、&lt;strong&gt;扩展性好&lt;/strong&gt;。你几乎可以通过插件和扩展来加入任何功能。庞大的Firefox开发者社区提供了数以万计的扩展程序供普通用户使用，你所需做的仅仅是轻轻一点鼠标安装一下。你可以移除掉Google搜索结果中的垃圾信息。你可以校正网页的显示字体。你还可以查看当前的天气预报。Firefox的附加组件管理器能让你看到你已经安装了哪些项目，而如果你想要移除某些附加组件的话，所需的也不过几次鼠标点击而已。&lt;/p&gt;
&lt;p&gt;06、&lt;strong&gt;安全&lt;/strong&gt;。Firefox不运行ActiveX组件，也不运行VB脚本。这使得恶意软件攻击你的浏览器的难度比IE大很多。而且Firefox浏览器的源代码编写的时候更加精细，这也意味着更少的攻击弱点。想要更安全一些？考虑安装JavaScript监控扩展吧。&lt;/p&gt;
&lt;p&gt;05、&lt;strong&gt;轻松切换&lt;/strong&gt;。Firefox足够智能化，它在安装时会帮助你把现在的书签（收藏夹）、cookies和其他浏览器设置导入进去，让你更好地切换到新浏览器。&lt;/p&gt;
&lt;p&gt;04、&lt;strong&gt;换肤&lt;/strong&gt;。Firefox的外观和质感是完全可定制的。你可以使用主题管理器，下载安装数以千计的皮肤。&lt;/p&gt;
&lt;p&gt;03、&lt;strong&gt;内置搜索引擎&lt;/strong&gt;。无论你是Google的拥趸，还是百度的粉丝，你都不需要浪费你的浏览器主页，将其设置为Google或者百度的首页。你可以直接从控制栏中的搜索框中开始搜索。从现在开始你可以挑选设置你自己的独一无二的主页了。&lt;/p&gt;
&lt;p&gt;02、&lt;strong&gt;广受赞誉&lt;/strong&gt;。Firefox已经先后荣获PC World杂志年度产品奖、Softpedia用户选择大奖、福布斯最佳Web产品奖、SC Magazine主编奖、CNET编辑选择奖、Laptop Magazine编辑选择奖、PC-Welt读者选择最佳Internet工具奖……太多荣誉了。所有人都喜欢它，你为什么不也试试呢？&lt;/p&gt;
&lt;p&gt;01、&lt;strong&gt;标签式浏览&lt;/strong&gt;。如果你曾一次性打开多个浏览器窗口，你会发现安排好这些任务和窗口是一件多么让人抓狂的事。Firefox内置的标签式浏览功能能够让你在一个窗口中处理这所有的网页，更快更方便。某个网站正在下载中？那么就打开新的标签做别的事吧。Firefox的标签式浏览是如此的优雅、规整与精致。&lt;/p&gt;
&lt;p&gt;其实关于使用Firefox作为主浏览器的理由，我三天三夜都讲不完的。但是我想上面的十点作为我的理由列表上的最重要的十点已经完完本本告诉你了。现在你就开始自己去Firefox的官方站点下载一份免费的Firefox浏览器，让它运行给你看吧。我保证你不会后悔的:)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mozillaonline.com/&quot;&gt;http://mozillaonline.com&lt;/a&gt;&lt;/p&gt;
	&lt;p&gt;&lt;/p&gt;
	&lt;hr noshade style=&quot;margin:0;height:1px&quot;&gt;
	本文由 棠棣 于 2009 发表在 &lt;a href=&quot;http://chiong.cn&quot;&gt;奇巧淫技&lt;/a&gt; |
	  &lt;a href=&quot;http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&quot;&gt;永久链接&lt;/a&gt; |
	  &lt;a href=&quot;http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/#comments&quot;&gt;35 comments&lt;/a&gt; |
	  &lt;a href=&quot;http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/trackback/&quot;&gt;Trackback&lt;/a&gt;
	© 本文基于&lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.5/cn/&quot;&gt;署名-非商业性使用-相同方式共享 2.5 中国大陆协议&lt;/a&gt;创作.
	&lt;a href=&quot;http://feed.feedsky.com/amaze&quot;&gt;订阅Feed&lt;/a&gt; | 在&lt;a href=&quot;http://del.icio.us/post?url=http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&amp;amp;title=%E4%BD%BF%E7%94%A8Firefox%E4%BD%9C%E4%B8%BA%E4%B8%BB%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E5%8D%81%E4%B8%AA%E7%90%86%E7%94%B1&quot;&gt;del.icio.us&lt;/a&gt;收藏 | 在&lt;a href=&quot;http://technorati.com/search/http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&quot; title=&quot;Search on Technorati&quot;&gt;Technorati&lt;/a&gt;搜索
	&lt;hr noshade style=&quot;margin:0;height:1px&quot;&gt;
&lt;a href=&quot;http://www.51fanli.com/?woochiong&quot;&gt;&lt;img title=&quot;返利&quot; src=&quot;http://51fanli.com/img/menu/logo.gif&quot;&gt;&lt;/a&gt;
&lt;hr noshade style=&quot;margin:0;height:1px&quot;&gt;
	推荐：&lt;a href=&quot;http://chiong.cn/2008/03/a-glance-of-web-20/&quot;&gt;乱花渐欲迷人眼之Web 2.0一瞥&lt;/a&gt; &lt;p&gt;&lt;a href=&quot;http://fairyfish.net/bookmark/?url=http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/&amp;amp;title=%E4%BD%BF%E7%94%A8Firefox%E4%BD%9C%E4%B8%BA%E4%B8%BB%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E5%8D%81%E4%B8%AA%E7%90%86%E7%94%B1&amp;amp;tags=Browser,%20%E6%B5%8F%E8%A7%88%E5%99%A8,%20%E7%81%AB%E7%8B%90,%20%E7%81%AB%E7%8B%90,&quot;&gt;&lt;img src=&quot;http://chiong.cn/wp-content/plugins/bookmark-share/bookmark.gif&quot; alt=&quot;bookmark&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><category>Browser</category><category>浏览器</category><category>火狐</category><pubDate>Sat, 21 Feb 2009 22:38:27 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/b02c215c2cd357ed</guid><dc:creator>棠棣</dc:creator><fs:srclink>http://chiong.cn/2009/02/ten-reasons-for-using-firefox-as-the-primary-browser/</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634206/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>开源代理服务器软件GAppProxy</title><link atom:type="text/html">http://www.williamlong.info/archives/1697.html</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://www.williamlong.info/archives/1697.html">tag:google.com,2005:reader/item/b0d29f04b0fd1c93</id><author xmlns="http://www.w3.org/2005/Atom"><name>webmaster@williamlong.dot.info (williamlong)</name></author><gr:likingUser>00497551477493231389</gr:likingUser><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://feed.williamlong.info/"><id>tag:google.com,2005:reader/feed/http://feed.williamlong.info/</id><title type="html">月光博客</title><link rel="alternate" href="http://www.williamlong.info/" type="text/html"></link></source><description>&lt;p&gt;&lt;a href=&quot;http://feedads.googleadservices.com/~a/j0JrkP-a2FauuSO8LZ8IY3etfQ0/a&quot;&gt;&lt;img src=&quot;http://feedads.googleadservices.com/~a/j0JrkP-a2FauuSO8LZ8IY3etfQ0/i&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;　　前些天发现了一个开源的HTTP Proxy软件GAppProxy，使用了几天，发现其速度非常快，很值得推荐。&lt;/p&gt;&lt;p&gt;　　GAppProxy使用Python编写并运行于Google App Engine上。GAppProxy是一个完整的Proxy解决方案： 与常见的HTTP Proxy不同，GAppProxy运行在Google App Engine上，不需要专门的服务器，这是最大优势.&lt;/p&gt;&lt;p&gt;　　普通Windows用户下载并运行解压GAppProxy，然后双击运行gui.exe.之后配置IE或Firefox浏览器，设置HTTP代理为127.0.0.1:8000.然后就可以通过代理上网了。&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;img alt=&quot;开源代理服务器软件GAppProxy&quot; border=&quot;0&quot; src=&quot;http://www.williamlong.info/upload/1697_1.jpg&quot;&gt;&lt;/p&gt;&lt;p&gt;　　这种代理方式和&lt;a href=&quot;http://www.williamlong.info/archives/424.html&quot;&gt;Tor&lt;/a&gt;、U、FG等软件的运行方式类似，但速度的确非常快，大概因为Google App的服务器速度快的原因，虽然该版本目前尚不支持HTTPS，但对于普通网站访问效果很好，包括域名被和谐的网站（如牛博国际）都可以正常访问，这比使用&lt;a href=&quot;http://www.williamlong.info/archives/739.html&quot;&gt;普通代理服务器&lt;/a&gt;要强的多。&lt;/p&gt;&lt;p&gt;　　不过有个问题是，使用人数多的话可能会有流量限制，建议自己&lt;a href=&quot;http://www.williamlong.info/archives/1357.html&quot;&gt;申请一个Google App站点&lt;/a&gt;，下载其源代码，修改app.yaml，然后将其上传到自己的Google App目录下，修改proxy.py或者配置文件，使其指向自己的Google App站点，这样就能避免过多人访问造成的流量问题了。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1697.html&quot;&gt;继续阅读《开源代理服务器软件GAppProxy》的内容...&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;相关文章:&lt;/h3&gt;&lt;ul&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1113.html&quot;&gt;OpenDNS不能解决DNS解析错误&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/1101.html&quot;&gt;使用OpenDNS解决DNS域名劫持&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/760.html&quot;&gt;FireFox的代理服务器扩展&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/739.html&quot;&gt;免费代理服务器地址和使用设置&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.williamlong.info/archives/524.html&quot;&gt;Torpark软件的简介和下载&lt;/a&gt;&lt;/p&gt;&lt;/ul&gt;&lt;img src=&quot;http://img.tongji.cn.yahoo.com/707050/ystat.gif&quot; alt=&quot;Yahoo Stat&quot; border=&quot;0&quot;&gt;&lt;div&gt;
&lt;a href=&quot;http://feeds2.feedburner.com/~ff/williamlong?a=XzMZoIw4ESc:IMR1cIVeeXE:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds2.feedburner.com/~ff/williamlong?d=dnMXMwOfBR0&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds2.feedburner.com/~r/williamlong/~4/XzMZoIw4ESc&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;</description><category>互联网络</category><pubDate>Wed, 18 Feb 2009 08:46:50 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/b0d29f04b0fd1c93</guid><dc:creator>webmaster@williamlong.dot.info (williamlong)</dc:creator><fs:srclink>http://www.williamlong.info/archives/1697.html</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634207/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>上班族指南：有效的一天</title><link atom:type="text/html">http://www.yeeyan.com/articles/view/daxia/25094</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="tag:feed.yeeyan.com:translation/25094">tag:google.com,2005:reader/item/8198caac50d9e9ff</id><content xmlns="http://www.w3.org/2005/Atom" xml:base="http://www.yeeyan.com/groups/show/GTD" type="html">&lt;p&gt;原文作者：Gina Trapani&lt;br&gt;原文链接：&lt;a href=&quot;http://lifehacker.com/software/time-management/geek-to-live--control-your-workday-187074.php&quot;&gt;Geek to Live: Control your workday&lt;/a&gt;&lt;br&gt;译者：&lt;a href=&quot;http://www.yeeyan.com/space/show/daxia&quot;&gt;何时木蓉&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;span style=&quot;text-decoration:underline&quot;&gt;我在拿不定的句子后标注了原文，并划线，欢迎大家拍砖！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      想准时下班，总是不容易：老板可能会催着你完成另一个课题，或项目才行。根据昨天的一项问卷调查，超过25%的人表示下班都会比期待的晚，而只有13%的人可以完全按时下班！这样一天天很容易就流失于查邮件、开各种会，以至于往往到了晚上5点6点甚至7点时，猛然发现最重要的事还没做！&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;这儿有个好主意。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      当你不清楚那件事是最该做的时候，带上门进屋你那刻起，你就有一种不可能完成任务的意识。“尖峰时刻”-指一天的最后1或2个小时-的时候，你会赶紧做那些你本计划着用8小时来做的事。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;做完一件事后，再查你的伊妹儿&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;     “决不要在早晨查电邮”的作者朱莉建议说：“不要把你上班的第一个小时用来查邮件。可以选一件事来做，即使是很小的，把它选为第一件事。先做好一件事为你的一天奠定了一个基调，并保证无论给你安排了多少工作，不算你查邮件的时间，你仍可以说自己完成了一些。一旦你‘以公务开头’，并开始用心的应付各种迎面扑来的要求，就可以很容易的排除杂念一心上班。这样，你的一天就有一个正确的开始，所以先把一件事做完。”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      我可以很坦诚的说：一开始我看不上朱莉的建议，因为我的工作和收件箱里的新邮件有着千丝万缕的关系。然而现在已经是早上的9：30了，我还没查邮箱。我不知道又收到什么邮件，&lt;span style=&quot;text-decoration:underline&quot;&gt;但这篇文章呢？无论如何都会写完的。（but this article that's due tomorrow no matter what? It'll be done.）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;人为选定你“最重要的事”&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      你每天都有很多事情需要做，但是只允许有1到2个是最优先的。即使你不能看到很大的全局，你仍可以确定出一天中最重要的一或两件事情来。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;所以，这里是你的任务。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      假设现在是周五，在今天快要完了的时候，为周一早晨选定最重要的事。确保那件事不大、可行并且很重要。把它写下然后贴到你能到看到的什么地方，那怕是一个贴在键盘上的即时贴也行。周一早晨当你来上班的时候？那就是你要完成的第一件事，无论它是什么。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;把任务订立明确&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      尽管感觉不是那样，尤其是工作开始的时候，总会感觉有很长的一天可以用，然而你的时间是有限的。一天的时间是有限的，但是你又有无限的事要做。所以要确保你做的都是最重要的事情。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      最近，我们Lifehacker网遇到了一个麻烦。前几年，我们为能够回复每一封来信而感到骄傲，而如今，越来越多的信件扑面而来，多至百封，&lt;span style=&quot;text-decoration:underline&quot;&gt;尽管我们做到了书中介绍的每一条（even though we'd applied every shortcut in the book to our process），&lt;/span&gt;但是应付信件要花我们越来越多的时间。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      当我们的回信开始占用到发新帖的时间时，就得有所舍弃。一个帖子，受益的是Lifehacker的全部读书，然而一封邮件的受益人仅是那个收件人，而我们只有那么多时间。所以，我们决定减少回复，只回复那些与网站更新最密切相关的。这个妥协做的很难，但是发帖子就是别邮件回复重要的多，就这么简单。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      如果你发现自己不能按时下班，或者总是在快下班时因为一些重要的事没做而紧张起来，那么，是时候重新来做个安排。找出最重要的然后做那件事。有些事被迫放弃了，但你希望的是自己花的时间收获最大化。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:medium&quot;&gt;&lt;strong&gt;约会，以督促自己&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;       如果你的孩子需要在5：30接，或者你的朋友在保龄球馆等你，或者你等着和另一半共进晚餐，那么按时下班就很重要了。&lt;span style=&quot;text-decoration:underline&quot;&gt;为自己做计划或和朋友约好（&lt;/span&gt;Make dates with yourself or friends for the gym, a movie, or simply dinner at home at 6 sharp to get yourself out the door on time.）去6点整去健身、看电影或简单地在家吃饭，都要求你按时下班。和同事&lt;span style=&quot;text-decoration:underline&quot;&gt;分享一辆车（Carpooling）&lt;/span&gt;不仅能够减少你在约定上时间的耽误，而且能帮你省汽油和养路费的开支。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;“做完”倒计时&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      随后一个“准时出办公室”的提醒：在早上就决定好想什么时候离开，然后做一个“做完”倒计时。如果爱人今晚在家等你，你需要6点出门，那么把闹铃调到5点，5：30，5：45，5：55（或更晚，如果有必要），说一声：“嘿！该收拾回家了！”让自己从心理上提前离开，这样当6：30的时候，你的爱人就不会奇怪你到底在哪了。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      如果你还是什么方法来避免晚上9点都呆在办公室不能回？请让我们知道，在lifehacker.com留言或发帖。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size:small&quot;&gt;作者简介：吉娜特瑞帕缇，Lifehacker网站编辑，于今天上午10：30就完成了自己设置的最重要的事。她的半周刊“上班族指南”（Geek to Live),每周三周五出版于Lifehacker.订阅“上班族指南”，以便及时读到最新版。&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.yeeyan.com/articles/view/daxia/25094#newComment&quot;&gt;添加评论&lt;/a&gt;&lt;/p&gt;&lt;div style=&quot;width:992px;height:67px;margin-top:12px&quot;&gt; 
    &lt;a href=&quot;http://atkinschina.com/?source=yeeyan&amp;amp;method=rss&amp;amp;path=hollywood&quot;&gt;&lt;h1 style=&quot;font-size:16px;font-family:arial,sans-serif;font-weight:normal;color:#2200CC;vertical-align:baseline;display:inline;overflow:visible&quot;&gt;是什么使&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;珍妮佛·安妮斯顿&lt;/strong&gt;和&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;布拉德·皮特&lt;/strong&gt;趋之若鹜？&lt;a&gt; 
    &lt;div style=&quot;font-family:arial,sans-serif;font-size:13px;color:#000000;text-transform:none;text-decoration:none;vertical-align:baseline;width:546px;display:block;line-height:16px&quot;&gt;好莱坞明星追捧的&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;阿特金斯饮食法&lt;/strong&gt;，目前登陆中国。阿特金斯法最大&lt;wbr&gt;的特点是让您在不知不觉中减掉体内的脂肪，为&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;工作繁忙&lt;/strong&gt;的您提供一&lt;wbr&gt;种简单、快速、有效、并持续终身的营养饮食法。&lt;/div&gt; 
    &lt;div style=&quot;font-family:arial,sans-serif;font-size:13px;color:#008000;line-height:16px&quot;&gt; 
    www.&lt;strong&gt;atkinschina&lt;/strong&gt;.com/
    &lt;/div&gt; 
&lt;/a&gt;&lt;/h1&gt;&lt;/a&gt;&lt;/div&gt; 

&lt;p&gt;&lt;/p&gt;
&lt;p&gt;译言联合3G门户推出&lt;a href=&quot;http://www.3g.cn/hezuo/yeeyan/index.htm&quot;&gt;无线官网&lt;/a&gt;，手机看译言，&lt;a href=&quot;http://wap.yeeyan.com&quot;&gt;登录wap.yeeyan.com&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>何时木蓉</name></author><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://feed.yeeyan.com/feed/group/GTD"><id>tag:google.com,2005:reader/feed/http://feed.yeeyan.com/feed/group/GTD</id><title type="html">GTD</title><link rel="alternate" href="http://www.yeeyan.com/groups/show/GTD" type="text/html"></link></source><content:encoded>&lt;p&gt;原文作者：Gina Trapani&lt;br&gt;原文链接：&lt;a href=&quot;http://lifehacker.com/software/time-management/geek-to-live--control-your-workday-187074.php&quot;&gt;Geek to Live: Control your workday&lt;/a&gt;&lt;br&gt;译者：&lt;a href=&quot;http://www.yeeyan.com/space/show/daxia&quot;&gt;何时木蓉&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;span style=&quot;text-decoration:underline&quot;&gt;我在拿不定的句子后标注了原文，并划线，欢迎大家拍砖！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      想准时下班，总是不容易：老板可能会催着你完成另一个课题，或项目才行。根据昨天的一项问卷调查，超过25%的人表示下班都会比期待的晚，而只有13%的人可以完全按时下班！这样一天天很容易就流失于查邮件、开各种会，以至于往往到了晚上5点6点甚至7点时，猛然发现最重要的事还没做！&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;这儿有个好主意。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      当你不清楚那件事是最该做的时候，带上门进屋你那刻起，你就有一种不可能完成任务的意识。“尖峰时刻”-指一天的最后1或2个小时-的时候，你会赶紧做那些你本计划着用8小时来做的事。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;做完一件事后，再查你的伊妹儿&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;     “决不要在早晨查电邮”的作者朱莉建议说：“不要把你上班的第一个小时用来查邮件。可以选一件事来做，即使是很小的，把它选为第一件事。先做好一件事为你的一天奠定了一个基调，并保证无论给你安排了多少工作，不算你查邮件的时间，你仍可以说自己完成了一些。一旦你‘以公务开头’，并开始用心的应付各种迎面扑来的要求，就可以很容易的排除杂念一心上班。这样，你的一天就有一个正确的开始，所以先把一件事做完。”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      我可以很坦诚的说：一开始我看不上朱莉的建议，因为我的工作和收件箱里的新邮件有着千丝万缕的关系。然而现在已经是早上的9：30了，我还没查邮箱。我不知道又收到什么邮件，&lt;span style=&quot;text-decoration:underline&quot;&gt;但这篇文章呢？无论如何都会写完的。（but this article that's due tomorrow no matter what? It'll be done.）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;人为选定你“最重要的事”&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      你每天都有很多事情需要做，但是只允许有1到2个是最优先的。即使你不能看到很大的全局，你仍可以确定出一天中最重要的一或两件事情来。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;所以，这里是你的任务。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      假设现在是周五，在今天快要完了的时候，为周一早晨选定最重要的事。确保那件事不大、可行并且很重要。把它写下然后贴到你能到看到的什么地方，那怕是一个贴在键盘上的即时贴也行。周一早晨当你来上班的时候？那就是你要完成的第一件事，无论它是什么。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;把任务订立明确&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      尽管感觉不是那样，尤其是工作开始的时候，总会感觉有很长的一天可以用，然而你的时间是有限的。一天的时间是有限的，但是你又有无限的事要做。所以要确保你做的都是最重要的事情。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      最近，我们Lifehacker网遇到了一个麻烦。前几年，我们为能够回复每一封来信而感到骄傲，而如今，越来越多的信件扑面而来，多至百封，&lt;span style=&quot;text-decoration:underline&quot;&gt;尽管我们做到了书中介绍的每一条（even though we'd applied every shortcut in the book to our process），&lt;/span&gt;但是应付信件要花我们越来越多的时间。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      当我们的回信开始占用到发新帖的时间时，就得有所舍弃。一个帖子，受益的是Lifehacker的全部读书，然而一封邮件的受益人仅是那个收件人，而我们只有那么多时间。所以，我们决定减少回复，只回复那些与网站更新最密切相关的。这个妥协做的很难，但是发帖子就是别邮件回复重要的多，就这么简单。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      如果你发现自己不能按时下班，或者总是在快下班时因为一些重要的事没做而紧张起来，那么，是时候重新来做个安排。找出最重要的然后做那件事。有些事被迫放弃了，但你希望的是自己花的时间收获最大化。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:medium&quot;&gt;&lt;strong&gt;约会，以督促自己&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;       如果你的孩子需要在5：30接，或者你的朋友在保龄球馆等你，或者你等着和另一半共进晚餐，那么按时下班就很重要了。&lt;span style=&quot;text-decoration:underline&quot;&gt;为自己做计划或和朋友约好（&lt;/span&gt;Make dates with yourself or friends for the gym, a movie, or simply dinner at home at 6 sharp to get yourself out the door on time.）去6点整去健身、看电影或简单地在家吃饭，都要求你按时下班。和同事&lt;span style=&quot;text-decoration:underline&quot;&gt;分享一辆车（Carpooling）&lt;/span&gt;不仅能够减少你在约定上时间的耽误，而且能帮你省汽油和养路费的开支。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;&lt;strong&gt;“做完”倒计时&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      随后一个“准时出办公室”的提醒：在早上就决定好想什么时候离开，然后做一个“做完”倒计时。如果爱人今晚在家等你，你需要6点出门，那么把闹铃调到5点，5：30，5：45，5：55（或更晚，如果有必要），说一声：“嘿！该收拾回家了！”让自己从心理上提前离开，这样当6：30的时候，你的爱人就不会奇怪你到底在哪了。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:small&quot;&gt;      如果你还是什么方法来避免晚上9点都呆在办公室不能回？请让我们知道，在lifehacker.com留言或发帖。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size:small&quot;&gt;作者简介：吉娜特瑞帕缇，Lifehacker网站编辑，于今天上午10：30就完成了自己设置的最重要的事。她的半周刊“上班族指南”（Geek to Live),每周三周五出版于Lifehacker.订阅“上班族指南”，以便及时读到最新版。&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.yeeyan.com/articles/view/daxia/25094#newComment&quot;&gt;添加评论&lt;/a&gt;&lt;/p&gt;&lt;div style=&quot;width:992px;height:67px;margin-top:12px&quot;&gt; 
    &lt;a href=&quot;http://atkinschina.com/?source=yeeyan&amp;amp;method=rss&amp;amp;path=hollywood&quot;&gt;&lt;h1 style=&quot;font-size:16px;font-family:arial,sans-serif;font-weight:normal;color:#2200CC;vertical-align:baseline;display:inline;overflow:visible&quot;&gt;是什么使&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;珍妮佛·安妮斯顿&lt;/strong&gt;和&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;布拉德·皮特&lt;/strong&gt;趋之若鹜？&lt;a&gt; 
    &lt;div style=&quot;font-family:arial,sans-serif;font-size:13px;color:#000000;text-transform:none;text-decoration:none;vertical-align:baseline;width:546px;display:block;line-height:16px&quot;&gt;好莱坞明星追捧的&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;阿特金斯饮食法&lt;/strong&gt;，目前登陆中国。阿特金斯法最大&lt;wbr&gt;的特点是让您在不知不觉中减掉体内的脂肪，为&lt;strong style=&quot;color:#CC0033;font-style:normal;font-weight:normal&quot;&gt;工作繁忙&lt;/strong&gt;的您提供一&lt;wbr&gt;种简单、快速、有效、并持续终身的营养饮食法。&lt;/div&gt; 
    &lt;div style=&quot;font-family:arial,sans-serif;font-size:13px;color:#008000;line-height:16px&quot;&gt; 
    www.&lt;strong&gt;atkinschina&lt;/strong&gt;.com/
    &lt;/div&gt; 
&lt;/a&gt;&lt;/h1&gt;&lt;/a&gt;&lt;/div&gt; 

&lt;p&gt;&lt;/p&gt;
&lt;p&gt;译言联合3G门户推出&lt;a href=&quot;http://www.3g.cn/hezuo/yeeyan/index.htm&quot;&gt;无线官网&lt;/a&gt;，手机看译言，&lt;a href=&quot;http://wap.yeeyan.com&quot;&gt;登录wap.yeeyan.com&lt;/a&gt;&lt;/p&gt;</content:encoded><category domain="null/feed.yeeyan.com">生活点滴</category><pubDate>Sat, 24 Jan 2009 02:41:39 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/8198caac50d9e9ff</guid><dc:creator>何时木蓉</dc:creator><fs:srclink>http://www.yeeyan.com/articles/view/daxia/25094</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634209/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item><item><title>PC Magazine 2009最佳免费软件173款</title><link atom:type="text/html">http://xbeta.info/pcmag-09-best-freeware.htm</link><id xmlns="http://www.w3.org/2005/Atom" gr:original-id="http://xbeta.info/?p=695">tag:google.com,2005:reader/item/e80d0cb18f982902</id><content xmlns="http://www.w3.org/2005/Atom" xml:base="http://blog.xbeta.info/" type="html">&lt;p&gt;&lt;img src=&quot;http://img88.imageshack.us/img88/499/bestfreewareow1.png&quot; alt=&quot;best freeware pc magazine 2009&quot;&gt;&lt;br&gt;
&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm&quot;&gt;PC Magazine 2009最佳免费软件173款&lt;/a&gt;由善用佳软转/译自&lt;a href=&quot;http://www.pcmag.com/article2/0,2817,2338804,00.asp&quot;&gt;The Best Free Software of 2009 | PC Magazine&lt;/a&gt;，来不及进行更多翻译或点评，仅摘录年度荣誉奖13款免费软件名单&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-1&quot;&gt;↙&lt;/a&gt;、全部173款免费软件名单&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-2&quot;&gt;↙&lt;/a&gt;，并把原文由多页合并在一起&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-3&quot;&gt;↙&lt;/a&gt;，以便于后来者加工处理。&lt;br&gt;
需要说明的是，标题之所以称为2009（而不是2008）最佳免费软件，是从推荐（而非总结）的角度。也就是说，使用这些软件，可以让你的2009更加高效。&lt;br&gt;
本文的软件介绍不够细致，也缺乏对比。如果你在意这一点，推荐《&lt;a href=&quot;http://xbeta.info/best_46_free_utilities.htm&quot;&gt;最佳46款免费软件（同步精译版）&lt;/a&gt;》。&lt;br&gt;
如果你认为它不符合国人习惯，可参阅CHIP.CN评选的《&lt;a href=&quot;http://xbeta.info/freeware-list-chip.htm&quot;&gt;CHIP软件社区300款精选免费软件&lt;/a&gt;》，以及善用佳软自己推荐的《&lt;a href=&quot;http://blog.sina.com.cn/s/blog_46dac66f0100003u.html&quot;&gt;xbeta精心荐精品之免费软件列表&lt;/a&gt;》。&lt;br&gt;
本文还有一个错误，把 76 WinRar列为了免费软件，实为共享软件。&lt;/p&gt;
&lt;h2&gt;年度荣誉奖13款免费软件名单&lt;/h2&gt;
&lt;p&gt;共13款：Audacity、iTunes、Winamp、Firefox、IE 8  Beta、Opera、Thunderbird、Adobe Reader、GIMP、AIM、Notepad++、OpenOffice、Ubuntu。&lt;/p&gt;
&lt;h2&gt;全部173款免费软件名单&lt;/h2&gt;
&lt;p&gt;Audacity、iTunes、Winamp、Firefox、IE 8  Beta、Opera、Thunderbird、Adobe  Reader、GIMP、AIM、Notepad++、OpenOffice、Ubuntu、&lt;/p&gt;
&lt;p&gt;程序启动&lt;br&gt;
　　1. Circle  Dock&lt;br&gt;
　　2. ObjectDock&lt;br&gt;
　　3. Launchy&lt;br&gt;
　　4. Quicksilver&lt;br&gt;
音频&lt;br&gt;
　　5.  Audacity [年度荣誉奖]&lt;br&gt;
　　6. Banshee&lt;br&gt;
　　7. EphPod&lt;br&gt;
　　8. foobar2000&lt;br&gt;
　　9. imeem  (formerly Anywhere.FM)&lt;br&gt;
　　10. iTunes [年度荣誉奖]&lt;br&gt;
　　11. Mojo&lt;br&gt;
　　12.  Songbird&lt;br&gt;
　　13. Screamer Radio&lt;br&gt;
　　14. WavePad Sound Editor&lt;br&gt;
　　15. Winamp  [年度荣誉奖]&lt;br&gt;
备份&lt;br&gt;
　　16. DriveImage XML&lt;br&gt;
　　17. MozBackup&lt;br&gt;
　　18. MozyHome  Free&lt;br&gt;
　　19. SpiderOak&lt;br&gt;
　　20. SyncToy v2.0&lt;br&gt;
　　21. SyncBack  Freeware&lt;br&gt;
博客&lt;br&gt;
　　22. ScribeFire&lt;br&gt;
　　23. TweetDeck&lt;br&gt;
　　24.  Twitteriffic&lt;br&gt;
　　25. Zoundry Raven&lt;br&gt;
　　26. twhirl&lt;br&gt;
　　27. Ustream.tv&lt;br&gt;
　　28.  WordPress.com&lt;br&gt;
　　29. Windows Live Writer&lt;br&gt;
浏览器&lt;br&gt;
　　30. Camino&lt;br&gt;
　　31. Flock  2&lt;br&gt;
　　32. Firefox [年度荣誉奖]&lt;br&gt;
　　33. FoxReplace&lt;br&gt;
　　34. Google Chrome&lt;br&gt;
　　35.  Internet Explorer 8 Beta [年度荣誉奖]&lt;br&gt;
　　36. Opera [年度荣誉奖]&lt;br&gt;
　　37.  OperaTor&lt;br&gt;
　　38. Safari&lt;br&gt;
　　39. 30 Boxes&lt;br&gt;
日历/PIM&lt;br&gt;
　　40. Calgoo  Calendar&lt;br&gt;
　　41. Doomi&lt;br&gt;
　　42. Google Calendar&lt;br&gt;
　　43. Lightning&lt;br&gt;
　　44.  Chandler&lt;br&gt;
　　45. Remember The Milk&lt;br&gt;
　　46. Remember The Task&lt;br&gt;
　　47.  TaskFive&lt;br&gt;
　　48. Yahoo Calendar&lt;br&gt;
Email/交流&lt;br&gt;
　　49. eM Client&lt;br&gt;
　　50.  Gmail&lt;br&gt;
　　51. gAttach&lt;br&gt;
　　52. Google Contacts&lt;br&gt;
　　53. iContact&lt;br&gt;
　　54.  Simple Mail&lt;br&gt;
　　55. Thunderbird [年度荣誉奖]&lt;br&gt;
　　56. Windows Live Mail&lt;br&gt;
　　57.  Yahoo Mail&lt;br&gt;
　　58. Zenbe&lt;br&gt;
会议&lt;br&gt;
　　59. Dabbleboard&lt;br&gt;
　　60.  SightSpeed&lt;br&gt;
　　61. Skype&lt;br&gt;
　　62. Tokbox&lt;br&gt;
文件传输/下载&lt;br&gt;
　　63. CrossFTP&lt;br&gt;
　　64.  DownThemAll&lt;br&gt;
　　65. Filezilla&lt;br&gt;
　　66. FireFTP&lt;br&gt;
　　67. Halite&lt;br&gt;
　　68.  net2ftp&lt;br&gt;
　　69. Rightload&lt;br&gt;
　　70. uTorrent&lt;br&gt;
文件查看/转换&lt;br&gt;
　　71. Adobe Reader  [年度荣誉奖]&lt;br&gt;
　　72. Foxit Reader&lt;br&gt;
　　73. PeaZip&lt;br&gt;
　　74. Sumatra PDF&lt;br&gt;
　　75.  Quick Media Converter (QMC)&lt;br&gt;
　　76. WinRAR&lt;br&gt;
　　77. YemuZip&lt;br&gt;
　　78.  Zamzar&lt;br&gt;
财务管理&lt;br&gt;
　　79. Billeo&lt;br&gt;
　　80. Buxfer&lt;br&gt;
　　81. Mint&lt;br&gt;
　　82.  Wesabe&lt;br&gt;
有趣/家用&lt;br&gt;
　　83. eBay Desktop&lt;br&gt;
　　84. Geni.com&lt;br&gt;
　　85. Google  Earth&lt;br&gt;
　　86. Home Inventory&lt;br&gt;
　　87. Penzu&lt;br&gt;
　　88. Springpad&lt;br&gt;
　　89.  Timetoast&lt;br&gt;
图形图像&lt;br&gt;
　　90. Artweaver&lt;br&gt;
　　91. DestroyFlickr&lt;br&gt;
　　92.  flauntR&lt;br&gt;
　　93. FastStone Image Viewer&lt;br&gt;
　　94. GIMP [年度荣誉奖]&lt;br&gt;
　　95. Google  SketchUp&lt;br&gt;
　　96. IrfanView&lt;br&gt;
　　97. Paint.NET&lt;br&gt;
　　98. Pencil&lt;br&gt;
　　99.  Picasa&lt;br&gt;
　　100. MobaPhoto&lt;br&gt;
　　101. Photoshop Express&lt;br&gt;
　　102.  Photosynth&lt;br&gt;
　　103. Picnik&lt;br&gt;
　　104. Pictomio&lt;br&gt;
　　105. Splashup&lt;br&gt;
　　106. SUMO  Paint&lt;br&gt;
即时通讯&lt;br&gt;
　　107. AIM [年度荣誉奖]&lt;br&gt;
　　108. Dexrex&lt;br&gt;
　　109. Digsby&lt;br&gt;
　　110.  Meebo&lt;br&gt;
界面强化&lt;br&gt;
　　111. AccelMan File Manager&lt;br&gt;
　　112. Desktops&lt;br&gt;
　　113.  DExposE2&lt;br&gt;
　　114. Emerge Desktop&lt;br&gt;
　　115. GreenPrint&lt;br&gt;
　　116.  muCommander&lt;br&gt;
　　117. PlacesBar Tweaker&lt;br&gt;
　　118. RBTray&lt;br&gt;
　　119.  StandaloneStack&lt;br&gt;
　　120. Start++&lt;br&gt;
　　121. TrayEverything&lt;br&gt;
　　122.  UltraExplorer&lt;br&gt;
　　123. Yahoo Widgets&lt;br&gt;
本地搜索&lt;br&gt;
　　124. Google Desktop&lt;br&gt;
　　125.  Everything&lt;br&gt;
　　126. Locate32&lt;br&gt;
　　127. Adobe Buzzword&lt;br&gt;
办公&lt;br&gt;
　　128.  blist&lt;br&gt;
　　129. EtherPad&lt;br&gt;
　　130. Evernote&lt;br&gt;
　　131. GMDesk&lt;br&gt;
　　132. Google  Docs&lt;br&gt;
　　133. Incollector&lt;br&gt;
　　134. Jarte&lt;br&gt;
　　135. KompoZer&lt;br&gt;
　　136. Lotus  Symphony&lt;br&gt;
　　137. LucidChart&lt;br&gt;
　　138. NeoOffice&lt;br&gt;
　　139. Notepad++  [年度荣誉奖]&lt;br&gt;
　　140. OpenOffice [年度荣誉奖]&lt;br&gt;
　　141. SlideRocket&lt;br&gt;
　　142. SoftMaker  Office 2006&lt;br&gt;
　　143. Springnote&lt;br&gt;
　　144. Widgenie&lt;br&gt;
　　145.  Zoho&lt;br&gt;
操作系统&lt;br&gt;
　　146. gOS 3.0 Gadgets&lt;br&gt;
　　147. pure:dyne&lt;br&gt;
　　148. Ubuntu  [年度荣誉奖]&lt;br&gt;
网络&lt;br&gt;
　　149. AirSnare&lt;br&gt;
　　150. AirRadar&lt;br&gt;
　　151. Axence  NetTools&lt;br&gt;
　　152. GBridge&lt;br&gt;
　　153. InSSIDer&lt;br&gt;
　　154. LogMeIn  Hamachi&lt;br&gt;
　　155. NetSetMan&lt;br&gt;
　　156. Network Notepad&lt;br&gt;
　　157.  PrinterAnywhere&lt;br&gt;
RSS阅读&lt;br&gt;
　　158. Google Reader&lt;br&gt;
　　159. Netvibes&lt;br&gt;
　　160.  FeedDemon&lt;br&gt;
　　161. NetNewsWire&lt;br&gt;
　　162. RSS Bandit&lt;br&gt;
　　163.  Snarfer&lt;br&gt;
同步&lt;br&gt;
　　164. Dropbox&lt;br&gt;
　　165. Windows Live Sync&lt;br&gt;
　　166. Windows  Live Mesh&lt;br&gt;
　　167. Syncplicity&lt;br&gt;
　　168. Mozilla Weave&lt;br&gt;
视频&lt;br&gt;
　　169.  CamStudio&lt;br&gt;
　　170. HandBrake&lt;br&gt;
　　171. Miro&lt;br&gt;
　　172. TipCam&lt;br&gt;
　　173. VLC  media player&lt;/p&gt;
&lt;h2&gt;The Best Free Software of 2009&lt;/h2&gt;
&lt;p&gt;01.13.09&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://common.ziffdavisinternet.com/util_get_image/22/0,1425,i=229091,00.jpg&quot; border=&quot;0&quot; alt=&quot;The Best Free Software of 2008&quot; width=&quot;154&quot; height=&quot;115&quot;&gt;&lt;/p&gt;
&lt;p&gt;The best things in life often actually are free. Here, a  list of 173 of the best things in life—free software, for launching apps,  networking, backup, synchronization, entertainment, and more…… [&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-3&quot;&gt;阅读全文&lt;/a&gt;]&lt;/p&gt;
&lt;h3&gt;A2:相关阅读&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/copyright-respect.htm&quot; title=&quot;软件玩家xbeta的故事: 向盗版说不![转]&quot;&gt;软件玩家xbeta的故事: 向盗版说不![转]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/lifehacker-hive-five.htm&quot; title=&quot;Lifehacker 26款最佳软件名单 (Hive Five精选)&quot;&gt;Lifehacker 26款最佳软件名单 (Hive Five精选)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/opensource-award-2008-2.htm&quot; title=&quot;2008年开源软件获奖名单&quot;&gt;2008年开源软件获奖名单&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/best_46_free_utilities.htm&quot; title=&quot;最佳46款免费软件（同步精译版）&quot;&gt;最佳46款免费软件（同步精译版）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/freeware-list-chip.htm&quot; title=&quot;[强力推荐] CHIP软件社区300款精选免费软件&quot;&gt;[强力推荐] CHIP软件社区300款精选免费软件&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
-- &lt;a href=&quot;http://xbeta.info&quot;&gt;http://xbeta.info&lt;/a&gt;　　&lt;small&gt;( 6793ee6ca67cfacc9d4333d9ae43a11b)&lt;/small&gt;&lt;p&gt;&lt;a href=&quot;http://xbeta.info/?p=695&amp;amp;akst_action=share-this&quot; title=&quot;推荐，收藏到QQ书签，del.icio.us等等。&quot; rel=&quot;noindex nofollow&quot;&gt;喜欢本文？分享收藏它。&lt;/a&gt;
&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>善用佳软</name></author><source xmlns="http://www.w3.org/2005/Atom" gr:stream-id="feed/http://blog.xbeta.info/feed"><id>tag:google.com,2005:reader/feed/http://blog.xbeta.info/feed</id><title type="html">玉新在线</title><link rel="alternate" href="http://blog.xbeta.info" type="text/html"></link></source><content:encoded>&lt;p&gt;&lt;img src=&quot;http://img88.imageshack.us/img88/499/bestfreewareow1.png&quot; alt=&quot;best freeware pc magazine 2009&quot;&gt;&lt;br&gt;
&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm&quot;&gt;PC Magazine 2009最佳免费软件173款&lt;/a&gt;由善用佳软转/译自&lt;a href=&quot;http://www.pcmag.com/article2/0,2817,2338804,00.asp&quot;&gt;The Best Free Software of 2009 | PC Magazine&lt;/a&gt;，来不及进行更多翻译或点评，仅摘录年度荣誉奖13款免费软件名单&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-1&quot;&gt;↙&lt;/a&gt;、全部173款免费软件名单&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-2&quot;&gt;↙&lt;/a&gt;，并把原文由多页合并在一起&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-3&quot;&gt;↙&lt;/a&gt;，以便于后来者加工处理。&lt;br&gt;
需要说明的是，标题之所以称为2009（而不是2008）最佳免费软件，是从推荐（而非总结）的角度。也就是说，使用这些软件，可以让你的2009更加高效。&lt;br&gt;
本文的软件介绍不够细致，也缺乏对比。如果你在意这一点，推荐《&lt;a href=&quot;http://xbeta.info/best_46_free_utilities.htm&quot;&gt;最佳46款免费软件（同步精译版）&lt;/a&gt;》。&lt;br&gt;
如果你认为它不符合国人习惯，可参阅CHIP.CN评选的《&lt;a href=&quot;http://xbeta.info/freeware-list-chip.htm&quot;&gt;CHIP软件社区300款精选免费软件&lt;/a&gt;》，以及善用佳软自己推荐的《&lt;a href=&quot;http://blog.sina.com.cn/s/blog_46dac66f0100003u.html&quot;&gt;xbeta精心荐精品之免费软件列表&lt;/a&gt;》。&lt;br&gt;
本文还有一个错误，把 76 WinRar列为了免费软件，实为共享软件。&lt;/p&gt;
&lt;h2&gt;年度荣誉奖13款免费软件名单&lt;/h2&gt;
&lt;p&gt;共13款：Audacity、iTunes、Winamp、Firefox、IE 8  Beta、Opera、Thunderbird、Adobe Reader、GIMP、AIM、Notepad++、OpenOffice、Ubuntu。&lt;/p&gt;
&lt;h2&gt;全部173款免费软件名单&lt;/h2&gt;
&lt;p&gt;Audacity、iTunes、Winamp、Firefox、IE 8  Beta、Opera、Thunderbird、Adobe  Reader、GIMP、AIM、Notepad++、OpenOffice、Ubuntu、&lt;/p&gt;
&lt;p&gt;程序启动&lt;br&gt;
　　1. Circle  Dock&lt;br&gt;
　　2. ObjectDock&lt;br&gt;
　　3. Launchy&lt;br&gt;
　　4. Quicksilver&lt;br&gt;
音频&lt;br&gt;
　　5.  Audacity [年度荣誉奖]&lt;br&gt;
　　6. Banshee&lt;br&gt;
　　7. EphPod&lt;br&gt;
　　8. foobar2000&lt;br&gt;
　　9. imeem  (formerly Anywhere.FM)&lt;br&gt;
　　10. iTunes [年度荣誉奖]&lt;br&gt;
　　11. Mojo&lt;br&gt;
　　12.  Songbird&lt;br&gt;
　　13. Screamer Radio&lt;br&gt;
　　14. WavePad Sound Editor&lt;br&gt;
　　15. Winamp  [年度荣誉奖]&lt;br&gt;
备份&lt;br&gt;
　　16. DriveImage XML&lt;br&gt;
　　17. MozBackup&lt;br&gt;
　　18. MozyHome  Free&lt;br&gt;
　　19. SpiderOak&lt;br&gt;
　　20. SyncToy v2.0&lt;br&gt;
　　21. SyncBack  Freeware&lt;br&gt;
博客&lt;br&gt;
　　22. ScribeFire&lt;br&gt;
　　23. TweetDeck&lt;br&gt;
　　24.  Twitteriffic&lt;br&gt;
　　25. Zoundry Raven&lt;br&gt;
　　26. twhirl&lt;br&gt;
　　27. Ustream.tv&lt;br&gt;
　　28.  WordPress.com&lt;br&gt;
　　29. Windows Live Writer&lt;br&gt;
浏览器&lt;br&gt;
　　30. Camino&lt;br&gt;
　　31. Flock  2&lt;br&gt;
　　32. Firefox [年度荣誉奖]&lt;br&gt;
　　33. FoxReplace&lt;br&gt;
　　34. Google Chrome&lt;br&gt;
　　35.  Internet Explorer 8 Beta [年度荣誉奖]&lt;br&gt;
　　36. Opera [年度荣誉奖]&lt;br&gt;
　　37.  OperaTor&lt;br&gt;
　　38. Safari&lt;br&gt;
　　39. 30 Boxes&lt;br&gt;
日历/PIM&lt;br&gt;
　　40. Calgoo  Calendar&lt;br&gt;
　　41. Doomi&lt;br&gt;
　　42. Google Calendar&lt;br&gt;
　　43. Lightning&lt;br&gt;
　　44.  Chandler&lt;br&gt;
　　45. Remember The Milk&lt;br&gt;
　　46. Remember The Task&lt;br&gt;
　　47.  TaskFive&lt;br&gt;
　　48. Yahoo Calendar&lt;br&gt;
Email/交流&lt;br&gt;
　　49. eM Client&lt;br&gt;
　　50.  Gmail&lt;br&gt;
　　51. gAttach&lt;br&gt;
　　52. Google Contacts&lt;br&gt;
　　53. iContact&lt;br&gt;
　　54.  Simple Mail&lt;br&gt;
　　55. Thunderbird [年度荣誉奖]&lt;br&gt;
　　56. Windows Live Mail&lt;br&gt;
　　57.  Yahoo Mail&lt;br&gt;
　　58. Zenbe&lt;br&gt;
会议&lt;br&gt;
　　59. Dabbleboard&lt;br&gt;
　　60.  SightSpeed&lt;br&gt;
　　61. Skype&lt;br&gt;
　　62. Tokbox&lt;br&gt;
文件传输/下载&lt;br&gt;
　　63. CrossFTP&lt;br&gt;
　　64.  DownThemAll&lt;br&gt;
　　65. Filezilla&lt;br&gt;
　　66. FireFTP&lt;br&gt;
　　67. Halite&lt;br&gt;
　　68.  net2ftp&lt;br&gt;
　　69. Rightload&lt;br&gt;
　　70. uTorrent&lt;br&gt;
文件查看/转换&lt;br&gt;
　　71. Adobe Reader  [年度荣誉奖]&lt;br&gt;
　　72. Foxit Reader&lt;br&gt;
　　73. PeaZip&lt;br&gt;
　　74. Sumatra PDF&lt;br&gt;
　　75.  Quick Media Converter (QMC)&lt;br&gt;
　　76. WinRAR&lt;br&gt;
　　77. YemuZip&lt;br&gt;
　　78.  Zamzar&lt;br&gt;
财务管理&lt;br&gt;
　　79. Billeo&lt;br&gt;
　　80. Buxfer&lt;br&gt;
　　81. Mint&lt;br&gt;
　　82.  Wesabe&lt;br&gt;
有趣/家用&lt;br&gt;
　　83. eBay Desktop&lt;br&gt;
　　84. Geni.com&lt;br&gt;
　　85. Google  Earth&lt;br&gt;
　　86. Home Inventory&lt;br&gt;
　　87. Penzu&lt;br&gt;
　　88. Springpad&lt;br&gt;
　　89.  Timetoast&lt;br&gt;
图形图像&lt;br&gt;
　　90. Artweaver&lt;br&gt;
　　91. DestroyFlickr&lt;br&gt;
　　92.  flauntR&lt;br&gt;
　　93. FastStone Image Viewer&lt;br&gt;
　　94. GIMP [年度荣誉奖]&lt;br&gt;
　　95. Google  SketchUp&lt;br&gt;
　　96. IrfanView&lt;br&gt;
　　97. Paint.NET&lt;br&gt;
　　98. Pencil&lt;br&gt;
　　99.  Picasa&lt;br&gt;
　　100. MobaPhoto&lt;br&gt;
　　101. Photoshop Express&lt;br&gt;
　　102.  Photosynth&lt;br&gt;
　　103. Picnik&lt;br&gt;
　　104. Pictomio&lt;br&gt;
　　105. Splashup&lt;br&gt;
　　106. SUMO  Paint&lt;br&gt;
即时通讯&lt;br&gt;
　　107. AIM [年度荣誉奖]&lt;br&gt;
　　108. Dexrex&lt;br&gt;
　　109. Digsby&lt;br&gt;
　　110.  Meebo&lt;br&gt;
界面强化&lt;br&gt;
　　111. AccelMan File Manager&lt;br&gt;
　　112. Desktops&lt;br&gt;
　　113.  DExposE2&lt;br&gt;
　　114. Emerge Desktop&lt;br&gt;
　　115. GreenPrint&lt;br&gt;
　　116.  muCommander&lt;br&gt;
　　117. PlacesBar Tweaker&lt;br&gt;
　　118. RBTray&lt;br&gt;
　　119.  StandaloneStack&lt;br&gt;
　　120. Start++&lt;br&gt;
　　121. TrayEverything&lt;br&gt;
　　122.  UltraExplorer&lt;br&gt;
　　123. Yahoo Widgets&lt;br&gt;
本地搜索&lt;br&gt;
　　124. Google Desktop&lt;br&gt;
　　125.  Everything&lt;br&gt;
　　126. Locate32&lt;br&gt;
　　127. Adobe Buzzword&lt;br&gt;
办公&lt;br&gt;
　　128.  blist&lt;br&gt;
　　129. EtherPad&lt;br&gt;
　　130. Evernote&lt;br&gt;
　　131. GMDesk&lt;br&gt;
　　132. Google  Docs&lt;br&gt;
　　133. Incollector&lt;br&gt;
　　134. Jarte&lt;br&gt;
　　135. KompoZer&lt;br&gt;
　　136. Lotus  Symphony&lt;br&gt;
　　137. LucidChart&lt;br&gt;
　　138. NeoOffice&lt;br&gt;
　　139. Notepad++  [年度荣誉奖]&lt;br&gt;
　　140. OpenOffice [年度荣誉奖]&lt;br&gt;
　　141. SlideRocket&lt;br&gt;
　　142. SoftMaker  Office 2006&lt;br&gt;
　　143. Springnote&lt;br&gt;
　　144. Widgenie&lt;br&gt;
　　145.  Zoho&lt;br&gt;
操作系统&lt;br&gt;
　　146. gOS 3.0 Gadgets&lt;br&gt;
　　147. pure:dyne&lt;br&gt;
　　148. Ubuntu  [年度荣誉奖]&lt;br&gt;
网络&lt;br&gt;
　　149. AirSnare&lt;br&gt;
　　150. AirRadar&lt;br&gt;
　　151. Axence  NetTools&lt;br&gt;
　　152. GBridge&lt;br&gt;
　　153. InSSIDer&lt;br&gt;
　　154. LogMeIn  Hamachi&lt;br&gt;
　　155. NetSetMan&lt;br&gt;
　　156. Network Notepad&lt;br&gt;
　　157.  PrinterAnywhere&lt;br&gt;
RSS阅读&lt;br&gt;
　　158. Google Reader&lt;br&gt;
　　159. Netvibes&lt;br&gt;
　　160.  FeedDemon&lt;br&gt;
　　161. NetNewsWire&lt;br&gt;
　　162. RSS Bandit&lt;br&gt;
　　163.  Snarfer&lt;br&gt;
同步&lt;br&gt;
　　164. Dropbox&lt;br&gt;
　　165. Windows Live Sync&lt;br&gt;
　　166. Windows  Live Mesh&lt;br&gt;
　　167. Syncplicity&lt;br&gt;
　　168. Mozilla Weave&lt;br&gt;
视频&lt;br&gt;
　　169.  CamStudio&lt;br&gt;
　　170. HandBrake&lt;br&gt;
　　171. Miro&lt;br&gt;
　　172. TipCam&lt;br&gt;
　　173. VLC  media player&lt;/p&gt;
&lt;h2&gt;The Best Free Software of 2009&lt;/h2&gt;
&lt;p&gt;01.13.09&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://common.ziffdavisinternet.com/util_get_image/22/0,1425,i=229091,00.jpg&quot; border=&quot;0&quot; alt=&quot;The Best Free Software of 2008&quot; width=&quot;154&quot; height=&quot;115&quot;&gt;&lt;/p&gt;
&lt;p&gt;The best things in life often actually are free. Here, a  list of 173 of the best things in life—free software, for launching apps,  networking, backup, synchronization, entertainment, and more…… [&lt;a href=&quot;http://xbeta.info/pcmag-09-best-freeware.htm#x-3&quot;&gt;阅读全文&lt;/a&gt;]&lt;/p&gt;
&lt;h3&gt;A2:相关阅读&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/copyright-respect.htm&quot; title=&quot;软件玩家xbeta的故事: 向盗版说不![转]&quot;&gt;软件玩家xbeta的故事: 向盗版说不![转]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/lifehacker-hive-five.htm&quot; title=&quot;Lifehacker 26款最佳软件名单 (Hive Five精选)&quot;&gt;Lifehacker 26款最佳软件名单 (Hive Five精选)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/opensource-award-2008-2.htm&quot; title=&quot;2008年开源软件获奖名单&quot;&gt;2008年开源软件获奖名单&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/best_46_free_utilities.htm&quot; title=&quot;最佳46款免费软件（同步精译版）&quot;&gt;最佳46款免费软件（同步精译版）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xbeta.info/freeware-list-chip.htm&quot; title=&quot;[强力推荐] CHIP软件社区300款精选免费软件&quot;&gt;[强力推荐] CHIP软件社区300款精选免费软件&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
-- &lt;a href=&quot;http://xbeta.info&quot;&gt;http://xbeta.info&lt;/a&gt;　　&lt;small&gt;( 6793ee6ca67cfacc9d4333d9ae43a11b)&lt;/small&gt;&lt;p&gt;&lt;a href=&quot;http://xbeta.info/?p=695&amp;amp;akst_action=share-this&quot; title=&quot;推荐，收藏到QQ书签，del.icio.us等等。&quot; rel=&quot;noindex nofollow&quot;&gt;喜欢本文？分享收藏它。&lt;/a&gt;
&lt;/p&gt;</content:encoded><category>0 软件清单</category><category>best-list</category><pubDate>Tue, 20 Jan 2009 21:57:13 +0800</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/e80d0cb18f982902</guid><dc:creator>善用佳软</dc:creator><fs:srclink>http://xbeta.info/pcmag-09-best-freeware.htm</fs:srclink><fs:srcfeed>http://www.google.com/reader/public/atom/user/14282123654484183987/state/com.google/broadcast</fs:srcfeed><fs:itemid>feedsky/vichamp/~7172236/408634208/5122904</fs:itemid><fs:burntype>mark</fs:burntype></item></channel></rss>