LovelyPython 09.08.27 documentation

Version: 09.08.27
[首页] 行者箴言 << 后记故事 (Source) >>Z跋

后记故事

满纸轻松事儿,一把辛酸泪

在此从 Zoom.Quiet 个人的视角分享一下如何通过靠谱的社区撰写技术图书的经验;-)

感言.

"写本有用的书,给那些不知道Python 的人,或是想学习Python 的人!"
从来没有想到这个忽然间的念头能成为现实!更加没有想到的是成为现实的过程竟然如此简单和艰难,,,

缘起,

想分享成书的经过,当然得先追溯历史了...
  • 就个人来讲,自 2000 年通过自学PHP从而接触到Python,到 2002 年才真正开始运用,再到2004 年掺合 python.cn社区开始大规模接触同好的行者们,对 Python 的兴趣和信心是一直增长着的; 但是发觉世人对这一优秀语言的认知非常非常的有限,即使各个综合技术社区中已经出现Python板块,又甚至于 Google 公司的成功,都没有促动起Python在中国都的发展;
  • 这才开始思考 Python 的推广,反思自个儿的 Python 学习体验,寻找是否有更加轻松的学习方式以及好书来促进Python 在中国落地生根;
  • 后来通过对社会化学习方面的体验,才意识到:
学习的阶级
  • 从高到底应该是:

    知己不知<知己知<不知己知<不知己不知

  • 为什么这么说?

  • 开始涉及一个全新技术领域时,我们不知道我们对这个领域的任何信息,也就是连不知道什么都没有概念;
  • 后来,通过不自觉的下意识的信息接收,或是主动的学习,获得了部分相关信息,但是从来没有考虑使用这领域的知识来解决问题,所以,不知道自个儿已经知道了哪些领域内的实用信息;
  • 再后来,通过实践,切实掌握了领域的基础知识,并对领域内的所有方面都有所了解,明确在领域内自个儿掌握了什么;好比举着油灯进在一个大图书馆中,刚好照亮了周围几排书架,但是不清楚在光圈以外还有多少书架;
  • 最后,推而广之,对领域相关的所有知识领域都有所了解,掌握了领域间的关系,明白自个儿究竟还有多少知识不知道;好比那个大图书馆中,打开了所有的电灯,明白自个儿身边这一整书架同整个图书馆其它书架的关系;
  • 感觉,只有快速达到``知已知``的阶段,才可能事半功倍的高效率/自信/自觉的继续学习下去;
  • 幸好,Python 真的的确是个易学好用的语言,怎么向其它没有摸到 Python 秉性的人们宣传这种体验呢?
  • developerWorks 中 David Mertz 创作的“可爱的 Python”系列 :

就成为成书的原型了: Python 最可爱的方面,以小篇幅的轻松形式组织发布出来!

社区!

那些风花雪夜

2007.2.1 在邮件列表中一个小白苦恼的心声 * 访问地址: http://wiki.woodpecker.org.cn/moin/ObpBroadview/2007-02-01 * 精巧地址: http://bit.ly/UJRm 激发出了行者们成书的狂想,经过讨论,定名,定内容,定大纲,《可爱的Python》就在社区活跃分子的相互鼓励中开始了: * 建立维基主页: http://wiki.woodpecker.org.cn/moin/ObpLovelyPython * 在会课中专题讨论,建立工程环境,建立专用邮件列表,建立进度讨论IRC聊天室,建立项目管理网站... * 一点点,一滴滴,一页页,就积累起来了...

本来以为是可以快乐的轻松组织完成,然后在圈子内部发布就流传就好的,没有想到博文注意到了我们的想法...

撰写:

因为一直在邮件列表中混,知道大家想法的舟编辑主动找到我,并立即由副总出面在北京宴请当时的主创人员,确立了图书的基本思路和网络/图书双版权发布的基调,将社区视作独立的单位进行协商,一下子,游击队变成了正规军...这感觉,怎么说呢?...

  • 蝙蝠侠说:"能力越大,责任越大"
  • 我们则是:"期望越大,压力越大"

我们期望写出:第一本中文Python 原创图书!第一本原创入门Pythonq图书!第一本原创畅销Python 技术图书...

但是!现实只能是 快乐并痛苦着:
  • 一想到这些文字是要付梓成书的,就不敢象在邮件列表中那般痛快的表白
  • 但是又必须得将快乐的Pythonic体验原味传达给读者,这又得表白出痛快...

林林总总,在对自个儿对编辑对文字对代码对截屏对章节等等纷繁的矛盾中努力的码字的同时,还要完成各种工作任务,挣来口粮,才能支持自个儿继续 快乐并痛苦着...

甚至于在不断的"煎熬"中总结出了:

如何组织在线图书工程

``态度决定一切!``~兴趣才是网络团队的最稳定动力
  • 分布式在线团队的构成,要求绝对的臭味相投~最好是一个稳固的社区中的老朋友们
  • 选题的有趣和有用,更是图书成功的绝对必要条件~这是聚集起团队的充分先决条件
``图书也是工程!``~在资源方面,要大力使用基于互联网的各种免费服务
  • 就按照软件工程的方式来组织大家是习惯且有效的!
  • 网络中的对应免费服务其实是齐全的:
  • 版本控制~ code.google 等等免费工程管理服务
  • 日常沟通~ groups.google 等等免费列表服务
  • 知识积累~ wikidot.com 等等免费维基服务
  • 实时讨论~ IRC/GTalk 等等实时沟通服务
  • 项目管理~ Everydo.com 等等免费管理服务
  • 进度计划 ~ google.com/calendar 等等在线日历服务
``没有规矩不成方圆``~有了团队,一直要组织和管理的
  • 定期的IRC会议非常有助于鼓励士气,協商进度,调配任务
  • 一定要有热心的核心人物来協調和决定所有变更(前期应该是发起人,后期由编辑分担比较合理)
  • 200页以内的小书,团队有多少人是没有关系的,因为任何偏差都可以快速修订
  • 大于300页的图书,写作团队应该控制在5人以内,否则,沟通将是没有尽头的事儿了:
  • 合理的团队构成:
  • 2~5人的核心撰写
  • 4~15 人的技术校对
  • 尽可能多的关注/宣传成员
  • 1~2 名稳定的责任编辑
  • 绝对绝对绝对不能使用任何 Office 格式文档来进行交互组织!这是无法进行版本控制的二进制专有格式物件!
  • 结构化文本/纯文本/HTML/TeX 文本等等都是可以良好的通过版本控制环境进行充分管理的文本格式!一定要坚持使用!
  • 即使在交付前统一倒入 Word 之流来统计字数,也要坚持使用!
``出版是不比撰写轻松的复杂工程!``~理解出版社的工作方式后,才可能有良好的配合
  • 国家法令法规,行业潜则,市场反应,目标人群,流行模式,排版风格... 都是出版方面的专业知识,不是软件行业行者可以轻易体悟的到的!
  • 有技术背景的编辑是个宝!
  • 固定的编辑是永远的朋友!
  • 固定的编辑追随进行田间管理是种幸福,否则是很郁闷的事儿~你得将相同的话,不断的反复说给不同的负责编辑
  • 不使用 M$ Office 的编辑在中国是神话! 但是,技术社区撰写,本质上不应该使用 Office 工具来进行...所以,这个矛盾需要有大智慧和大勇力的编辑配合完成!

经验:: 沟通:沟通比一切都重要,让所有人及时知道所有事儿,是分布式在线社区化写作的最基础原则!

  • 因为社区式工程,无法象公司式组织,人员/时间/场地是固定的,所以,面对不断流动的团队成员,作为图书工程主持人,我发布的维基文章/列表邮件/IRC聊天沟通/MSN協商/会课谈话记要等等沟通用文字总量比图书本身的内容要多10倍有余!深深感受到:
  • ``沟通需要代价,改进由我作起!``~想进行有效图书工程沟通得注意:
  • 自个儿首先得有谱,有整体的图书内容思路,想法,设计,原则,规范,,,
  • 有统一的文档发布,将以上的整体设想,及时发布成在线文档,有助于全体及时理解
  • 确定固定时间段来沟通,在同一时刻大家同时来解读相同的内容比较有效率,因为人的注意力不是那么简单的可以随时集中在某件事儿的,在约定的时间,大家相互激励,比较容易专注
  • 对于沟通的结论,最好统一格式统一地点统一发布!以便形成积累,给后来加入的新人一个有时间顺序的学习资料集
  • 资源:
  • 用于工程的各种资源/工具,最好是基于互联网的,这样可以吸收最大范围内的力量,``有网络,就有可能!``
  • 法律:
  • 一定要有合同! 在有社区背景的图书工程中,出版社对版权/署名的理解是不同的,一定要事先沟通好,否则,会有解释不清的麻烦,对社区贡献也是个隐患
  • 签定合同时,最好授权给有法人资格的社区出面交涉,以便获得出版社的重视并获得更好的条件...

摧生,,,

图书得以付印,从始至终,编辑的作用就象耐心而专业的``摧生婆``,没有他们的帮助,成书是无法想象的,,,

  • 在图书撰写的后期,发觉几个技术图书出版社也有各自的专题邮件列表了,也是从出版社的列表中,知道了图书的"田间管理"--在图书从想法到成书过程中,适时的配合,反馈,沟通,促进--这是编辑保证图书不跳票的有效手法,也是作者们写作的动力之一..就和写Blog 类似,有人追着看,评论的Blog 作者总是积极一些的..
  • 毕竟团队化网络社区群体写作,存在沟通不直接,大家的写作时间无法保证等等问题,和自由软件不同,软件的版本发布时机是社区主动把握的,而簽定了合同的图书工程,是不能轻易跳票,改发布日期的...
所以,除了一直在关注图书的社区行者们,掺与撰写的伙伴们,最令人感动的就是那些"摧生婆"们了:
福编::
是最早关注了社区动向,并将其作为一个图书选题来进行主动沟通的"摧生婆" 正是他的促动,从而令图书正式的成为博文的图书立项,开始了这次成书之旅,可惜,从来不是本书的责编,而且不久离开了博文,没能看到图书成型...
舟编::
是最早的责编,因为同是程序员出身,是最明白技术的编辑,在内容方面给出了非常多的建议,很大程度上令这本内容和目标都很另类的技术入门图书被出版社接受,舟编居功致伟! 只是不久也因为个人原因主动离开了博文,没能看到图书完成...
俊编::
是临危受命的责编,虽然跟书的时间不长,但是非常耐心的全盘接受并理解了我们的意图!尽而也非常开放的共同使用我们建议的网络服务进行编辑事务的透明沟通...
士编::
是后期一位责编,跟的时间不是最长的,但却是跟的最紧的,在他的任期,图书合同用哲思自由软件社区的身份签定了,版权的分离也成功达成了理解,而且美术编辑的跟进,也是赵编从中协调艰难的共同摸索出了全新的模型...
绣编::
是最后一位责编,是位非常有经验而且专业的老编辑,以最快的速度把握住了图书的特质以及问题所在,紧密而不紧迫的持续不断的将图书的进度一直保持在可控状态中,并最终完成了交付!
Yeka::
是所有责编的后盾!作为博文的领导,在多如牛毛的新技术中关注到Python 在中国的挣扎,而且在如此漫长的时间里一直不放弃散漫的社区式撰写,一直坚持要将本书作出来,实在不是简单的敬佩可以表达大家的谢意的!!!

细细回顾一下在不到两年的时间里,竟然先后有4名责编,数名文字/美术/业务编辑,以及一位出版社总裁关注和支持过本书,实在是非常非常不可思意的事儿!

成书?!

  • ``Biu~~``的一声,从吃过接风宴,开始写,到现在一下子两年了,这其间,俺从北京跳到了珠海,完成了从过程改进专员到过程改进经理的飞跃,同时期,还利用组织 "可爱的Python" 一书的经验,组织了另外两本Python 技术图书部分翻译/校对和另外一整本原文图书的快速翻译...
  • 时间,真的是在不知不觉中飞速消逝的! 真的非常敬佩博文出版社的执着,所以,``冲刺!不断的``;每次,都在社区的邮件列表中倡议; 虽然摇旗声援的不少,但是真正投入到撰写的也着实不多,然而,书到底是在不断的完善中,可是,随着完成度的增长,也越来越对内容,有所挑剔,总是感觉应该有更加好的表达方式...
  • 另外一方面,Python 也在不断的进步,两年里版本增长了三次,而是象周蟒这样的项目,更加是从无到有的成长了起来,
对图书的内容也更加的惶恐:"足够有趣,足够有用嘛?会有人买来看嘛?"
  • 幸好,编辑一直在肯定的说:"这样整一定成的!" 但是什么时候算是真正的成了呢?
  • 突然的有一天,在不断的相互督促中,焦虑中,突然发现,所有章节都完备了,可以了,成了?!... 这种意外的巨大的惊喜,不比那日意识到自个儿在使用 Pythonic 来编程时顿悟般的快乐...
  • "发表是最好的记忆" ~ 台湾候捷 老师的感想,也是我们的感想,一直坚持要纠集尽可能多的行者们来共同撰写,就是想分享这最好的记忆;
  • 但是成书的那一刻,如的确就是我们必须忘记这本书,向下本书进发的时候! 因为成了的书已经属于读者了!也属于社区,将在网络中长久的由读者们修订/增补/完善下去!

编辑故事

收集过往编辑们追忆成书体验

夫复言无Python入门之佳作

夫复言无Python入门之佳作
  • 前247年,李斯跪别恩师荀老夫子及好友韩非,只身向西,奔赴秦国,只为实现己之伟大理想。辗转艰辛,蒙贵人郑国之荫,终成秦相国吕不韦3000门人之一。此去无多日,李斯才华尽显,遂被吕(不韦)拜为上宾。
  • 为安息同僚(3000门人),李斯以四大公子为前鉴,说服吕不韦召3000门人合力著书,历时七载,终成《吕氏春秋》,实为亘古未有之壮观。此工程之浩大,为万众瞩目,真乃秦600余年划时代之大事。书成之后,吕(不韦)大摆宴席,广邀百官,共襄盛事。酒过三巡,始于席间传阅《吕氏春秋》,百官们管窥锥指,难尽全貌,无不为之称奇,以为万世之盛举。然众人皆贺之时,唯李斯(此时李斯已贵为客卿)不贺相国。众人无不惊讶,吕(相国)亦尴尬难当,风景大煞。李斯见状,慢道:”李斯不贺相国,只因《吕氏春秋》历时七载,一朝告竣,非相国之喜——实为大秦之喜也。大秦得此书足堪传诸久远,子孙受益······,李斯贺我大秦,再贺后世学子······“
  • 时六国兵强不如秦,法制不如秦,民富不如秦,而素以文化蔑秦,笑秦为弃礼仪而上首功之国。自《吕氏春秋》著成,驰传诸侯,广布天下,六国不复言。
  • 公元2006年,吾入行未久,因工作之需,终日闲游于CPyUG,幸识得周老夫子。是时,Python之作寥寥,而从之者甚众。吾遂生请周老夫子著书之念。待告知周老夫子吾之所想,岂料二人皆有同感,只叹相议恨晚。然此后时日,吾因他事,未能续与周老夫子议书,抱憾至今。
  • 其间,周老夫子行吕(不韦)之事,履吕(相国)之职,召CPyUG众人合力著书,两载后终成《可爱的Python》。著述此书工程之浩大,若论之功,周老夫子当居首也。书成之日,众人皆来贺,贺周老夫子,贺CPyUG之同仁,贺莘莘Python学子······
  • 过往,众人皆怨无Python入门之佳作,而今《可爱的Python》不负众望而出,万人空巷之盛景可期矣!是也乎?

兴奋又惶恐的心情

士编者言::
  • 今天我负责的《可爱的Python》有了较大的动静,一直以来,我都在尽力推动本书的成形,其间也存在不少困难,我兴奋过,气馁过,妄想过,现实过,现在总算把心沉了下来。在推动本书的成形过程中,我不断的修正自己的目标,也不断通过打破流程来给作者们一些能够看到的东西,这样,他们才更有动力前进,因为我知道,每个人都是孤独的,有了同伴的呼应,大家才会忍住各自的艰辛,继续前行。
  • 感谢这些Python行者们,正是他们的分享和奉献,这本书才有了成形的可能。现在,我已经看到了希望,大家的兴趣开始提高了,从我收到的邮件列表的数量就可以感受出来。
  • 虽然,这仅仅是开始后的一小步,离成功还非常遥远,但我相信大家有了共同的信念,会共同前行的。虽然,在随后的一个月里,各种问题会曾出不穷,但是我坚信一点,办法总比问题多,各种解决方案也会纷沓而至。
  • 作为小编,这里非常汗颜,能够帮助作者的地方并不多,只能尽自己的一份力,尽量做好自己份内份外的事情,更希望能将本书做好。正如Zoom.Quiet提到的,本书虽然不是中国第一本原创Python 图书,但是绝对是第一本分布式社区开发式的原创图书。我愿意为这个第一而努力!!!

行者故事

收集过往掺合的行者们追忆成书体验

黄毅

``热烈祝贺可爱的Python顺利成书;-) ``
  • “你以为不宣传我就找不到你吗?没有用的,你是那样拉风的语言,不管在什么地方,都好像漆黑中的萤火虫一样,亮得鲜明,亮得出众。你那完美的语法,优美的缩进,神乎其技的标准库,还有那无数超强的第三方库,都深深的迷住了我。” ——致派松
  • 遥想大三当年,初识Python,顿时被Python深深吸引,义无反顾地加入到了hacker的行列,从此踏上了Python这条"不归路"。
  • 还记得祖母奇号召出书的那一天,邮件列表顿时风起云涌,隐隐竟有王者之气显露。
  • 不过写书毕竟是个体力活,还是持久战,过程中颇多坎坷,现在回想起来依然唏嘘不已。向那些艰苦奋斗一直到最后的同志至于最崇高的敬意!
  • 终于好事多磨,艰苦奋斗没有白费!希望有更多人从通过Python得到启发,也希望和更多人一起分享学习Python的乐趣吧。

盛艳

``从讨厌到享受``~ 最晚加入掺合的MM感言

  • 英语中的Python是一种动物——大蟒蛇,我一直都非常讨厌、害怕这类生物。
  • 而在计算机世界中,Python是一种非常优秀的语言。对于我个人而言,自从师兄那儿听说,到学习Python基础,再到现在不断的实际运用,这大半年时间的接触,使我一步又一步的陷入到了Python的精彩世界。
  • 期间也经历了很多的第一次,第一次加入社区,第一次认识到自己的幼稚,第一次实际体会到团结合作的力量,第一次走出学校的小小世界,第一次参与这种方式的交流与合作...种种都让我受益匪浅,再一次深刻体会到Python的可爱之处。
  • 也是由于加入CPyUG,认识了各位牛人大哥们,认识了主创作者Zoom.Quiet,之后加入OpenBookProject,参与LovelyPython计划。由于是第一次的这种方式的合作,很多规则,注意事项都不懂,而且加上书中相当一部分内容还是不熟悉,比如说CDays中的线程,发布及注视规范,KDays中整个KarriGell未曾接触过,虽然不懂但只能不断适应和学习,经过不断的鼓励和改进完善顺利完成练习设计。
  • 之后参与校验,学会提交issue,接着又摻和一部分PCS的书写,这又让我更完善的学习Python基础,同时也看到了前辈们的很多优秀代码,另外加入啄木鸟社区,知道了什么是wiki,如何使用等等。
  • 一点一滴的参与其中,体会着苦与乐,一句话,非常值得。也非常清楚的记得当初Zoom.Quiet的一次又一次的鼓励和提醒我:``try and enjoy!``最终坚持到现在,学到非常多的知识,更主要学到的是一种做事的态度。所以非常感谢有这个机会让我参与,让我在枯燥的学术生涯中不断体会到Python世界的无限精彩!

孔建军

~社区新人感言
  • 2008年9月16日下午,收到哲思社区徐继哲大哥的一份电子邮件,希望我能组建一个五人的审校团队对《Lovely Python》一书进行技术审校,虽然Python学习了快一年了,但来做一本书的审校确实心里没底。我和高辉、张斌沟通后立马确认接收审校任务,后来潘猛、龚民、冯立强也参与了进来。龚民由于工作繁忙没能参与多少具体审校,但也解答了我们很多关于审校流程的问题。刚开始参与审校,工具的使用和流程都不是很清楚,多亏以前王聪他们参与过《Python源码剖析》一书,中间我们犯了很多错误,Issue主题规范问题、重复提交错误、错误描述不准确、wiki更新问题、沟通问题~~后来慢慢适应了。我们根据书本内容和一些具体情况,准备进行三次审校(初审、对换审校、最终审校),并把任务明确到wiki上面,方便与编辑等沟通交流。还有Zoom.Quiet做事很高度认真、负责,值得学习。
  • 审校此书感受最深的就是团队的沟通和交流,没有这些是没法异地合作的。还有相互之间的工作协调,这样才能事半功倍。参与审校也是对Python的重新学习过程,弥补了很多知识上的漏洞。也再次感受到了Python语言的魅力和精髓。审校过程中,框架篇也在不断更新,调整比较大,感觉在审校的同时没有给书本创作提供太多建议,这也与自身能力有关,以后再努力吧。
  • 这次参与审校算是以哲思成员的身份,算是给社区做小贡献。希望有更多的人参与到社区当中,体验共享、奉献的快乐。
  • 在参与审校的同时,也用Python编写了一些实用的程序,用KarriGell框架做了一个自动生成配置文件的工具,用于我们西邮Linux兴趣小组实验室的实名上网。还有一个用wxPython开发的图形界面的拼音查询工具,我把她放到了facebook上,也得到了很多人陌生人的改进建议,看来还是开放源码好 ;) 还有一个调用telnetlib库实现的高速端口扫描工具。很是兴奋~~!有同学都叫我“高产作家”了,呵呵~玩笑;)
  • 总的来说收获都很大,Happy Hacking ;)

张沈鹏

``美女蛇.绝恋``~"过路人" 感言:

断桥相遇的那日 / 就注定了这一生一世
百花皆黯 /  只因伊人回眸窃笑的矜持
苍莽大地 / 却容不下我们依偎的彼此

法力高强的Guido巫师 / 用0和1将你禁制
Lawrence的抗议  / 直到最后的救赎为止
不知Woman / 又怎会明白相爱的故事 ?

金山的古寺 / 有位叫Zoom.Quiet的主持
养只啄木鸟 / 和木头一并 / 把你日夜窥视
心爱的蛇儿 / 岂能蒙受这样的羞耻 !

一晃就是分别3000年的日子 / 我受够了这天涯咫尺
愿成灵魂编码的数字 / 舍弃物质束缚的现实
黑客帝国的午夜子时 / 执子之手 / 共赴瑶池

点解初注

张教主挖的坑忒深了,怕读者无法领会其趣,笔者尝试点解一下:
  1. 断桥~ 断桥残雪,西湖十景 http://baike.baidu.com/view/13790.htm
  1. Guido ~ Guido van Rossum,Python 创造者,http://www.codersatwork.com/coder/Guido%20van%20Rossum.html
  1. Lawrence的抗议 ~ 一次被KUSO 的示威活动 http://developers.solidot.org/developers/08/06/26/009255.shtml
  1. 不知Woman ~ http://techfaux.com/2008/06/17/peta-targets-computer-programmers-with-string-of-bizarre-protests/
  1. 金山 ~ 金山软件股份有限公司 http://www.kingsoft.com/;
  1. Zoom.Quiet ~ http://wiki.woodpecker.org.cn/moin/ZoomQuiet

1. 啄木鸟 ~ 中国最大的Python技术社区 http://wiki.woodpecker.org.cn 1. 木头 ~ limodou,中国著名的Pythoner http://hi.baidu.com/limodou

1. 蛇儿 ~ Python,http://python.org 1. 3000年 ~ Python 3000 版本 http://www.artima.com/weblogs/viewpost.jsp?thread=208549

  1. 黑客帝国 ~ 最有影响力的科幻电影之一 http://board.verycd.com/t347321.html