-
Notifications
You must be signed in to change notification settings - Fork 425
/
Copy pathpreface.html
198 lines (161 loc) · 15.2 KB
/
preface.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>自述</title><link rel="stylesheet" type="text/css" href="docbook.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Netkiller Architect 手札" /><link rel="up" href="index.html" title="Netkiller Architect 手札" /><link rel="prev" href="index.html" title="Netkiller Architect 手札" /><link rel="next" href="author.html" title="1.2. 作者简介" /></head><body><a xmlns="" href="//www.netkiller.cn/">Home</a> | <a xmlns="" href="//netkiller.github.io/">简体中文</a> | <a xmlns="" href="http://netkiller.sourceforge.net/">繁体中文</a> | <a xmlns="" href="/journal/index.html">杂文</a>
| <a xmlns="" href="https://github.com/netkiller">Github</a> | <a xmlns="" href="https://zhuanlan.zhihu.com/netkiller">知乎专栏</a> | <a xmlns="" href="https://www.facebook.com/bg7nyt">Facebook</a> | <a xmlns="" href="http://cn.linkedin.com/in/netkiller/">Linkedin</a> | <a xmlns="" href="https://www.youtube.com/user/bg7nyt/videos">Youtube</a> | <a xmlns="" href="//www.netkiller.cn/home/donations.html">打赏(Donations)</a> | <a xmlns="" href="//www.netkiller.cn/home/about.html">About</a><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">自述</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">上一页</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="author.html">下一页</a></td></tr></table><hr /></div><table xmlns=""><tr><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&repo=netkiller.github.io&type=watch&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&repo=netkiller.github.io&type=fork&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&type=follow&count=true&size=large" height="30" width="240" frameborder="0" scrolling="0" style="width:240px; height: 30px;" allowTransparency="true"></iframe></td><td></td><td><a href="https://zhuanlan.zhihu.com/netkiller"><img src="/images/logo/zhihu-card-default.svg" height="25" /></a></td><td valign="middle"><a href="https://zhuanlan.zhihu.com/netkiller">知乎专栏</a></td><td></td><td></td><td></td><td></td></tr></table><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="preface"></a>自述</h1></div></div></div><div class="toc"><p><strong>目录</strong></p><dl class="toc"><dt><span class="section"><a href="preface.html#reader">1.1. 写给读者</a></span></dt><dt><span class="section"><a href="author.html">1.2. 作者简介</a></span></dt><dt><span class="section"><a href="preface.download.html">1.3. 如何获得文档</a></span></dt><dt><span class="section"><a href="donations.html">1.4. 打赏(Donations)</a></span></dt><dt><span class="section"><a href="contacts.html">1.5. 联系方式</a></span></dt></dl></div>
<div><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="400"><tr><td><img src="images/cover.png" width="400" /></td></tr></table></div>
<div class="blockquote"><blockquote class="blockquote">
<pre class="screen">
《Netkiller 系列 手札》是一套免费系列电子书,netkiller 是nickname 从1999 开使用至今,“手札” 是札记,手册的含义。
2003年之前我还是以文章形式在BBS上发表各类技术文章,后来发现文章不够系统,便尝试写长篇技术文章加上章节目录等等。随着内容增加,不断修订,开始发布第一版,第二版......
IT知识变化非常快,而且具有时效性,这样发布非常混乱,经常有读者发现第一版例子已经过时,但他不知道我已经发布第二版。
我便有一种想法,始终维护一个文档,不断更新,使他保持较新的版本不过时。
第一部电子书是《PostgreSQL 实用实例参考》开始我使用 Microsoft Office Word 慢慢随着文档尺寸增加 Word 开始表现出力不从心。
我看到PostgreSQL 中文手册使用SGML编写文档,便开始学习Docbook SGML。使用Docbook写的第一部电子书是《Netkiller Postfix Integrated Solution》这是Netkiller 系列手札的原型。
至于“手札”一词的来历,是因为我爱好摄影,经常去一个台湾摄影网站,名字就叫“摄影家手札”。
由于硬盘损坏数据丢失 《Netkiller Postfix Integrated Solution》 的 SGML文件已经不存在; Docbook SGML存在很多缺陷UTF-8支持不好,转而使用Docbook XML.
</pre>
</blockquote></div>
<p>目前技术书籍的价格一路飙升,动则¥80,¥100,少则¥50,¥60.
技术书籍有时效性,随着技术的革新或淘汰,大批书记成为废纸垃圾。并且这些书技术内容雷同,相互抄袭,质量越来越差,甚至里面给出的例子错误百出,只能购买影印版,或者翻译的版本。
</p>
<p>在这种背景下我便萌生了自己写书的想法,资料主要来源是我的笔记与例子。我并不想出版,只为分享,所有我制作了基于CC License
发行的系列电子书。</p>
<p>本书注重例子,少理论(捞干货),只要你对着例子一步一步操作,就会成功,会让你有成就感并能坚持学下去,因为很多人遇到障碍就会放弃,其实我就是这种人,只要让他看到希望,就能坚持下去。
</p>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="reader"></a>1.1. 写给读者</h2></div><div><h3 class="subtitle"></h3></div></div></div>
<p>
<span class="emphasis"><em>为什么写这篇文章</em></span>
</p>
<p>有很多想法,工作中也用不到所以未能实现,所以想写出来,和大家分享.有一点写一点,写得也不好,只要能看懂就行,就当学习笔记了.
</p>
<p>开始零零碎碎写过一些文档,也向维基百科供过稿,但维基经常被ZF封锁,后来发现sf.net可以提供主机存放文档,便做了迁移。并开始了我的写作生涯。
</p>
<p>这篇文档是作者20年来对工作的总结,是作者一点一滴的积累起来的,有些笔记已经丢失,所以并不完整。</p>
<p>因为工作太忙整理比较缓慢。目前的工作涉及面比较窄所以新文档比较少。</p>
<p>我现在花在技术上的时间越来越少,兴趣转向摄影,无线电。也想写写摄影方面的心得体会。</p>
<p>
<span class="emphasis"><em>写作动力:</em></span>
</p>
<p>曾经在网上看到外国开源界对中国的评价,中国人对开源索取无度,但贡献却微乎其微.这句话一直记在我心中,发誓要为中国开源事业做我仅有的一点微薄贡献
</p>
<p>另外写文档也是知识积累,还可以增加在圈内的影响力.</p>
<p>人跟动物的不同,就是人类可以把自己学习的经验教给下一代人.下一代在上一代的基础上再创新,不断积累才有今天.</p>
<p>所以我把自己的经验写出来,可以让经验传承</p>
<p>
<span class="emphasis"><em>没有内容的章节:</em></span>
</p>
<p>目前我自己一人维护所有文档,写作时间有限,当我发现一个好主题就会加入到文档中,待我有时间再完善章节,所以你会发现很多章节是空无内容的.
</p>
<p>文档目前几乎是流水帐试的写作,维护量很大,先将就着看吧.</p>
<p>
</p><table border="0" summary="Simple list" class="simplelist"><tr><td>我想到哪写到哪,你会发现文章没一个中心,今天这里写点,明天跳过本章写其它的.</td></tr><tr><td>文中例子绝对多,对喜欢复制然后粘贴朋友很有用,不用动手写,也省时间.</td></tr><tr><td>理论的东西,网上大把,我这里就不写了,需要可以去网上查.</td></tr><tr><td>我爱写错别字,还有一些是打错的,如果发现请指正.</td></tr><tr><td>文中大部分试验是在Debian/Ubuntu/Redhat AS上完成.</td></tr></table><p>
</p>
<div class="sidebar"><a id="reader"></a><div class="titlepage"><div><div><p class="title"><strong>写给读者</strong></p></div></div></div>
<table border="0" summary="Simple list" class="simplelist"><tr><td>
至读者:
</td></tr><tr><td>
我不知道什么时候,我不再更新文档或者退出IT行业去从事其他工作,我必须给这些文档找一个归宿,让他能持续更新下去。
</td></tr><tr><td>
我想捐赠给某些基金会继续运转,或者建立一个团队维护它。
</td></tr><tr><td>
我用了20年时间坚持不停地写作,持续更新,才有今天你看到的《Netkiller
手扎》系列文档,在中国能坚持20年,同时没有任何收益的技术类文档,是非常不容易的。
</td></tr><tr><td>
有很多时候想放弃,看到外国读者的支持与国内社区的影响,我坚持了下来。
</td></tr><tr><td>
中国开源事业需要各位参与,不要成为局外人,不要让外国人说:中国对开源索取无度,贡献却微乎其微。
</td></tr><tr><td>
我们参与内核的开发还比较遥远,但是进个人能力,写一些文档还是可能的。
</td></tr></table>
</div>
<div class="sidebar"><a id="preface.contents"></a><div class="titlepage"><div><div><p class="title"><strong>系列文档</strong></p></div></div></div>
<p>下面是我多年积累下来的经验总结,整理成文档供大家参考:</p>
<table border="0" summary="Simple list" class="simplelist"><tr><td>
<a class="ulink" href="../architect/index.html" target="_top">Netkiller Architect 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../developer/index.html" target="_top">Netkiller Developer 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../php/index.html" target="_top">Netkiller PHP 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../python/index.html" target="_top">Netkiller Python 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../testing/index.html" target="_top">Netkiller Testing 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../cryptography/index.html" target="_top">Netkiller Cryptography 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../linux/index.html" target="_top">Netkiller Linux 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../freebsd/index.html" target="_top">Netkiller FreeBSD 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../shell/index.html" target="_top">Netkiller Shell 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../security/index.html" target="_top">Netkiller Security 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../www/index.html" target="_top">Netkiller Web 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../monitoring/index.html" target="_top">Netkiller Monitoring 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../storage/index.html" target="_top">Netkiller Storage 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../mail/index.html" target="_top">Netkiller Mail 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../docbook/index.html" target="_top">Netkiller Docbook 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../version/index.html" target="_top">Netkiller Version 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../database/index.html" target="_top">Netkiller Database 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../postgresql/index.html" target="_top">Netkiller PostgreSQL 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../mysql/index.html" target="_top">Netkiller MySQL 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../nosql/index.html" target="_top">Netkiller NoSQL 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../ldap/index.html" target="_top">Netkiller LDAP 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../network/index.html" target="_top">Netkiller Network 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../cisco/index.html" target="_top">Netkiller Cisco IOS 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../h3c/index.html" target="_top">Netkiller H3C 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../multimedia/index.html" target="_top">Netkiller Multimedia 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../management/index.html" target="_top">Netkiller Management 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../spring/index.html" target="_top">Netkiller Spring 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../perl/index.html" target="_top">Netkiller Perl 手札</a>
</td></tr><tr><td>
<a class="ulink" href="../radio/index.html" target="_top">Netkiller Amateur Radio 手札</a>
</td></tr></table>
</div>
</div>
</div><script xmlns="" type="text/javascript" id="clustrmaps" src="//cdn.clustrmaps.com/map_v2.js?u=r5HG&d=9mi5r_kkDC8uxG8HuY3p4-2qgeeVypAK9vMD-2P6BYM"></script><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">上一页</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="author.html">下一页</a></td></tr><tr><td width="40%" align="left" valign="top">Netkiller Architect 手札 </td><td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td><td width="40%" align="right" valign="top"> 1.2. 作者简介</td></tr></table></div><script xmlns="">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-11694057-1', 'auto');
ga('send', 'pageview');
</script><script xmlns="" async="async">
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?93967759a51cda79e49bf4e34d0b0f2c";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script><script xmlns="" async="async">
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script></body></html>