转自 http://wulfric.me/2013/09/github-and-academy/

以 github 的精神提供学术服务,也许是一个不错的方向。

什么是 github?

Github 是编程项目的托管服务,在这里,既有老鸟的牛逼项目,也有新手的实验性项目。表面上,github 是项目的集合,本质上则是代码的集合。同时 github 也有社交功能,你可以关注某人/组织,也可以关注某个项目,但本质上,github 还是以代码为中心的。

学术论文撰写现状

现在学术论文的写作其实有很多需要改进的地方:

* 文章多是孤立分散的,虽然多数论文数据库都提供推荐功能,但推荐文章之间并不一定具有很强的联系性(比如,当跟进某课题组的项目时,需要查找所有该项目的文献,但推荐系统一般无法达成这一目的)。

* 文章发表之后才能看得到,看到文章的时候文章的撰写已经完成,不利于其他人参与。

* 很多数据库的论文的投稿和下载都需要收取不菲的费用,不利于知识共享。

* 文章无法为作者带来直接的利益。文章往往只会给作者带来间接的利益,但其实,文章也应该可以为作者带来直接的利益。

* 不同作者撰写文章的方法千差万别,互相之间交流困难。对于没有 MS Office 的读者,所见即所得的 MS Office 需要费时费力安装软件;对于不熟悉 tex 的读者,tex 又很难阅读。同时,虽然 MS Office 已有历史记录的功能,但这只是简化版的版本控制,无法进行比较、自由回溯等操作。

* 投稿不能做到格式无关。一篇文章的本质应该是由章节、公式、配图和参考文献等语义化组件组织起来的,不应该包含格式,但投稿的期刊、杂志、会议等都有不同的格式要求,增加了作者不必要的工作,甚至有写文章 20% 改格式 80% 时间的说法。

* 现有文献管理方式混乱而低效。现有的文献搜集方式是搜索-下载-归类放置,高级一点的则使用 endnote/jabref 等软件来管理。但这种方式需要维护所有的文献,万一一不小心删除了某篇文章找起来就会很麻烦,找到之后还要重复执行下载-归类的操作。

学术型 github 可以是什么样的呢

我们能不能更酷的组织文章的写作与管理呢?不妨看看学术型 github 可以是什么样子的。

学术型 github 本质上将会是文章的集合,它同样以项目为组织形式。同时也具有社交元素,你可以关注感兴趣的人、组织和机构。这样一来,文章不再是孤立的一篇一篇,而是属于某个项目中,方便了查找与阅读。除此之外,还可以参考 github 的 watch/关注、fork/派生、Pull Request/合并请求、issues/工单,方便其他人参与到项目中来。

秉持开放与自由的哲学。如同软件开发曾经由大公司主导一样,学术的学院派气息很重,普通人难以负担论文下载的费用,参与到学术中来困难重重。如果学术界也能有一股如同编程领域内开源社区的清风,取消投稿与下载收费,另谋商业模式,想来应该是一件功在千秋之事。另外,可以仿效开源软件的协议(license),定义文章的再使用权限。作者可以借助较为严格的商业协议获得直接利益。

撰写论文使用 markdown + pandoc。其优点为:

* 版本控制,回溯历史更加方便;

* 纯文本,便于比较不同版本的差别;

* 便于交流。这种书写方式可以实现语义与格式的分离,将格式和布局完全交给第三方。如同网页文件由 html 和 css 实现语义和布局的分离一样;

* markdown + pandoc 可以自由的转换为 tex 和 word。

传统文献管理是管理文章,维护的也是所有的文章,引用的时候也需要指出很多其实并不重要的内容(比如第几卷第几页,这在以前很重要,但在数字时代,并不需要根据这些信息来唯一的标识一篇文章)。学术型 github 的文献管理方式则是维护 ID 列表(比如 URL),每个 ID 唯一标识一篇文章,大大方便维护和管理,引用也更加方便。同时还易于添加社交属性,具有相同兴趣的研究者可以共享文献列表。

意义

一直以来,科学都是学院派的地盘,民科因缺乏完善的基础知识和异想天开一直被广为嘲讽。但在当今互联网大潮下,普通人对很多行业的参与度越来越高,各行各业无不经历或即将经历颠覆的浪潮。今天,名校公开课大行其道。也许,在能够自由获取文献和提交文章的未来,会是民间科学家的弄潮时代?既然传统的出版业已经渐渐萎缩,那么现在的那些牛气冲天的期刊杂志,会不会也有这样的一天呢?

[转]学术型 github 畅想的更多相关文章

  1. 如何快速完成一份学术型PPT

    大多人都知道有模板这么个东西. 但是拿到手却不会运用,所以只得急的找人帮忙. 毕竟一套模板的素材图表和你要展示的内容,很多都太不一样. 这种情况,怎么办?下面就来告诉你.   选中一套模版后,放大看看 ...

  2. GCD的深入理解

    GCD 深入理解(一) 本文由@nixzhu翻译至raywenderlich的<grand-central-dispatch-in-depth-part-1> 虽然 GCD 已经出现过一段 ...

  3. 如何自学Android

    看到很多人提问非科班该如何学习编程,其实科班也基本靠自学.有句话叫"师傅领进门修行靠个人",再厉害的老师能教你的东西都是很有限的,真正的修行还是要靠自己.博主本科是数学专业,虽研究 ...

  4. GCD 深入理解:第二部分

    在本系列的第一部分中,你已经学到超过你想像的关于并发.线程以及GCD 如何工作的知识.通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过 ...

  5. GCD 深入理解

    GCD 深入理解(一) 虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容.这是可以理解的:并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Object ...

  6. 深入理解GCD ( 二 )

    转自@nixzhu的GitHub主页(译者:Riven.@nixzhu),原文<Grand Central Dispatch In-Depth: Part 2/2> 欢迎来到GCD深入理解 ...

  7. [iOS]深入理解GCD

    看到一篇很好的文章,本来想翻译的,但发现已经有人翻译了,遂简单整理了一下,方便阅读学习 新博客[wossoneri.com] 什么是GCD GCD(Grand Central Dispatch)是li ...

  8. jq 分页

    转自:https://www.cnblogs.com/wolflower/p/6898479.html参考:https://github.com/tianxiangbing/paging先引入这两个插 ...

  9. GCD 深入理解(二)

    转自@nixzhu的GitHub主页(译者:Riven.@nixzhu),原文<Grand Central Dispatch In-Depth: Part 2/2> 欢迎来到GCD深入理解 ...

随机推荐

  1. 主机WIFI网络环境下,Linux虚拟机网络设置

    在主机使用WIFI网络环境下,怎么样进行虚拟机静态ip设置和连接互联网呢,原理什么太麻烦,另类的网络共享而已: 1.其实简单将网络连接模式设置成NAT模式即可. 2.虚拟网络编辑器依旧是桥接模式,选择 ...

  2. 25. vm安装redhat步骤

    详见:http://jingyan.baidu.com/article/49ad8bce532c525834d8fa19.html

  3. android第二天(项目的组成结构)

    1:src文件夹分析: helloWorld----src(源码文件夹) MainActivity:主界面类----gen(自动生成的源码文件夹) R.java:对应res文件夹 下面又包含三个内部类 ...

  4. php面试题目

     PHP测试小例 1. 禁用COOKIE 后 SEESION 还能用吗? Cookie 是保存在浏览器 1.cookie是保存在本地的,而seesion是保存在服务器上的.所以两者没有直接的关系,禁用 ...

  5. 深入jQuery中的Callbacks()

    引入 初看Callbacks函数很不起眼,但仔细一瞅,发现Callbacks函数是构建jQuery大厦的无比重要的一个基石.jQuery中几乎所有有关异步的操作都会用到Callbacks函数. 为什么 ...

  6. cocos2d-js callFunc传参

    1.传递一个参数: pg.TestScene.prototype.init = function () { if (cc.Scene.prototype.init.call(this)) { var ...

  7. MD5在java中的使用

    MD5是什么? MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的"数字指纹".任何一个文件,无论是 ...

  8. 学Android开发,入门语言java知识点

    学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...

  9. dfs 翻棋盘end

    #include<iostream> char data[16]; int a[16]; int d[4] = { -4, 1, 4, -1 }; char b[16]; int flag ...

  10. Tomcat启动时项目重复加载,导致资源初始化两次的问题

    http://blog.csdn.net/testcs_dn/article/details/38855641