为华南师范大学博士/硕士毕业论文 LaTeX 模板 SCNUThesis 招募新的维护者。

缘起

工作大半年,开始感觉不如以前可以花很多时间在业余小项目上了。

读书的时候,虽然白天有很多课业上的压力,但到了晚上总有精力来做一些小东西。那个时候,熬夜的后果最多就是第二天到课室打下瞌睡。工作之后就完全不同了,白天的时候,需要一直聚精会神的工作,以保证每天的产出,到了晚上就感觉好累好累,不想再碰电脑。

这半年的时间,如果说我有进步的地方,就是学会了如何保养自己的身体。每天回家,我几乎都是先看半小时书,然后做一会儿简单的运动,再洗个澡,泡个脚,喝杯牛奶去睡觉。周末的时间,由于不放心外面的食物,我学会了下厨,于是周末两天我的大部分时间都是在一堆锅碗瓢盆中度过的。

做过的菜
做过的菜

如果说退步的地方,那就是参与开源项目的热度了。现在每当我打开 Github ,看到我的贡献图,我就会感到非常惭愧:

工作后几乎 0 commit
工作后几乎 0 commit

你可以很明显地看出工作前和工作后我的贡献热度的区别。与此类似,也有热心的读者发现我的博客有半年没有更新了。

总之,上面的文字无非是在说,工作之后,我深感精力有限,无暇维护我需要长期维护的项目。其中, SCNUThesis 就是我认为必须得转让的长期项目。

SCNUThesis 是一份非官方的,符合华南师范大学硕士/博士学位论文格式要求的 LaTeX 模板。

写这份模板的缘由要追述到研一的时候。当时出于好奇,我接触了 LaTeX 这个排版系统,一下子就被其 WYTIWYG 的观念深深吸引了。用它来排版论文是如此的方便,以至于我希望毕业的时候也能用它来排版毕业论文。不出意料,我的学校并没有提供这样的模板。虽然很失望,但与其等别人帮助,不如给别人帮助。于是,我花了一个月的时间,阅读了很多高校的 LaTeX 模板,最终吸取了几所高校的模板的优点,编写出了第一个版本的模板。我也开始学会使用 svn 做版本控制,并在 google code 上发布了第一个版本。后面这个项目又从 google code 迁移到了 Github 。

我的模板的第一个用户是王立斌老师的学生潘嘉昕师兄,他当时正赶着要写毕业论文。当时的 SCNUThesis 可以说还只是个半成品,但他对我的项目非常支持,并且愿意放弃使用 Office 而跑来当我的小白鼠。我们就一直保持着邮件联系,他一边使用模板,一边给我的模板提供了很多宝贵的改进建议。在他的帮助下,我的模板基本成型了,而他也顺利的用 SCNUThesis 完成了论文的排版。在他的论文的致谢中,他特意感谢了 SCNUThesis:

感谢 XXX 师兄、XXX 师兄、XX、XX、XX、XXX 等同实验室师兄弟,与他们的讨论与交流促进了我的科研工作,也丰富了我的研究生生活。感谢潘伟洲同学提供的 LaTeX 排版模版 SCNUThesis。

潘嘉昕

收到第一个用户的致谢,可想而知当时我的内心多么有成就感。**SCNUThesis 是我的第一份开源作品,而它实实在在地能够帮助到其他人!**在这之后,陆续也其他几位师兄师姐使用我的模板。到了我这一届的时候,因为我的推动,我们整个实验室的人几乎都用它来完成论文的排版,减轻了他们花在格式排版上的负担。而 SCNUThesis 也开始被广东工业大学、首都师范大学等其他高校的学生借鉴,衍生出了更多高校的毕业论文 LaTeX 模板,还被收录在知名 TeX 博客 LaTeXStudio 中。

呼吁

前话扯了一堆,现在摆出正题:我希望在这里招募到 SCNUThesis 新的维护者

早在研三的时候,我就已经预料到了我早晚有一天要交出它,就像一个老父亲将自己的爱女交付给靠谱的女婿。当时我就在 Github 上建了一个 scnu 组织,目的就是等以后我无力再维护 SCNUThesis 的时候,将它转移给组织,让其他爱好者共同来维护它。

为了准备好这个交接,我已经将 SCNUThesis 正式转移给了 scnu 组织,将版本号正式定为 1.0 ,并且公布了自己的毕业论文论文源码以供他人参考。现在它需要的,就是一位(或者多位)愿意花时间维护它的人。

为什么我要寻找新的维护者

因为:

  1. 我现在的工作中很少用到 LaTeX ,久了难免生疏;
  2. 我已经毕业离校,也不可能再使用它排版论文;
  3. 需要配合每年格式上的改动做些调整;
  4. 需要花时间帮助新手解决各种排版上的问题。

如何维护 SCNUThesis ?

维护 SCNUThesis 主要有三种方式:

  1. 成为代码贡献者;
  2. 成为项目维护者;
  3. 成为项目管理者。

第一种方式很简单,你的责任也比较小。就是 fork 我的项目,然后当模板有问题需要维护的时候,对你的本地项目做好修改,然后向 scnu 发 pull request。当我和其他项目管理者会对你的代码进行 code review ,并考虑并入模板中。

一个合格的 pull request 应该是:

  1. 不仅发送 pro 的分支,还发送 master 分支的 pull request。两个分支的 cls 和 pdf 文件必须一致;
  2. 有良好的 commit 说明。

第二种方式则可以具备更多的权利。你可以先(邮件或在这里评论)告诉我你希望成为项目维护者。我将邀请你加入 scnu 组并赋予你维护者权限。你将可以直接修改 SCNUThesis 的代码,也可以审核和处理其他人的 pull request。

第三种方式则具备最高的权限,除了具备所有维护者的权利之外,你还可以添加其他维护者。增加这个角色是为了以后的传承。我希望这个项目能够一直有人在跟进、维护,并由一届维护者传承给下一届的维护者。项目管理者一般不轻易添加,只有贡献突出的维护者可以跟我申请管理者权限。

成为维护者需要什么条件?

从上一个问题你可以看出,维护SCNUThesis对于能力上的要求并不高。如果真要有硬性条件,那就是:

  1. 你必须是华南师范大学的在读学生,并且愿意在毕业时使用它。我相信一个产品只有作者也在使用时,这个产品才有活力。
  2. 你必须对 LaTeX 技术具有浓厚的兴趣,愿意稍微深入一点了解 LaTeX 的编写技巧,能够积极响应和解决用户提出的问题。
  3. 你必须具备独立解决问题的能力。遇到困难时,你要能沉住气解决它,而不是把问题抛给我。我很乐意在你遇到困难的时候给予帮助,但我只愿意回答聪明的问题。

为什么你应该参与 SCNUThesis?

原因有几个:

  1. 参与开源。SCNUThesis 是我的第一个开源项目,而且它的难度不大。我在这个过程中,学习了 svn、git、Makefile 等方面的知识,并且懂得如何在 Github 上维护项目;
  2. 一份使命。开发这份模板时,我并没有从学校拿到一分钱经费,没有获得任何经济利益。但帮助其他同学顺利完成论文排版,免除他们使用word带来的负担,这是我的一份光荣的使命。我相信这也是你的一份使命;
  3. 证明自己。坦白说, SCNUThesis 并不能证明多少技术的能力。但从对项目的管理情况、对issue的follow程度、遇到问题的应对态度、对排版效果的考究程度等多个方面已经足以让我摸清一个维护者的技术、审美、耐性等方面的情况。如果我遇到一个出色的维护者,我会毫不犹豫的为他推荐就业机会。

后话

Paul Gramham 在《黑客与画家》中谈到了工作与兴趣的问题。他认为黑客可以和音乐家一样,白天可以拥有一分养家糊口的工作,然后在夜间经营一份自己喜欢的工作。对于音乐家而言,喜欢的工作就是演奏。对于黑客而言,喜欢的工作就是参与自己感兴趣的开源项目。

I think the answer to this problem, in the case of software, is a concept known to nearly all makers: the day job. This phrase began with musicians, who perform at night. More generally, it means that you have one kind of work you do for money, and another for love.

Nearly all makers have day jobs early in their careers. Painters and writers notoriously do. If you’re lucky you can get a day job that’s closely related to your real work. Musicians often seem to work in record stores. A hacker working on some programming language or operating system might likewise be able to get a day job using it.

Paul Gramham

也许,我现在的情况似乎越来越不像一个黑客。但如他第二段所说,如果运气好的话,黑客可以找到一份接近自己兴趣的白天工作。从这一点看,我或许是幸运的,因为我的白天工作就是我热爱的行业,这使我在其他时间更愿意去做其他我以前没有做过的事情。我希望,我可以在今后的时间更好的把握工作上的项目和开源项目的分配时间,在开源社区略尽自己的绵薄之力。

Comments