<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>开心不已 &#187; 网络文摘</title>
	<atom:link href="http://kxboy.com/category/wenzhai/feed" rel="self" type="application/rss+xml" />
	<link>http://kxboy.com</link>
	<description>开心生活每一天!</description>
	<lastBuildDate>Mon, 14 May 2012 14:17:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>[转]十年学会编程</title>
		<link>http://kxboy.com/wenzhai/shinian-xuehui-biancheng.html</link>
		<comments>http://kxboy.com/wenzhai/shinian-xuehui-biancheng.html#comments</comments>
		<pubDate>Sun, 04 Mar 2012 09:05:18 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=820</guid>
		<description><![CDATA[去年在《编程人生》这本书里读到了Peter Norvig，书中提到了他写过《十年学会编程》，我原本一直以为是一本书，结果网上搜了一下，发现却原来只是一篇短文。文章虽短，却非常精悍，堪称经典。 十年学会编程 著者： Peter Norvig 翻译： Dai Yuwen 为何人人都这么着急？ 信步走进任何一家书店，你会看到名为《如何在7天内学会Java》的书，还有各种各样类似的书：在几天内或几小时内学会Visual Basic, Windows, Internet等等，一眼望不到尽头。我在Amazon 上做了如下的 强力检索 ： pubdate: after 1992 and title: days and (title: learn or title: teach yourself) 得到了248个结果。前78个都是计算机类书籍（第79个是 Learn Bengali in 30 days）。我用“hours”替换”days”，得到了类似的结果：更多的253书。前77本是计算机类书籍，第78本是 Teach Yourself Grammar and &#8230; <a href="http://kxboy.com/wenzhai/shinian-xuehui-biancheng.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>去年在<a href="http://book.douban.com/subject/5355285/">《编程人生》</a>这本书里读到了Peter Norvig，书中提到了他写过《十年学会编程》，我原本一直以为是一本书，结果网上搜了一下，发现却原来只是一篇短文。文章虽短，却非常精悍，堪称经典。</p>
<hr />
<p><strong>十年学会编程</strong><br />
著者： Peter Norvig<br />
翻译： <a href="http://daiyuwen.freeshell.org/gb/misc/21-days-cn.html">Dai Yuwen</a></p>
<hr />
<h3><strong>为何人人都这么着急？</strong></h3>
<p>信步走进任何一家书店，你会看到名为《如何在7天内学会Java》的书，还有各种各样类似的书：在几天内或几小时内学会Visual Basic, Windows, Internet等等，一眼望不到尽头。我在<a href="http://www.amazon.com/">Amazon</a> 上做了如下的<a href="http://www.amazon.com/exec/obidos/tg/browse/-/468558/104-5938873-6579160"> 强力检索 </a>：</p>
<pre>     <a href="http://www.amazon.com/exec/obidos/search-handle-url/ix=books&amp;rank=%2Bfeaturedrank&amp;fqp=power%01pubdate%3A%20after%201992%20and%20title%3A%20days%20and%0D%20%28title%3A%20learn%20or%20title%3A%20teach%20yourself%29&amp;sz=25&amp;pg=1/ref=s_b_np">pubdate: after 1992 and title: days and</a>
      <a href="http://www.amazon.com/exec/obidos/search-handle-url/ix=books&amp;rank=%2Bfeaturedrank&amp;fqp=power%01pubdate%3A%20after%201992%20and%20title%3A%20days%20and%0D%20%28title%3A%20learn%20or%20title%3A%20teach%20yourself%29&amp;sz=25&amp;pg=1/ref=s_b_np">(title: learn or title: teach yourself)</a></pre>
<p>得到了248个结果。前78个都是计算机类书籍（第79个是 <a href="http://www.amazon.com/exec/obidos/ASIN/0781802245/"><em>Learn Bengali in 30 days</em></a>）。我用<a href="http://www.amazon.com/exec/obidos/search-handle-url/ix=books&amp;rank=%2Bfeaturedrank&amp;fqp=power%01pubdate%3A%20after%201992%20and%20title%3A%20hours%20and%0D%20%28title%3A%20learn%20or%20title%3A%20teach%20yourself%29&amp;sz=25&amp;pg=3/ref=s_b_np">“hours”</a>替换”days”，得到了类似的结果：更多的253书。前77本是计算机类书籍，第78本是 <a href="http://www.amazon.com/exec/obidos/ASIN/0028638999/"><em>Teach Yourself Grammar and Style in 24 Hours</em></a>。在前200本书中，有96% 是计算机类书籍。</p>
<p><span id="more-820"></span>结论是：要么人们都在急急忙忙地学习计算机，要么计算机比其它任何东西都容易学。没有书籍教你在几天内学会古典音乐、量子物理，或者是养狗。</p>
<p>让我们分析一下，象一本名为<em><a href="http://www.amazon.com/exec/obidos/ISBN=1556225679/4094-7934802-027992">《三天内学会Pascal》</a></em>的书意味着什么：</p>
<ul>
<li><strong>学习：</strong> 在三天里，你没有时间写一些重大的程序，并从成功或失败中得益。你没有时间与有经验的程序员合作，并理解在那样的环境下工作是怎么回事。一句话，你不会有时间学到太多东西。因此他们只能谈论一些肤浅的东西，而不是深入的理解。正如亚力山大教皇所说，浅尝辄止是危险的事情。</li>
<li><strong>Pascal：</strong> 在三天时间里，你可能学会Pascal的语法（如果你已经学过类似的语言），但你学不到更多的如何使用这些语法的知识。也就是说，假如你曾是个BASIC程序员，你可以学着用Pascal语法写出BASIC风格的程序，但你不可能了解Pascal真正的好处（和坏处）。那么关键是什么？ <a href="http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html">Alan Perlis</a>说过：“一种不改变你编程的思维方式的语言，不值得去学。” 一种可能的情况是：你必须学一点儿Pascal（或可能性更大的象Visual Basic 或 JavaScript之类），因为你为了完成某种特定的任务，需要与一个现存的工具建立接口。不过那不是学习如何编程，而是在学习如何完成那个任务。</li>
<li><strong>三天内：</strong> 很不幸，这不够，原因由下一节告诉我们。</li>
<li>
<h3><strong>在十年里学会编程</strong></h3>
<p>研究表明 (<a href="http://www.amazon.com/exec/obidos/ASIN/0805803092">Hayes</a>，<a href="http://www.amazon.com/exec/obidos/ASIN/034531509X/">Bloom</a>)在任何一种领域内，象下棋、作曲、绘画、钢琴演奏、游泳、网球、以及原子物理学和拓扑学，等等，要达到专家水平大约都要化十年时间。没有真正的捷径：即使是莫扎特，4岁时就是音乐神童，13年后才开始写出世界级的作品。在另一方面，披头士似乎在1964年的Ed Sullivan表演上一炮走红。但他们从1957年就开始表演，在获得大众青睐后，他们的第一个重大成功，<em>Sgt. Peppers</em>，是1967年发行的。Samuel Johnson （塞缪尔·约翰逊，英国辞典编纂家及作家）认为要花比十年更长的时间：“在任何领域中出类拔萃都要用毕生的劳作来取得；它不可能用较低的代价获得。” 而Chaucer（乔叟，英国诗人）感叹到：“人生短暂，学海无涯。”</p>
<p>这是我为编程成功开出的方子：</p>
<ul>
<li>设法对编程感兴趣，并且因为它有趣而编一些程序。确保编程一直充满足够乐趣，这样你才愿意投入十年宝贵时间。</li>
<li>与其他程序员交流； 阅读其它程序。这比任何书本或训练课程都重要。</li>
<li>写程序。 最好的学习方式是 <a href="http://www.engines4ed.org/hyperbook/nodes/NODE-120-pg.html">从实践中学习</a>。 用更技术性的话说，“在一个给定的领域内，个人的最大能力不是自动地由扩展了的经验取得的，但即使是高度有经验的人也可以通过有意识的努力来提高自己的能力” <a href="http://www2.umassd.edu/swpi/DesignInCS/expertise.html">(p. 366)</a> 和 “最有效的学习需要因人而异的适当难度，目标明确的任务，丰富的信息反馈，以及重复的机会和错误修正。” (p. 20-21) 此书 <em><a href="http://www.amazon.com/exec/obidos/ASIN/0521357349">Cognition in Practice: Mind，Mathematics，and Culture in Everyday Life</a></em>是阐明此观点的令人感兴趣的参考文献。</li>
<li>如果愿意，在大学里呆上4年或更长（在研究生院里）。你会接触到一些需要学历证明的工作，你会对此领域有更深的理解。如果你不喜欢学校，你可以（通过一些贡献）在工作中获得相似的经验。在任何情况下，光啃书本是不够的。Eric Raymond，<em>The New Hacker&#8217;s Dictionary</em>一书的作者，说过，“计算机科学不能把任何人变成编程专家，就象光研究刷子和颜料不会使人变成画家一样。” 我雇佣过的最好的程序员之一仅有高中程度；他做出了许多<a href="http://www.xemacs.org/">优秀的 </a><a href="http://www.mozilla.org/">软件</a>，有他自己的<a href="http://groups.google.com/groups?q=alt.fan.jwz&amp;meta=site%3Dgroups">新闻组</a>，而且通过股票期权，他无疑比我富有的多。</li>
<li>和其他程序员一起做项目。在其中的一些项目中作为最好的程序员； 而在另一些项目中是最差的。当你是最好的，你能测试领导项目的能力，用你的观点激发别人。当你是最差的，你学习杰出者是怎么做的，了解他们不喜欢做什么（因为他们吩咐你做事）。</li>
<li>在其他程序员 <em>之后</em>接手项目。使自己理解别人写的程序。当程序的原作者不在的时候，研究什么需要理解并且修改它。思考如何设计你的程序以便后来者的维护。</li>
<li>学习至少半打的编程语言。包括一种支持类抽象的语言（象Java 或C++），一种支持函数化抽象的语言（象Lisp或ML），一种支持语法抽象的语言（象 Lisp），一种支持声明规格说明的语言（象Prolog或C++ 的模板），一种支持共行程序（coroutine）的语言（象Icon或Scheme），一种支持并行的语言（象Sisal）。</li>
<li>请记住“计算机科学”中有“计算机”一词。了解你的计算机要花多长时间执行一条指令，从内存中取一个字（有cache），从磁盘中读取连续的字，和在磁盘中找到新的位置。（<a href="#answers">答案</a>）</li>
<li>参与一种语言标准化的工作。它可以是ANSI C++委员会，也可以是决定你周围小范围内的编程风格是应该两个还是四个空格缩进。通过任何一种方式，你了解到其他人在某种语言中的想法，他们的理解深度，甚至一些他们这样想的原因。</li>
<li>找到适当的理由尽快地从语言标准化的努力中脱身。</li>
</ul>
<p>明白了这些，仅从书本中你能得到多少就成了一个问题。在我第一个孩子出生前，我读了所有的（关于育儿的）<em>How to </em>书籍，仍然感觉是个手足无措的新手。30个月以后，我的第二个孩子快要出生了，我回头温习这些书了吗？ 没有。相反，我依靠我的个人经验，它比专家写的数千页书更有用和可靠。</p>
<p>Fred Brooks在他的随笔 <em><a href="http://citeseer.nj.nec.com/context/7718/0">《没有银弹》</a></em> 中定出了一个寻找优秀软件设计者的三步计划：</p>
<ol>
<li>尽可能早地，有系统地识别顶级的设计人员。</li>
<li>为设计人员指派一位职业导师，负责他们技术方面的成长，仔细地为他们规划职业生涯。</li>
<li>为成长中的设计人员提供相互交流和学习的机会。</li>
</ol>
<p>此计划假设某些人已经具备了杰出设计者的必要才能； 要做的只是如何恰当地诱导他们。 <a href="http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html">Alan Perlis</a> 说得更简明扼要：“每个人都能被教会雕刻：对米开朗其罗而言，反倒是告诉他哪些事不要做。同样的道理也适用于优秀的程序员。”</p>
<p>所以尽管买那本Java的书吧。你可能会从中学到点儿东西。但作为一个程序员，你不会在几天内或24小时内，哪怕是几个月内改变你的人生，或你实际的水平。</p>
<h3><strong>参考文献</strong></h3>
<p>Bloom, Benjamin (ed.) <em><a href="http://www.amazon.com/exec/obidos/ASIN/034531509X">Developing Talent in Young People</a></em>, Ballantine, 1985.</p>
<p>Brooks, Fred, <em><a href="http://citeseer.nj.nec.com/context/7718/0">No Silver Bullets</a></em>, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.</p>
<p>Hayes, John R., <em><a href="http://www.amazon.com/exec/obidos/ASIN/0805803092">Complete Problem Solver</a></em> Lawrence Erlbaum, 1989.</p>
<p>Lave, Jean, <em><a href="http://www.amazon.com/exec/obidos/ASIN/0521357349">Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life</a></em>, Cambridge University Press, 1988. <a name="answers"></a></p>
<h3><strong>答案</strong></h3>
<p>2001年夏天典型的1GHz PC的各种操作要花的时间</p>
<table border="1" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td>执行一条指令</td>
<td>1 nsec = (1/1,000,000,000) sec</td>
</tr>
<tr>
<td>从L1 cache memory 中取一个字</td>
<td>2 nsec</td>
</tr>
<tr>
<td>从内存中取一个字</td>
<td>10 nsec</td>
</tr>
<tr>
<td>从磁盘的连续位置取一个字</td>
<td>200 nsec</td>
</tr>
<tr>
<td>从磁盘的新位置取一个字(seek)</td>
<td>8,000,000nsec = 8msec</td>
</tr>
</tbody>
</table>
<h3><strong>附录：语言的选择</strong></h3>
<p>不少人问我，他们首先该学哪种编程语言。没有绝对的答案，不过请考虑以下几点：</p>
<ul>
<li><em>用你的朋友的</em>。当被问起“我该用哪种操作系统，Windows，Unix，还是Mac？”，我总是回答：“你朋友用什么，你就用什么。” 你从朋友那能学到知识，这种优势可以抵销不同操作系统或语言之间本质的差异。也考虑你将来的朋友：程序员社区 — 你将成为它的一部分如果你继续往前走的话。你选择的语言是否有一个成长中的社区，还是人数不多、即将消亡？ 有没有书籍、网站、在线论坛回答你的问题？ 你喜欢论坛里的那些人吗？</li>
<li><em>Keep it simple, stupid.</em>象C++和Java这样的语言是为经验丰富的程序员组成的团队进行专业开发而设计的，他们专注于代码运行时的效率。因此，这些语言有些部分非常复杂。 而你关注的是如何编程，不需要那些复杂性。你需要的是这样的语言： 对单个的编程新手来说，它易学易记。</li>
<li><em>练习</em>。你偏爱哪种学弹钢琴的方式：通常的交互式的方式，你一按下琴键就能听到音符；还是“批量”模式，你只有弹完整首曲子才能听到音符？显然，用交互模式学习弹钢琴更容易些，编程也一样。坚持用交互模式学习并使用一种语言。</li>
</ul>
<p>有了上面的准则，我推荐的第一个编程语言是<a href="http://python.org/">Python</a>或<a href="http://www.schemers.org/">Scheme</a>。因人而异，还有其它好的选择。如果你的年纪是10岁以下，你可能更喜欢<a href="http://alice.org/">Alice</a>。关键是你要选择并开始实践。</p>
<h3><strong>附录：书籍和其它资源</strong></h3>
<p>不少人问我，他们该从什么书籍或网页开始学起。我重申“仅从书本里学习是不够的。” 但我还是推荐：</p>
<ul>
<li><strong>Scheme:</strong><a href="http://www.amazon.com/gp/product/0262011530"> Structure and Interpretation of Computer Programs (Abelson &amp; Sussman)</a>可能是最好的计算机科学的入门书，而且它的确把讲授编程作为理解计算机科学的一种方法。但它具有挑战性，会让许多通过其它方式可能成功的人望而却步。</li>
<li><strong>Scheme:</strong><a href="http://www.amazon.com/gp/product/0262062186"> How to Design Programs (Felleisen et al.)</a>是关于如何用一种优美的、函数化的方式设计程序的最好的书之一。</li>
<li><strong>Python:</strong><a href="http://www.amazon.com/gp/product/1887902996"> Python Programming: An Intro to CS (Zelle)</a>是优秀的Python入门指导。</li>
<li><strong>Python:</strong><a href="http://python.org/"> Python.org</a>上有许多在线<a href="http://wiki.python.org/moin/BeginnersGuide">指导</a>。</li>
<li><strong>Oz:</strong><a href="http://www.amazon.com/gp/product/0262220695"> Concepts, Techniques, and Models of Computer Programming (Van Roy &amp; Haridi)</a> 被视为Abelson &amp; Sussman的当代继承者。它是对编程的高层次概念的巡视。涉及的范围比Abelson &amp; Sussman更广，同时可能更容易学习和跟进。 它用了叫做Oz的语言，不太知名，却可以作为学习其它语言的基础。</li>
</ul>
<hr />
<h3><strong>脚注</strong></h3>
<p>This page also available in <a href="http://www1.neweb.ne.jp/wa/yamdas/column/technique/21-daysj.html">Japanese translation</a> thanks to Yasushi Murakawa, in <a href="http://loro.sf.net/notes/21-dias.html">Spanish translation</a> thanks to Carlos Rueda and in <a href="http://purl.net/stefan_ram/html/21-tage">German translation</a> thanks to Stefan Ram.</p>
<p>T. Capey points out that the <a href="http://www.amazon.com/exec/obidos/ASIN/0805803092">Complete Problem Solver</a> page on Amazon now has the “Teach Yourself Bengali in 21 days” and “Teach Yourself Grammar and Style” books under the “Customers who shopped for this item also shopped for these items” section. I guess that a large portion of the people who look at that book are coming from this page.</p>
<hr />
<p><a href="http://www.norvig.com/index.html"><em>Peter Norvig</em>(Copyright 2001)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/shinian-xuehui-biancheng.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]如何成为一名黑客</title>
		<link>http://kxboy.com/wenzhai/ruhe-chengwei-heike.html</link>
		<comments>http://kxboy.com/wenzhai/ruhe-chengwei-heike.html#comments</comments>
		<pubDate>Sun, 04 Mar 2012 08:39:48 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[黑客]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=813</guid>
		<description><![CDATA[如何成为一名黑客 Copyright © 2001 by Eric S. Raymond 翻译：Barret 翻译水平有限，欢迎来信指教，我的Email是barret（a）ynmail.com，但请勿问电脑技术问题（反正也不懂）。 允许未经作者及译者的同意进行非商业目的的转载，但必须保持原文的完整性。 内容一览 为什么会有这份文档？ 什么是黑客？ 黑客应有的态度 黑客的基本技能 黑客文化中的地位 黑客和书呆子(Nerd)的联系 风格的意义 其它资源 FAQ（常问问题解答） 为什么会有这份文档？ 作为 Jargon File 的编辑和一些其他有名的类似性质文章的作者，我经常收到充满热情的网络新手的email提问（确实如此） “我如何才能成为一名出色的黑客？”非常奇怪的是似乎没有任何的FAQ或者Web形式的文档来说明这个十分重要的问题，因此我写了一份。 如果你现在读的是这份文档的离线拷贝，那么请注意当前最新版本（英文版）在 http://www.tuxedo.org/~esr/faqs/hacker-howto.html可以得到。 注意：在这份文档最后有 FAQ（常问问题解答）。请在向我提出任何关于这份文档的疑问之前读两遍。 目前这份文档有很多翻译版本： 保加利亚语， 简体中文， 繁体中文， 丹麦语， 荷兰语， 法语， 德语， 匈牙利语， &#8230; <a href="http://kxboy.com/wenzhai/ruhe-chengwei-heike.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="ARTICLE">
<div class="TITLEPAGE">
<h3><strong>如何成为一名黑客</strong></h3>
<p class="COPYRIGHT">Copyright © 2001 by Eric S. Raymond<br />
翻译：Barret<br />
翻译水平有限，欢迎来信指教，我的Email是barret（a）ynmail.com，但请勿问电脑技术问题（反正也不懂）。<br />
允许未经作者及译者的同意进行非商业目的的转载，但必须保持原文的完整性。</p>
<hr align="center" size="1" width="100%" />
</div>
<div class="TOC">
<dl>
<dt><strong>内容一览</strong></dt>
<dt><a href="#WHY_THIS">为什么会有这份文档？</a></dt>
<dt><a href="#WHAT_IS">什么是黑客？</a></dt>
<dt><a href="#ATTITUDE">黑客应有的态度</a></dt>
<dt><a href="#BASIC_SKILLS">黑客的基本技能</a></dt>
<dt><a href="#STATUS">黑客文化中的地位</a></dt>
<dt><a href="#NERD_CONNECTION">黑客和书呆子(Nerd)的联系</a></dt>
<dt><a href="#STYLE">风格的意义</a></dt>
<dt><a href="#RESOURCES">其它资源</a></dt>
<dt><a href="#FAQ">FAQ（常问问题解答）</a></dt>
</dl>
</div>
<div class="SECT1">
<hr />
<h3><a name="WHY_THIS"></a><strong>为什么会有这份文档？</strong></h3>
<p>作为 <a href="http://www.tuxedo.org/jargon" target="_top">Jargon File</a> 的编辑和一些其他有名的类似性质文章的作者，我经常收到充满热情的网络新手的email提问（确实如此） “我如何才能成为一名出色的黑客？”非常奇怪的是似乎没有任何的FAQ或者Web形式的文档来说明这个十分重要的问题，因此我写了一份。</p>
</div>
</div>
<p><span id="more-813"></span></p>
<div class="ARTICLE">
<div class="SECT1">
<p>如果你现在读的是这份文档的离线拷贝，那么请注意当前最新版本（英文版）在 <a href="http://www.tuxedo.org/~esr/faqs/hacker-howto.html" target="_top">http://www.tuxedo.org/~esr/faqs/hacker-howto.html</a>可以得到。</p>
<p>注意：在这份文档最后有 <a href="#FAQ">FAQ（常问问题解答）</a>。请在向我提出任何关于这份文档的疑问之前读两遍。</p>
<p>目前这份文档有很多翻译版本： <a href="http://www.bgit.net/?id=9894" target="_top">保加利亚语</a>， <a href="http://qzyzk34.51.net/hacker-howto.gb.html" target="_top">简体中文</a>， <a href="http://www.angelfire.com/ok/leekawo/hacker.htm" target="_top">繁体中文</a>， <a href="http://www.fys.ku.dk/~omic/hacker-howto.html" target="_top">丹麦语</a>， <a href="http://www.knudde.be/hackers/hacker-howto-nl.html" target="_top">荷兰语</a>， <a href="http://www.math.jussieu.fr/~fermigie/hacker-howto-fr.html" target="_top">法语</a>， <a href="http://www.geocities.com/CapeCanaveral/Launchpad/1380/hackhowt.html" target="_top">德语</a>， <a href="http://lme.linux.hu/forditas/hacker-howto.html" target="_top">匈牙利语</a>， <a href="http://hhh.indoglobal.com/hacker-howto.id.html" target="_top">印尼语</a>， <a href="http://www.linux.or.jp/JF/JFdocs/hacker.html" target="_top">日语</a>， <a href="http://genesis.yonsei.ac.kr/~kabin/doc/hacker-howto.htm" target="_top">朝鲜语</a>， <a href="http://www.linux.ime.usp.br/~rcaetano/docs/hacker-howto-pt.html" target="_top">葡萄牙语</a>， <a href="hacker-howto.ru.htm" target="_top">俄语</a>及 <a href="http://www1.tripnet.se/~mly/open/faqs/hacker-howto.se.html" target="_top">瑞典语</a>。注意由于这份文档时有修正，所以以上翻译版本可能有不同程度的过时。</p>
</div>
<div class="SECT1">
<hr />
<h3><a name="WHAT_IS"></a><strong>什么是黑客？</strong></h3>
<p><a href="http://www.tuxedo.org/jargon" target="_top">Jargon File</a> 包含了一大堆关于“hacker”这个词的定义，大部分与技术高超和热衷解决问题及超越极限有关。但如果你只想知道如何 <em class="EMPHASIS">成为</em> 一名黑客，那么只有两件事情确实相关。</p>
<p>这可以追溯到几十年前第一台分时小型电脑诞生, ARPAnet 实验也刚展开的年代，那时有一个由程序设计专家和网络名人所组成的, 具有分享特点的文化社群。这种文化的成员创造了 “hacker” 这个名词。黑客们建立了 Internet。黑客们发明出了现在使用的 UNIX 操作系统。黑客们使 Usenet 运作起来， 黑客们让 WWW 运转起来。如果你是这个文化的一部分，如果你对这种文化有所贡献，而且这个社群的其它成员也认识你并称你为 hacker, 那么你就是一位黑客。</p>
<p>黑客精神并不仅仅局限在软件的黑客文化中。有人用黑客态度对待其它事情，如电子学和音乐—— 事实上，你可以在任何最高级别的科学和艺术活动中发现它。精于软件的黑客赞赏这些在其他领域的同类并把他们也称作黑客—— 有人宣称黑客天性是绝对独立于他们工作的特定领域的。 但在这份文档中，我们将注意力集中在软件黑客的技术和态度，以及发明了“黑客”一词的以共享为特征的文化传统之上。</p>
<p>有一群人大声嚷嚷着自己是黑客，但他们不是。他们（主要是正值青春的少年）是一些蓄意破坏计算机和电话系统的人。真正的黑客把这些人叫做“骇客”(cracker)，并不屑与之为伍。多数真正的黑客认为骇客们又懒又不负责任，还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客， 正如用铁丝偷开走汽车并不能使你成为一个汽车工程师。不幸的是，很多记者和作家往往错把“骇客”当成黑客；这种做法一直使真正的黑客感到恼火。</p>
<p>根本的区别是：黑客搞建设，骇客搞破坏。</p>
<p>如果你想成为一名黑客，请接着读下去。如果你想做一个骇客，去读 <a href="news:alt.2600" target="_top">alt.2600</a> 新闻组，并在意识到你并不像自己想象的那么聪明后去坐五到十次监狱。关于骇客，我只想说这么多。</p>
</div>
<div class="SECT1">
<hr />
<h3><a name="ATTITUDE"></a><strong>黑客应有的态度</strong></h3>
<p>黑客们解决问题，建设事物，同时他们崇尚自由和无私的双向帮助。要被他人承认是一名黑客，你的行为得体现出你好像具备了这种态度一般。而要想做得好象你具备这种态度一般，你就得切切实实坚持它。</p>
<p>但是如果你认为培养黑客态度只是一条在黑客文化圈中得到承认的路子，那就大错特错了。成为具备这些特质的这种人对 <em class="EMPHASIS">你自己</em>非常重要——有助于你学习，及给你提供源源不断的动力。同所有创造性的艺术一样，成为大师的最有效方法就是模仿大师的精神—— 不仅从智力上，也要从感情上进行模仿。</p>
<p>或许, 下面这首现代的禅诗很好的阐述了这个意思：</p>
<p class="LITERALLAYOUT">    To follow the path:（沿着这样一条道路：）<br />
look to the master,（寻找大师，）<br />
follow the master,（跟随大师，）<br />
walk with the master,（与大师通行，）<br />
see through the master,（洞察大师，）<br />
become the master.（成为大师。）</p>
<p>嗯，如果你想成为一名黑客，反复读下面的事情直至你相信它们：</p>
<div class="SECT2">
<hr />
<h4><a name="BELIEVE1"></a><strong>1. 世界充满了待解决的迷人问题。</strong></h4>
<p>做一名黑客会有很多乐趣，但却是要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从锻炼身体、超越自我极限的愉悦中得到动力。同样，做黑客，你得能从解决问题，磨练技术及锻炼智力中得到基本的乐趣。</p>
<p>如果你还不是天生的这类人又想做黑客，你就要设法成为这样的人。否则你会发现，你的黑客热情会被其他分心的事物吞噬掉——如金钱、性和社会上的虚名。</p>
<p>（同样你必须对你自己的学习能力建立信心——相信尽管当你对某问题近乎一无所知，但只要你一点一点地试验、学习，最终会掌握并解决它。）</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="BELIEVE2"></a><strong>2. 一个问题不应该被解决两次。</strong></h4>
<p>聪明的脑袋是宝贵的有限的资源。当世界还充满非常多有待解决的有趣的新问题时，它们不应该被浪费在重新发明轮子这类事情上。</p>
<p>作为一名黑客，你必须相信其他黑客的思考时间是宝贵的——因此共享信息，解决问题并发布结果给其他黑客几乎是一种道义，这样其他人就可以去解决 <em class="EMPHASIS">新</em>问题而不是不断地忙于对付旧问题。</p>
<p>(你不必认为一定要把你 <em class="EMPHASIS">所有的</em>发明创造公布出去，但这样做的黑客是赢得大家极度尊敬的人。卖些钱来养家糊口，租房买计算机甚至发大财和黑客价值观也是相容的，只要你别忘记你还是个黑客。)</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="BELIEVE3"></a><strong>3. 无聊和乏味的工作是罪恶。</strong></h4>
<p>黑客（泛指具有创造力的人们）应该从来不会被愚蠢的重复性劳动所困扰，因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情—— 解决新问题。这样的浪费伤害每一个人。因此，无聊和乏味的工作不仅仅是令人不舒服而已，而且是罪恶。</p>
<p>作为一个黑客，你必须坚信这点并尽可能多地将乏味的工作自动化，不仅为你自己，也为了其他人（尤其是其他黑客们）。</p>
<p>(对此有一个明显的例外。黑客有时也做一些在他人看来是重复性或枯燥的工作以进行“脑力休息”，或是为了获得某种技能，或是获得一些除此以外无法获得的特别经验。但这是自愿的——有脑子的人不应该被迫做无聊的活儿。）</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="BELIEVE4"></a><strong>4. 自由万岁。</strong></h4>
<p>黑客们是天生的反独裁主义者。任何能向你发命令的人能够迫使你停止解决令你着迷的问题，同时，按照独裁者的一般思路，他通常会给出一些极端愚昧的理由。因此，不论何处，任何独裁主义的作法，只要它压迫你和其他黑客，你就要和它斗到底。</p>
<p>(这并非向所有权威挑战。儿童需要监护，罪犯要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间，黑客可以同意接受某种形式的权威。但这是一个有限度的，有意的交易；那种权威想要的个人服从不是你应该同意给予的。)</p>
<p>权威喜欢审查和保密。他们不信任自愿的合作和信息的共享—— 他们只喜欢由他们控制的所谓“合作”。因此，作为一个黑客，你得对审查、保密，以及使用武力或欺骗去压迫有行为能力的人们的做法有一种本能的敌意。同时你要有为此信念斗争的意愿。</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="BELIEVE5"></a><strong>5. 态度不能替代能力。</strong></h4>
<p>作为一名黑客，你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客，也不能使你成为一个运动健将和摇滚明星。成为一名黑客需要智力，实践，奉献精神和辛苦工作。</p>
<p>因此，你必须学会怀疑，并尊重各种各样的能力。黑客们不会为那些装模做样的人浪费时间，但他们却非常尊重能力—— 尤其是从事黑客工作的能力，不过任何能力总归是好的。具备很少人能具备的那些方面的能力尤其好，其中具备涉及脑力、技巧和专注方面能力的当然最好。</p>
<p>尊敬能力，你就会享受到提高自己能力的乐趣—— 辛苦的工作和奉献会变成一种高度娱乐而非苦差事。要想成为一名黑客，这一点非常重要。</p>
</div>
</div>
<div class="SECT1">
<hr />
<h3><a name="BASIC_SKILLS"></a><strong>黑客的基本技能</strong></h3>
<p>黑客态度重要，但技术更加重要。态度无法替代技术，在你被别的黑客称为黑客之前，有一些基本的技术你必须掌握。</p>
<p>这些基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如，过去内容包括使用机器语言编程，而直到最近才包括了HTML。总的来说现在主要包括以下技术：</p>
<div class="SECT2">
<hr />
<h4><a name="SKILLS1"></a><strong>1. 学习如何编程。</strong></h4>
<p>这当然是最基本的黑客技能。如果你还不会任何编程语言，我建议你从Python开始。它设计清晰，文档齐全，合适初学者入门。它是一门很好的入门语言，并且不仅仅只是个玩具；它非常强大、灵活，也适合做大型项目。我有一篇 <a href="http://noframes.linuxjournal.com/lj-issues/issue73/3882.html" target="_top">Python评价</a>详细说明这点。好的 <a href="http://www.python.org/doc/Intros.html" target="_top">教程</a> 可以在<a href="http://www.python.org" target="_top">Python网站</a>得到。（译者：比较好的中文Python站点可能是http://pythonrecord.51.net。）</p>
<p>Java也是好的入门语言。它比Python难得多，但是生成的代码速度也快得多。它同时也是一种优秀的计算机语言，不止是用来入门。</p>
<p>但是注意，如果你只会一两门语言，你将不会达到黑客所要求的技术水平，甚至也不能达到一个程序员的水平——你需要学会如何以抽象的方式思考编程问题，独立于任何语言。要做一名真正的黑客，你需要学会在几天内通过一些手册，结合你现在所知，迅速掌握一门新语言。这意味着你应该学会几种截然不同的语言。</p>
<p>如果要做一些重要的编程工作，你将不得不学习C语言，Unix的核心语言。 C++与C非常其他类似；如果你了解其中一种，学习另一种应该不难。但这两种都不适合编程入门者学习。而且事实上，你越避免用C编程，你的工作效率会越高。</p>
<p>C非常有效率，节约你的机器资源。不幸的是，C的高效是通过你手动做很多底层的管理（如内存）来达到的。底层代码都是复杂极易出现bug的，会使你花极多的时间调试。如今的机器速度如此之快，这通常是得不偿失——比较明智的做法是使用一种运行较慢、较低效率，但<em class="EMPHASIS">大幅</em>节省你的时间的语言。因此，选择Python。</p>
<p>其他对黑客而言比较重要的语言包括 <a href="http://www.perl.com" target="_top">Perl</a>和 <a href="http://www.lisp.org/" target="_top">LISP</a>。 Perl实用，值得一学；它被广泛用于动态网页和系统管理，因此即便你从不用Perl写程序，至少也应该学会看。许多人使用Perl的理由和我建议你使用Python的理由一样，都是为了避免用C完成那些不需要C高效率的工作。你会需要理解那些工作的代码的。</p>
<p>LISP值得学习的理由不同——最终掌握了它时你会得到丰富的启迪和经验。这些经验会使你在以后的日子里成为一个更好的程序员，即使你实际上很少使用LISP本身。</p>
<p>当然，实际上你最好五种都会（Python，Java，C/C++，Perl和LISP）。除了是最重要的黑客语言外，它们还代表了截然不同的编程思路和方法，每种都会让你受益非浅。</p>
<p>这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你，书本和上课也不能作到（最好的黑客中，有许多，也许 <em class="EMPHASIS">几乎</em>都是自学成材的）。你可以从书本上学到语言的特点——只是一些皮毛，但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要作到 <em class="EMPHASIS">（一）读代码</em>及<em class="EMPHASIS">（二）写代码</em>。</p>
<p>学习如何编程就象学习用优美的自然语言写作一样。最好的做法是读一些大师的名著，试着自己写点东西，再读些，再写点，再读些，再写点…… 如此往复，直到你的文章达到你体会到的范文的简洁和力量。</p>
<p>过去找到适合阅读的好的代码是困难的，因为几乎没有大型程序的源代码能让新手练手。这种状况已经戏剧性地发生变化；开放源代码软件，编程工具和操作系统（全都由黑客写成）现在已经随处可见。让我们在下一个话题中继续讨论……</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="SKILLS2"></a><strong>2. 得到一个开放源代码的Unix并学会使用、运行它。</strong></h4>
<p>我假设你已经拥有或者能使用一台个人电脑（今天的孩子们真幸福 <img src='http://www.kxboy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ）。新手们能够朝学习黑客技能迈出的最基本的一步就是得到一份Linux或BSD-Unix的一种，安装在个人电脑上，并运行它。</p>
<p>没错，这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你无法读到它的源代码，也不可能修改它。尝试在运行DOS或Windows或MacOS的机器上学习黑客技术，就象是带着脚镣学跳舞。</p>
<p>除此之外，Unix还是Internet的操作系统。你可以学会上网却不知道Unix，但你不了解Unix就无法成为一名Internet黑客。因此，今天的黑客文化在很大程度上是以Unix为中心的。（这点并不总是真的，一些很早的黑客对此一直很不高兴，但Unix和Internet之间的联系已是如此之强，甚至连Microsoft也无可奈何。）</p>
<p>所以, 安装一套UNIX——我个人喜爱LINUX但还有其他种类的（是的，你<em class="EMPHASIS">可以</em>同时安装Linux及DOS/Windows在同一电脑上)。学习它，使用它，配置它。用它在Internet上冲浪。阅读它的源代码。修改它的源代码。你会得到比在Microsoft操作系统上更好的编程工具（包括C，LISP，Python及Perl）。你会觉得乐趣无穷，学到在你成为大师之前意识不到的更多的知识。</p>
<p>想知道更多关于学习Unix的信息，访问 <a href="http://www.tuxedo.org/~esr/faqs/loginataka.html" target="_top">The Loginataka</a>。</p>
<p>想知道如何得到一份Linux，访问 <a href="http://linuxresources.com/apps/ftp.html" target="_top">我在哪里可以获得Linux</a>。（译者：对于中文读者来讲，最简单的方式未过于前往附近的D版/正版光盘店。）</p>
<p>你可以在 <a href="http://www.bsd.org" target="_top">www.bsd.org</a>找到BSD Unix的求助及其他资源。</p>
<p>我有写一篇关于 <a href="http://www.linuxdoc.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/index.html" target="_top">Unix和Internet基础</a>的入门文章。</p>
<p>（注：如果你是一个新手，我不推荐自己独立安装Linux或者BSD。安装Linux的话，寻求本地Linux用户组的帮助；或联系 <a href="http://www.linpeople.org" target="_top">Open Projects Network</a>。 LISC维护着一些 <a href="http://openprojects.nu/services/irc.html" target="_top">IRC频道</a>，在那里你可以获得帮助。）</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="SKILLS3"></a><strong>3. 学会如何使用WWW和写HTML</strong></h4>
<p>黑客文化建造的大多东西都在你看不见的地方发挥着作用，帮助工厂、办公室和大学正常运转，表面上很难看到它对非黑客的普通人的生活的影响。Web是一个大大的例外。即便<em class="EMPHASIS">政客</em>也同意，这个巨大耀眼的黑客玩具正在改变整个世界。单是这个原因（还有许多其它的），你就需要学习掌握Web。</p>
<p>这并不是仅仅意味着如何使用浏览器（谁都会），而是要学会如何写HTML， Web的标记语言。如果你不会编程，写HTML会教你一些有助于学习的思考习惯。因此，先完成一个主页。（网上有很多好的教程； <a href="http://www.teleport.com/~danal/Pages/making.html" target="_top">这是一个</a>。)</p>
<p>但仅仅拥有一个主页不能使你成为一名黑客。 Web里充满了各种网页。大多数是毫无意义的，零信息量垃圾——界面时髦的垃圾，注意，垃圾的水准都类似（更多信息访问 <a href="http://www.tuxedo.org/~esr/html-hell.html" target="_top">The HTML Hell Page</a>）。</p>
<p>要想有价值，你的网页必须有<em class="EMPHASIS">内容</em>—— 它必须有趣或对其它黑客有帮助。这是下一个话题所涉及的……</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="SKILLS4"></a><strong>4. 如果你不懂实用性的英语，学习吧。</strong></h4>
<p>作为一个美国人和一个以英语为母语的人，我以前很不情愿提到这点，免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点，那就是英语是黑客文化和Internet的工作语言，你需要懂得以便在黑客社区顺利工作。</p>
<p>这一点千真万确。大概1991年的时候我就了解到许多黑客在技术讨论中使用英语，甚至当他们的母语都相同，英语对他们而言只是第二语言的时候；据我知道的报导，当前英语有着比其他语言丰富得多的技术词汇，因此是一个对于工作来说相当好的工具。基于类似的原因，英文技术书籍的翻译通常不令人满意（如果有翻译的话）。</p>
<p>Linus Torvalds，一个芬兰人，用英语注释他的代码（很明显这对他来说不是凑巧）。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。</p>
</div>
</div>
<div class="SECT1"><strong><strong><br />
</strong></strong></p>
<hr />
<h3><a name="STATUS"></a><strong>黑客文化中的地位</strong></h3>
<p>象大部分不涉及金钱的文化一样，黑客王国靠声誉运转。你设法解决有趣的问题，但它们到底多有趣，你的解法有多好，是要由那些和你具有同样技术水平的人或比你更厉害的人去评判的。</p>
<p>相应地，当你在玩黑客游戏时，你得认识到你的分数主要靠其他黑客对你的技术的评价给出（这就是为什么只有在其它黑客称你为黑客时，你才算得上是一名黑客）。这个事实常会被黑客是一项孤独的工作这一印象所减弱；也会被另一个黑客文化的禁忌所减弱（现在逐渐减弱但仍强大）：拒绝承认自我或外部评估与一个人的动力有关系。</p>
<p>特别地，黑客王国被人类学家们称为一种<em class="EMPHASIS">奉献文化。</em> 在这里你不是凭借你对别人的统治来建立地位和名望，也不是靠美貌，或拥有其他人想要的东西，而是靠你的奉献。尤其是奉献你的时间，你的创造和你的技术成果。</p>
<p>要获得其他黑客的尊敬，基本上有五种事情你可以干：</p>
<div class="SECT2">
<hr />
<h4><a name="RESPECT1"></a><strong>1. 写开放源代码软件</strong></h4>
<p>第一个（也是最集中的和传统的）是写些被其他黑客认为有趣或有用的程序，并把程序源代码提供给整个黑客文化使用。</p>
<p>（过去我们称之为“free software （自由软件）”，但这却使很多不知 free 的精确含义的人感到困惑。现在我们很多人，根据搜索引擎网页内容分析至少有2：1的比率，使用“ <a href="http://www.opensource.org/" target="_top">open-source</a>”software（开放源代码软件）这个词）。</p>
<p>黑客王国里最受尊敬的偶像是那些写了大型的、好用的、具有广泛用途的软件，并把它们公布出去，使得每人都在使用他软件的人。</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="RESPECT2"></a><strong>2. 帮助测试并调试开放源代码软件</strong></h4>
<p>黑客也尊敬那些使用、测试开放源代码软件的人。在这个并非完美的世界上，我们不可避免地要花大多数的开发时间在调试阶段。 这就是为什么任何有头脑的开放源代码的作者都会告诉你好的beta测试员（知道如何清楚描述出错症状，很好地定位错误，能忍受快速发布中的bug，并且愿意使用一些简单的诊断工具）象红宝石一样珍贵。 甚至他们中的一个能判断出哪个测试阶段是延长的，哪个是令人精疲力尽的噩梦，哪个只是一个有益的小麻烦。</p>
<p>如果你是个新手，试着找一个你感兴趣的正在开发的程序，做一个好的beta测试员。你会自然地从帮着测试，进步到帮着抓臭虫，到最后帮着改程序。你会从中学到很多，并且与未来会帮你的人结下友谊。</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="RESPECT3"></a><strong>3. 公布有用的信息</strong></h4>
<p>另一个好事是收集整理有用有趣的信息做成网页或文档如FAQ列表，且让他们容易获得。</p>
<p>主要技术FAQ的维护者受到几乎同其他开放源代码的作者一样多的尊敬。</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="RESPECT4"></a><strong>4. 帮助维护基础设施的运转</strong></h4>
<p>黑客文化（还有Internet的工程方面的发展，就此而言）是靠自愿者运转的。要使Internet能正常工作，就要有大量枯燥的工作不得不去完成——管理mail list，新闻组，维护大型软件库，开发RFC和其它技术标准等等。</p>
<p>做这类事情的人会得到很多尊敬，因为每人都知道这些事情是十分花时间又不象编程那样好玩。做这些事情需要奉献精神。</p>
</div>
<div class="SECT2">
<hr />
<h4><a name="RESPECT5"></a><strong>5. 为黑客文化本身服务</strong></h4>
<p>最后，你可以为这个文化本身做宣传（例如，象我这样，写一个“如何成为黑客”的正面的教程 <img src='http://www.kxboy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ）（译者：不知道Barret把它翻成中文算不算？）。这并非一定要在你已经在这个圈子呆了很久，因以上四点中的某点而出名，有一定声誉后才能去做。</p>
<p>黑客文化没有领袖。精确地说，它确实有些文化英雄、部落长者、历史学家和发言人。若你在这圈内呆的够长，你或许成为其中之一。记住：黑客们不相信他们的部落长者的自夸的炫耀，因此大举追求这种名誉是危险的。与其奋力追求，不如先摆正自己的位置等它自己到你的手中——那时则要做到谦虚和优雅。</p>
</div>
</div>
<div class="SECT1">
<hr />
<h3><a name="NERD_CONNECTION"></a><strong>黑客和书呆子(Nerd)的联系</strong></h3>
<p>同流行的迷思相反，做一名黑客并不一定要你是个书呆子。但它确实有帮助，而且许多黑客事实上是书呆子。做一个深居简出的人有助于你集中精力进行十分重要的事情，如思考和编程。</p>
<p>因此，很多黑客都愿意接受“书呆子”这个外号，更有甚者使用更尖刻的“geek（怪人）”一词并引以为豪—— 这是一种宣布他们独立于主流社会的声明方式。访问 <a href="http://samsara.circus.com/~omni/geek.html" target="_top">The Geek Page</a> 参加更多的讨论。</p>
<p>如果你能集中足够的精力做好黑客工作同时还能有正常的生活，这很好。现在作到这一点比我在1970年代是新手的时候要容易的多；如今主流文化对技术怪人要友善的多。甚至有越来越多的人意识到黑客通常是很好的恋人和配偶的材料。</p>
<p>如果你因为生活上不如意而迷上做黑客，那也没什么——至少你不会分神了。或许以后你会找到自己的另一半。</p>
</div>
<div class="SECT1">
<hr />
<h3><a name="STYLE"></a><strong>风格的意义</strong></h3>
<p>重申一下，作为一名黑客，你必须进入黑客精神之中。当你不在计算机边上时，你仍然有很多对黑客工作有帮助的事情可做。它们并不能替代真正的编程（没有什么能），但很多黑客都那么做，并感到它们与黑客的本质存在某些基本的连系。</p>
<p><a name="DO_THIS"></a></p>
<ul>
<li>学会流畅地用母语写作。尽管程序员不能写好文章的错误看法相当普遍，但是有令人惊讶数目的黑客（包括所有我知道的最棒的）都是不错的作家。</li>
<li>阅读科幻小说。参加科幻小说讨论会。（一个碰到黑客和未来会成为黑客的人的好方法）</li>
<li>学禅，并且/或者练功习武。（精神修炼看来是惊人相似。）</li>
<li>练就能分析音乐的听觉，学会鉴赏特别的音乐。学会玩某种乐器，或唱歌。</li>
<li>提高对双关语、文字游戏的鉴赏能力。</li>
</ul>
<p>这些事情，你已经做的越多，你就越是天生做黑客的材料。至于为什么偏偏是这些事情，原因并不完全清楚，但它们都涉及用到左－右脑能力的综合，这似乎是关键所在（黑客们既需要清晰的逻辑思维，有时又需要偏离逻辑跳出问题的表象）。</p>
<p>最后，还有一些<em class="EMPHASIS">不</em>要去做的事情。</p>
</div>
</div>
<ul>
<li>不要使用愚蠢的，哗众取宠的ID或昵称。</li>
<li>不要卷入Usenet（或其他地方的论坛）的骂战。</li>
<li>不要自称为“cyberpunk（网络叛客）”，也不要浪费时间和那些人打交道。</li>
<li>不要让你寄出的Email或张贴的帖子充满错误的拼写和乱七八糟的语法。</li>
</ul>
<p>做以上的事情，只会招来嘲笑。黑客们个个记忆超群—— 你将需要数年的时间让他们忘记你犯下的错误。</p>
<p>网名的问题值得深思。将身份隐藏在虚假的名字后是骇客、解密者、d00dz 及其他低等生物幼稚愚蠢的行为特点。黑客不会做这些事；他们对他们所作的感到骄傲，而且乐于人们将作品与他们的 <em class="EMPHASIS">真</em>名相联系。因此, 若你现在用假名，放弃它。在黑客文化里它会令你你失败的。</p>
<div class="SECT1">
<hr />
<h3><a name="RESOURCES"></a><strong>其它资源</strong></h3>
<p>Peter Seebach 维护着一个非常好的 <a href="http://www.plethora.net/~seebs/faqs/hacker.html" target="_top">Hacker FAQ</a>，专给那些不懂如何与黑客打交道的经理看的。如果Peter的站点不能访问，下面这个 <a href="http://search.excite.com/search.gw?search=%22HACKER+FAQ%22+%2Bseebach%26tsug=-1%26c+sug=10" target="_top">Excite搜索</a>应该有一份拷贝。</p>
<p>我也著有 <a href="/~esr/writings/hacker-history/hacker-history.html" target="_top"><em class="CITETITLE">黑客文化简史</em></a>。</p>
<p>我写了一份 <a href="../writings/cathedral-bazaar/index.html" target="_top"><em class="CITETITLE">大教堂与市集</em></a>，对于Linux及开放源代码文化现象有详细的解释。我也在这个话题上进一步阐述导致的结局—— <a href="http://www.tuxedo.org/~esr/writings/homesteading/" target="_top"><em class="CITETITLE">开拓智域</em></a>。</p>
<p>Rick Moen写了一份很好的关于 <a href="http://linuxmafia.com/~rick/essays/newlug.html" target="_top">如何运转一个Linux用户组</a>的文档。</p>
<p>我和Rick Moen合作完成了另一份关于 <a href="http://www.tuxedo.org/~esr/faqs/smart-questions.html" target="_top">提问的智慧</a>的文章，可以让你事半功倍的获得帮助。</p>
<p>如果你想知道PC、UNIX及Internet基本概念和工作原理，参考 <a href="http://linuxdoc.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/" target="_top">The Unix and Internet Fundamentals HOWTO</a>。</p>
<p>当你释放出一个软件或为其打补丁，试着按 <a href="http://linuxdoc.org/HOWTO/Software-Release-Practice-HOWTO/index.html" target="_top">软件发行惯例 HOWTO</a>去做。（以上的提到的文章的中文版大多都可以在www.aka.org.cn和www.linuxforum.net找到。）</p>
</div>
<div class="SECT1">
<hr />
<h3><a name="FAQ"></a><strong>FAQ（常问问题解答）</strong></h3>
<div class="QANDASET">
<dl>
<dt>问：<a href="#AEN277">你能教我做黑客吗？</a></dt>
<dt>问：<a href="#AEN286">那么，我要如何开始？</a></dt>
<dt>问：<a href="#AEN292">我得什么时候开始学？现在会不会太迟了？</a></dt>
<dt>问：<a href="#AEN297">要学多久才能学会黑客道？</a></dt>
<dt>问：<a href="#AEN302">Visual Basic及Delphi是好的入门语言吗？</a></dt>
<dt>问：<a href="#AEN309">你能帮我“黑”掉一个站点吗？或者教我怎么黑它？</a></dt>
<dt>问：<a href="#AEN314">我怎么样才能得到别人帐号的密码？</a></dt>
<dt>问：<a href="#AEN319">我如何入侵/查看/监视别人的Email？</a></dt>
<dt>问：<a href="#AEN324">我如何才能在IRC聊天室里偷到频道op的特权？</a></dt>
<dt>问：<a href="#AEN329">我被黑了。你能帮我避免以后再被攻击吗？</a></dt>
<dt>问：<a href="#AEN334">我的Windows软件出现问题了。你能帮我吗？</a></dt>
<dt>问：<a href="#AEN339">我在哪里能找到可以与之交流的真正的黑客？</a></dt>
<dt>问：<a href="#AEN346">你能推荐一些有关黑客的好书吗？</a></dt>
<dt>问：<a href="#AEN355">成为一名黑客我需要擅长数学吗？</a></dt>
<dt>问：<a href="#AEN361">我该从那种语言学起？</a></dt>
<dt>问：<a href="#AEN374">我需要什么样的机器配置？</a></dt>
<dt>问：<a href="#AEN382">我得因此憎恨和反对Microsoft吗？</a></dt>
<dt>问：<a href="#AEN387">但开放源代码软件不会使程序员丢饭碗吗？</a></dt>
<dt>问：<a href="#AEN393">我要如何开始？哪里有免费的Unix？</a></dt>
</dl>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN277"></a><strong>问：你能教我做黑客吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>自从第一次发布这份文档，我每周都会收到一些请求，（频繁的话一天几封）要我“教会他们做黑客”。遗憾的是，我没有时间和精力来做这个；我自己的黑客项目，及我作为一个开放源代码倡导者的四处奔波已经占用了我110%的时间。</p>
<p>即便我想教你，黑客也依然基本上是一项自行修炼的的态度和技术。当真正的黑客想帮助你的时候，如果你乞求他们一汤匙一汤匙“喂”你的话，你会发现他们不会尊重你。</p>
<p>先去学一些东西。显示你在尝试，你能靠自己去学习。然后再去向你遇到的黑客请教特殊的问题。</p>
<p>如果你发E-mail给一位黑客寻求他的帮助，这是两件首要记住的事情。第一，写出来的文字显得懒且粗心的人通常非常懒于思考且非常马大哈，不能成为好黑客—— 因此注意拼写正确，使用正确的语法及发音，否则你可能会无人理睬。第二，不要<em class="EMPHASIS">试图</em>要求回复到一个ISP帐号，而那个帐号与你的发信地址不同。这样做的人一般是使用盗用帐号，不会有人有兴趣为虎作伥帮助窃贼的。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN286"></a><strong>问：那么，我要如何开始？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>对你而言最佳的入门方式也许是去参加LUG（Linux用户组）的聚会。你可以找到在<a href="http://www.linuxdoc.org/intro.html" target="_top"> LDP的综合Linux信息页面</a>上找到类似的组织；也许有一个在你家附近的，而且非常有可能与一所大学或学校挂钩。如果你提出要求，LUG成员兴许会给你一套Linux，当然此后会帮你安装并带你入门。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN292"></a><strong>问：我得什么时候开始学？现在会不会太迟了？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>你有动力学习的时候就是好时候。大多数人看来都是在15－20岁之间开始感兴趣的，但据我所知，在此年龄段之外的例外也是有的。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN297"></a><strong>问：要学多久才能学会黑客道？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>这取决于你的聪明程度和努力程度。大多数人只要他们专注，就能在18个月到2年之间学会一套令人尊敬的技能。但是，不要以为就此结束了；如果你是一个真正的黑客，你要用你的余生来学习和完善你的技术。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN302"></a><strong>问：Visual Basic及Delphi是好的入门语言吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>不，因为他们不是可移植的。他们不是那些语言的开放源代码实现，所以你被限制在厂商选择支持的那些平台里。接受这样一种垄断局面不是黑客的态度。</p>
<p>Visual Basic特别糟糕。它是Microsoft的私有语言这个事实就足够让它脸面全无，不像其他的Basic，它是一种设计糟糕的语言会教给你坏的编程习惯。</p>
<p>其中一个坏习惯是会依赖于单一厂商的函数库、控件及开发工具。一般而言，任何不能够支持至少Linux或者一种BSD，或其他第三方操作系统的语言，都是一种不适合应付黑客工作的语言。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN309"></a><strong>问：你能帮我“黑”掉一个站点吗？或者教我怎么黑它？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>No。任何读完这份FAQ后还问这个问题的人，都是无可救药的蠢材，即使有时间指教我也不会理睬。任何发给我的此类E-mail都会被忽略或被痛骂一顿。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN314"></a><strong>问：我怎么样才能得到别人帐号的密码？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>这是骇客行为。滚得远远的，白痴。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN319"></a><strong>问：我如何入侵/查看/监视别人的Email？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>这是骇客行为。在我面前消失，混蛋。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN324"></a><strong>问：我如何才能在IRC聊天室里偷到频道op的特权？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>这是骇客行为。去S吧，冥顽不灵的家伙。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN329"></a><strong>问：我被黑了。你能帮我避免以后再被攻击吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>不行。目前为止，每次问我这个问题的，都是一些运行Microsoft Windows的菜鸟。不可能有效的保护Windows系统免受骇客攻击；太多缺陷的代码和架构使保护Windows的努力有如隔靴搔痒。唯一可靠的预防来自转移到Linux或其他设计得至少足够安全的系统。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN334"></a><strong>问：我的Windows软件出现问题了。你能帮我吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>当然。进入DOS方式，然后键入“format c:”。你遇到的任何问题将会在几分钟之内消失。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN339"></a><strong>问：我在哪里能找到可以与之交流的真正的黑客？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>最佳办法是在你附近找一个Unix或Linux的用户组，参加他们的聚会。（你可以在Metalab的<a href="http://www.linuxdoc.org" target="_top">LDP</a>站点找到一些指向用户组的链接。）</p>
<p>我过去曾说过不能在IRC上找到真正的黑客，但我发觉现在情况有所改变。显然一些真正的黑客的社区像GIMP及Perl，也有IRC频道了。）</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN346"></a><strong>问：你能推荐一些有关黑客的好书吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>我维护着一份<a href="http://www.linuxdoc.org/HOWTO/Reading-List-HOWTO/index.html" target="_top">Linux Reading List HOWTO</a>，也许你会觉得有用。 <a href="loginataka.html" target="_top">Loginataka</a>也很有意思。</p>
<p>关于Python的介绍，请访问在Python站点上的 <a href="http://www.python.org/doc/Intros.html" target="_top">入门资料</a>。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN355"></a><strong>问：成为一名黑客我需要擅长数学吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>不用。黑客道很少使用常规的数学或算术，不过你绝对需要能逻辑性地思考和进行精密的推理。</p>
<p>尤其是你不会用到微积分或电路分析（我们把这些留给电子工程师们 <img src='http://www.kxboy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ）。 一些有限数学（包括布尔代数，集合论，组合数学，图论）的背景知识会有帮助。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN361"></a><strong>问：我该从那种语言学起？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>HTML——如果你还不懂的话。市面上有一大堆的封面精美，宣传得天花乱坠的 <em class="EMPHASIS">糟糕的</em> HTML书籍，不幸的是很少有好的。我最喜欢的是 <a href="http://www.oreilly.com/catalog/html3/" target="_top"><em class="CITETITLE">HTML: The Definitive Guide</em></a>。</p>
<p>但 HTML 不完全是一种编程语言。当你准备开始编程时，我推荐从 <a href="http://www.python.org" target="_top">Python</a>起步。你会听到一大群人推荐 Perl，并且 Perl 依然比 Python 流行得多，但是难学得多且（以我之见）设计得不是很好。</p>
<p>C 确实重要，但它要比 Python 或 Perl 难多了。不要尝试先学 C。</p>
<p>Windows用户<em class="EMPHASIS">不要</em>满足于 Visual Basic。它会教给你坏习惯，而且它不可以移植，只能在Windows下运行。避免它。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN374"></a><strong>问：我需要什么样的机器配置？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>过去个人电脑能力相当不够并且内存小，结果给黑客的学习过程设置了人为的障碍。不过一段时间以前开始就不是这样了；任何配置比一台 Intel 486DX50 好的机器都有足够的能力进行开发工作，X，及 Internet 通讯，同时你现在买的最小的磁盘都大得富足了。（依Barret之见，现在要至少Pentium 166MMX才够。）</p>
<p>选择用来学习的机器时重要的一点是注意配件是否是Linux兼容的（或BSD兼容，如果你选择学 BSD）。同刚才提到的一样，大多数现在的机器都是符合的；唯一的值得注意的区域在于 modem和打印机；有些具备为Windows设计的配件的机器不会在Linux下工作。</p>
<p>关于硬件兼容性有一个FAQ；最新版本在 <a href="http://users.bart.nl/~patrickr/hardware-howto/Hardware-HOWTO.html" target="_top">这里</a>。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN382"></a><strong>问：我得因此憎恨和反对Microsoft吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>不，你不必如此。不是因为Microsoft不令人讨厌，而是因为黑客文化早在 Microsoft出现之前就存在了，且将在Microsoft成为历史后依然存在。你耗费在憎恨Microsoft的任何力气不如花在爱你的技术上。写好的代码—— 那会相当有效地打击Microsoft又不会让你得到恶报应。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN387"></a><strong>问：但开放源代码软件不会使程序员丢饭碗吗？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>看起来不太可能——目前为止，开放源代码软件产业似乎创造了更多的就业机会而不是减少就业机会。如果写一个程序比起不写来是纯经济收益的话，那么在写完后，程序员应该得到报酬不管程序是否是开放源代码。并且，无论写出多么“免费自由”的软件，都存在更多对新的，定制的软件的需求。我有这方面更多的论述，放在<a href="http://www.opensource.org" target="_top">开放源代码</a> 网站资料中。</p>
</div>
</div>
<div class="QANDAENTRY">
<div class="QUESTION">
<p><big><a name="AEN393"></a><strong>问：我要如何开始？哪里有免费的Unix？</strong></big></p>
</div>
<div class="ANSWER">
<p><strong>答：</strong>在本份文档的某个地方我已经提到过何处可以得到最常用的免费Unix。要做一名黑客，你需要自立自强，以及自学能力。现在开始吧……</p>
<p>==================================</p>
<p>这篇文章我已经在其它地方读了好几遍了，但总也读不够，实在是有转载的必要。</p>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/ruhe-chengwei-heike.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何修改浏览器Cookie</title>
		<link>http://kxboy.com/wenzhai/xiugai-cookie.html</link>
		<comments>http://kxboy.com/wenzhai/xiugai-cookie.html#comments</comments>
		<pubDate>Fri, 24 Feb 2012 00:39:18 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=806</guid>
		<description><![CDATA[Firefox: 安装 Web Developer 插件，装完重启之后会出现一排新的工具栏，点击 Cookies -&#62; Add Cookie… 即可增加/修改一个Cookie了。 Opera: Opera 可以在 菜单 -&#62; 工具 -&#62; 高级 -&#62; Cookie… 对话框中找到当前的页面的 Cookie 项，选中以后点“编辑…”即可修改。如果修改不成功的话，有可能是因为启用了 Opera Turbo 加速器导致的，可以检查 菜单 -&#62; 工具 -&#62; 快速参数(F12) -&#62; 启动Opera Turbo 是否开启，如开启着的话，把它关闭以后再试试是不是可以了。 Chrome: 安装 Edit This Cookie 插件，之后点击插件图标即可操作 Cookie。 IE: 可以用 IECookiesView 碰碰运气，IE8以上版本可以直接按F12键修改Cookie。 &#8230; <a href="http://kxboy.com/wenzhai/xiugai-cookie.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">Firefox</strong>:<br />
安装 <a href="https://addons.mozilla.org/en-us/firefox/addon/web-developer/" target="_blank">Web Developer</a> 插件，装完重启之后会出现一排新的工具栏，点击 Cookies -&gt; Add Cookie… 即可增加/修改一个Cookie了。</p>
<p><strong>Opera</strong>:<br />
Opera 可以在 菜单 -&gt; 工具 -&gt; 高级 -&gt; Cookie… 对话框中找到当前的页面的 Cookie 项，选中以后点“编辑…”即可修改。如果修改不成功的话，有可能是因为启用了 Opera Turbo 加速器导致的，可以检查 菜单 -&gt; 工具 -&gt; 快速参数(F12) -&gt; 启动Opera Turbo 是否开启，如开启着的话，把它关闭以后再试试是不是可以了。</p>
<p><strong>Chrome</strong>:<br />
安装<a href="https://chrome.google.com/extensions/detail/fngmhnnpilhplaeedifhccceomclgfbg" target="_blank"> Edit This Cookie</a> 插件，之后点击插件图标即可操作 Cookie。</p>
<p><strong>IE</strong>:<br />
可以用 <a href="http://www.nirsoft.net/utils/iecookies.html" target="_blank">IECookiesView </a>碰碰运气，IE8以上版本可以直接按F12键修改Cookie。</p>
<p>====================</p>
<p>原文出处：<a href="http://www.ebnd.cn/2011/02/22/edit-browser-cookies/">http://www.ebnd.cn/2011/02/22/edit-browser-cookies/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/xiugai-cookie.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[转]Echofon for Firefox 去广告方法</title>
		<link>http://kxboy.com/wenzhai/echofon-firefox-qu-guanggao.html</link>
		<comments>http://kxboy.com/wenzhai/echofon-firefox-qu-guanggao.html#comments</comments>
		<pubDate>Wed, 15 Feb 2012 12:22:35 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[echofon]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[去广告]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=801</guid>
		<description><![CDATA[2012年1月31日, 优秀的Firefox扩展、Twitter客户端 Echofon for Firefox 更新至 2.4版本, 引入了广告功能, 未购买授权的用户在自己的timeline 上方会看到有一块很大的广告. 通过阅读这个浏览器扩展的源代码，我发现Echofon for Firefox 的广告功能是这样工作的 Echofon for Firefox 会将用户信息提交到 140proof api ; 140proof 收集用户的公开数据后，根据用户兴趣产生不同的广告内容 ; Echofon for Firefox 将获取的广告显示在用户界面 . echofon-firefox-qu-guanggao在仔细研究了 Echofon for Firefox 的最终用户协议 后, 我没有找到不支持Echofon for Firefox 投放广告的条款. UberMedia &#8230; <a href="http://kxboy.com/wenzhai/echofon-firefox-qu-guanggao.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>2012年1月31日, 优秀的Firefox扩展、<a href="http://twitter.com/">Twitter</a>客户端 Echofon for Firefox 更新至 2.4版本, 引入了广告功能, 未购买授权的用户在自己的timeline 上方会看到有一块很大的广告.</p>
<p>通过阅读这个浏览器扩展的源代码，我发现Echofon for Firefox 的广告功能是这样工作的</p>
<ol>
<li>Echofon for Firefox 会将用户信息提交到 140proof api ;</li>
<li>140proof 收集用户的公开数据后，根据用户兴趣产生不同的广告内容 ;</li>
<li>Echofon for Firefox 将获取的广告显示在用户界面 .</li>
</ol>
<p><span id="more-801"></span></p>
<p>echofon-firefox-qu-guanggao在仔细研究了 <a href="http://www.echofon.com/twitter/firefox/EULA.html">Echofon for Firefox 的最终用户协议</a> 后, 我没有找到不支持Echofon for Firefox 投放广告的条款. <a href="http://ubermedia.com/privacy">UberMedia 的隐私条款</a>也说UberMedia 可以收集某些用户数据并利用收集到的数据定制广告内容.</p>
<p>不过Echofon for Firefox 的最终用户协议禁止了几项用户权利（出借或出让该软件，移除该软件的版权标志, 逆向工程或修改该软件, 复制或发行该软件，非授权地转移该软件，出于犯罪意图非法地使用该软件），可能包括下面阻止广告的行为.</p>
<p><span style="color: #ff0000;">注 意: 以下行为有可能触犯当地的法律条款, Echofon for Firefox 的最终用户协议 或 UberMedia 的隐私条款, 也可能会影响Firefox 和Echofon for Firefox 的稳定性, 安全性或性能; 任何用户在执行这些行为前都应先自行评估其可能造成的后果; 如果选择执行这些行为, 则该用户必须对自己的选择负全责.</span></p>
<ol>
<li>在Firefox里安装Echofon for Firefox ;</li>
<li>在 Firefox地址栏里输入about:support 回车, 在页面中点击”Open Containing Folder” 打开当前使用的Profile文件夹, 进入 extensions\twitternotifier@naan.net\components\ ;</li>
<li>用notepad++/notepad2等<a href="http://zh.wikipedia.org/zh-cn/%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91%E5%99%A8%E6%AF%94%E8%BE%83">文本编辑器</a>修改nsEchofon.js 中的getAd 函数, 改为
<pre>getAd: function(info) {
    this._pref.setBoolPref("licensed", true);
    EchofonUtils.notifyObservers("removeAds");
  },</pre>
<p>为了提高成功率, 可以下载我修改好的<a href="http://opengg.me/wp-content/uploads/2012/02/nsEchofon.js">nsEchofon.js</a> 替换掉原文件.</li>
<li>重启Firefox.</li>
</ol>
<p>ps:<br />
mac版 Firefox 的profile 路径是 ~/Library/Application Support/Firefox/Profiles/ , 感谢<a href="http://twitter.com/redsnow7">@redsnow7</a> 同学提供.<br />
绿色版的Firefox 的profile 可能不在默认位置, 请自行查找.</p>
<p>=================================================================<br />
文章转载自：鲁夫的爱 [ http://opengg.me/ ]<br />
原文标题：去除Echofon for Firefox 的广告<br />
原文地址：<a href="http://opengg.me/711/echofon-firefox-remove-ads/">http://opengg.me/711/echofon-firefox-remove-ads/</a><br />
=================================================================</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/echofon-firefox-qu-guanggao.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]重新启用 Google Reader 分享功能的 Chrome 插件</title>
		<link>http://kxboy.com/wenzhai/google-reader-share.html</link>
		<comments>http://kxboy.com/wenzhai/google-reader-share.html#comments</comments>
		<pubDate>Fri, 13 Jan 2012 14:20:35 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google Reader]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=785</guid>
		<description><![CDATA[文章来源：http://zh.sci-tech-watch.com/2011/11/google-reader-chrome.html 新的 Google Reader 武断的取消分享功能让很多用户充满着深深的怨念，现在只能通过 +1 来分享了share，但是对于镇上的同学们，这个功能感觉犹如鸡肋，甚是不便。 V2EX 的 keakon 同学做了一枚重新启用 Google Reader 分享功能的 Chrome 插件，能让用户找回原生的分享功能。不仅可以看到朋友们分享的条目，也恢复了分享功能。 已实现的功能： 1. 显示你分享的条目。 2. 显示你朋友分享的条目。 3. 分享一个条目。 尚未实现的功能： 1. 取消分享一个条目。 2. 支持快捷键。 3. 将条目标记为喜欢/不喜欢。 4. 添加/删除评论。 5. 添加/删除朋友。 6. 显示一个条目是否被分享、喜欢和评论过。 7. 显示条目由谁分享/喜欢的。 8. 支持中文。 &#8230; <a href="http://kxboy.com/wenzhai/google-reader-share.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>文章来源：<a title="http://zh.sci-tech-watch.com/2011/11/google-reader-chrome.html" href="http://zh.sci-tech-watch.com/2011/11/google-reader-chrome.html">http://zh.sci-tech-watch.com/2011/11/google-reader-chrome.html</a></p>
<p>新的 <a href="http://www.guao.hk/tag/google-reader">Google Reader</a> 武断的<a href="http://www.guao.hk/posts/google-reader-replaces-like-and-share-with-plusone.html">取消分享功能</a>让很多用户充满着深深的怨念，现在只能通过 +1 来分享了share，但是对于镇上的同学们，这个功能感觉犹如鸡肋，甚是不便。</p>
<p>V2EX 的 <a href="http://www.v2ex.com/member/keakon">keakon</a> 同学做了一枚重新启用 Google Reader 分享功能的 Chrome 插件，能让用户找回原生的分享功能。不仅可以看到朋友们分享的条目，也恢复了分享功能。<a href="http://www.kxboy.com/wp-content/uploads/2012/01/Readershare.png"><img style="display: inline; margin-left: 0px; margin-right: 0px; border: 0px;" title="Reader-share" src="http://www.kxboy.com/wp-content/uploads/2012/01/Readershare_thumb.png" alt="Reader-share" width="197" height="244" align="right" border="0" /></a></p>
<blockquote><p><strong>已实现的功能：</strong></p>
<p style="padding-left: 40px;">1. 显示你分享的条目。<br />
2. 显示你朋友分享的条目。<br />
3. 分享一个条目。</p>
<p><strong>尚未实现的功能：</strong></p>
<p style="padding-left: 40px;">1. 取消分享一个条目。<br />
2. 支持快捷键。<br />
3. 将条目标记为喜欢/不喜欢。<br />
4. 添加/删除评论。<br />
5. 添加/删除朋友。<br />
6. 显示一个条目是否被分享、喜欢和评论过。<br />
7. 显示条目由谁分享/喜欢的。<br />
8. 支持中文。</p>
<p>源代码: <a href="https://bitbucket.org/keakon/reader-sharer/">https://bitbucket.org/keakon/reader-sharer/</a></p></blockquote>
<p><a href="https://chrome.google.com/webstore/detail/gmgmcmhmodidojodfoekpbjnejlhcbpb">传送门在此</a>。</p>
<p>via <a href="http://www.v2ex.com/t/20573#reply0">v2ex</a></p>
<p>++++++++++++++++++++分割线++++++++++++++++++++++++++</p>
<p>Google Reader 没了分享功能，相当于一个武林高手被废了一半武功。非常感谢这些技术达人，帮助Google Reader找回以前七成的功力。</p>
<p>毫不夸张的说，Google Reader是推动博客强有力发展的重要因素之一。写文章的价值，在于分享，在于欣赏。Google Reader给了人们更多发现好文章的机会，一篇文章代表了一位作者的劳动成果，Google Reader的分享功能让好文章传播的更远，读者更多。</p>
<p>作为Google Reader的死忠用户之一，我非常不习惯在Google Plus的噪音中去寻找有用的文章。Google Reader 的分享功能是一个非常强悍的过滤器，没了分享功能，结果只能让我对Reader渐渐灰心，但是对Google Plus也更多一份厌恶。正是因为有了Google plus，才毁掉了Google Reader。</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/google-reader-share.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有关SQL模糊查询</title>
		<link>http://kxboy.com/wenzhai/sql-mohu-chaxun.html</link>
		<comments>http://kxboy.com/wenzhai/sql-mohu-chaxun.html#comments</comments>
		<pubDate>Mon, 02 Jan 2012 12:38:17 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://kxboy.com/wenzhai/sql-mohu-chaxun.html</guid>
		<description><![CDATA[原文出处：有关SQL模糊查询 执行 数据库查询时，有完整查询和模糊查询之分。 一般模糊语句如下：sql-chaxun SELECT 字段 FROM 表 WHERE 某字段 Like 条件其中关于条件，SQL提供了四种匹配模式： 1，%：表示任意0个或多个字符。可匹配任意类型和长度的字符，有些情况下若是中文，请运用两个百分号（%%）表示。 比如 SELECT * FROM [user] WHERE u_name LIKE &#8216;%三%&#8217; 将会把u_name为“张三”，“张猫三”、“三脚猫”，“唐三藏”等等有“三”的记录全找出来。 另外，如果须要找出u_name中既有“三”又有“猫”的记录，请运用 and条件SELECT * FROM [user] WHERE u_name LIKE &#8216;%三%&#8217; AND u_name LIKE &#8216;%猫%&#8217; 若运用 SELECT * FROM &#8230; <a href="http://kxboy.com/wenzhai/sql-mohu-chaxun.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>原文出处：<a href="http://www.cnblogs.com/codeyu/archive/2009/04/16/1437426.html">有关SQL模糊查询</a>
<p>执行 数据库查询时，有完整查询和模糊查询之分。
<p>一般模糊语句如下：sql-chaxun
<p>SELECT 字段 FROM 表 WHERE 某字段 Like 条件<br />其中关于条件，SQL提供了四种匹配模式：
<p>1，%：表示任意0个或多个字符。可匹配任意类型和长度的字符，有些情况下若是中文，请运用两个百分号（%%）表示。
<p>比如 SELECT * FROM [user] WHERE u_name LIKE &#8216;%三%&#8217;
<p>将会把u_name为“张三”，“张猫三”、“三脚猫”，“唐三藏”等等有“三”的记录全找出来。
<p>另外，如果须要找出u_name中既有“三”又有“猫”的记录，请运用 and条件<br />SELECT * FROM [user] WHERE u_name LIKE &#8216;%三%&#8217; AND u_name LIKE &#8216;%猫%&#8217;
</p>
<p><span id="more-778"></span>
<p>若运用 SELECT * FROM [user] WHERE u_name LIKE &#8216;%三%猫%&#8217;<br />虽然能搜索出“三脚猫”，但不能搜索出符合条件的“张猫三”。
<p>2，_： 表示任意单个字符。匹配单个任意字符，它常用来限定表达式的字符长度语句：
<p>比如 SELECT * FROM [user] WHERE u_name LIKE &#8216;_三_&#8217;<br />只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的；
<p>再比如 SELECT * FROM [user] WHERE u_name LIKE &#8216;三__&#8217;;<br />只找出“三脚猫”这样name为三个字且第一个字是“三”的；
<p>3，[ ]：表示括号内所列字符中的一个（类似正则表达式）。指定一个字符、字符串或范围，要求所匹配对象为它们中的任一个。
<p>比如 SELECT * FROM [user] WHERE u_name LIKE &#8216;[张李王]三&#8217;<br />将找出“张三”、“李三”、“王三”（而不是“张李王三”）；
<p>如 [ ] 内有一系列字符（01234、abcde之类的）则可略写为“0-4”、“a-e”<br />SELECT * FROM [user] WHERE u_name LIKE &#8216;老[1-9]&#8216;<br />将找出“老1”、“老2”、……、“老9”；
<p>4，[^ ] ：表示不在括号所列之内的单个字符。其取值和 [] 相同，但它要求所匹配对象为指定字符以外的任一个字符。
<p>比如 SELECT * FROM [user] WHERE u_name LIKE &#8216;[^张李王]三&#8217;<br />将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等；
<p>SELECT * FROM [user] WHERE u_name LIKE &#8216;老[^1-4]&#8216;;<br />将排除“老1”到“老4”，寻找“老5”、“老6”、……
<p>5，查询内容包含通配符时
<p>由于通配符的缘故，导致我们查询特殊字符“%”、“_”、“[”的语句不能正常实现，而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数：
<p>function sqlencode(str)<br />str=replace(str,”[","[[]“) &#8216;此句一定要在最前
<p>str=replace(str,”_”,”[_]“)<br />str=replace(str,”%”,”[%]“)<br />sqlencode=str<br />end function
<p>在查询前将待查字符串先经该函数处理即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/sql-mohu-chaxun.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]引进国外图书版权刍议</title>
		<link>http://kxboy.com/wenzhai/banquan-yinjin.html</link>
		<comments>http://kxboy.com/wenzhai/banquan-yinjin.html#comments</comments>
		<pubDate>Tue, 20 Dec 2011 14:05:59 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[图书]]></category>
		<category><![CDATA[引进]]></category>
		<category><![CDATA[版权]]></category>

		<guid isPermaLink="false">http://kxboy.com/wenzhai/banquan-yinjin.html</guid>
		<description><![CDATA[在我国加入国际著作权公约的今天，版权贸易已为越来越多的出版社所重视。但在开展引进图书版权工作时，许多出版社不知通过何种途径取得授权。这确是一个值得研究并亟待解决的问题。那么，我们到底有哪些引进外国作品的途径呢?笔者认为，目前我国出版社引进外国图书版权的途径大致有8种。 一、直接与作者联系 这是一个比较简捷的方式。在引进版权过程中，如果能找到作者(或继承人)的地址，直接向作者取得授权是最好的。这可以解决一系列问题。这种方式较适宜引进日、德、法等国图书。 二、通过外国出版公司取得授权 当要引进一本书的版权时，按照版权上的地址，直接与书籍出版者联系授权是一种常用的方式。这对美、英等国尤其适用。因为在这些国家版权是可以卖断的，出版公司往往即是所出作品的版权人。我国的台湾也是如此。 三、通过版权代理机构取得授权 如果作者、出版者都找不到，那么还可通过代理机构取得授权，版权代理机构一般都与众多作者、出版者保持着联系，一些代理机构还经常拥有一些作品在某一地区授权的优先权。因此，通过代理机构常常会很快解决授权问题。在美、英等发达国家，版权代理极为普遍，一般作者要出版自己的作品，都要经版权代理人，否则，出版公司不接受。 四、通过有关学者帮助取得授权 我们欲引进的书籍，有许多是由不同学科的学者提出的，一些学者原本就与书籍的作者或其家属有联系。所以，请与书籍有关的学者帮助联系授权也是一条途径。像中国社科院外文所的一些学者就曾帮助我们的出版社解决过授权难题。由于学者的非商业身分，还使得一些作品的引进费用有可能较常规低些。 五、通过外国驻华机构取得授权 外国驻华使领馆中，一般都有文化官员，他们对本国的文艺、科技、出版界较为了解。如能取得他们的支持，也是解决授权问题的一条途径。像法国驻外使馆，肩负着“推销”法语文化的使命，对外国引进法国作品版权的“忙”常常乐于帮助。 六、通过驻外机构帮助取得授权 我驻外机构中，有相当一部分人员熟悉所在国的文化、科技乃至于出版界的情况，这些人主要分布在使领馆、新华社分社、图书进出口总公司海外分部等机构，如能与他们建立联系，也会为引进版权带来一定的便利。 七、通过台港出版社取得授权 台湾、香港的一些出版公司因实力雄厚等原因，常能较顺利地取得外国作品的全球或全中国的中文版权。与外国出版公司相比，我们出版社与台港出版公司打交道要容易得多。因此，学会通过台港出版公司引进版权(在大陆出中文简体字版)也是一条可行之路。 八、通过合作出版取得授权 鉴于一些出版社一时尚无法或无力引进版权，借助海外出版公司的力量开展合作出版，从而解决版权问题，也不失为一条途径。这类合作可分几种方式。第一，由海外公司负责取得外国作品中文版权，支付版权报酬，由我方出版社在国内出版发行，获利按投入比例分成。第二，直接与拥有版权的外国出版公司搞合作出版。如同意其将(我方应付的)版权转让费作为投资，同时允许其另拿资金做部分出版投资，然后获利分成。这种方式对解决目前一些美、英出版公司因嫌单纯转让中文版权给我出版社利少事繁，而造成的引进难问题有一定的帮助。上述方式，都已有出版社做过尝试，并取得了一定的效果。]]></description>
			<content:encoded><![CDATA[<p>在我国加入国际著作权公约的今天，版权贸易已为越来越多的出版社所重视。但在开展引进图书版权工作时，许多出版社不知通过何种途径取得授权。这确是一个值得研究并亟待解决的问题。那么，我们到底有哪些引进外国作品的途径呢?笔者认为，目前我国出版社引进外国图书版权的途径大致有8种。
<p>一、直接与作者联系
<p>这是一个比较简捷的方式。在引进版权过程中，如果能找到作者(或继承人)的地址，直接向作者取得授权是最好的。这可以解决一系列问题。这种方式较适宜引进日、德、法等国图书。
<p>二、通过外国出版公司取得授权
<p>当要引进一本书的版权时，按照版权上的地址，直接与书籍出版者联系授权是一种常用的方式。这对美、英等国尤其适用。因为在这些国家版权是可以卖断的，出版公司往往即是所出作品的版权人。我国的台湾也是如此。
</p>
<p><span id="more-772"></span>
<p>三、通过版权代理机构取得授权
<p>如果作者、出版者都找不到，那么还可通过代理机构取得授权，版权代理机构一般都与众多作者、出版者保持着联系，一些代理机构还经常拥有一些作品在某一地区授权的优先权。因此，通过代理机构常常会很快解决授权问题。在美、英等发达国家，版权代理极为普遍，一般作者要出版自己的作品，都要经版权代理人，否则，出版公司不接受。
<p>四、通过有关学者帮助取得授权
<p>我们欲引进的书籍，有许多是由不同学科的学者提出的，一些学者原本就与书籍的作者或其家属有联系。所以，请与书籍有关的学者帮助联系授权也是一条途径。像中国社科院外文所的一些学者就曾帮助我们的出版社解决过授权难题。由于学者的非商业身分，还使得一些作品的引进费用有可能较常规低些。
<p>五、通过外国驻华机构取得授权
<p>外国驻华使领馆中，一般都有文化官员，他们对本国的文艺、科技、出版界较为了解。如能取得他们的支持，也是解决授权问题的一条途径。像法国驻外使馆，肩负着“推销”法语文化的使命，对外国引进法国作品版权的“忙”常常乐于帮助。
<p>六、通过驻外机构帮助取得授权
<p>我驻外机构中，有相当一部分人员熟悉所在国的文化、科技乃至于出版界的情况，这些人主要分布在使领馆、新华社分社、图书进出口总公司海外分部等机构，如能与他们建立联系，也会为引进版权带来一定的便利。
<p>七、通过台港出版社取得授权
<p>台湾、香港的一些出版公司因实力雄厚等原因，常能较顺利地取得外国作品的全球或全中国的中文版权。与外国出版公司相比，我们出版社与台港出版公司打交道要容易得多。因此，学会通过台港出版公司引进版权(在大陆出中文简体字版)也是一条可行之路。
<p>八、通过合作出版取得授权
<p>鉴于一些出版社一时尚无法或无力引进版权，借助海外出版公司的力量开展合作出版，从而解决版权问题，也不失为一条途径。这类合作可分几种方式。第一，由海外公司负责取得外国作品中文版权，支付版权报酬，由我方出版社在国内出版发行，获利按投入比例分成。第二，直接与拥有版权的外国出版公司搞合作出版。如同意其将(我方应付的)版权转让费作为投资，同时允许其另拿资金做部分出版投资，然后获利分成。这种方式对解决目前一些美、英出版公司因嫌单纯转让中文版权给我出版社利少事繁，而造成的引进难问题有一定的帮助。上述方式，都已有出版社做过尝试，并取得了一定的效果。</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/banquan-yinjin.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何选书</title>
		<link>http://kxboy.com/wenzhai/xuanshu.html</link>
		<comments>http://kxboy.com/wenzhai/xuanshu.html#comments</comments>
		<pubDate>Thu, 08 Dec 2011 15:36:00 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[技巧]]></category>
		<category><![CDATA[读书]]></category>
		<category><![CDATA[选书]]></category>

		<guid isPermaLink="false">http://kxboy.com/wenzhai/%e5%a6%82%e4%bd%95%e9%80%89%e4%b9%a6.html</guid>
		<description><![CDATA[本文转自编程随想的博客，文章的原文题目《如何选择IT技术书籍》，文中提到的这些选书技巧不仅仅适用于IT技术书籍，对其它类书籍同样适用。编程随想的博客建在墙外，如有兴趣者，请科学上网。 第1招：看网上评论 首先，上一些权威的图书网站，看看大伙儿的评价如何（要相信群众的眼睛是雪亮的）。对于英文书籍，我一般上亚马逊网站去看看；中文书籍则上豆瓣网。这两个网站都提供星级评分，一般&#62;=4星的评级都不差。（此招数对于正在逛书店的不一定适用，除非你随身带了上网的东东） 第2招：看作者 书籍作者的重要性无需多说。根据二八原理，大部分的好书都是少数优秀作者写出来的。如果作者是该领域的技术大牛或者知名评论家，那么该书的质量一般不会太差。不过要用这招，你首先得对这本书所在的领域有一定的了解，知道哪些人属于该领域的大牛。 （PS:国内很多垃圾书并不是某位作者写的，而是“攒”出来的。一般攒出来的书，东拼西凑，内容十分垃圾。很多时候连作者都不好意思署上自己的大名，干脆就署个“旁征博引”之类的笔名，要么就是“×××编著”，有底气的书作者署名一定是“×××著”。) 第3招：看出版信息 出版信息里面，主要看出版社、出版时间。好的出版社出的书，总体水平还过得去，不至于太滥，排版印刷错误也较少。 &#160; 出版时间的重要性得看具体的领域。比如某些领域（算法、软件工程等）的书，对于时间不敏感。即使年代久远也没有过时（比如人月神话发表于1975年）。而另一些领域（涉及具体的语言、软件、操作系统）则需要与时俱进，3-5年之前出版的书可能就已经过时了。 如果是纸版书，还可以看看再版次数和印数。这两个指标一般和销量成正比。不过也不排除少数阳春白雪的好书，销量很低。因此这两个指标仅供参考。 第4招：看目录 看完出版信息后，就可以大致看看目录。从目录可以了解到很多信息。好书的目录一般层次分明、条理清晰。滥书则反之。 看目录还可以在最短时间内大致了解该书的深浅以及内容的分布（看每一章占了多少页），从而判断这本书能否适合自己。 比如，我曾经看过一本国内作者写的《面向对象Java编程》。打开目录扫了一下，整本书都是讲Java语法，只在其中一章提到了OO，页数占全书比例不到10%（我强烈怀疑作者是否直接拿了SUN的Java语言规范汉化了一下，就拿去出版了）。 第5招：抽查几页 最后，可以挑书中的某个小节看一下。看看作者的文笔是否流畅、生动。如果是翻译的书，则还要注意一下翻译的水平如何。翻译的书的质量同时取决于作者和译者的水平，任何一个不行，整本书就好不到哪里去。 早些年学习MFC的时候，曾看过一本翻译的书，把MFC的“doc/view”翻译成”文档查看”，当场厥倒。所以有条件看看原著（你的洋文够牛）的同学就尽量看原著，免得被差劲的译者带到沟里。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 我个人还有一些选书的招数，就是看一本好书的作者在书中提到了什么书，就像博客里的内链一样，通过一本好书去寻找另一本好书。一般来说，如果对一本书的价值观认同，一般人也会认同作者文章中提到的其他书籍，如果这本书中恰好引用了另一本书中部分文字 ，而这段文字又非常有用，自然而然的我就会找这段文字的原始出处去读。或者，也可以参考下这本书的参考文献。在参考文献目录这方面，国外引进的书籍要远远胜于国内，看国外的书籍，引用方面做得特别好，这是对知识，对原作者最起码的尊重。 朋友推荐，现实生活中周围爱读书的朋友并不多，我甚至可以算上是比较喜欢读书的那一拨，能从他们身上得到推荐实在是不容易。但是，我在网上有很多感兴趣的社区，社区里自然也就会有很多让我敬佩的大牛ID,平日里多关注下这些大牛ID的只字片语，看看这些人喜欢读什么书，言谈中偶尔提到什么书，提到哪些作者，再下意识地去寻找这些书，找到好书的几率就比较大。 其实，找书的过程也是一种信息挖掘能力的培养。 我有段时间，非常喜欢看《少年包青天》，最喜欢的是片头曲中的一段歌词：“一些漫步经心的说话，将我疑惑解开；一种莫名其妙的冲动，叫我继续追寻；你的一举一动，我却备加留心，只要真相大白，一切一切无愧于心。”]]></description>
			<content:encoded><![CDATA[<p>本文转自<a href="http://program-think.blogspot.com">编程随想的博客</a>，文章的原文题目《<a href="http://program-think.blogspot.com/2009/01/choose-it-book.html">如何选择IT技术书籍</a>》，文中提到的这些选书技巧不仅仅适用于IT技术书籍，对其它类书籍同样适用。编程随想的博客建在墙外，如有兴趣者，请科学上网。</p>
<p>第1招：<strong>看网上评论</strong></p>
<p>首先，上一些权威的图书网站，看看大伙儿的评价如何（要相信群众的眼睛是雪亮的）。对于英文书籍，我一般上<a href="http://www.amazon.com/">亚马逊网站</a>去看看；中文书籍则上<a href="http://www.douban.com/">豆瓣网</a>。这两个网站都提供星级评分，一般&gt;=4星的评级都不差。（此招数对于正在逛书店的不一定适用，除非你随身带了上网的东东）</p>
<p>第2招：<strong>看作者</strong></p>
<p><span id="more-725"></span>书籍作者的重要性无需多说。根据<a href="http://program-think.blogspot.com/2009/02/80-20-principle-0-overview.html">二八原理</a>，大部分的好书都是少数优秀作者写出来的。如果作者是该领域的技术大牛或者知名评论家，那么该书的质量一般不会太差。不过要用这招，你首先得对这本书所在的领域有一定的了解，知道哪些人属于该领域的大牛。</p>
<p>（PS:国内很多垃圾书并不是某位作者写的，而是“攒”出来的。一般攒出来的书，东拼西凑，内容十分垃圾。很多时候连作者都不好意思署上自己的大名，干脆就署个“旁征博引”之类的笔名，要么就是“×××编著”，有底气的书作者署名一定是“×××著”。)</p>
<p>第3招：<strong>看出版信息</strong></p>
<p>出版信息里面，主要看出版社、出版时间。好的出版社出的书，总体水平还过得去，不至于太滥，排版印刷错误也较少。</p>
<p>&nbsp;</p>
<p>出版时间的重要性得看具体的领域。比如某些领域（算法、软件工程等）的书，对于时间不敏感。即使年代久远也没有过时（比如<a href="http://program-think.blogspot.com/2009/03/book-review-mythical-man-month.html">人月神话</a>发表于1975年）。而另一些领域（涉及具体的语言、软件、操作系统）则需要与时俱进，3-5年之前出版的书可能就已经过时了。</p>
<p>如果是纸版书，还可以看看再版次数和印数。这两个指标一般和销量成正比。不过也不排除少数阳春白雪的好书，销量很低。因此这两个指标仅供参考。</p>
<p>第4招：<strong>看目录</strong></p>
<p>看完出版信息后，就可以大致看看目录。从目录可以了解到很多信息。好书的目录一般层次分明、条理清晰。滥书则反之。</p>
<p>看目录还可以在最短时间内大致了解该书的深浅以及内容的分布（看每一章占了多少页），从而判断这本书能否适合自己。</p>
<p>比如，我曾经看过一本国内作者写的《面向对象Java编程》。打开目录扫了一下，整本书都是讲Java语法，只在其中一章提到了OO，页数占全书比例不到10%（我强烈怀疑作者是否直接拿了SUN的Java语言规范汉化了一下，就拿去出版了）。</p>
<p>第5招：<strong>抽查几页</strong></p>
<p>最后，可以挑书中的某个小节看一下。看看作者的文笔是否流畅、生动。如果是翻译的书，则还要注意一下翻译的水平如何。翻译的书的质量<strong>同时</strong>取决于作者和译者的水平，任何一个不行，整本书就好不到哪里去。</p>
<p>早些年学习MFC的时候，曾看过一本翻译的书，把MFC的“doc/view”翻译成”文档查看”，当场厥倒。所以有条件看看原著（你的洋文够牛）的同学就尽量看原著，免得被差劲的译者带到沟里。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>我个人还有一些选书的招数，就是看一本好书的作者在书中提到了什么书，就像博客里的内链一样，<strong>通过一本好书去寻找另一本好书</strong>。一般来说，如果对一本书的价值观认同，一般人也会认同作者文章中提到的其他书籍，如果这本书中恰好引用了另一本书中部分文字 ，而这段文字又非常有用，自然而然的我就会找这段文字的原始出处去读。或者，也可以参考下这本书的参考文献。在参考文献目录这方面，国外引进的书籍要远远胜于国内，看国外的书籍，引用方面做得特别好，这是对知识，对原作者最起码的尊重。</p>
<p><strong>朋友推荐</strong>，现实生活中周围爱读书的朋友并不多，我甚至可以算上是比较喜欢读书的那一拨，能从他们身上得到推荐实在是不容易。但是，我在网上有很多感兴趣的社区，社区里自然也就会有很多让我敬佩的大牛ID,平日里多关注下这些大牛ID的只字片语，看看这些人喜欢读什么书，言谈中偶尔提到什么书，提到哪些作者，再下意识地去寻找这些书，找到好书的几率就比较大。</p>
<p>其实，找书的过程也是一种信息挖掘能力的培养。</p>
<p>我有段时间，非常喜欢看《少年包青天》，最喜欢的是片头曲中的一段歌词：“一些漫步经心的说话，将我疑惑解开；一种莫名其妙的冲动，叫我继续追寻；你的一举一动，我却备加留心，只要真相大白，一切一切无愧于心。”</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/xuanshu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel数据有效性跨表引用的解决</title>
		<link>http://kxboy.com/wenzhai/excle-shuju-youxiaoxing.html</link>
		<comments>http://kxboy.com/wenzhai/excle-shuju-youxiaoxing.html#comments</comments>
		<pubDate>Wed, 04 May 2011 04:15:25 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[下拉列表]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=577</guid>
		<description><![CDATA[文章来源：Excelhome 为了防止数据的误输，我们需要限制数据录入格式，这就要用到数据有效性设置。 一、如何设定有效性 1、在设定有效性之前，要选择数据区域，否则仅对当前单元格进行设置。 2、点击EXCEL的“数据”-“有效性”菜单，可弹出“数据有效性”设置窗口。 3、有效性有“整数”“小数”“序列”等共8种。 今天这里只讲解“序列”型，并且重点放在跨表引用上。 二、“序列”型设置 1、序列设置格式1：手工输入序列值 使用英文逗号隔开的文本，被认为是序列，如“a,b,c,d,e”。 2、序列设置格式2：单元格区域 如=$C$10:$C$16，则将同一工作表下的C10：C16区域的值用作有效性序列。 三、跨表引用的处理 当你使用序列，试图引用其他表时，系统会发出错误提示，并且无法选择其他表。 我们可以使用下述两种办法解决： 1、使用公式 如我要在sheet2的单元格中设置有效性，序列的来源为sheet1的A2：A50区域，则在sheet2的有效性设置中选择序列，然后输入公式：=INDIRECT(“sheet1!$A$2:$A$50&#8243;)，则可达到目的。 INDIRECT函数，请参阅EXCEL帮助文件。 2、使用名称 名称可以理解为自定义变量。如上述例题，则先要点击“插入”——“名称”——“定义……”，弹出“定义名称”对话框，在里面定义AAA，引用位置为=sheet1!$A$2:$A$50。 然后在sheet2的有效性设置中选择序列，然后输入公式：=AAA。 更多的内容，请点击如下连接： http://www.shmedu.com.cn/BBS/dispbbs.asp?boardid=63&#038;Id=1299 名称使用的相关贴子请参见：http://www.shmedu.com.cn/bbs/dispbbs.asp?boardid=63&#38;Id=1270]]></description>
			<content:encoded><![CDATA[<p>文章来源：<a href="http://club.excelhome.net/thread-359270-1-1.html">Excelhome</a></p>
<p>为了防止数据的误输，我们需要限制数据录入格式，这就要用到数据有效性设置。</p>
<p>一、如何设定有效性<br />
1、在设定有效性之前，要选择数据区域，否则仅对当前单元格进行设置。<br />
2、点击EXCEL的“数据”-“有效性”菜单，可弹出“数据有效性”设置窗口。<br />
3、有效性有“整数”“小数”“序列”等共8种。<br />
今天这里只讲解“序列”型，并且重点放在跨表引用上。</p>
<p>二、“序列”型设置<br />
1、序列设置格式1：手工输入序列值<br />
使用英文逗号隔开的文本，被认为是序列，如“a,b,c,d,e”。</p>
<p>2、序列设置格式2：单元格区域<br />
如=$C$10:$C$16，则将同一工作表下的C10：C16区域的值用作有效性序列。</p>
<p>三、跨表引用的处理<br />
当你使用序列，试图引用其他表时，系统会发出错误提示，并且无法选择其他表。</p>
<p>我们可以使用下述两种办法解决：<br />
1、使用公式<br />
如我要在sheet2的单元格中设置有效性，序列的来源为sheet1的A2：A50区域，则在sheet2的有效性设置中选择序列，然后输入公式：=INDIRECT(“sheet1!$A$2:$A$50&#8243;)，则可达到目的。<br />
INDIRECT函数，请参阅EXCEL帮助文件。</p>
<p><span id="more-577"></span>2、使用名称<br />
名称可以理解为自定义变量。如上述例题，则先要点击“插入”——“名称”——“定义……”，弹出“定义名称”对话框，在里面定义AAA，引用位置为=sheet1!$A$2:$A$50。</p>
<p>然后在sheet2的有效性设置中选择序列，然后输入公式：=AAA。</p>
<p>更多的内容，请点击如下连接：</p>
<p>http://www.shmedu.com.cn/BBS/dispbbs.asp?boardid=63&#038;Id=1299</p>
<p>名称使用的相关贴子请参见：http://www.shmedu.com.cn/bbs/dispbbs.asp?boardid=63&amp;Id=1270</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/excle-shuju-youxiaoxing.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>姊妹篇：《我奋斗了18年 还是不能和你一起喝咖啡》</title>
		<link>http://kxboy.com/wenzhai/18nian-buneng-hekafei.html</link>
		<comments>http://kxboy.com/wenzhai/18nian-buneng-hekafei.html#comments</comments>
		<pubDate>Thu, 31 Mar 2011 03:56:31 +0000</pubDate>
		<dc:creator>kxboy</dc:creator>
				<category><![CDATA[网络文摘]]></category>
		<category><![CDATA[18年]]></category>
		<category><![CDATA[喝咖啡]]></category>

		<guid isPermaLink="false">http://kxboy.com/?p=528</guid>
		<description><![CDATA[接上篇,不过没有找到作者出处，以下摘自网络： 《我奋斗了，18年还是不能和你一起喝咖啡》 前几年有一篇很流行的帖子，名字叫做《我奋斗了18年才和你坐在一起喝咖啡》，给人感觉是这个农村的孩子终于出人头地了，但是，于我，我奋斗了18年还是不能和你一起喝咖啡。 我生在农村，你生在城市。从来到这个世界上，我们就是不平等的，我们根本不在同一起跑线上。当我读到人人生而平等这句名言时，我是打死也不相信的。 上初三时，当家里只能拿起一个人学费时，姐姐把上学的权利让给了我&#8211;把人生的幸福让给了我。 然后，在我上高三那年，19岁的姐姐像其他农村女孩一样早早的嫁人了。 那年，我考上了北方一所重点大学。提着两个编织袋，几个煮鸡蛋和煮熟的玉米，平生第一次坐上了火车，开始了我的大学之旅。报到时才发现自己的寒酸：20元的运动鞋、8元的T恤、15元的裤子。其实这已经是我最好的衣服了。那时我才发现，跟我姐姐一样大的女孩正在无忧无虑的在大学校园里漫步，而姐姐，此时已为人母。 几天后，当我在城市里见到民工时，他们飘忽的眼神流露出深深的自卑，突然间我看到了自己。尽管不顺利，我还是办上了助学贷款。寝室费不能贷款，只能欠着。幸运的是，我没有像别的贫困生被当作展览品，一次次在众人面前揭开自己的伤疤， 而这么做是接受一些所谓“爱心企业”的200元资助 的必要条件。我不愿意去回忆痛苦，更不愿意在众人面前述说自己的可怜，所以我没有接受过任何资助或者援助。这个时候的你忙着跟辅导员拉关系，跟学生会的干部拉关系，那时的我根本没有想到学校也这么复杂。开学没有多久你就用上了波导手机&#8212;那时手机很罕见，波导算不错的了。而我，那时的思考是如何熬过大学四年。生活可想而知，口袋里没有钱了，往往就在抽屉里翻找，希望在哪个角落里还有一个硬币。有时候能找到就可以买个馒头或者一袋方便面，有时候只能饿一顿。当我为下顿饭而发愁时，你已经顺利加入学生会。 阳光的你很受欢迎，寒酸而不会交际的我只好躲在角落，只好让别人议论着不合群、性格孤僻。大学二年级，无数次的想过自杀，因为活着实在是太难了。那时的你已经交了女朋友，经常于黄昏时手挽手在美丽的校园里散步。无论如何，我依靠自己坚持下来了。 大四时，我保送上了研究生。而成绩很一般的你，在父亲的帮助下直接进入一家省级事业单位。读研时，我又看到了像姐姐一样大的女孩，她们时尚、知性、年轻，而我的姐姐却俨然一位30多岁的农妇，可那时她才25岁！25岁的你已经拥有了自己的130平的房子！26岁时，你结婚了，长长的奥迪车队和庞大的婚礼现场、价格不菲的婚纱照，让人艳羡不已。读了18年书，终于毕业了。父母也老了，他们没有养老保险、没有医疗保险、没有退休金，养老的重担已经放在了我的肩上。 毕业后，去银行打听了一下贷款的事宜，银行的回答是：由于读研期间没有还款，已经上黑名单，不良信用记录将保持7年。这意味着，7年内我无法贷款买房。而你已经月入8000，准备买车，妻子也已经怀孕。 奋斗了18年，我还是不能和你一起喝咖啡！]]></description>
			<content:encoded><![CDATA[<p>接上篇,不过没有找到作者出处，以下摘自网络：</p>
<p><strong>《我奋斗了，18年还是不能和你一起喝咖啡》</strong></p>
<p>前几年有一篇很流行的帖子，名字叫做《我奋斗了18年才和你坐在一起喝咖啡》，给人感觉是这个农村的孩子终于出人头地了，但是，于我，我奋斗了18年还是不能和你一起喝咖啡。</p>
<p><span id="more-528"></span>我生在农村，你生在城市。从来到这个世界上，我们就是不平等的，我们根本不在同一起跑线上。当我读到人人生而平等这句名言时，我是打死也不相信的。</p>
<p>上初三时，当家里只能拿起一个人学费时，姐姐把上学的权利让给了我&#8211;把人生的幸福让给了我。</p>
<p>然后，在我上高三那年，19岁的姐姐像其他农村女孩一样早早的嫁人了。</p>
<p>那年，我考上了北方一所重点大学。提着两个编织袋，几个煮鸡蛋和煮熟的玉米，平生第一次坐上了火车，开始了我的大学之旅。报到时才发现自己的寒酸：20元的运动鞋、8元的T恤、15元的裤子。其实这已经是我最好的衣服了。那时我才发现，跟我姐姐一样大的女孩正在无忧无虑的在大学校园里漫步，而姐姐，此时已为人母。</p>
<p>几天后，当我在城市里见到民工时，他们飘忽的眼神流露出深深的自卑，突然间我看到了自己。尽管不顺利，我还是办上了助学贷款。寝室费不能贷款，只能欠着。幸运的是，我没有像别的贫困生被当作展览品，一次次在众人面前揭开自己的伤疤， 而这么做是接受一些所谓“爱心企业”的200元资助 的必要条件。我不愿意去回忆痛苦，更不愿意在众人面前述说自己的可怜，所以我没有接受过任何资助或者援助。这个时候的你忙着跟辅导员拉关系，跟学生会的干部拉关系，那时的我根本没有想到学校也这么复杂。开学没有多久你就用上了波导手机&#8212;那时手机很罕见，波导算不错的了。而我，那时的思考是如何熬过大学四年。生活可想而知，口袋里没有钱了，往往就在抽屉里翻找，希望在哪个角落里还有一个硬币。有时候能找到就可以买个馒头或者一袋方便面，有时候只能饿一顿。当我为下顿饭而发愁时，你已经顺利加入学生会。</p>
<p>阳光的你很受欢迎，寒酸而不会交际的我只好躲在角落，只好让别人议论着不合群、性格孤僻。大学二年级，无数次的想过自杀，因为活着实在是太难了。那时的你已经交了女朋友，经常于黄昏时手挽手在美丽的校园里散步。无论如何，我依靠自己坚持下来了。</p>
<p>大四时，我保送上了研究生。而成绩很一般的你，在父亲的帮助下直接进入一家省级事业单位。读研时，我又看到了像姐姐一样大的女孩，她们时尚、知性、年轻，而我的姐姐却俨然一位30多岁的农妇，可那时她才25岁！25岁的你已经拥有了自己的130平的房子！26岁时，你结婚了，长长的奥迪车队和庞大的婚礼现场、价格不菲的婚纱照，让人艳羡不已。读了18年书，终于毕业了。父母也老了，他们没有养老保险、没有医疗保险、没有退休金，养老的重担已经放在了我的肩上。</p>
<p>毕业后，去银行打听了一下贷款的事宜，银行的回答是：由于读研期间没有还款，已经上黑名单，不良信用记录将保持7年。这意味着，7年内我无法贷款买房。而你已经月入8000，准备买车，妻子也已经怀孕。</p>
<p>奋斗了18年，我还是不能和你一起喝咖啡！</p>
]]></content:encoded>
			<wfw:commentRss>http://kxboy.com/wenzhai/18nian-buneng-hekafei.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

