2013我的开源第四年,2014中国开源元年

2013年对我来说是变动的一年,各种变化快速进展,与各种人物的关系也快速的发生着变化,纠结、浮躁、兴奋与失落构成了我这一年的所有关键词。 从开源硬件创客到开源软件推进者 这一年最大的变动一定来自于事业上。2013年大半年时间我都是不折不扣的创客,一个开源硬件玩家和积极倡导者,大半年的时间和Arduino和各种开源硬件玩家打交道,和3D打印机共舞,并竭力将其推广到各个领域。有个朋友很有趣的提醒我,在Fedora 19发布会上我还在演讲介绍3D打印机,而到Fedora 20发布派对我则开始大谈CSDN开源策略了。是的,半年多的时间而已,这对于我来说不仅仅是一次工作上的变动,更是身份的转变,但不变的依旧是行走在中国开源推进的前沿,一次工作的变动让我从一名开源的普通贡献者,生生转变成了开源的推进者。 即将迈入2014,我非常想对2013年供职过的的DFRobot,同时也是一年多时间里帮助过我的各位创客同事,各位美女们(必须特别提到),说一声感谢,道一声珍重,祝你们在新的一年里创出佳绩,再领中国创客运动攀上新高峰!祝DFRobot的美女同事们,还有北京创客空间的美女同仁们以及创客女汉子们,新年新靓,旧貌换新颜,玩在新生中! 从后台慢慢走上前台 从2009年开始玩开源,进入开源运动潮流,当时恰逢第三次国内开源浪潮正在消退的时候,虽有感慨入不逢时,但这几年通过自己努力和贡献,也在开源圈里有小小的一席之地,想想也很快,这都是我进入开源的第四年了。随着年底转入CSDN专做开源社区,也逼得我不得不从后台转入前台,走入引领下一波开源浪潮先锋者队伍中来。 从后台走入前台已经在年初筹备GNOME.Asia时候已经开始显现,三年前加入北京GNOME用户组,后被破格加入核心团队,今年又进入到首尔GNOME.Asia亚洲峰会筹备组里,两天参会期间更与各位大牛亲切交谈,一切都在快速的变化和发展着。说也惭愧,加入GNOME基金会已经两年,只在第二年行将接续基金会成员权限的时候才走到前台做出些许贡献(刚刚得到好消息,接续成功,我又获得了两年GNOME基金会成员资格!)。 感情定位趋于平稳 和前几年感情占据很大篇幅不同,今年的感情异常平和温婉,虽然也经历过波折和变数,但总体却进入冷静思考和自我修缮的阶段,难道是老了?不再年轻追求了?今年我一直在思考一些问题:这是不是我爱的那个她?如何才能爱一个人? [公开的版本到此为止] 年初和一位姑娘交往甚密,难得的是引领她进入了开源的大门,也许这是我在2013年最有价值的一件事,更欣慰的是她还获得了秋季GNOME女性发展计划的参加权,明年3月可以通过自己努力拿到5500美元奖金!当然得知这个好消息的时候,她已经不再是我女友了。之所以和她分开,其实本质上是我个人定位的转变,对感情需求的进一步明确,开始扎实求稳了。这一年也遇到不少好姑娘,但心里总有一个问题:这是不是我爱的那个她?如何才能爱一个人? 变得浮躁和盲从 这是我对自己在2013年最不满意的地方,从年初即开始就出现的浮躁状态一直延续了一整年,这种浮躁的状态让我不再踏踏实实着力完善手头的工作,不再深入思考,而是开始好高骛远,瞻前顾后希望全面开花,更重视别人对自己的评价。更要命的是发现自己开始盲从了,该有的自我价值判断体系被打乱了,有时候判断力被各种力量牵引着作出了很多让步和妥协,我还是不是那个坚持原则的人?是不是能够坚守信念不动摇的人? 2014年展望 我对2014年自己的期望就是身体健康,把2013年的各种病痛全都丢掉,把这一年的各种倒霉和无奈全都放弃,一切都要好转起来。 既然进入新年,一切都应该重新算起,对我来说2014年是我进入开源第五年,也是不再沉寂必须抛头露面的一年,加入CSDN以后必须要完成的开源推进任务也责无旁贷要承担。种种迹象表明,2014年一定是中国开源发力的一年,各种势力一定会以开源为阵地展开对垒,这一年真开源假开源同台比拼,普通民众也如二十世纪初的中国瞬间知道共产主义一样,也会在各种场景各种或公开或官方或私密的场所听到和看到开源的身影。 “开源”在2014年将不再是躲在手机“法律声明”里干巴巴的法律条文,一定是活灵活现的展现所有人面前,中国也将从此跨入开源全面发力的元年!

Read More 2013我的开源第四年,2014中国开源元年

再谈中国的“创客世界”

北京创客空间即将在今天搬新址了,传言甚是不错,谨写此文贺乔迁之喜。同时预祝今年创客嘉年华成功举办。 除此文以外,之前我已经写过三篇有关创客的文章了,第一篇是《神奇土地上的创客联谊 ——创客嘉年华见闻》那是去年参加创客嘉年华,第一次了解创客群体时候写的;第二篇是《黑客、极客和创客》,试图通过比较三者的区别和联系,来捋顺我心目中三者的关系和脉络;第三篇是《也谈“创客文化”》,总结了前文的内容,更深入的了解创客的文化内涵。而现在呢我对创客群体的了解已经一年半了,入职DFRobot也快一年了,因此对创客群体的认识也更加频繁和深入,特别是中国创客的特有情况,更有一些不算特别深入的了解。本文一些想法在接受51CTO记者采访的时候,零零散散的说了一些,这里做个整理,并添加一些内容。 因此,通过这篇文章也希望可以简单谈谈我对国内创客群体的认识。所以呢,要特别提示:本文只代表我个人观点,若读完感觉不适,老规矩,请阅读《人民日报》和观看《新闻联播》调适! 中国创客的组成 通过我这一年多的观察,中国的创客群体基本已经定型,人员构成和分布也大体变动不大。未来也许会有一些变化,但在可以预见的未来,只会在构成比例上有所变化。 高富帅 / 白富美 无论是那种,就一个特点“富”!要么是人傻钱多型,要么就是什么流行玩什么的投机分子,这类人在创客群体中的比重很小,因为富二代、富三代、官二代、官三代们已经是一种“伸手党”状态了,他们秉承只要我有钱就什么都可以办得到的心态,真正投入创客行为的少之又少,即便有也只是抱着玩玩的心态,无常心的去做。他们有时候的慷慨,往往也成为了以下几类人的资金来源。 原先做硬件开发的团队/个人 这样的人是创客的主体,藉由制作各种山寨Arduino平台的硬件,或者是兼容Arduino平台的硬件平台。当然不乏自创和新奇的,但大多市场反馈不佳,成功者凤毛麟角。还有比如根据现有硬件平台改造的。总之,成功的不多,比如DFRobot和Seeedstudio等等,其他的成功者则少之又少,往往都有很浓重的山寨气,难成大器。 从事软件开发的团队/个人 这类人虽然不多,但却是创客群体中比较有活力的,但因为缺乏硬件知识和动手能力,往往被带着走,看个炫酷,搞个新鲜就过去了。受制于自身能力所限,很难有大的进步创造。当然不乏成功者,有的做的还挺像那么回事,虽然没什么市场,但以后的发展潜力还是非常巨大的。比如将开源硬件与手机APP结合的等等。这类比较典型的是上海新车间的创始人,他们原先是搞软件出身。 搞美术或音乐创作的团队/个人 美术设计一直是中国创客团队的主要组成部分之一,其中尤以北京创客空间更甚,创客嘉年华都搞的有一股艺术设计的调调,怪怪的感觉。当然搞美术的人是最富于创造力的,也很对得起“创客”这个词中的“创”字,恰如其分的体现了创客精神的创新思维。他们往往结合开源硬件、3D打印技术,来完成其美术或音乐作品,又或者做公众服务类项目。 搭创客便车的商业公司 有些传统商业公司看到创客运动如此轰轰烈烈,于是便想利用机会搭车宣传自己,推出一些炫酷的功能,或者搞“黑客马拉松”比赛来聚拢人气, 穷学生 学生群体的特点是求知欲强,技术薄弱,没钱。他们看到别人做一些炫酷的东西往往心动,同时也心有余而力不足。加之学生群体信息闭塞,获取信息的渠道和来源单一,面对变化承受能力也差。因此学生既是最该发展的创客群体,同时也是最难发展的群体,我个人是很看好在学生群体中大力推广创客精神(当然一定是开源精神和黑客精神)。 这里要说一下,国外的创客主体是以自由职业者和高端软硬件开发人才,比如嵌入式开发人才,也包括艺术设计公司或团队,多方共同组成。 中国创客的生存状况 除了富人以外,中国的创客生存状况很是堪忧。比如做硬件的团队一般是通过卖自己的产品来赚钱的,通过借创客社区的优势和背景,增加产品附加值来销售,比如开淘宝店等等,据我了解大多数都在收支平衡上挣扎,其中不乏很多亏本的,同时还要处处留心被别人山寨。中国搞硬件研发的团队,一直以来是比较低端的,从业人员素质比较低,也没有什么版权著作权保护的意识,更不了解开源协议,互相抄袭山寨现象严重。这样产生的结果就是创客团队本该是最开放的,反而变成了封闭的,即便是开源也是假的,很多核心技术反而封闭起来,或者只是开放上层架构,而将底层封闭,变成了一个开放平台而已。这种互相不信任的“开放”所产生的结果就是这类创客为图生存,只能游走在山寨上,难以产生划时代产品和真正具有创新精神的项目。 搞艺术创作和搞软件开发的人,他们往往有自己的稳定收入,搞艺术创作可以通过销售其作品来糊口,而搞软件开发的一般都有稳定的工作,而商业公司则有稳定的盈利来源,他们是最有能力大搞创客的。但他们没搞!除了技术瓶颈(从软件到硬件,隔行如隔山),同时还有对开源认识不佳,以及对公司产品转型而产生的担心,无论是初创公司还是大公司在这个问题上一般都比较谨慎,也是可以理解的。 穷学生和一些自由职业者都是没有收入来源的,但他们是最有希望成为创客的,其中有很多做的不错的学生,项目很有挑战价值。他们的出路一般是走众筹平台或孵化器,众筹平台最出名的应该是美国的Kickstarter,国内有山寨版叫“点名时间”,但国内众筹平台的发展很难推广,因为众筹平台募集资金的方式,适合于公民意识很强,互信基础完善的民主社会,中国有其特殊性,这种众筹平台难以发展。而孵化器在中国则偏于商业运作,对开源精神、社区开发等都不太看中,孵化器往往是富人拿出来钱来的玩物,他若撤资后果可想而知,因此危机感非常强,难以持续。另外有些孵化器更看中创客产品的商业价值,重效益,因而往往不会遵守开源协议,甚至是为了商业目的而践踏开源协议,更有搞假开源,伪开源,这是坚决不能允许的! 中国创客的精神内涵 坦率的说,创客群体对开源精神缺乏最基本的认识,大多数认为开源就是分享;同时缺乏协作精神,不懂得合作开发和利用现有平台,重复造轮子现象极其严重,更缺乏贡献精神。因此我们看到的情况就是项目很多,创客空间在神州大地遍地开花,但同质化严重,如果能够合并一些类似的,并建立贡献反馈机制,产生创客社区就完成了整个生态系统建设。 除了开源精神,中国创客们还需要完善信任机制,因为只有互相信赖才可以真正创新,这种信赖包括在成员之间,创客与其他组织创客之间的信赖,以及成员与背后赞助之间,通过信赖团结和凝聚人心,搞独立和分山头一定没有好结果,这是一种契约精神的体现。这种无差别信赖在中国现在是越来越困难,但在创客内部是必须要有的,否则难以产生真正的创客!通过信赖可以摒弃山寨,信任关系也可以让产品和客户之间建立融洽的关系,减少由此产生的对立。 浮躁的商业氛围。在创客群体中,一种越来越浮躁的商业氛围正在迅速席卷整个中国创客群体。商业的聚拢其实不是坏事,2009年当Flamingo等小众群体开始玩开源硬件的时候,一直很发愁资金问题。但我想说的其实是很多创客急于将自己的作品产品化,希望尽快通过售卖产品来获得收入,这本无可厚非,但过度追求商业化反而舍本求末,丢掉了创客的信仰。 说到信仰,中国创客的根本问题是缺乏信仰。创客文化在国外生根发芽是因为土壤里已经有了人们对创新者的崇拜,西方宗教认为上帝造万物造人是神圣的,因而那些能够创造新鲜事物的人,也像上帝一样神圣,所以国外程序员的薪水非常高。也因为此才会产生后来的黑客精神、自由软件、开源软件,一直到现在的创客文化,因此创客诞生的土壤里就包含了人们的这种信仰,同时还有一种普遍的“Tinker文化”,即人人都喜欢自己动手改造东西。而中国呢,创客因为有“创”字就非常讨巧的符合了国家的创新战略,所以就这样硬生生的把国外的创客“嫁接”过来了,可是咱的土壤和环境是不适合创客文化的,于是就有了现在这个怪胎,产生了“桔生淮南则为桔,生于淮北则为枳”的效果。 中国创客的未来之路 请政府收回那只咸猪手。可以看到通过政府出资的方式,某创客空间一直大力运作至今,但若脱离了政府资助,为继也许都成为困难。但即便如此,还是请收回援助吧,请把创客交给市场,优胜劣汰自然选择,这样可以让这个产业更加发展迅速。 以社区为中心的创客生态系统。目前创客群体还没有建立社区,没有完善的社区组织,更没有社区精神了,而我认为应该建立以创客为中心,以社区为载体,以社区精神为指导原则,建立功能完善的创客社区组织。何谓完善?就是包括开发者、用户、维护者、宣传者和打酱油的共同组成社区组织,通过完善的社区规则合理进行,这里要特别说,社区不仅仅是有个论坛就完了,还需要有线上聊天(比如IRC),邮件列表交流,并培育社区群体和社区线上线下活动等等多种形式。还可以在社区中引入融资渠道,最终这样的社区组织会发展成全功能创客社区生态系统。 学生群体将会成为创客主体。学生是未来的希望,大家都懂,但很多人却采用商业的方式攻入校园,而我个人认为校园应该是社区通过润物细无声的方式渗透进去的,通过建立无数“地下党”的方式。这里社区的作用就非同小可了,社区活动可以大量的吸引学生的注意力,最终将学生发展到创客的路上。另外一定要找到符合学生需求的方式,这还需要进一步摸索和探究。 多向周边国家/地区学习。虽然本文是探讨中国创客问题,但是需要看到,与我国相邻的国家/地区往往也有类似的问题,他们是如何解决的,可以多多关注香港和台湾地区,近几年成效显著。不要被一堵“墙”所阻挡,他山之石可以攻玉,但是生搬硬套就不好了,还是要多结合本地实际。

Read More 再谈中国的“创客世界”

GCC编译器常识(转)

在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问 题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。 开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段: ◆ 预处理(Pre-Processing) ◆ 编译(Compiling) ◆ 汇编(Assembling) ◆ 链接(Linking) Linux 程序员可以根据自己的需要让GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不 同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。 GCC提供了30多条警告信息和三个警告级别,使用它们有助于增强程序的稳定性和可移植性。此外,GCC还对标准的C和C++语言进行了大量的扩展,提高程序的执行效率,有助于编译器进行代码优化,能够减轻编程的工作量。 GCC起步 在学习使用GCC之前,下面的这个例子能够帮助用户迅速理解GCC的工作原理,并将其立即运用到实际的项目开发中去。首先用熟悉的编辑器输入清单1所示的代码: 清单1:hello.c   #include <stdio.h>int main(void){ printf (“Hello world, Linux programming!n”); return 0;}   然后执行下面的命令编译和运行这段程序:   # gcc hello.c -o hello# ./helloHello world, Linux programming!   从 程序员的角度看,只需简单地执行一条GCC命令就可以了,但从编译器的角度来看,却需要完成一系列非常繁杂的工作。首先,GCC需要调用预处理程序 cpp,由它负责展开在源文件中定义的宏,并向其中插入“#include”语句所包含的内容;接着,GCC会调用ccl和as将处理后的源代码编译成目 标代码;最后,GCC会调用链接程序ld,把生成的目标代码链接成一个可执行程序。 为了更好地理解GCC的工作过程,可以把上述编译过程分成几个步骤单独进行,并观察每步的运行结果。第一步是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:   # gcc -E […]

Read More GCC编译器常识(转)