Category Archives: On the Journey

如何做一个好的博客

我从2010年开始写博客。在过去的五年多时间里,除了自然而然增长的博文数量外,我的博文质量也在潜移默化的提高。然而这种质量的提高并不完全是自然形成的,这是需要不断思考博客的核心价值,同时在不断迭代的设计中艰难地产生的。每个人对自己的博客有一个定位,也有自己对于好博客的一套衡量标准。我从我自己以往产生的经验,来谈谈我眼中的好博客应该是什么样子的。

首先,一个好的博客需要是原创的,至少是半原创的。没有人喜欢整个网站全是复制-粘贴来的博文,这不光来自复制过程中产生的版式错误,而是这种复制的方式的本质是欠思考的、不系统的。行为上的懒惰必然导致思维上的懒惰,这样得来的文章只会显得杂乱无章,而不能体现任何博主自身的意图。可惜的是,这样的博客占了很大一部分。我想很多人也许并无意将自己的博客给别人看,而只是作为自己知识的索引。然而即使是这样,系统的整理也是必须的。这是一个吸收与理解知识的最好机会,有时甚至比文章自身带来的价值更大。

其次,是核心主题。所谓主题,就是整个博客中的博文是耦合或者是弱耦合的。制造主题的方式有很多,其中之一就是采用博文系列或专题的方式。比如云飞实验室以机器人和嵌入式为主题,也开发了热门的树莓派、Arduino和STM32等专题。正如写文章一样,博文的内容大多是围绕一个主题的。如果偏题太多,同样就会失去博客自己的特色。记住,你的博客是一个博客,而不是一个分享一切信息的网站。想要很好的做到这一点,你需要有自己假象的用户。比如对我自己而言,我的假象用户是嵌入式工程师,机器人爱好者,Makers。我每考虑创作写一篇博文,都会首先站在读者的角度去考虑。我会去判断这篇博文对读者的价值是多少?他们是否感兴趣?能不能帮助他们/引发更深层的扩展和思考?在这个过程中会有很多取舍。可能会遇到你很想发布,然而偏离主题,远离读者的博文。这是需要避免的。

再者,我就觉得是博客设计。我所说的设计,不仅包括网站的CSS版式,也包含了文章内部的组织。总体上来说,就是要做到简洁。简洁就是去除不必要的元素,避免华而不实的特效、动画、插件等。这些元素有时会破坏博客整体的平衡性,也会让读者分散精力。简洁可以给读者创造出纯净的阅读体验。而美就会略为主观了。我所理解的美,包括文章的段落结构,图片的尺寸、配色、位置,示例代码的优美性。以我的经验来看,美是需要用心才能做到的。需要让自己变得沉静,敏感,细腻。美的产生与其说是与生俱来,不如说是精雕细琢的产物。对美的感受也有进化的过程(但我觉得总体上是向正方向前进的)。很多时候,我会去看自己很久之前的博文,如果觉得做的还不够好,会再仔细修改。我也经常从别人的网站和博客中吸取经验,学习如何更好的排版、安插图片和代码等。这些需要一个人的审美层次,然而更多时候是花费时间和精力去雕琢而成的。

这些是我多年来一直在思考和遵循的原则,今日突然想与诸位分享之,便有此文。

戴晓天
2016年04月21日 于 英国约克

实时系统研究意义的思考

要想弄清研究实时系统的意义,首先必须明确实时系统在整个人类生活中的角色。

实时系统的主要研究对象是工业控制,交通和航空航天,电力及能源,网络设备及网络服务。这些系统的稳定性很大程度上决定了生命财产与经济的安全性:如电力系统的短时间崩溃会导致工业和交通停滞,并可能带来生命财产事故;航天飞行器的软件故障,会导致与地面控制中心的失联甚至是坠毁,带来巨大的财产损失。社会的正常发展和秩序很大程度上依赖于这些实时系统的稳定性和可靠性。纵使我们不想如此,人类生活的方方面面还是很大程度上依存于并不稳定的软件系统。设想如果有这样一个软件漏洞,使得多个重要系统在同一时间失控,那么其带来的社会影响和经济损失将不可估量。 实时系统的主要研究目标:保障实时系统在时间和行为上的可预测性,设立可靠的软件设计方法;就是在预防和避免以上的不可靠情况的出现。

至于在当前计算机速度已经如此之快的情况下,实时性研究是否还有其必要性。

答案我想也是肯定的。在新的计算机结构出现之前,CPU速度的提升不等同于系统实时性的提升。CPU速度的提升显然会减少程序的执行时间 (execution time),但是对于从请求产生到得出结果的响应时间 (response time) 及IO的输出间隔的稳定性 (IO jitter) 依然没有明确的保证。与此同时,更加复杂的操作系统和计算机硬件也提高了这种不确定性,例如Cache缓存和内存分页带来的运行时间浮动。综上所述,CPU速度的提升无法带来实时性上的保证,依然需要依靠实时性分析来保障系统在时间上的可预测性。

从浙大造假事件谈中国的科研现状

今天晚上看到了柴静对08年浙大论文造假事件的报道(《新闻调查》栏目-《以求是之名》)。对于很多人来说这不算是新闻,但我确是第一次关注到此事。作为一名学术研究人员,这条四年前的新闻今天看来还是感触颇深,特撰此文,以求警示与共勉。

整个事情的背景大约这样的:2008年10月,贺海波的博士生导师中国药科大学教授戴德哉指控现浙大博士后贺海波在多篇论文中剽窃了自己的论文与实验室数据,张冠李戴,并多次重复发表。贺海波在浙大药学院参与李连达院士的国家课题“冠心2号”的研究,其发表的多篇关于丹酚酸B的科研论文皆有李连达院士及浙大中药药理研究室主任吴理茂的署名,但两人却未尽监督的义务,并表示是贺私自进行了隐瞒,对此事并不知情。

初看这一事件,整个过失看似是贺海波的个人行为。贺海波没有遵守一个学者的基本道德,急功近利而误入歧途。但后来的采访却是,贺的学生对这名老师非常肯定。其学生表示贺对科研事业尽职尽力,实验室中有他厚厚几大本的实验数据。贺本人在公开道歉信中大致这样写道:因为想留在浙大任职,而学校对于SCI指标有要求,并且竞争压力十分大,才做出这样一件事。贺的博士后导师为院士李连达,而李连达无暇顾及学生,实际上只是浙大医学院的挂名院长,他将所有学生“托管”给药理研究室主任吴理茂,而吴理茂实际上又没有管理博士后的资格与资质。这便导致了贺海波处于无人监管的状态,而其又面临浙大巨大的竞争压力。为了完成科研指标,从而顺利留在浙大,贺海波最终背弃了学者的基本道德,进行了剽窃与造假的行为。

从这个事件中,我看到了当今国内学术界普遍存在的一些问题:1、高校不合理的大跃进式发展,在没有师资的情况下盲目扩张;2、管理者只求享受成果荣誉,却不负监管责任;3、高校普遍存在的放羊式的研究生、博士生管理制度,导师只挂名而无实际指导;4、学者不负责任、急功近利,而社会的评价体系又单一化、指标化。

我们的国家经历了贫穷的年代,那时物质还不富裕,所以国家最先提出的口号是建设小康社会。在经过了长达三十年的改革开放之后,现在物质上的矛盾基本解决了,而如今我们需要的是寻求一个民族的精神,也就是十二届人大会上由习近平主席提出的一个理念:中国梦。何谓中国梦?每个人会有不同的理解。在我看来,中国梦是由千千万万个人的小梦组成的,是国人对于一个富强、独立、民主、科学的国家殷切的期待。对于科研事业而言,我们的中国梦就是可以赶超欧美发达国家,有世界领先的工业与军事技术,有一流、出众的科研人才。可现在的年轻学者,对于学术的态度已经少有前人一般的严谨,学术太浅薄、太不周密。很多学生做论文的过程也不过是拼拼凑凑,甚至为了佐证自己的观点,也可无中生有地伪造数据。而一个国家的年轻一代如果这样,那这个国家的未来会怎么样?我们的中国梦又靠谁去实现?这是作为学者自身需要思考或者反思的。

同样的,对于中国的高校而言,市场化、竞争化日益严重。当学术和经济利益挂上钩,便很容易结出恶性的果子。浙大在没有师资的情况下,聘用院士李连达为名义上的医学院院长,获得了国家丰富的科研资金资源。而李连达院士并没有时间顾暇教学活动,其手下的研究生与博士生全权由吴理茂管理,这恰恰是现在高校很普遍的现象。考研界有这样一个说法,越好的导师越不能给你指导,只可以给你好的资源。有的学生直到毕业甚至只见过导师一、两面,那这样的导师如何指导学生。何谈引导,又何谈为其师呢。

学者固然需要端正,高校也固然需要反思。但是高校的所作所为,实际上也映射了一个国家在教育与科研上的风气。我们必须放下功利,这个国家越急于求成,到最后就越落后于别人。真正的学术不是三两天就能建成的,需要有丰厚的基石。这个基石即是基础学科的研究,也是一个国家对于教研、对于学术的基本制度。如果没有这些基石,而一味的只追求成果,那最后搭起来的不过是空中楼阁、浮沙高台,总会有垮掉的一天。光有学者的自律是不够的,任何一个好的体制都应该是闭环的,有反馈、有监督、有管理,治学如此,治国也如此。

一个人迷失了,不过毁掉的是他自己的一生;一群人迷失了,不过是轻轻地为这个社会蒙上一层浮沉;那如果一个国家迷失了呢,一个民族迷失了呢?我记得高铁追尾事件发生时,外媒纽约时报有这样一句评论:"China, please stop your flying pace, wait for your people, wait for your soul, wait for your morality, wait for your conscience! "如果国家的发展只一味的追寻快,而忽略了社会发展的规律,那这个社会的发展便是病态的。我们应该从五十年前的大跃进中吸取教训:生产力的改革不可能一步登天。与之相应的,是科学研究也不是三天两天可以飞跃的。科学是必须要积淀的,必须要长期积累的。学者要潜心研究,不要想走捷径;高校要摒弃不正当的学术竞争,以育人而非利益为重;而国家要提供良好的科研环境,树立正确的科研风气。对待科学与学术,不能急,急不来,急是会出问题的。

当然,在目前大环境一时无法改变的情况下,作为个人也不该只有抱怨,要以积极态度与之抗衡,因为社会也是由每一个个鲜活的个人构成的。我呼吁所有在工程及科学领域工作、从事研究的人员们,能严以律己,以求是之名,对自己的工作负责,对自己的研究成果负责,对至高无上的科学精神负责,为实现民族富强、民主自由、文化繁荣、科技领先的中国梦而共同奋斗。

戴晓天
作于2013年12月23日

柴静的《看见》与新闻工作者的良知

大约半年前读完了柴静的《看见》,柴静是颇具争议的记者,她报道的话题很尖锐很边缘,但又是真实社会的写照。正是这本书,让我看见了一个新闻工作者的基本态度:对真实的挖掘,对真相的认知,对待事实如同对待生命一般的热忱。现在身在国外,有机会读到很多以前在国内读不到的东西,也更多的开始从外媒的渠道重新了解中国。我看了很多BBC关于中国的纪录片;解读一个新闻时,也会看一下港媒和台媒的报道。这些都让我开始思考一个问题,我们的新闻业是不是已经到了最危险的边缘?

现在的新闻产业正值一个从旧媒体向新媒体时代过渡的阶段,新闻的媒介在增加,新闻的质量却在下降,很多问题也由此暴露。利益、生计、工作压力让很多新闻工作者迷失了方向,前段时间一篇题为"老外街头扶摔倒大妈遭讹1800元"的新闻在网上流传。文中写到一老外被一中年妇女“碰瓷”,强行要求其索赔。当时看时还觉很愤怒,但不久之后,这篇新闻便被证实歪曲事实,实为老外过失。不敢相信,一个同样的事实,被刻意从另一个角度报道,甚至可以图文并茂的报道,会对公众造成怎样的迷惑,又是多么可怕的事情。

新闻需要的是真实,需要的不是迎合读者的口味,需要的不是刻意夸张夸大,利用人性去煽动你的感情,需要的不是一味的赞扬,只写光辉的一面而忽视掉心灵中也会有黑暗,这个冠冕堂皇的社会也会有黑暗。

以前新浪网和搜狐网是我常去看的新闻网站,现在不看了,为什么?因为我从这个网站上已经很难看到真实。新闻被娱乐化了,庸俗化了,迎合了。没有深度的解读,甚至缺乏必要的认证,便公布在网站上,一切只剩下点击率。

并非我清高、孤傲,而是我认为新闻本不应该是这样的。新闻是作为普通民众了解这个社会的渠道,新闻工作者要拿出最起码的职业道德,社会也要对新闻有更多的宽容。真实往往都不是光鲜亮丽的,一直只看一面,我们便会丧失辩证的能力,丧失对真实的判断能力。

一个国家怎么样,要从各个方面考量,我觉得媒体就是一个很好的评估方面。一个国家对媒体有多少尊重和容忍,对历史有多少领悟与认同,也表现了这个社会这个国家的文明进程走了多远。我希望多一些像柴静、崔永元、白岩松这样睿智的、有良知的新闻工作者,中国社会的发展一定会更加美好与平衡。

8942716441947863990

2013新年愿景

2012年,不平凡的一年。

2012年年初,几乎是我最黯淡和绝望的时光。我经历了从学生角色到社会角色的转变,以及在这个过程中产生的“自我认知困境”。当时,其实我的工作状况已有好转,也有机会接触公司几个核心项目。不过,被负面情绪充斥过久之后,我还是决定在四月份离开。换了新的工作环境后,我度过了快乐而忙碌的下半年。这半年里,我参与研发了公司五款产品,拿到了初级职称,考过了中级软考。在提高技术能力的同时,也实践了一些完全不同的设计理念和架构。

虽然一切都很顺利,不过我的内心还是不乏波澜。尤其是创新,对我来说,已经显得越来越吃力了。一是不知在何时,热情开始逐步退却;二是随着技术领域的扩充,对知识的需求开始指数型增长。这很可能再一次爆发出来反应为认知困境与自我怀疑。

今年又一个成就就是,终于让创客活动从纸面变为了实践。自从2010年有“云飞社区”的想法后,组织、参与一个有成长性的开源组织的想法就一直在推动着我。虽然有了新车间和柴火空间的先河,不过我们目前做的还不算太好,或者说还没有找到关键的切入点。

谈到2013年,我倒是有很多期盼。一是可以实现自己远赴重洋的读书梦;二是可以继续坚持嵌入式事业,做出更多人认可的东西;三是父母奶奶身体健康。

2013也是我的本命年,希望新的一年一切顺利。

2008124223823512_2

关于编程语言的选择与体会

从我最早接触编程至今已有近10年时间,当时是在初中时,通过文曲星编写了几款基于文字和简单图形的游戏。高中时因没有相关条件与指导,慢慢就荒废了下来,中途曾经因为计算机考试学过一段时间VB,但就当时的知识能力,并没有学习的很深入。上大学以后,学校开设了C语言和VB的相关课程,加之之后对单片机和嵌入式系统的狂热,让我更加深入的接触了计算机编程的原则与方法。

我虽然不是计算机专业出生,但在学习、工作中还是经常会接触到程序编程。我主要使用的依然是C语言,但是因为涉猎较广,还是接触了很多其他的编程语言。这里,我想把所有使用过的编程语言的优缺点罗列、整理一下,作为一次回顾。

BASIC:较为古老的编程语言,开发环境是基于命令行的,条件、跳转很不方便,现在已经很难见到。

VB:可视化BASIC,在BASIC上作了大量拓展,可以快速构建一个图形用户界面,但是能实现的功能比较简单。在工控上经常能见到,老工程师都会。

C:C语言作为基础性语言,广泛用于单片机与Linux编程中,其直接操作内存和硬件的特性,使其非常适合编写系统底层程序。C语言可以很好的完成单一任务,如一个算法的验证,但无法完成框架复杂性高、以及需要图形界面的场合。

C++:面向对象,结构化的语言,相比C语言可以实现更加清晰的程序框架。一般使用Visual C++作为开发环境,配合MFC程序框架可以实现功能复杂、通用性好的Windows程序。网上很多源代码都是基于VC的,但是其开发效率有点低下,并且实现复杂的图形界面比较困难。

C#:新一代的编程语言,结合了C++的面向对象以及VB的可视化开发的优点,又可以说是一种类JAVA语言。C#的开发效率高,图形绘制,数据库的功能强大,但目前对我来说的阻碍是很多开源软件对其的支持还不够,就如Win7一样兼容性还不够,随着时间的推移这个矛盾应该会逐步化解,我也准备逐步由C++转向C#开发。

Java:我接触Java并不多,初步感觉其对象化实现的很好。Java之所以生命力顽强,是因为其基于虚拟机的特性。虽然这降低了系统的运行效率,但是却实现了跨平台支持。目前由于Android开发的火热,很多人都在从事Java开发,我最近也有打算了解一下Android开发,届时也可以更深入的了解Java语言。

LUA:强大的脚本语言,初步体验了一下,感觉其扩展性、灵活性非常好,但是脚本语言与一般编程语言在设计思路上有一些不同,对我来说有一些难用。

SHELL:Linux下的脚本语言,可以实现BATCH批量操作,甚至很多复杂的程序也可以通过SHELL实现。

MATLAB:擅长矩阵运算,建模能力强大,主要实现算法验证。但不适合用于设计大型程序,与一些上位机有接口,其作为一个组件使用可能更合适。

以上为本人长期积累所得,大多数为主观意见,若有不对之处请高手指正!

2012年展望

不知不觉中,2011年已经临近结束了。
这一年我从学生走上了社会,到现在正好半年。
这半年来对VC、数据库的设计能力有了提高,但不是我所期望的发展方向。
明年希望在Linux设计上能所有提高,主要是驱动和移植,以及Qt设计。
明年还希望可以写一个Robot OS的雏形,完成iScope示波器,以及PLCminiPro,从而推动云飞社区发展。
但愿可以如愿以偿。
-------------------------------------------------------------------------------------------------
Automatic.dai 于 2011年12月17日

总算有了自己的网站

我大约从2010年3月开始写博客,至今已有快2年时间。

最早写博客的初衷是发表一些自己的短篇文学,后来文学不怎么搞了,慢慢转向技术博客,原来的新浪也就显得不太适合。后来辗转至EDN CHINA,作为电子工程师社区,这里的志同道合者更多,浏览量也很大(基本上一周就超过了我原来一年的流量) 。虽然我的博客没有很多份量,可是因为刚开始比较热情,所以也取得了不小的成绩。

后来END CHINA莫名其妙的改版了,一切物是人非。带着最后一点希望,我举家来到了21ic。如今在21ic落户几个月了,却依然找不到以前的那种感觉,陌生、冷漠,难以融合。所以我还是决定,建一个真正属于自己的博客。

从筹划、注册域名、解决技术问题,前前后后大约花了一个月的时间。今天,终于把服务器空间也解决了,网站总算顺利建成。

总算是了结了一件心事。