【原创】 JS 不可逆加密后半部分，去混淆还原代码。
第二篇111第四段 去混淆（解密后的代码，又一段新的历程）接下来的代码行数以解密后的 jiemi.js 文件为基准第一段是一个定时器，定时器以 4000ms 的间隔调用一个 _0x10c488 方法， 里面定义了一个 Object，这个方式在后面会多次出现。 即定义一个对象，里面定义几个方法，将参数返回出来。 比如这个，gHwtC 方法里面就是调用参数一，简化后为：setInterval(function () { _0x10c488(); }, 4e3);往后找一下，定义方法的地方，在第 278 行： 依然定义了一个对象 _0x5d1305 ，然后定义了一个 _0x3e0578 方法，先不管，继续往后找。 一个 try 结构，判断 _0x43c6a1 也就是参数一是否有值，这里调用没有传参，直接走 else 流程。调用了 _0x5d1305.Nktyo 方法，传递 _0x3e0578 进入。找到 Nktyo 的定义，只是把参数二放入参数一执行，然后回头看下这个方法 _0x3e0578 怎么去混淆第一个 if 是判断 _0x5d1305.ExxTQ(typeof _0x53a0e4, _0x5d1305.jgffP) ，找到刚才的定义，分别理解。只是一个判断参数一是否为字符串而已，现在找到调用这个 对象属性的地方，挨个替换回来，其他的也是一样方法替换。整个大方法处理完以后，可以把最上面的对象删除了，结果如下：function _0x10c488(_0x43c6a1) { function _0x3e0578(_0x53a0e4) { if (typeof _0x53a0e4 === "string") { var _0x3d9b38 = function () { while (!![]) { } }; return _0x3d9b38(); } else { if ((("" + (_0x53a0e4 / _0x53a0e4))["length"] !== 1) || ((_0x53a0e4 % 20) === 0)) { debugger; } else { debugger; } } _0x3e0578(++_0x53a0e4); } try { if (_0x43c6a1) { return _0x3e0578; } else { _0x3e0578(0); } } catch (_0x29e1b1) { } }可以看到，这个方法是一个反调试，直接删除即可，开头的定时器也可以一并删除了。回到开头，看第二段代，一个大的 try， 里面定义了一个字符串拆散为数组，并死循环 switch，最终目的其实就是将 switch 里面的代码按照 _0xd94d8c 定义的顺序执行一遍而已，我们直接提取结果出来看下：// case "2": var _0x1d8312 = ["domain", "split", "reverse", "join", "search", "hr" + "ef", "random", !0]; // case "0": var _0x1dd019 = document[_0x1d8312[0]]; // case "4": var _0x3f8779 = function (_0x2e5797) { return _0x2e5797[_0x1d8312[1]]("")[_0x1d8312[2]]()[_0x1d8312[3]](""); }; // case "3": var _0x5a0580 = function (_0xc98a64, _0x503b08) { var _0x1dda52 = { Scjbh: "function *\( *\)", odYDy: "\+\+ *(?:_0x(?:[a-f0-9]){4,6}|(?:\b|\d)[a-z0-9]{1,4}(?:\b|\d))", oKrUQ: function _0x2206d5(_0x42cced, _0x535344) { return _0x42cced(_0x535344); }, ZyHof: "init", hoEKc: function _0x1b7042(_0x219f40, _0x2085aa) { return _0x219f40 + _0x2085aa; }, DtRMS: "chain", ITLzH: "input", TMYBP: function _0x4c778b(_0x5c060e, _0x4090f3) { return _0x5c060e(_0x4090f3); }, arjnp: function _0xa52a54(_0x57076d) { return _0x57076d(); }, OcNch: function _0x36a26e(_0x1cc753, _0x475023, _0x5f1b96) { return _0x1cc753(_0x475023, _0x5f1b96); }, XRkCn: function _0x2ccfd7(_0x13e206, _0x2235db) { return _0x13e206 === _0x2235db; }, yWahq: function _0x425b13(_0x12e926, _0x4f260f) { return _0x12e926(_0x4f260f); } }; var _0xceb034 = function () { var _0x4236ae = !![]; return function (_0x4e3ff6, _0xc225f7) { var _0x3d1152 = _0x4236ae ? function () { if (_0xc225f7) { var _0x23d38f = _0xc225f7.apply(_0x4e3ff6, arguments); _0xc225f7 = null; return _0x23d38f; } } : function () { }; _0x4236ae = ![]; return _0x3d1152; }; }(); (function () { _0x1dda52.OcNch(_0xceb034, this, function () { var _0x66effa = new RegExp(_0x1dda52.Scjbh); var _0x5b9f27 = new RegExp(_0x1dda52.odYDy, "i"); var _0x2755c6 = _0x1dda52.oKrUQ(_0x10c488, _0x1dda52.ZyHof); if (!_0x66effa.test(_0x1dda52.hoEKc(_0x2755c6, _0x1dda52.DtRMS)) || !_0x5b9f27.test(_0x1dda52.hoEKc(_0x2755c6, _0x1dda52.ITLzH))) { _0x1dda52.TMYBP(_0x2755c6, "0"); } else { _0x1dda52.arjnp(_0x10c488); } })(); })(); return _0x1dda52.XRkCn(_0x1dda52.yWahq(_0x3f8779, _0xc98a64)[_0x1d8312[4]](_0x503b08), 0); }; // case "1": if (!(_0x5a0580(_0x1dd019, "moc.udiab.tset") || _0x5a0580(_0x1dd019, "nc.gnatnait"))) { while (_0x1d8312[7]) { location[_0x1d8312[5]] = location[_0x1d8312[5]] + "?" + Math[_0x1d8312[6]](); } }依然又看到 case "3": 部分和上面是同样的计俩，替换之，然后 _0x1d8312 相关对应的数组也替换一下，替换到 _0x5a0580 时，本来想继续这个的，到一半发现调用了刚才的 _0x10c488 反调试的代码，直接跳过，依然是反调试的混淆。核心代码，最后一行 return qs_reverse_str(_0xc98a64).search(_0x503b08) === 0; 翻转字符串并搜索。找到调用参数 "moc.udiab.tset" 并尝试翻转 test.baidu.com, 这是我写的限制域名的，此段代码可以直接删除了。// case "2": var _0x1d8312 = ["domain", "split", "reverse", "join", "search", "href", "random", !0]; // case "0": var qs_domain /*_0x1dd019*/ = document.domain; // case "4": var qs_reverse_str /* _0x3f8779 */ = function (qs_str /*_0x2e5797*/) { return qs_str.split("").reverse().join(""); }; // case "3": var _0x5a0580 = function (_0xc98a64, _0x503b08) { var _0xceb034 = function () { var _0x4236ae = !![]; return function (_0x4e3ff6, _0xc225f7) { var _0x3d1152 = _0x4236ae ? function () { if (_0xc225f7) { var _0x23d38f = _0xc225f7.apply(_0x4e3ff6, arguments); _0xc225f7 = null; return _0x23d38f; } } : function () { }; _0x4236ae = ![]; return _0x3d1152; }; }(); (function () { _0xceb034(this, function () { var _0x66effa = new RegExp("function *\( *\)"); var _0x5b9f27 = new RegExp("\+\+ *(?:_0x(?:[a-f0-9]){4,6}|(?:\b|\d)[a-z0-9]{1,4}(?:\b|\d))", "i"); var _0x2755c6 = _0x10c488("init"); if (!_0x66effa.test((_0x2755c6 + "chain")) || !_0x5b9f27.test((_0x2755c6 + "input"))) { _0x2755c6("0"); } else { _0x10c488(); } })(); })(); return qs_reverse_str(_0xc98a64).search(_0x503b08) === 0; }; // case "1": if (!(_0x5a0580(qs_domain, "moc.udiab.tset") || _0x5a0580(qs_domain, "nc.gnatnait"))) { while (!0) { location["href"] = location["href"] + "?" + Math["random"](); } }然后就剩下一大段的匿名函数，其实这个才是我一开始加密的代码。依然看到开始定义了对象，和刚才的方法一样，替换之，同时看到了熟悉的 "1|2|0|3|4|5|6" 和死循环 switch老样子，直接处理掉吧。这里遇到一个新结构，这个结构折腾了很久，返回了两次对象，最终目的就是为了用参数二进行 applyvar _0x4df744 = function () { var _0x10f531 = !![]; return function (_0x1602b0, _0x1836ce) { var _0x183ad8 = _0x10f531 ? function () { if (_0x1836ce) { var _0x49cae0 = _0x1836ce.apply(_0x1602b0, arguments); _0x1836ce = null; return _0x49cae0; } } : function () { }; _0x10f531 = ![]; return _0x183ad8; }; }();最终结果为var _0x4df744 = function (_0x1602b0, _0x1836ce) { _0x1836ce.apply(_0x1602b0, arguments); }而定义的 _0x4aa006 方法主要目的为覆盖系统的 console 然后 console 对象所有的方法失效，主要目的依然为了反调试。整段代码又可以删除了，(case "4" 之前的)最后结果就只剩下这么几行了(function (_0x503c1c, _0x5cde2d) { // case "4": _0x503c1c.info = "这是一个一系列js操作。"; // case "5": _0x5cde2d.adinfo = "站长接高级 “JS加密” 和 “JS解密” ，保卫你的 js。"; // case "6": _0x5cde2d.warning = "如果您的JS里嵌套了PHP，JSP标签，等等其他非JavaScript的代码，请提取出来再加密。这个工具不能加密php、jsp等模版内容"; })(window, document);后面还有一个 不能删除sojson.v5 我想你懂得，我就不说了~~~这就是解析的全部了，由于这次写的匆忙，过程中随心所欲的删除，就没有留下过程文件。大家随意理解下就好了...本文也是我一边查资料一边写的，又发现写 JS 真的要上 AST 语法树，破解这玩意真的贼容易。特别是替换对象属性的那段，很适合，有时间学习下。
[转]日本水俣病抗争与中国雾霾治理
最近阅读美国学者蒂莫西 乔治 (Timothy S.George)的著作(中文版)《水俣病：污染与战后日本的民主斗争》，有些情景感觉似曾相识，对中国的公民社会或有启发，于是再搜集一些资料，整理如下。 水俣病事件背景 水俣病源于熊本县水俣市窒素公司大量排放含有机水银的污水，鱼体内吸收大量高浓度的有机水银后，悄悄进入市民的餐桌。市民食用被污染的鱼后，手足麻痹，甚至出现步行困难、运动障碍、失智、听力及言语障碍;重者发生痉挛、神经错乱，最后死亡，至今仍无有效的治疗法。发病起三个月内，约有半数重症者死亡，孕妇和胎儿亦会受到影响。 窒素公司是排放污染的元凶。他们利用国家发展石化产业的战略方针，勾结地方政府和中央政府，愚弄社会大众，欺骗患者和渔民，收买媒体与研究机构，编造证据，混淆视听。 窒素公司先后抛出硒、铊、锰等致病理论，声称病因是“复合有机毒素”。水俣市长甚至带头捏造事实，提出杀虫剂理论，为窒素公司逃避责任大开绿灯，转移民众对水银污染真相的质疑，日本化工协会会长也与其一唱一和。日本政府则解散了水俣病因研究小组，停止经费支援。唯一的调查经费竟然是来自美国的赞助，但美国学者也找不到污染的鱼做研究样本，鱼被污染企业买走了。 国家部委各部门(通产省、厚生省、经济企划厅)与窒素公司结成统一战线，抛出政治解决方案，企图以少量金钱补偿部分患者，将信息控制在有限范围内，在患者和非患者中制造隔阂，以城市形象、国家利益分化人民，声称解决的前提必须是不伤害窒素公司和其他化工企业，不得妨碍国家石化产业。 发病后多年内，窒素公司不但没有停止排放污水，反而继续在扩建工厂。此外，窒素公司还阻挠相关的调查研究，甚至买通打手，以暴力吓阻抗争者。美国摄影师尤金·史密斯被窒素公司所雇的暴民打成残废。窒素医院的细川医生早就得出有机水银中毒的结论，但是被禁止公布，直到临死前夕良心不安，才悄悄向身边人透露真相。事发15年后，日本政府于1968年下半年才确认有机水银与水俣病之间有关系，治疗患者、阻止灾难扩大的最佳时机就这样错过了。 当时日本国民的精神状态 受害者父母背上扛着已被解剖过的儿女的尸体，刻意避开公路，沿着铁轨步行。在前期，水俣病就像魔鬼一样散布着传染的恐惧，人们认为与这些病接触过的人都变得肮脏、堕落，甚至连患者自己也不能接受自己。他们忍受着病痛、歧视、谣言和贫困。 患者家庭不敢出声，担心孩子找不到工作，找不到结婚对象。未患此病的水俣市民，则歧视患者，认为患者和渔民的抗争伤害了水俣市的形象，影响了国家建设的大局，危害社会稳定。饭店的老板挂起招牌说：本店没有采用水俣的鱼，请顾客们放心品尝。人人自扫门前雪，社会基本上处于蒙昧主义状态。这是当时日本的状况。 1947年代，日本在美国的军事占领下，形式上实行了三权分立的民主制度。但在1950年代，无论是政府官员，还是民间社会，社会中坚力量，整体上所受的还是帝国时代的国家主义教育，主流社会依然认为城市的支柱产业重于受害群体，城市形象、国家利益高于个人利益，官商勾结被刻意忽视了。 受损害的渔业协会之间、渔民与患者之间，也是一团散沙，尚未学会实现有效的联合，而既得利益阶层则是串通一气，结成统一战线。尽管渔业协会与窒素公司不停地就赔偿进行对话、谈判、静坐、冲撞、斗殴，但是，抗争被限制在水俣一地，“胳膊斗不过大腿”。在这样的大背景下，水俣病抗争运动的前十年成为沉默的十年。主流社会没有提供太多的声援。 理想主义巨人的登场 1. 家庭主妇石牟礼道子 1952年水俣海域即已出现污染，大量的猫和鸡死亡，老鼠猖獗。1953年已出现水俣病患者。但是，患者和家属以外的社会大众对此一无所知。最先向大众传播水俣病资讯的是家庭主妇石牟礼道子。 1959年石牟礼道子到市立医院探视住院的长子，亲眼目睹了双目失明、两手颤抖的水俣病患儿艰难呼吸的场景，一时间她感到窒息、震惊。她说：作为一个人，我无法忍受(受害者的苦难被社会漠视);作为卑鄙人类的一员，我深深鄙视自己。于是陆续在刊物上发表纪实小说《苦海净土—我们的水俣病》 。 石牟礼道子不仅勤于笔耕，而且直接与患者交流，倾听患者的心声，帮助患者起草请愿书，参与厚生省前的静坐，也加入与窒素公司谈判的队伍。1969年，在朋友的帮助下，《苦海净土—我们的水俣病》正式结集出版发行，此书被称为水俣病抗争者手中的《圣经》。社会大众这时才开始了解水俣病。石牟礼道子将全部精力投入拯救患者、报道真相的活动中，她与另一位女性日吉富美子创办公民委员会，在男权中心的日本社会，一些男性接受了两位女性的领导，而这些女性却极其谦卑地为男性们端茶倒水。 石牟排除万难，求见水俣市长桥本，请求市长参观水俣病患者的摄影展，市长问她：你算老几?她话没说完就被市长严词拒绝。 石牟一切行动都是默默无闻，她没有诅咒过任何一个企业家和官员。在男性谈判时，她总是默默地站在旁边守候。为了替患者乞求一点救助费用，她有时也放下高贵的身躯，并认真地保证他们不是要伤害窒素公司。 石牟礼道子的家几乎成了援助活动的接待站，全国各地的支持者、媒体人络绎不绝。每天报社、杂志大量的约稿纷至沓来，她每天奔波在电视台、演讲厅和各种会场、集会中。这样马不停蹄的活动，在1970年达到高峰。石牟礼道子成为水俣病抗争中的灵魂人物。 石牟礼道子以《苦海净土》获得熊日文学奖賞、大宅壮一纪实文学奖。她认为个人的荣誉不能建立在患者的痛苦身上，拒绝领奖。石牟礼道子不是咄咄逼人的社会运动的斗士，她是一个诗人，她的身上散发着悲悯的情怀。她以诚实和大愛唤醒了一个个麻木不仁的市民。在她的感召下，她的丈夫也带领其他老师投身抗争运动，电影导演、律师、医生、护士、市民前赴后继，抗争运动风起云涌。近年来，她年老体衰、双手不停颤抖，还在接受NHK采访，为水俣病患者发声，质疑国家没有真正照顾到受害者晚年的生活。 2.医界良心——原田正纯 窒素公司发布虚假研究成果，声称婴儿不可能发生水俣病，说有母体胎盘的阻隔，可使胎儿免受伤害。原田正纯证明水俣病可以通过母婴传播。他同时也证实，水俣病人中存在胎儿性患者。 水俣病本质上是人摄取鱼体内积蓄的有机水银后，引起的神经性疾病。始于四肢末端感觉障碍，症状包括运动失调、平衡机能障碍、求心性视野狭窄、步行障碍等等。 在患者认定方面，日本政府和污染企业制定的标准非常严苛，认为只有同时具备这些障碍，才可被认定为水俣病患者。这样绝大部分患者被排除在外。原田医生与司法机关认为，只要是摄取鱼体内所含有机水银引起的感觉障碍，都应被认定为水俣病。原田医生不屈不挠，为此缠斗了50年。 原田医生说：水俣病没有被确诊时，他和记者们挨家挨户去访问，去发现。可是渔民不欢迎他们，怕消息传出去后鱼会卖不出去。尽管如此，他依旧不改初衷。 法院开庭审判前，原田医师总是告诫律师和法官：回归现场，查清事实。第一步是事实，第二步还是事实，第三步还是事实，第四步第五步也还是事实，只需事实，无需说大道理，无需大人物到此一游。回归现场，不仅要将发生的事实聚焦受害者、患者，更要用自己的眼睛追查为何会发生这样的事情。为了应对国家出台的暧昧不清的症状分级补偿标准，原田医师带着法官、审判长、辩护团律师挨家挨户探视所有原告家庭，让大家在现场倾听患者的声音，感受患者的苦难。 第一批起诉窒素公司的29个家庭，在1973年获得胜诉。原田正纯参加了支援原告的水俣病研究会。1972年，他和患者共同参加了在瑞典斯德哥尔摩举行的第一届联合国人类环境会议，向世界传播水俣病的危害。1976年他就到中国做过有关水俣病的演讲。他在不同年代、不同场合，为各种声援团体提供专业支持，毫不留情的批评行政单位在水俣病发生和认定过程中的种种失误。 原田正纯为此获得多种荣誉，在1994年获得“联合国环境全球奖”。他也为此付出了代价：原田正纯原本在熊本大学工作，而熊本大学是国立大学。学者在国立大学工作，须保证不再从事水俣病研究。没有课题经费，不能正常科研，原田正纯不得不离开熊本大学。 学术水平最高的医生最后竟然连教授职称都没有拿到。但是原田正纯无怨无悔。 除了水俣病外，原田正纯还调查食品公害、米糠油症(油品中毒)(亲自质疑并纠正了国家对米糠油污染原因的认定)、以及三池煤矿爆炸灾难引起的一氧化碳中毒事故，足迹踏遍全国。此外，他还到中国、印度、泰国调查砒霜中毒，到越南调查枯叶剂的影响，到中国、非洲调查水银污染的状况。(画外音：原田医生不仅关心本国的污染，也有全球关怀，全球视野，中国有这样的医生吗?) 2011年福岛核电站事故发生后，原田正纯拖着病体继续发声。他告诫人们：人民不可将身家性命全部拜托给专家和行政单位;只有回归现场，倾听受害者的声音，才能找到解决方案;无需大道理，只需回到现场、回归事实!不可由加害者主导解决方案;加害者是拥有压倒性力量的企业巨人和行政单位，而受害者则总是处于弱小地位的居民。这样的灾难，总是发生在离自然最近的地方，发生在最穷的地方，这几乎成了规律。 日本政府于2009年推出水俣病特别措施法，原田正纯医师再次呼吁对不知火海沿岸的居民进行大规模的诊断，重新发现被忽视的受害者。原田医师先后罹患集胃癌、食道癌、脑梗塞，身患重病。尽管如此，这位理想主义“巨人”走的是“到实践中去”的路，他在现实生活中找到了自己的位置。正是因为有他们的参与，水俣病超越了医学层面，成为一场社会运动。他的著作《水俣病》和《水俣病没有结束》一版再版，是了解水俣病和水俣学的重要文献。 3.后藤孝典 辩护律师，“一股股票”运动发起人，著作《“水俣病事件”——沉默与爆发》。 在法庭审判中，窒素公司的一把手往往自己不出场，委派代理人的回答常常不知所云。枯燥乏味的审判令人昏昏欲睡。受害者都希望与污染企业老板直接对话。后藤孝典基于这样的认知，独出心裁地提出了“一股股票”运动，呼吁大家购买一股污染企业的股票，以方便患者和学者参加股东大会，与企业高层“贴身攻防”。倡议很快得到响应。 1971年在股东大会上，“一股股票”运动的参与者们，穿过黑帮、记者和警察组成的队伍，参加股东大会，窒素公司已经安排员工和黑帮占领了主席台附近的座位。窒素社长江头自我介绍，然后宣布开会。从那时起，正式程序就不能继续进行。观众开始喧闹起来。 日吉富美子摇着朝圣者的铃，喊道：我们要你倾听患者说话!后藤孝典意识到主席台上的高管正确信无人反对他们的报告，并将宣布会议结束。离宣布会议结束前几分钟，后藤孝典冲到前面，爬上主席台，提议修改财务报告，要求窒素公司将部分退休金作为患者们的慰问金，部分利润用来资助居民体检，以找出未被认证的患者。 窒素公司员工试图将他拉下主席台，但他挣脱了。他把修改稿放到江头社长面前，要求社长宣读。高管们无视这份修改报告，在患者和告发会会员面前宣布会议结束。 “一股股票”运动使受害者们的不满彻底爆发了。这次运动激发了患者们为自己命运而战的勇气，他们逆来顺受的性格开始改变，个体自主性得到进一步提升，臣民开始转变为公民，而污染企业的名声一落千丈。电视台的报道、土本典昭的纪录片的传播，将整个水俣病患者的命运摆在全体国民面前。 4.川本辉夫 川本辉夫是水俣病患者“自主交涉派”代表人物。1948年，从町立农工学校中途退学。1955年发病。1965年看到重症在身的父亲，后于1968年向政府认定申请。1970年，认定申请被再次拒绝，他开始请求行政复议。1971年，川本辉夫和佐藤武春二人带头向窒素公司要求赔偿，川本辉夫带领“自主交涉派”患者们在公司门口静坐抗议，长达一年零九个月。 1971年，川本再次带领自主交涉派在窒素东京总公司门前静坐示威一年零八个月。1973年与日本窒素公司签订赔偿协定书。此后还进行了多次诉讼，为未获认定患者继续奔走，从未屈服。1983年当选为水俣病患者联盟委员长。 5.土本典昭、土本基子夫妇 土本典昭、土本基子夫妇1971年推出《水俣病：受害者的世界》(获得多项大奖)。 《水俣病︰受害者的世界》，以日本29个家庭控告窒素公司的事件为主轴，受害者家属控诉公司排放的污染，让他们遭受失去亲人的痛苦。片中拍摄的水俣病患者的悲惨生活和政府保护窒素公司的恶行，表现了土本典昭伸张社会正义，对弱势者始终如一的关怀，对日本甚至是全世界的纪录片工作者都产生了深远影响，也成为许多纪录片拍摄者的启蒙教材。土本典昭鼓励人们拿起摄像机，大胆记录，大胆传播，鼓励大家和受害者站在一起。凭着道德勇气，他一生持续拍摄了17部水俣系列纪录片 土本不仅拍摄电影，还到偏僻地区---天草沿岸区域放映水俣问题影片，力图发现潜在的水俣病患者，并到瑞典、加拿大、欧洲介绍自己的纪录片，唤醒世界公众的环保意识。土本典昭认为，没有记录就没有发生，唯有真相记录片才能打动麻木的人心。 5. 西山正启 在土本典昭导演的感召下，建筑公司的高管西山正启 ，放弃大型建筑公司的高薪工作，跟着土本典昭导演学习一段时间后，开始独立拍摄水俣病事件。他一手背着工具箱，一手拿着工具箱和录音器材，独自在山野中奔走，自己一人导演，一人摄像，一人录音，记录了无数患者的真相。代表作有《我们的街头、我们的青春——水俣热唱》 我从youtube上检索一些水俣病的纪录片，看到水俣病人双手拼命上下摇摆、胎儿性水俣病患者站立不稳，大人一放手，马上向后倒，患儿们皮包骨头、骨瘦如柴，画面令人心酸。这些勇敢的日本导演们保留了第一手资料，为受害者保留了证据，也为后人留下了历史的教训。为了拍摄水俣病，土本典昭导演奔走了43年。 (画外音：我们的毒奶受害者、毒疫苗受害者，为数众多，是日本水俣病患者的几百倍。不知社会上是否有留下纪录片，是否有像石牟礼道子这样的作家留下文字记录。也许有，只是我们不知道。也许没有......) 1960年代中后期电视普及加速了资讯的传播 1960年代中后期，几乎所有家庭都有一台黑白电视机。高速铁路与电视机的普及，这些将水俣带入全国人民的视野中。几年内，公民社会的积极分子就学会了利用电视网络将水俣病呈现给观众。更多的人看了电视新闻和石牟礼道子的书、土本典昭的纪录片之后，掀起了到水俣参观的热情。从此抗争运动此起彼伏、席卷全国，规模和力度空前壮大。 （画外音：中国有多少知识分子，愿意放下心灵鸡汤，有多少人愿意利用互联网，在微博、微信等自媒体上传播赵连海(结石宝宝之父)等抗震者的声音?） 在公民社会的强大压力下，日本政府多次提出总体解决方案，如1977年提出水俣病判断基准。但是，按照此基准，绝大部分水俣病患者被排除在外。1993年福冈高级法院对第三水俣病进行裁决，提出了法庭调解、庭外和解的方案，协议将患者分成13个等级，一次性支付200万~800万日元的补偿。窒素公司、熊本县政府与患者小组都同意接受，因为患者年事已高，光阴所剩无几。但是自民党和环境署坚持要等法庭裁定的结果，认为如有必要，将继续向最高法院上诉。政府策略是希望放慢节奏，以时间换取空间。时间上患者们面临的压力更大了。 1994年6月，社会党与自民党、先驱新党组成联合政府。社会党的党首村山富市当选日本首相，僵局从此打破。自民党一党独大开始受到挑战，不好直接反对，中央各部委与熊本县开始谈判。1995年末，各方达成协议。合格的尚未得到认证的患者，每人可获得260万日元的补偿。5个受害者小组获得49.4亿日元的补偿。村山富市首相当天道歉，并发表声明，对受害者所受的痛苦表示遗憾，强调政府应对缓慢的应对诚实反省。政党轮替的意义初步呈现。 1993年水俣市建立水俣病博物馆、环境教育中心。1994年与窒素公司无任何瓜葛的吉井正澄当选水俣市长，成为首位代表政府向患者道歉的市长。吉井市长开启了垃圾分类运动的先河。吉井开始思考如何将公害起点的水俣市建设成模范的环境都市，后来，国家设立水俣病网站，详细记录了污染成因、司法判决、医疗检测、证据收集、企业对应、律师参与、政府措施、民间抗争、人权活动家前赴后继抗争的全过程，并有中文网站，告诫中国人民不要步日本的后尘。在水俣，除了有政府办的资料馆，如今也有民间的吉永利夫们办的考证馆。目的是让人们记住昨天，并从昨天走向未来。 日本政府于2009年推出水俣病特别措施法，但仍未规定具体范围，又因窒素公司拆解公司，一分为二，这些法律也备受争议。 实际上日本完全解决水俣病问题，是2013年4月6日。距离确诊发病，整整57年过去了。 美国作家蒂莫西 乔治实地考察后说：日本所有的水俣病运动参与者都希望向大众讲述自己的水俣故事，告诉整个国家这场悲剧的教训。直到最近，各个组织依然还仅仅针对自己的成员进行宣讲，持反对意见的组织之间，几乎不能进行对话沟通。不仅仅是患者及其支持者拒绝与政府官员对话，甚至不同的受害者及其支持者之间也刻意保持距离。直到20世纪90年代初，这些隔阂才开始逐渐打破。 通过以上的内容，我大致可以得出以下的结论。 一、正义来之不易，争取正义之路，蜿蜒曲折，不会一帆风顺。但正义是靠抗争得来的，不是等来的。所有的权利都是需要付出代价去争取的。无论是民主社会，还是专制社会，权利都需要靠人去争取，权力则必须被关进笼子。认为人不必关心政治的人，请回家去好好想一想，政治与水、空气、蔬菜、水果、鸡肉、药品、住院、迁徙，甚至你所住大楼电梯的安全都是密切相关的。 二、有人说日本也经历过污染，伦敦也经历过，认为这是发展过程中不可避免的，再过20年后，中国一切自然会变好的。似乎无需流汗、无需流泪、无需抗争，只要坐在家里等待，20年后一切就可改变，那时天会蓝，水会清，正义自然会降临。我认为这是极其可怕的思维。 三、有人说抗争没有用，我要说所有的抗争都有用，你的一个微博、一个微信、一个QQ、一个帖子，都会形成气场，鼓舞无数的人们。安徽省望江县的农民不是叫停了一个草率上马的长江中上游的核电站(彭泽核电站)吗?上海市民不是叫停了沪杭磁悬浮铁路和松江电池污染工厂吗?在强大压力下，汽车年检一年一次不是改为六年一次了吗?你说没有用，那是因为你平时不够关心公义，你不愿意、不屑于去了解、传播和学习公民社会抗争的第一手信息。 四、懒惰的人可能会用“天下乌鸦一般黑”来形容所有的政府和社会，从而将民主与专制、威权与极权混为一谈。尽管当时的政府极其不负责任，但是日本社会依旧在民主体制下运行，司法独立、结社自由、集会自由、出版自由依旧存在。因为这些因素，集体诉讼未受到镇压，电视台报道水俣病事件的记者没有被下岗，法院没有拒绝受理各种案件，维权律师没有被吊销执照、没有被监禁被失踪，纪录片导演没有被关进黑监狱，参与抗争的受害者没有被关进精神病医院，他们的证据没有被毁灭。石牟礼道子的著作出版发行没有受到阻挠，其部分章节在1980年代就被列入高中生的教科书。由此大致可以得出这样的结论：再糟糕的民主，也比极权好。 五、公民社会的积极分子，需要有大爱心、大气度，需要包容、克制，需要学会协调。这些都需要训练。原田正纯医生随时出现在律师团，随时提供各种证据。石牟礼道子女士随时出现在谈判桌边。他们不求个人的闻达，随时协助需要协助的人(无论是患者，还是律师、议员)。尽管面临很多困难，这些大格局、大心胸的理想主义者之间，密切合作、相加相乘，而不是互相拆台，他们的精诚团结推动了日本公民社会的成长。 六、争论“先争自由，还是先争民主”的问题，毫无意义。没有民主体制，即使自由到手了，也是没有保障的。没有选票，我们终将一无所有。 我在想：作为小人物，我们可不可以学到石牟礼道子、原田正纯十分之一的爱心和方法呢?在互联网时代，我们可不可以打开智能手机学习记录和传播呢？我们有没有勇气迈出第一步，为汪永晨等良心人士的环保组织捐款一百块钱，或者为他们每天转发一条微博呢？我们有没有谁愿意去追查雾霾的污染源呢？ 爱邻人、爱国家、爱故乡，就要爱故乡的河流，爱故乡的天空。爱自己的孩子，就要给孩子们一片洁净的空气、清澈的河流、安全的食品、公义的环境，怎能将问题再推给下一代呢?在互联网时代，我们还要为自己的怯懦和懒惰继续找借口吗?
引言在黑客的世界里，你所提技术问题的解答很大程度上取决于你提问的方式与解决此问题的难度，本文将教你如何提问才更有可能得到满意的答复。开源程序的应用已经很广，你通常可以从其他更有经验的用户而不是黑客那里得到解答。这是好事，他们一般对新手常有的毛病更容忍一点。然尔，使用我们推荐的方法，象对待黑客那样对待这些有经验的用户，通常能最有效地得到问题的解答。第一件需要明白的事是黑客喜欢难题和激发思考的好问题。假如不是这样，我们也不会写本文了。如果你能提出一个有趣的问题让我们咀嚼玩味，我们会感激你。好问题是种激励与礼物，帮助我们发展认知，揭示没有注意或想到的问题。在黑客中，“好问题！” 是非常热烈而真挚的赞许。此外，黑客还有遇到简单问题就表现出敌视或傲慢的名声。有时，我们看起来还对新手和愚蠢的家伙有条件反射式的无礼，但事情并不真是这样。我们只是毫无歉意地敌视那些提问前不愿思考、不做自己家庭作业的人。这种人就象时间无底洞──他们只知道索取，不愿意付出，他们浪费了时间，这些时间本可用于其它更有趣的问题或更值得回答的人。我们将这种人叫做 “失败者（loser）” （由于历史原因，我们有时将“loser”拼写为“lusers” 。）我们意识到许多人只是想使用我们写的软件，他们对学习技术细节没有兴趣。对大多数人而言，计算机只是种工具，是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做，我们承认这点，也从不指望每个人都对这些让我们着迷的技术问题感兴趣。不过，我们回答问题的风格是为了适应那些真正对此有兴趣并愿意主动参与解决问题的人，这一点不会变，也不该变。如果连这都变了，我们就会在自己能做得最好的事情上不再那么犀利。我们（大多数）是自愿者， 从自己繁忙的生活中抽时间来回答问题，有时会力不从心。因此，我们会毫不留情地滤除问题，特别是那些看起来象是失败者提的，以便更有效地把回答问题的时间留给那些胜利者。如果你认为这种态度令人反感、以施惠者自居或傲慢自大，请检查你的假设，我们并未要求你屈服──事实上，假如你做了该做的努力，我们中的大多数将非常乐意平等地与你交流，并欢迎你接纳我们的文化。试图去帮助那些不愿自救的人对我们简直没有效率。不懂没有关系，但愚蠢地做事不行。所以，你不必在技术上很在行才能吸引我们的注意，但你必须表现出能引导你在行的姿态──机敏、有想法、善于观察、乐于主动参与问题的解决。如果你做不到这些使你与众不同的事情，我们建议你付钱跟别人签商业服务合同，而不是要求黑客无偿帮助。如果你决定向我们求助，你不会想成为一名失败者，你也不想被看成一个失败者。得到快速有效回答的最好方法是使提问者看起来象个聪明、自信和有想法的人，并且暗示只是碰巧在某一特别问题上需要帮助。提问前在通过电邮、新闻组或论坛提技术问题以前，做以下事情：尝试在你准备提问论坛的历史文档中搜索答案尝试搜索互联网以找到答案尝试阅读手册以找到答案尝试阅读“常见问题文档”（FAQ）以找到答案尝试自己检查或试验以找到答案尝试请教懂行的朋友以找到答案如果你是程序员，尝试阅读源代码以找到答案提问时，请先表明你已做了上述事情，这将有助于建立你不是寄生虫与浪费别人时间的印象。最好再表述你从中学到的东西 ，我们喜欢回答那些表现出能从答案中学习的人。运用某些策略，比如用谷歌（Google）搜索你遇到的各种错误提示（既搜索 谷歌论坛，也搜索网页）， 这样很可能直接就找到了解决问题的文档或邮件列表线索。 即使没有结果，在邮件列表或新闻组寻求帮助时提一句“我在谷歌中搜过下列句子但没有找到什么有用的东西” 也是件好事，至少它表明了搜索引擎不能提供哪些帮助。将搜索关键词与你的问题及可能的解决方案联系起来，还有助于引导其他有类似问题的人。别着急，不要指望几秒钟的谷歌搜索就能解决一个复杂的问题。读一下常见问题文档。在向专家提问之前，先向后靠靠放松一下，再思考一下问题。相信我们，他们能从你的提问看出你做了多少阅读与思考，如果你是有备而来，将更有可能得到解答。不要将所有问题一股脑抛出，只因你的第一次搜索没有结果（或者结果太多）。认真地思考，准备好你的问题。轻率的提问只能得到轻率的回答，或者压根没有。在提问时，你越是表现出在此前做过思考与努力去解决自己的问题，你越有可能得到真正的帮助。注意别提错问题。如果提问基于错误的假设，某黑客多半会一边想 “愚蠢的问题……”，一边按将错就错的答案回复你，并且希望这种只是得到你自己“问的问题”而非真正所需的解答，给你一个教训。永远不要假设你有资格得到解答。你没有这种资格，毕竟你没有为此服务付费。如果你能够提出有内容、有趣和激励思考的问题──那种毫无疑问能够向社区贡献经验，而不仅仅是消极地要求从别人那获取知识的问题，你将“挣到”答案。另一方面，表明你有能力也乐意参与问题的解决是个很好的开端。“有没有人能指个方向？”，我这还差点什么？”，“我应该查哪个网站？”，通常要比 “请给出我可以用的完整步骤”更容易得到回复，因为你表明了只要有人能指个方向，你就很乐意完成剩下的过程。提问时仔细挑选论坛要对在哪提问留心，如果你做了下述事情，多半会被一笔勾销或被看成“失败者”：张贴与论坛主题无关的问题在面向高级技术问题的论坛上张贴肤浅的问题，或者反之。在太多不同的新闻组同时张贴给既非熟人也没有义务解决你问题的人发送你私人的电邮为保护通信的渠道不被无关的东西淹没，黑客会除掉那些没有找对地方的问题，你不会想让这种事落到自己头上的。因此，第一步是找对论坛。谷歌和其它搜索引擎还是你的朋友，可以用它们搜索你遇到困难的软硬件问题最相关的项目网站。那里通常都有项目的常见问题（FAQ）、邮件列表及文档的链接。如果你的努力（包括 阅读 FAQ）都没有结果，这些邮件列表就是最后能取得帮助的地方。项目的网站也许还有报告臭虫的流程或链接，如果是这样，去看看。向陌生的人或论坛发送邮件极有可能是在冒险。譬如，不要假设一个内容丰富的网页的作者想充当你的免费顾问，不要对你的问题是否会受到欢迎做太乐观的估计──如果你不确定，向别处发或者压根别发。在选择论坛、新闻组或邮件列表时，别太相信名字，先看看 FAQ 或者许可书以明确你的问题是否切题。发贴前先翻翻已有的帖子，这样可以让你感受一下那里行事的方式。事实上，张贴前在新闻组或邮件列表的历史文档中搜索与你问题相关的关键词是个极好的主意，也许就找到答案了。即使没有，也能帮助你归纳出更好的问题。别象机关枪似的一次性“扫射”所有的帮助渠道，这就象大喊大叫一样会令人不快，温柔地一个一个来。弄懂主题！最典型的错误之一是在某种致立于跨平台可移植的语言、库或工具的论坛中提关于 Unix 或 Windows 操作系统程序接口的问题。如果你不明白为什么这是大错，最好在搞清楚概念前什么也别问。一般来说，在仔细挑选的公共论坛中提问比在私有论坛中提同样的问题更容易得到有用的回答。有几个道理支持这点，一是看潜在的回复者有多少，二是看论坛的参与者有多少，黑客更愿回答能启发多数人的问题。可以理解，老练的黑客和一些流行软件的作者正在承受过多的不当消息。就象那根最后压垮骆驼背的稻草一样，你的加入也有可能使情况走向极端──已经好几次了，一些流行软件的作者退出了对自己软件的支持，因为伴随而来的涌入其私人邮箱的垃圾邮件变得无法忍受。面向新手的论坛和互联网中继聊天（IRC）通常响应最快本地的用户组织或者你所用的 Linux 发行版也许正在宣传新手取得帮助的论坛或 IRC 通道（在一些非英语国家，新手论坛很可能还是邮件列表），这些地方是开始提问的好去处，特别是当你觉得遇到的也许只是相对简单或者很普通的问题时。经过宣传的 IRC 通道是公开邀请提问的地方，通常可以得到实时的回复。事实上，如果出问题的程序来自某发行版（这很常见），最好先去该发行版的论坛或邮件列表中提问，再到程序本身的项目论坛或邮件列表，（否则）该项目的黑客可能仅仅回复“用 我们的 代码”。在任何论坛发贴以前，先看看有没有搜索功能。如果有，就试着用问题的几个关键词搜索一下，也许就有帮助。如果在此之前你已做过全面的网页搜索（你应该这样去做），还是再搜索一下论坛，搜索引擎有可能没来得及索引此论坛的全部内容。通过论坛或 IRC 通道提供项目的用户支持有增长的趋势，电子邮件交流则更多地为项目开发者保留。所以先在论坛或 IRC 中寻求与该项目相关的帮助。第二步，使用项目的邮件列表当某个项目存在开发者邮件列表时，要向列表而不是其中的个别成员提问，即使你确信他能最好地回答你的问题。查一查项目的文档和主页，找到项目的邮件列表并使用它。采用这种办法有几个很好的理由：向个别开发者提的问题（如果）足够好，也将对整个项目组有益。相反，如果你认为自己的问题对整个项目组来说太愚蠢，这也不能成为骚扰个别开发者的理由。向列表提问可以分散开发者的负担，个别开发者（尤其是项目领导）也许太忙以至于没法回答你的问题。大多数邮件列表都要存档，那些存档将被搜索引擎索引，如果你向列表提问并得到解答，将来其它人可以通过网页搜索找到你的问题和答案，也就不用再次发问了。如果某些问题经常被问到，开发者可以利用此信息改进文档或软件本身，以使其更清楚。如果只是私下提问，就没有人能看到最常见问题的完整场景。如果一个项目既有 “用户” 也有“开发者”（或 “黑客”）邮件列表或论坛，而你又不摆弄那些代码，向“用户”列表或论坛提问。不要假设自己会在开发者列表中受到欢迎，那些人多半会遭受你的噪音干扰。然尔，如果你 确信 你的问题不一般，而且在“用户” 列表或论坛中几天都没有回复，可以试试“开发者”列表或论坛。建议你在张贴前最好先暗暗地观察几天,至少看看最近几天保存的帖子,以了解那的行事方式（事实上这是参与任何私有或半私有列表的好主意）如果你找不到一个项目的邮件列表，而只能查到项目维护者的地址，只管向其发信。即便在这种情况下，也别假设（项目）邮件列表不存在。在你的电子邮件中陈述你已经试过但没有找到合适的邮件列表，也提及你不反对将自己的邮件转发给他人（许多人认为，即使没什么秘密，私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人，你给了相应人员处置你邮件的选择）。使用有意义且明确的主题在邮件列表、新闻组或论坛中，主题是你在五十个或更少的字以内吸引有资格专家注意的黄金机会，不要用诸如 “请帮我” （更别提大写的 “请帮我！！！！”，这种主题的消息会被条件反射式地删掉）之类的唠叨浪费机会。不要用你痛苦的深度来打动我们，相反，要在这点空间中使用超级简明扼要的问题描述。使用主题的好惯例是“对象──偏差”（式的描述），许多技术支持组织就是这样做的。在“对象”部分指明是哪一个或哪一组东西有问题，在“偏差”部分则描述与期望的行为不一致的地方。愚蠢：救命啊！我的笔记本视频工作不正常！明智：X.org 6.8.1 扭曲鼠标光标，MV1005 型号的某显卡芯片组更明智：使用 MV1005 型号的某显卡芯片组在 X.org 6.8.1 的鼠标光标被扭曲编写 “对象──偏差”式描述的过程有助于你组织对问题的细致思考。是什么被影响了？仅仅是鼠标光标或者还有其它图形？只在 X.org 中出现？或只是在其 6.8.1 版中？是针对某显卡芯片组？或者只是其中的 MV1005 型号？一个黑客只需描一眼就能够立即明白什么是你遇到的问题，什么是你自己的问题。更一般地，想象一下在一个只显示主题的文档索引中查找。让你的主题更好地反映问题，可以使下一个搜索类似问题的人能够在文档中直接就找到答案的线索，而不用再次发贴提问。如果你想在回复中提问，确保改变主题以表明你是在问一个问题，一个主题象 “Re: 测试” 或者 “Re: 新臭虫”的消息不太可能引起足够的注意。同时，将回复中与新主题不甚相关的引用内容尽量删除。对于列表消息，不要直接点击回复（按钮）来开始一个全新的线索，这将限制你的观众。有些邮件阅读程序，比如 mutt，允许用户按线索排序并通过折叠线索来隐藏消息，这样做的人永远看不到你发的消息。仅仅改变主题还不够。mutt 和其它一些邮件阅读程序还要检查邮件头主题以外的其它信息，以便为其指定线索，所以宁可发一个全新的邮件。在论坛，因为消息与特定的线索紧密结合，并且通常在线索之外不可见，好的提问方式略有不同，通过回复提问并不要紧。不是所有论坛都允许在回复中出现分离的主题，而且这样做了基本上没有人会去看。不过，通过回复提问本身就是令人怀疑的做法，因为它们只会被正在查看该线索的人读到。所以，除非你 只想 在该线索当前活跃的人群中提问，还是另起炉灶比较好。使问题容易回复以“请向……回复”来结束问题多半会使你得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦，我们也觉得花几秒钟考虑你的问题更麻烦。如果你的邮件客户端程序不支持这样做，换个好点的；如果是操作系统不支持所有这种邮件客户端程序，也换个好点的。在论坛，要求通过电子邮件回复是完全无礼的，除非你确信回复的信息也许是敏感的（而且有人会为了某些未知的原因，只让你而不是整个论坛知道答案）。如果你只是想在有人回复线索时得到电子邮件提醒，可以要求论坛发送。几乎所有论坛都支持诸如“留意本线索”、“有回复发送邮件”等功能。用清晰、语法、拼写正确的语句书写经验告诉我们，粗心与草率的作者通常也粗心与草率地思考和编程（我敢打赌）。为这些粗心与草率的思考者回答问题没有什么好处，我们宁可将时间花在其它地方。清楚、良好地表达你的问题非常重要。如果你觉得这样做麻烦，我们也觉得注意（你的问题）麻烦。花点额外的精力斟酌一下字句，用不着太僵硬与正式──事实上，黑客文化很看重能准确地使用非正式、俚语和幽默的语句。但它 必须 很准确，而且有迹象表明你是在思考和关注问题。正确地拼写、使用标点和大小写，不要将“its”混淆为“it's”，“loose”搞成“lose”或者将“discrete”弄成 “discreet”。不要全部用大写，这会被视为无礼的大声嚷嚷 （全部小写也好不到哪去，因为不易阅读。Alan Cox [注：著名黑客，Linux 内核的重要参与者] 也许可以这样做，但你不行。）一般而言，如果你写得象个半文盲似的傻子，多半得不到理睬。也不要使用即时通讯中的简写，如将“you”简化为“u”会使你看起来象一个为了节约二次击键的半文盲式的傻子。更糟的是，如果象个小孩似地鬼画桃符那绝对是在找死，可以肯定没人会理你（或者最多是给你一大堆指责与挖苦）。如果在非母语论坛提问，你的拼写与语法错误会得到有限的宽容，但懒惰完全不会被容忍（是的，我们通常看得出其中的差别）。同时，除非你知道回复者使用的语言，请使用英语书写。繁忙的黑客一般会直接删除用他们看不懂语言写的消息。在互联网上英语是工作语言，用英语书写可以将你的问题不被阅读就被直接删除的可能性降到最低。如果你用英语书写但它是你的第二语言，最好提醒潜在的回复者语言上可能的困难以便绕过这个问题，比如：英语不是我的母语，请谅解拼写错误。如果您使用某某语言，请电邮/私聊我，也许我需要您的协助翻译我的问题。对于这个技术术语本身我很熟悉，但对于它的一些俚语或习惯表达方式就不太明白了。我已经同时用某某语及英语提问，如果您使用两者之一回复，我很乐意翻译。使用易于读取且标准的文件格式发送问题如果你人为地将问题搞得难以阅读，它多半会被忽略，人们更愿读易懂的问题，所以：使用纯文本而不是 HTML（超文本标注语言）（ 关闭HTML 并不难）使用 MIME（多用途互联网邮件扩展）附件通常没有问题，前提是真正有内容（譬如附带的源文件或补丁），而不仅仅是邮件客户端程序生成的模板（譬如只是消息内容的拷贝）。不要发送整段只是单行句子但多次折回的邮件（这使得回复部分内容非常困难）。设想你的读者是在80个字符宽的文本终端阅读邮件，设置你的行折回点小于 80 列。但是，也 不要 用任何固定列折回数据（譬如日志文件拷贝或会话记录）。数据应该原样包含，使回复者确信他们看到的是与你看到的一样的东西。在英语论坛中，不要使用'Quoted-Printable' MIME 编码发送消息。这种编码对于张贴非 ASCII 语言可能是必须的，但很多邮件程序并不支持。当它们分断时，那些文本中四处散布的 “=20”符号既难看也分散注意力，甚至有可能破坏内容的语意。永远不要 指望黑客们阅读使用封闭的专用格式编写的文档，诸如微软公司的 Word 或 Excel 文件等。大多数黑客对此的反应就象有人将还在冒热气的猪粪倒在你门口时你的反应一样。即使他们能够处理，也很厌恶这么做。如果你从使用视窗的电脑发送电子邮件，关闭问题颇多的微软“聪明引用”功能（在“工具” -> “自动纠正选项”的“输入时自动格式化”下去掉聪明引用的选框），以免在你的邮件中到处散布垃圾字符。在论坛，勿滥用“表情符号”和“HTML”功能(当它们提供时)。一两个表情符号通常没有问题，但花哨的彩色文本倾向于使人认为你是个无能之辈。过滥地使用表情符号、色彩和字体会使你看来象个傻笑的小姑娘。这通常不是个好主意，除非你只是对性而不是有用的回复更有兴趣。如果你使用图形用户界面的邮件客户端程序(如网景公司的 Messenger、微软公司的 Outlook 或者其它类似的)，注意它们的缺省配置不一定满足这些要求。大多数这类程序有基于菜单的“查看源码”命令，用它来检查发送文件夹中的消息，以确保发送的是没有多余杂质的纯文本文件。描述问题应准确且有内容仔细、清楚地描述问题的症状描述问题发生的环境(主机、操作系统、应用程序，任何相关的)，提供销售商的发行版和版本号（如：“Fedora Core 7”、“Slackware 9.1”等）描述提问前做过的研究及其理解。描述提问前为确定问题而采取的诊断步骤。描述最近对计算机或软件配置的任何相关改变。如果可能，提供在可控环境下重现问题的方法。尽最大努力预测黑客会提到的问题，并提前备好答案。如果你认为是代码有问题，向黑客提供在可控环境下重现问题的方法尤其重要。当你这么做时，得到有用且及时回复的可能性将大大增加。西蒙.泰瑟姆（Simon Tatham）写过一篇 如何有效报告臭虫 的文章，我强烈推荐各位阅读。量不在多，精炼则灵你应该（写得）精炼且有内容，简单地将一大堆代码或数据罗列在求助消息中达不到目的。如果你有一个很大且复杂的测试样例让程序崩溃，尝试将其裁剪得越小越好。至少有三个理由支持这点。第一，让别人看到你在努力简化问题使你更有可能得到回复。第二，简化问题使你更有可能得到 有用的 回复。第三，在提纯臭虫报告的过程中，你可能自己就找到了解决办法或权宜之计。别急于宣称找到臭虫当你在一个软件中遇到问题，除非你 非常、非常 的有根据，不要动辄声称找到了臭虫。提示：除非你能提供解决问题的源代码补丁，或者对前一版本的回归测试表现出不正确的行为，否则你都多半不够完全确信。对于网页和文档也如此，如果你（声称）发现了文档的“臭虫”，你应该能提供相应位置的替代文本。记住，还有许多其它用户并未经历你遇到的问题，否则你在阅读文档或搜索网页时就应该发现了（你在报怨前已经做了这些，是吧 ？）。这也意味着很有可能是你弄错了而不是软件本身有问题。编写软件的人总是非常辛苦地使它尽可能完美。如果你声称找到了臭虫，也就置疑了他们的能力，即使你是对的，也有可能会使其中的部分人感到不快。（此外，）在主题中嚷嚷“臭虫”也是特别不老练的。提问时，即使你私下非常确信已经发现一个真正的臭虫，最好写得象是 你 做错了什么。如果真的有臭虫，你会在回复中看到这点。这样做的话，如果真有虫子，维护者就会向你道歉，这总比你弄砸了然后欠别人一个道歉要强。低声下气代替不了做自己的家庭作业有些人明白他们不应该粗鲁或傲慢地行事并要求得到答复，但他们退到相反的低声下气的极端：“我知道我只是个可怜的新丁，一个失败者，但……”。这既使人困扰，也没有用，当伴随着对实际问题含糊的描述时还特别令人反感。别用低级灵长类动物的办法浪费你我的时间，相反，尽可能清楚地描述背景情况和你的问题，这比低声下气更好地摆正了你的位置。有时，论坛设有单独的初学者提问版面，如果你真的认为遇到了肤浅的问题，到那去就是了，但一样别低声下气。描述问题症状而不是猜测告诉黑客是什么导致了问题是没用的（如果你的诊断理论是了不起的东西，你还会向别人咨询求助吗？）。所以，确保只是告诉他们问题的原始症状，而不是你的解释和理论，让他们来解释和诊断。如果你认为陈述自己的猜测很重要，应清楚地说明这只是你的猜测并描述为什么它们不起作用。愚蠢：我在编译内核时接连遇到 SIG11 错误，怀疑主板上的某根电路丝断了，找到它们的最好办法是什么？明智：我组装的电脑（K6/233 CPU、FIC-PA2007 主板[威盛 Apollo VP2 芯片组]、Corsair PC133 SDRAM 256Mb 内存）最近在开机 20 分钟左右、做内核编译时频繁地报 SIG11 错，但在头 20 分钟内从不出问题。重启动不会复位时钟，但整夜关机会。更换所有内存未解决问题，相关的典型编译会话日志附后。由于以上这点许多人似乎难以掌握，这里有句话可以提醒你：“所有的诊断专家都来自密苏里州”。美国国务院的官方座右铭则是“让我看看”（出自国会议员威勒德.D.范迪弗［Willard D. Vandiver］在1899年时的讲话：“我来自一个出产玉米、棉花、牛蒡和民主党人的国家，滔滔雄辩既不能说服我，也不会让我满意。我来自密苏里州，你必须让我看看。”）针对诊断者而言，这并不是怀疑，而只是一种真实而有用的需求，以便让他们看到与你看到的原始证据尽可能一致的东西，而不是你的猜测与总结。（所以，）让我们看看。按时间先后罗列问题症状刚出问题之前发生的事情通常包含有解决问题最有效的线索。所以，记录中应准确地描述你、电脑和软件在崩溃前都做了什么。在命令行处理的情况下，有会话日志（如运行脚本工具生成的）并引用相关的若干（如20）行记录会非常有帮助。如果崩溃的程序有诊断选项（如-v详述开关），试着选择这些能在记录中增加排错信息的选项。记住，“多”不等于“好”。试着选取适当的排错级别以便提供有用的信息而不是将阅读者淹没在垃圾中。如果你的记录很长（如超过四段），在开头简述问题随后按时间先后罗列详细过程也许更有用。这样，黑客在读你的记录时就知道该注意哪些内容了。描述目标而不是过程如果你想弄清楚如何做某事（而不是报告一个臭虫），在开头就描述你的目标，然后才陈述遇到问题的特定步骤。经常出现这种情况，寻求技术帮助的人在脑袋里有个更高层次的目标，他们在自以为能达到目标的特定道路上被卡住了，然后跑来问该怎么走，但没有意识到这条路本身有问题，结果要费很大的劲才能通过。愚蠢：我怎样才能让某图形程序的颜色拾取器取得十六进制的 RGB 值？明智：我正试着用自己选定数值的颜色替换一幅图片的色表，我现在知道的唯一方法是编辑每个表槽，但却无法让某图形程序的颜色拾取器取得十六进制的 RGB 值。第二种提法是明智的，它使得建议采用更合适的工具以完成任务的回复成为可能。别要求私下回复电邮黑客们认为问题的解决过程应该公开、透明，此过程中如果更有才能的人注意到不完整或者不当之处，最初的回复才能够、也应该被纠正。同时，作为回复者也因为能力和学识被其它同行看到而得到某种回报。当你要求私下回复时，此过程和回报都被中止。别这样做，让 回复者 来决定是否私下回答──如果他真这么做了，通常是因为他认为问题编写太差或者太肤浅，以至于对其它人毫无意义。对这条规则存在一条有限的例外，如果你确信提问可能会引来大量雷同的回复时，那么“向我发电邮，我将为论坛归纳这些回复”将是神奇的句子。试着将邮件列表或新闻组从洪水般雷同的回复中解救出来是非常有礼貌的──但你必须信守诺言。提问应明确漫无边际的问题通常也被视为没有明确限制的时间无底洞。最有可能给你有用答案的人通常也是最忙的人（假如只是因为他们承担了太多工作的话），这些人对于没有止境的时间无底洞极其敏感，所以他们也倾向于讨厌那些漫无边际的问题。如果你明确了想让回复者做的事（如指点方向、发送代码、检查补丁或其它），你更有可能得到有用的回复。（因为）这样可以让他们集中精力并间接地设定了他们为帮助你需要花费的时间和精力上限，这很好。要想理解专家生活的世界，可以这样设想：那里有丰富的专长资源但稀缺的响应时间。你暗中要求他们奉献的时间越少，你越有可能从这些真正懂行也真正很忙的专家那里得到解答。所以限定你的问题以使专家回答时需要付出的时间最少──这通常与简化问题还不太一样。举个例，“请问可否指点一下哪有好一点的 X 解释？”通常要比“请解释一下 X”明智。如果你的代码不运行了，通常请别人看看哪有问题比叫他们帮你改正更明智。关于代码的问题别要求他人给你出问题的代码排错而不提及应该从何入手。张贴几百行的代码，然后说一声“它不能运行”会让你得不到理睬。只贴几十行代码，然后说一句“在第七行以后，本应该显示，但实际出现的是”非常有可能让你得到回复。最精确描述代码问题的方法是提供一个能展示问题的最小测试样例。什么是最小测试样例？它是对问题的展现，只需要刚好能够重现非预期行为的代码即可。如何生成一个最小测试样例？如果你知道哪一行或哪一段代码会产生问题，将其复制并提供刚好够用的外围支撑代码以构成一个完整的样例（够用是指源码刚好能被编译器、解释器或任何处理它的程序所接受）。如果你不能将问题缩小到特定的段落，复制源码并去除那些与问题无关的代码段。你能提供的最小测试样例越小越好（参见 量不在多，精炼则灵 ）。生成一个非常小的最小测试样例并不总是可能，但尽力去做是很好的锻练，这有可能帮助你找到需要自己解决的问题。即使你找不到，黑客们喜欢看到你努力过，这将使他们更合作。如果你只是想让别人帮忙审一下代码，在最开头就要说出来，并且一定要提到你认为哪一部分特别需要关注以及为什么。别张贴家庭作业式问题黑客们善于发现“家庭作业”式的问题。我们中的大多数人已经做了自己的家庭作业，那是该 你 做的，以便从中学到东西。问一下提示没有关系，但不是要求完整的解决方案。如果你怀疑自己碰到了一个家庭作业式的问题，但仍然无法解决，试试在用户组、论坛或（作为最后一招）在项目的“用户”邮件列表或论坛中提问。尽管黑客们 会 看出来，一些老用户也许仍会给你提示。删除无意义的要求抵制这种诱惑，即在求助消息末尾加上诸如“有人能帮我吗？”或“有没有答案？”之类在语义上毫无意义的东西。第一，如果问题描述还不完整，这些附加的东西最多也只能是多余的。第二，因为它们是多余的，黑客们会认为这些东西烦人──就很有可能用逻辑上无误但打发人的回复，诸如“是的，你可以得到帮助”和“不，没有给你的帮助”。一般来说，避免提“是或否”类型的问题，除非你想得到 “是或否”类型的回答。不要把问题标记为“紧急”， 即使对你而言的确如此这是你的问题，不要我们的。宣称“紧急”极有可能事与愿违：大多数黑客会直接删除这种消息，他们认为这是无礼和自私地企图得到即时与特殊的关照。而且“紧急”或其它有类似含义的主题有可能触发垃圾过滤规则，潜在的回复者可能永远看不到你的问题！有一点点局部的例外，如果你是在一些知名度很高、会使黑客们激动的地方使用程序，也许值得这样去做。在这种情况下，如果你有期限压力，也很有礼貌地提到这点，人们也许会有足够的兴趣快一点回答。当然，这是非常冒险的，因为黑客们对什么是令人激动的标准多半与你的不同。譬如从国际空间站这样张贴没有问题，但代表感觉良好的慈善或政治原因这样做几乎肯定不行。事实上，张贴诸如“紧急：帮我救救这个毛绒绒的小海豹！”肯定会被黑客回避或光火，即使他们认为毛绒绒的小海豹很重要。如果你觉得这不可思议，再把剩下的内容多读几遍，直到弄懂了再发贴也不迟。礼貌总是有益的礼貌一点，使用“请”和“谢谢你的关注”或者“谢谢你的关照”，让别人明白你感谢他们无偿花时间帮助你。坦率地讲，这一点没有语法正确、文字清晰、准确、有内容和避免使用专用格式重要（同时也不能替代它们）。黑客们一般宁可读有点唐突但技术鲜明的臭虫报告，而不是那种有礼但含糊的报告。（如果这点让你不解，记住我们是按问题能教我们什么来评价它的）然尔，如果你已经谈清楚了技术问题，客气一点肯定会增加你得到有用回复的机会。（我们必须指出，本文唯一受到一些老黑客认真反对的地方是以前曾经推荐过的“提前谢了”，一些黑客认为这隐含着事后不用再感谢任何人的暗示。我们的建议是要么先说 “提前谢了”，事后 再 对回复者表示感谢，要么换种方式表达，譬如用“谢谢你的关注”或“谢谢你的关照”）。问题解决后追加一条简要说明问题解决后向所有帮助过的人追加一条消息，让他们知道问题是如何解决的并再次感谢。如果问题在邮件列表或新闻组中受到广泛关注，在那里追加此消息比较恰当。最理想的方式是向最初提问的线索回复此消息，并在主题中包含“已解决”、“已搞定”或其它同等含义的明显标记。在人来人往的邮件列表里，一个看见线索 “问题 X”和“问题 X-已解决”的潜在回复者就明白不用再浪费时间了（除非他个人觉得“问题 X”有趣），因此可以利用此时间去解决其它问题。追加的消息用不着太长或太复杂，一句简单的“你好──是网线坏了！谢谢大家──比尔”就比什么都没有要强。事实上，除非解决问题的技术真正高深，一条简短而亲切的总结比长篇大论要好。说明是什么行动解决了问题，用不着重演整个排错的故事。对于有深度的问题，张贴排错历史的摘要是恰当的。描述问题的最终状态，说明是什么解决了问题，在此之后 才指明可以避免的弯路。应避免的弯路部分应放在正确的解决方案和其它总结材料之后，而不要将此消息搞成侦探推理小说。列出那些帮助过你的名字，那样你会交到朋友的。除了有礼貌、有内容以外，这种类型的追帖将帮助其他人在邮件列表、新闻组或论坛文档中搜索到真正解决你问题的方案，从而也让他们受益。最后，此类追帖还让每位参与协助的人因问题的解决而产生一种满足感。如果你自己不是技术专家或黑客，相信我们，这种感觉对于你寻求帮助的老手和专家是非常重要的。问题叙述到最后不知所终总是令人沮丧的，黑客们痒痒地渴望它们被解决。“挠痒痒”为你挣到的信誉将对你下次再次张贴提问非常非常的有帮助。考虑一下怎样才能避免他人将来也遇到类似的问题，问问自己编一份文档或 FAQ 补丁会不会有帮助，如果是的话就将补丁发给维护者。在黑客中，这种良好的后继行动实际上比传统的礼貌更重要，也是你善待他人而赢得声誉的方式，这是非常有价值的财富。如何解读回答“读读该死的手册”（RTFM）和“搜搜该死的网络”（STFW）：如何明白你已完全搞砸有一个古老而神圣的传统：如果你收到“读读该死的手册”（RTFM） 的回复，发信人认为你应该去“读读该死的手册”。他或她多半是对的，去读一下吧。“读读该死的手册”（RTFM）有个年轻一点的亲戚，如果你收到“搜搜该死的网络”（STFW）的回复，发信人认为你应该“搜搜该死的网络”。那人多半也是对的，去搜一下吧。(更温和一点的说法是“谷歌是你的朋友！”)在论坛，你也可能被要求去搜索论坛的文档。事实上，有人甚至可能热心地为你提供以前解决此问题的线索。但不要依赖这种关照，提问前应该先搜索一下文档。通常，叫你搜索的人已经打开了能解决你问题的手册或网页，正在一边看一边敲键盘。这些回复意味着他认为：第一，你要的信息很容易找到。第二，自已找要比别人喂到嘴里能学得更多。你不应该觉得这样就被冒犯了，按黑客的标准，回复者没有不理你就是在向你表示某种尊敬，你反而应该感谢他热切地想帮助你。如果还不明白……如果你看不懂回答，不要马上回复一个要求说明的消息，先试试那些最初提问时用过的相同工具（如手册、FAQ、网页、懂行的朋友等）试着搞懂回答。如果还是需要说明，展现你已经明白的。譬如，假如我告诉你：“看起来象是某输入项有问题，你需要清除它”，接着是个 不好 的回帖：“什么是某输入项？”。而这是一个 很好 的跟帖：“是的，我读了手册，某某输入项只在 -z 和 -p 开关中被提到，但都没有涉及到如何清除它们，你指的是哪一个还是我弄错了什么？”对待无礼很多黑客圈子中看似无礼的行为并不是存心冒犯。相反，它是直接了当、一针见血式的交流风格，这种风格对于更关注解决问题而不是使别人感觉舒服而混乱的人是很自然的。如果你觉得被冒犯了，试着平静地反应。如果有人真的做了过格的事，邮件列表、新闻组或论坛中的前辈多半会招呼他。如果这 没有 发生而你却光火了，那么你发火对象的言语可能在黑客社区中看起来是正常的，而 你 将被视为有错的一方，这将伤害到你获取信息或帮助的机会。另一方面，你会偶而真的碰到无礼和无聊的言行。与上述相反，对真正的冒犯者狠狠地打击、用犀利的语言将其驳得体无完肤都是可以接受的。然尔，在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔，黑客们自己莽撞地越线的情况并不鲜见。如果你是新手或外来者，避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光，这时最好不要把手放在键盘上以免冒险。（有些人断言很多黑客都有轻度的自闭症或阿斯伯格综合症，缺少用于润滑人类社会“正常”交往所需的脑电路。这既可能是真也可能是假。如果你自己不是黑客，兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为。只管这么干好了，我们不在乎。我们 喜欢 现在这个样子，并且一般都对病号标记有站得住脚的怀疑。）在下一节，我们会谈到另一个问题，当 你 行为不当时会受到的“冒犯”。别象失败者那样反应在黑客社区的论坛中有那么几次你可能会搞砸──以本文描述或类似的方式。你会被示众是如何搞砸的，也许言语中还会带点颜色。这种事发生以后，你能做的最糟糕的事莫过于哀嚎你的遭遇、宣称被口头攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、向其雇主报怨、忘了关马桶盖等等。相反，你该这样去做：熬过去，这很正常。事实上，它是有益健康与恰当的。社区的标准不会自己维持，它们是通过参与者积极而 公开 地执行来维持的。不要哭嚎所有的批评都应该通过私下的邮件传送，这不是事情运作的方式。当有人评论你的一个说法有误或者提出不同看法时，坚持声称受到个人攻击也毫无益处，这些都是失败者的态度。也有其它的黑客论坛，受过高礼节要求的误导，禁止参与者张贴任何对别人帖子挑毛病的消息，并声称“如果你不想帮助用户就闭嘴”。有思路的参与者纷纷离开的结果只会使它们变成了毫无意义的唠叨与无用的技术论坛。是夸张的“友谊”（以上述方式）还是有用？挑一个。记着：当黑客说你搞砸了，并且(无论多么刺耳地)告诉你别再这样做时，他正在为关心你和他的社区而行动。对他而言，不理你并将你从他的生活中滤除要容易得多。如果你无法做到感谢，至少要有点尊严，别大声哀嚎，也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者，就指望别人象对待脆弱的洋娃娃那样对你。有时候，即使你没有搞砸（或者只是别人想象你搞砸了）， 有些人也会无缘无故地攻击你本人。在这种情况下，报怨倒是 真的 会把问题搞砸。这些找茬者要么是毫无办法但自以为是专家的不中用家伙，要么就是测试你是否真会搞砸的心理专家。其它读者要么不理睬，要么用自己的方式对付他们。这些找茬者在给自己找麻烦，这点你不用操心。也别让自己卷入口水战，大多数口水战最好不要理睬──当然，是在你核实它们只是口水战、没有指出你搞砸的地方，而且没有巧妙地将问题真正的答案藏于其中之后（这也是可能的）。提问禁忌下面是些典型的愚蠢问题和黑客不回答它们时的想法。问：我到哪可以找到某程序或 X 资源？问：我怎样用 X 做 Y？问：如何配置我的 shell 提示？问：我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文档转为 TeX 格式吗？问：我的{程序、配置、SQL 语句}不运行了问：我的视窗电脑出问题了，你能帮忙吗？问：我的程序不运行了，我认为系统工具X有问题问：我安装 Linux 或 X 遇到困难，你能帮忙吗？问：我如何才能破解超级用户口令/盗取通道操作员的特权/查看某人的电子邮件？问： 我到哪可以找到某程序或 X 资源？答： 在我找到它的同样地方，笨旦──在网页搜索引擎上。上帝啊，难道还有人不知道如何使用 谷歌 吗？问： 我怎样用 X 做 Y？答： 如果你想解决的是 Y，提问时别给出可能并不恰当的方法。这种问题说明提问者不但对 X 完全无知，也对要解决的 Y 问题糊涂，还被特定形势禁锢了思维。等他们把问题弄好再说。问： 如何配置我的 shell 提示？答： 如果你有足够的智慧提这个问题，你也该有足够的智慧去 “读读该死的手册”（RTFM），然后自己去找出来。问： 我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文档转为 TeX 格式吗？答： 试试就知道了。如果你试过，你既知道了答案，又不用浪费我的时间了。问： 我的{程序、配置、SQL 语句}不运行了答： 这不是一个问题，我也没有兴趣去猜你有什么问题──我有更要紧的事要做。看到这种东西，我的反应一般如下：你还有什么补充吗？噢，太糟了，希望你能搞定。这跟我究竟有什么关系？问： 我的视窗电脑出问题了，你能帮忙吗？答： 是的，把视窗垃圾删了，装个象 Linux 或 BSD 的开源操作系统吧。注意：如果程序有官方的视窗版或者与视窗有交互(如 Samba)，你 可以 问与视窗相关的问题，只是别对问题是由视窗操作系统而不是程序本身造成的回复感到惊讶，因为视窗一般来说太差，这种说法一般都成立。问： 我的程序不运行了，我认为系统工具 X 有问题答： 你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与库文件有明显缺陷的人，更有可能的是你完全没有根据。不同凡响的说法需要不同凡响的证据，当你这样声称时，你必须有清楚而详尽的缺陷说明文档作后盾。问： 我安装 Linux 或 X 遇到困难，你能帮忙吗？答： 不行，我需要亲手操作你的电脑才能帮你排错，去向当地的 Linux 用户组寻求方便的帮助（你可以在 这里 找到用户组列表）注意：如果安装问题与某 Linux 发行版有关，在针对 它 的邮件列表、论坛或本地用户组织中提问也许是恰当的。此时，应描述问题的准确细节。在此之前，先用 “linux”和 所有 被怀疑的硬件 [作关键词] 仔细搜索。问： 我如何才能破解超级用户口令/盗取通道操作员的特权/查看某人的电子邮件？答： 想做这种事情说明你是个卑劣的家伙，想让黑客教你做这种事情说明你是个白痴。好问题与坏问题最后，我将通过举例来演示提问的智慧。同样的问题两种提法，一种愚蠢，另一种明智。愚蠢：我在哪能找到关于 Foonly Flurbamatic 设备的东西？这个问题在乞求得到 “搜搜该死的网络”（STFW） 式的回复。明智： 我用谷歌搜索过“Foonly Flurbamatic 2600”，但没有找到什么有用的，有谁知道在哪能找到这种设备的编程信息？这个人已经搜索过网络了，而且听起来他可能真的遇到了问题。愚蠢： 我不能编译某项目的源代码，它为什么这么破？提问者假设是别人搞砸了，太自大了。明智： 某项目的源代码不能在某 Linux 6.2 版下编译。我读了常见问题文档，但其中没有与某 Linux 相关的内容。这是编译时的记录，我做错了什么吗？提问者已经指明了运行环境，读了常见问题文档（FAQ），列出了错误，也没有假设问题是别人的过错，这家伙值得注意。愚蠢： 我的主板有问题，谁能帮我？某黑客对此的反应可能是：“是的，还需要帮你拍背和换尿布吗？”，然后是敲下删除键。明智： 我在 S2464 主板上试过 X、Y 和 Z，当它们都失败后，又试了 A、B 和 C。注意我试 C 时的奇怪症状，显然某某东西正在做某某事情，这不是期望的行为。通常在 Athlon MP 主板上导致某某事情的原因是什么？有谁知道我还能再试点什么以确定问题？相反地，这个人看来值得回答。他或她展现了解决问题的能力而不是坐等天上掉馅饼。在最后那个问题中，注意“给我一个回答”与“请帮我看看我还能再做点什么测试以得到启发”之间细微但重要的差别。事实上，最后那个问题基本上源于 2001 年 8 月 Linux 内核邮件列表（lkml）上的真实事件，是我（Eric）当时提了那个问题，我发现 Tyan S2462 主板有神秘的死机现象，邮件列表成员给我提供了解决此问题的关键信息。通过这种提问方式，我给了别人可以咀嚼玩味的东西。我设法使之对参与者既轻松又有吸引力，也表明了对同行能力的尊敬并邀请他们与我一起协商。通过告诉他们我已经走过的弯路，我还表明了对他们宝贵时间的尊重。事后，当我感谢大家并评论这次良好的经历时，一个 Linux 内核邮件列表的成员谈到，他认为我得到答案并不是因为我的名字挂在列表上，而只是因为我正确的提问方式。黑客们在某种方面是非常不留情面的精英分子。我想在这事上他是对的，如果我 表现得 象个不劳而获的寄生虫，不管我是谁都会被忽略或斥责。他建议将整个事件作为对其它人提问的指导，这直接导致了本文的编写。如果得不到回答如果得不到回答，请不要认为我们不想帮你，有时只是因为被问到的小组成员的确不知道答案。没有回复不等于不被理睬，当然必须承认从外面很难看出两者的差别。一般而言，直接将问题再张贴一次不好，这会被视为毫无意义的骚扰。耐心一点，知道你问题答案的人可能生活在不同的时区，有可能正在睡觉，也有可能你的问题一开始就没有组织好。还有其它资源可以寻求帮助，通常是在一些面向新手的资源中。有许多在线与本地的用户组织，虽然它们自己不编写任何软件，但是对软件很热心。这些用户组通常因互助和帮助新手而形成。还有众多大小商业公司提供签约支持服务，别因为要付点钱才有支持就感到沮丧！毕竟，如果你车子的汽缸垫烧了，你多半还得花钱找个修理店把它弄好。即使软件没花你一分钱，你总不能指望服务支持都是免费的。象 Linux 这样流行的软件，每个开发者至少有一万个以上的用户，一个人不可能应付这么多用户的服务要求。记住，即使你必须付费才能得到支持，也比你还得额外花钱买软件要少得多（而且对封闭源代码软件的服务支持与开源软件相比通常还要贵一点，也要差一点）。如何更好地回答态度和善一点。问题带来的压力常使人显得无礼或愚蠢，其实并不是这样。对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱，一个真正的新手也许连怎么搜索或在哪找 FAQ 都不知道。如果你不确定，一定要说出来！ 一个听起来权威的错误回复比没有还要糟，别因为听起来象个专家好玩就给别人乱指路。要谦虚和诚实，给提问者与同行都树个好榜样。如果帮不了忙，别妨碍。 不要在具体步骤上开玩笑，那样也许会毁了用户的安装──有些可怜的呆瓜会把它当成真的指令。探索性的反问以引出更多的细节。 如果你做得好，提问者可以学到点东西──你也可以。试试将很差的问题转变成好问题，别忘了我们都曾是新手。尽管对那些懒虫报怨一声“读读该死的手册”（RTFM）是正当的，指出文档的位置（即使只是建议做个谷歌关键词搜索）会更好如果你决意回答，给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计，应推荐更好的工具，重新组织问题。请回答真正的问题！如果提问者已经做了自己该做的研究，并且说明尝试过X，Y，Z，A，B与C都没有得到想要的結果，那么回复“试试A或B” 或者给出一个内容为 “试一下X，Y，Z，A，B或C”的链接将极其无益！帮助你的社区从中学习。当回复一个好问题时，问问自己 “如何修改相关文件或 FAQ 文档以免再次解答同样的问题？”，接着再向文档维护者发一份补丁。如果你是在研究一番后才做出的回答，展现你的技巧而不是直接端出结果。毕竟“授人以鱼，不如授人以渔”。弃权申明许多项目的网站在如何取得帮助的部分链接了本文，这没有关系，也正是我们想要的。但如果你是该项目生成此链接的网管，请在链接附近显著位置注明：我们不提供该项目的服务支持！原文:http://doc.zengrong.net/smart-questions/cn.htmlPS:谷歌果然还是最好用的,一下就找到了版权地址,百度了一堆,全是转载...
1、贫道以前一同事，每次午饭，一样的盒一样的菜，一定要从贫道的盒饭里夹几筷子走。她说，她基本上是不吃早饭的，因为家里条件不好，能省就省，所以中午尽量多吃点。某次吃鱼，贫道没有让给她，她当天特别吃惊，特别生气。2、从国外回来，跟朋友聚了一下，一兄弟的女朋友问贫道有没有买一些免税的东西。我说有，比方DIESEL的香水，现在用的这个，喏。她一边欢快的接过去，一边喷了两下，然后就一直拿在手里，她男朋友有点不好意思，苦笑说“一定很贵吧，多少钱，我给你吧。”贫道说：“……我用过了。”女孩子拉着他的手，天真的看着贫道，说：“没关系的。”后来兄弟默不作声的把香水从桌子下面还了回来。姑娘一直噘着嘴，临走前，突然大声说：“可是，我都没有出过国啊！”3、老师长的一表人才道貌岸然，特别受女孩子欢迎。师娘说，老师还年轻的时候，有一年，他的一个女学生跟踪他回了家，等他上楼开门时，突然冲上来，跟老师表了白，然后让“已经是老妇女的师娘一星期让出一半的时间让老师跟她谈恋爱”。“他跟你有家庭！有孩子！可是我什么都没有！我只是比你更爱他！”——那个当年已经二十出头的师姐在楼道里撕心裂肺的哭喊着。4、她找我借钱，去给刚毕业的儿子买车。“我跟你说，我们家都困难成这样了，我姐夫就是不肯借我十万，我告诉你，他们家光是房子就有两套，他们家是闺女啊，他们还买房？这是什么？这是贪心！你说他一开公司的，十万都拿不出？我们家是儿子，这几年都这样了，他管都不管！他就是一王八蛋，他们全家都是这揍性的！现在人心太坏了！我这话撂这儿，他们家，早！晚！要！倒！霉！”5、很多年前，一朋友的书被人在另一个网站全文搬运抄袭。朋友的粉丝呼啦啦追过去要那边删文。对方删文之前更新了一章，感觉是一边呕血一边撒花瓣一边缓缓倒下。大概意思是“你们这些高高在上的大大，知不知道我们这种热爱文学苦苦挣扎的小透明出名之路有多么艰难！”那个极品还跑去贴吧挂大大逼她删文气到她吐血，过一阵又自称是她哥，说她本来刚刚做过心脏搭桥，已经被气的旧病复发死了，要报仇。当年闹的挺火的，不知道你们还有没有印象。6、邻居家买了新车，没两天，门里面的皮子就挂了个口子。她妈让她开车给她哥送梯子，她说车放不下，她妈赌气，抗了梯子下去就给她塞到了车里，一关门，挂出来一道子。邻居当场气哭，她妈也傻了眼，喏喏半晌，说：“你看，你这车外面也看不出来伤……至于吗！你天天开车日晒不着雨淋不着的，你哥他可连车都不趁呐！”7、一姑娘，每次聚会吃饭基本上是不结账的，就算大伙说好了AA，她也不掏钱。“我这个月工资还没发，实在是没钱了，”她每次都是这么说，一样的台词，一样的抱憾表情：“对不起对不起，要不这样，我不吃，我看你们吃。”大伙每次都说没事没事，一起一起吧。时间长了，就都有点烦她。但是每次聚会她都想方设法打听出地点，赶过来。8、一曾经是朋友的姑娘，有一阵，说特别嫉妒贫道，因为贫道看上去很强，很自由，很独立。贫道说，也没那么洒脱，人生其实往往都是无奈。她打断了贫道，说：“你比我美多了，我得赡养两边的老人，带孩子，上班，而你呢？你想去哪就去哪里……”贫道当时试图告诉她，自己也很羡慕她的家庭——贫道的工作也很忙碌辛苦，而能有一盏灯等着你回家，是贫道的奢望。“但是你不用给任何人负责，你不用承担我这样的重担和痛苦……你这个观点是有问题，你是那种特别依赖家人帮你的类型，我以后不会靠我儿子养的，我生孩子不是做投资，我只是付出，一直付出！你不用装的好像很羡慕我似的，我知道你这样的人，是看不起我这样全心全意为家人付出的傻X的，看你，你多好啊，你家里连老人都没有！”贫道当时笑着说对哦，从父母双亡这一点我就赢过你咯？9、小透明点名骂大大，大大回嘴，丫们必须惊诧，迅速窃喜，也是醉了。奋力画画画干干干唱唱唱写写写，付出比常人百倍的努力成为大大，就要接受被构陷，被传谣，被冷嘲热讽甚至点操全家，而什么都不用干吃着白嫖饭的小透明因为弱小，就有权利拉开脸上的拉链操大大，而大大不能回嘴，不能解释，不能擦屎，否则就是欺负小透明。不知道这规矩是哪儿的江湖，哪个傻逼划出来的道道。10、很小的时候，贫道跟着贫道的父上去旅游。公司组织的带家属旅游，一车人，半车熊孩子。车开到一处停下，加油，旁边有一片菜地，里面种着黄瓜。车门一开，小崽子们嗷一声就冲了下去，大人坐在车上笑嘻嘻的看着，看他们跳下去掰人家地里的黄瓜。贫道的父上不说话，贫道就不敢下去，忍了半天问：“爸，我能一起去摘吗？”他说：“不许去，这是偷。”他徒弟笑嘻嘻挤过来跟贫道使眼色：“没事，小孩掰几个村里人不说的，小孩能干啥，就掰几个，走走，叔叔抱。”父上把他推开了，让他自己下去抽烟。“我就掰一个……”贫道小声说。父上说：“你弱你有理啊？”原文链接:http://blog.sina.com.cn/s/blog_4a0d595b0102w9xq.html
作者：吴乃天 女儿已经去美国半个月了。回想作决定、办手续,直至踏上飞机以来这段激荡的时日,真有似真似幻、如梦如烟之感。 临行前,女儿给数学、英语老师分别买了谭木匠梳子,还特别给数学老师写了一张纸条,密密麻麻地写了不少字,大意是老师非常辛苦,不到四十但白发已经很多,所以请老师一定要每天用这把梳子梳头。 对于已经不再教她的英语老师,女儿同样恋恋不舍。特意让妈妈陪着,专门赶到老校区,当面将梳子交给老师。 当然,少不了流眼泪。临行前的一个月,女儿曾经拒绝在接近学校周围一带活动,原因是怕自己太难过。 其实,不只是这两个老师,对自己的班主任、其他任课老师,还有同学,女儿都有很深的感情。 女儿如此重感情,让我们感到欣慰,同时也让我们感慨和困惑。因为签证之前,我曾两次问她:“后悔没有?现在后悔还来得及。”也曾多次恐吓她,出去之后,会很想家,抓心挠肝地想。然而每次,她都干脆地回答:“没有!” 为什么这样不舍得自己的老师、学校,却又如此决绝地离开自己的学校,远赴异国他乡?直到现在,我们也并未完全理解女儿自己的想法。 然而,15岁的女儿已经义无反顾地投身到日渐汹涌的小留学生潮中。[...]
小时候拼命想长大，长大后才发现还是童年最无瑕；读书时做梦都想工作，工作后才明白还是寒窗时光最留恋；单身时羡慕别人出双入对，结婚后才懂得单身也是一种幸福，我们一路向前，走过了错过了许多，唯有珍惜即时的拥有，才会少一些悔与恨 ，人人都会错过，人人都曾经错过，真正属于你的，永远不会错过。 小时候拍照片，很喜欢”V”的手势，傻傻的喊”yeah”，或者捣乱给别人做个兔子耳朵。 大学了，不好意思摆”V”的手势了，觉得好傻，却又没什么新想法，局促不安不知道手放哪里好。 于是，懂了，成长，我们要开始戒掉很多习惯，而用来替代一时还没有找到。 中学下了晚自习，浩浩荡荡一大群同学结伴骑车回家，聊天，飙车，大喊，为了多闹一会，绕点远也甘愿。 大学下了课，回寝室的回寝室，忙工作的去忙工作，陪女友的忙着接女友。 笑着骂他们王八蛋。 于是，懂了，嘲笑这个寂寞，嘲笑那个寂寞，其实现在自己才真正经历着寂寞。 中学的时候很叛逆，遇到挫折，和父母吵架就想离家出走，闯荡世界。 大学了，遇到委屈，面对不公，就想往家里跑，躲在妈妈怀里什么也不说，拍拍我的背就行。 于是，懂得了，羽翼未丰的翅膀惦记着飞，展翅翱翔了却惦记着归。 小时候什么事都喜欢争第一：要第一个会写连笔字，第一个骑自行车上学…… 大学后什么事都喜欢往中间跑：不打头阵，不拖后腿，稳稳当当就好。 于是，懂了，前面争议大，后面是非多，平衡的地方还是祖宗留下来的中庸。 高中时老师管得严，过新年不许送贺卡，说一是浪费钱，二是把那些送贺卡的心思用在学习上。 然后我们就偷偷摸摸的送：装作不经意的经过，快速把贺卡塞到收信人的桌子里；或者夹在书里以结束的名义传递。人人都成了地下党。 大学了，经过卖贺卡的摊子，都会停留好一会，看了又看然后走开，不是老师不让寄，而是不知道给谁寄。 于是，懂了，有些东西终于名正言顺的时候，反而失去了意义.[...]
阅读须知：读的时候，请不要笑；读完了，请不要哭。1昨天半夜突然醒来，又一次想起宿舍里，和你半夜的聊天，其他人都困了，渐渐地有了呼噜声。而你和我，还在有一搭，没一搭地，聊着。眼睛半睁半闭，突然，我接不上话了，那是我睡着了，墙上没有钟，但仍然有时间的声音，轻轻流过。2总是会突然地想起，你还欠我的那顿饭，但是，那些学校门口的小饭馆，我们，已经很难再回去了。现在，我们坐在更大的饭店里，却再也吃不到，那盘大蒜烧鱼的味道。3再一次见面，木瓜已经不再那么傻了，老狗不再那么尖锐了，呆瓜洪不再那么浪漫了，小黑和我，不再那么沉默了。可是我们，还是我们吗？我们，已经不像我们了。[...]
阅读须知：读的时候，请不要笑；读完了，请不要哭。1学校门口总是有一些骗子，有的开着车，有的没有开车。没有开车的，骗骗我们的钱，开着车的，骗骗我们的人。2有一天，校门口来了一名物理爱好者，认为自己推翻了相对论。我们去探讨请教，爱好者拿出一大堆自己演算的公式，给我们看，边看，爱好者在一旁很着急，不停地问，看懂了吗？看懂了吗？我们回答，没看懂。爱好者这才松了一口气。3社会可能就是这样的。有的时候，我们想想想哭，为什么四年会过得那么快。四年前，木瓜是那么可爱。乡下来的木瓜，没有见过的东西太多，就和我们到他家乡的时候一样。4第一次上课，穿着时髦的女老师，才走上讲台，木瓜就尖叫了，老师你还没穿好衣服，怎么就上课了。但是现在，木瓜不一样了。[...]