注:如果对CC2430和TinyOS不甚了解,请跳过这篇文章

--

本文发表在PSYcHic

原文地址为:http://www.darlingtree.com/wordpress/archives/187 如需转载请保留这个网址 谢谢!

现在国内做WSN研究的人越来越多了。在硬件方面,我们国内不像国外那样拥有很多硬件开发平台可以供我们选择。而且,crossbow的专业开发平台价格非常昂贵。不过随着越来越多的公司开始关注WSN,zigbee,我们现在还是有可能在千元之内就搭建出来一套自己的无线传感器开发系统。

CC2430是现在较为理想的硬件平台。在国内,大多数人还是使用IAR结合z-stack协议栈(或者是变种的xx龙版)进行开发。z-stack协议栈开发比较简便,很适合新手使用。但是如果你是搞学术研究,需要深入研究组网及相关算法开发的话,那么UC Berkely的TinyOS才是最佳的选择。(我相信聪明的人不会去淌z-stack的OSAL的浑水吧....)

很多人已经成功将TinyOS移植到了CC2430上了。但是目前在网上似乎找不到有比较详细操作步骤的文章。那么我来给大家科普下吧:)

-

介绍:

首先,我们要往CC2430上移植的是TinyOS 2.x版本。如果你英文好的话直接前往下面这里查看相关资料http://tinyos8051wg.sourceforge.net/

TinyOS2.x for 8051目前支持三种编译器——Keil,IAR,sdcc 我们采用的编译器是Keil——这个大家都比较熟悉。TinyOS 2.x 是必须在Linux平台下才能工作的,而Keil则是一个windows下的软件,所以我们必须要先安装一个在windows下面模拟linux的软件——Cygwin。

移植前,我们需要准备的东西有:

硬件:CC2430节点,仿真器

软件:Cygwin,Keil,TinyOS 2.x,一些相关的环境设置包,SmartRF04 Flash Programmer

硬件就是原来在IAR下能正常使用的CC2430开发硬件就OK(不管是无线龙的,华凡的,微骨的都行)

软件我需要说下:

TinyOS 2.x : 请到http://tinyos8051wg.sourceforge.net/download 这里下载最新版本 (本文是根据TinyOS8051wg-0.1pre4.tgz 26 Oct 2008 这个版本进行的介绍)

Keil:请安装好,记住一定要安装没有2K限制的版本。

下面开始安装软件:

0、安装Keil ——Keil是现在单片机开发必备的软件了,网上资料一大堆,我就省略了。自己安装好就可以了。

1、安装Java 1.5 JDK

下载地址 http://java.sun.com

如果你做Java开发,以前安装过的话就可以跳过这一步了。

2、安装Cygwin

请安装TinyOS推荐使用的版本。不少人在后面遇到各种诡异的问题就是因为Cygwin安装不当,缺少一些必要的组件。

你可以去:http://cone.informatik.uni-freiburg.de/people/aslam/cygwin-files.zip

下载这个版本的Cygwin。

如果链接失效,请前往TinyOS官方的wiki寻找其推荐的Cygwin版本:http://docs.tinyos.net/index.php/Installing_TinyOS_2.0.2#Manual_installation_on_your_host_OS_with_RPMs

安装过程很简单,一路next下去就OK,不过请记住你安装的位置。本文默认是安装到C盘下。

3、下载TinyOS开发必备的编译工具的安装包(一共4个)

NesC编译工具:nesc-1.3.0-1.cygwin.i386.rpm

TinyOS相关工具:

tinyos-deputy-1.1-1.cygwin.i386.rpm

tinyos-tools-1.3.0-1.cygwin.i386.rpm

tinyos-2.1.0-2.cygwin.noarch.rpm

4、启动Cygwin,并在Cygwin下安装上面下载好的rpm包

双击图标即可启动Cygwin。 正常启动后应该会有"$"标识符和光标。

我们要安装rpm包,就要首先切换到rpm包存放的目录下。如果你熟悉Linux,那么自己安装就行。如果不是的话,按照我所说的一步一步来。

1)首先找到你安装Cygwin的目录,如果是默认安装的话就是C:

2)进入目录,发现里面有/bin /var /etc /opt /home等文件夹,Linux系统下的根目录就是这个样子啦。

我们双击home文件夹,发现里面又有另外一个文件夹,起的是你安装时设置的用户名称,假设你叫做quake(请替换为你自己的用户名)。现在进入C:

好了,当我们一启动Cygwin,程序的终端窗口默认也是停留在/home/quake下面。下面我们需要把刚刚下载的4个rpm包拷贝到C:。

之后在Cygwin终端下输入

ls

按回车后,你会发现终端的窗口里显示了你刚刚拷过去的rpm包的名字。(更多Linux bash命令请参考Linux资料)

下面需要一个一个安装

输入

rpm -ivh nesc-1.3.0-1.cygwin.i386.rpm rpm -ivh tinyos-tools-1.3.0-1.cygwin.i386.rpm rpm -ivh tinyos-deputy-1.1-1.cygwin.i386.rpm rpm -ivh tinyos-2.1.0-1.cygwin.noarch.rpm

每输入一行,按一次回车,我们就把对应的rpm包给安装好啦。把4个rpm包都安装好后就可以进行下一步了。

5、安装TinyOS 2.x

将下载好的TinyOS 2.x的安装包给解压缩(如TinyOS8051wg-0.1pre4.tgz),解压缩用winrar就可以。

将解压好的tinyos-2.x-contrib这个文件夹拷贝到C:下

好了。我们已经把TinyOS的开发环境基本搭建好了。

下面我们实际编译个程序吧!

首先在Cygwin下面输入

cd /opt

ls

你可以看到opt目录下有你刚刚拷贝过去的tinyos-2.x-contrib文件夹,继续输入

cd tinyos-2.x-contrib/

我们查看下该目录下面有什么

ls

发现有个diku文件夹

下面输入

source diku/env

说明:diku文件夹下面有个env配置文件,我们通过source 命令加载下,这样后面编译的时候编译器就知道我们要使用什么样的配置去编译了。关于env配置文件的具体内容稍后介绍。我们用Keil编译,保持其默认状态就可以了。

之后我们就可以编译了,所有的例子在tinyos-2.x-contrib/diku/common/apps/下面,我们以BlinkNoTimerTask为例

输入

cd /diku/common/apps/BlinkNoTimerTask

make cc2430em

如果一切正常的话,你会看到:

GENERATING INTEL HEX FILE: app.hex compiled BlinkNoTimerTaskAppC to a cc2430em binary Code size of app.o MODULE INFORMATION:   STATIC OVERLAYABLE CODE SIZE        =    635    - CONSTANT SIZE    =   -    - XDATA SIZE       =      4       9 PDATA SIZE       =   -    - DATA SIZE        =   -    - IDATA SIZE       =   -    - BIT SIZE         =   -    - Total sizes Program Size: data=9.0 xdata=10 const=0 code=694

这段话,这表明你已经成功了!~

好了,下面我们看看TinyOS生成了什么吧~

C:-2.x-contrib2430em

这个目录下面

我们发现了其编译生成的app.hex文件。现在只要把这个文件烧录进单片机,我们就大功告成了!

烧录

我们安装下SmartRF04 Flash Programmer这个软件,这个软件一般购买仿真器的话都会在附送的光盘里面赠送,如果没有的话网上搜索下吧,实在没有给我发信索取下。

之后我们插好仿真器,打开SmartRF04 Flash Programmer这个软件,在system-on-chip的选项卡下

将hex文件选择为我们刚刚编译好的那个,之后选择“Perform actions”就可以顺利烧写了:)

好了,如果一切正常,那么恭喜你已经将TinyOS成功移植到了CC2430上了。我们成功摆脱了IAR不断升级的困扰和Z-stack,已经进入到了TinyOS的世界了。

欢迎大家继续和我讨论关于TinyOS的相关问题 我的邮箱zzzlog#sogou.com

今天背着背着单词,脑海里突然蹦出来了这个人的名字,看来在这个适宜跳楼的春光明媚的大好时节里,还是最适合怀旧啊 哈哈哈哈 曹居东是一个很聪明的老头:) 属于老顽童的类型吧,嘿嘿 以前特别喜欢听他的课,他的有机化学讲的很好很生动(还很快:()

于是乎就google了下他,结果发现了晚辈们写的blog,还有很多的段子,嘿嘿很多段子都是以前他就讲过的,很经典啊。

哎 可惜我现在已经不学化学了..........哭...........在中国,笨人不大有选择自己未来的机会...嗯 我很笨...

--以下为转载

其实早就知道曹居东有看别人博客的习惯,拿百度一搜,我这篇博客是第一个。。呵呵,看就看了。。很是佩服这位校友。。

曹居东是北师大化学系教授。。教育部高校有机化学及高分子专业指导组成员。中国化学会有机化学学科委员会委员,中国化学会化学教育委员会副主任,中国化学会理事,导师邢其毅,曾参与人工合成结晶牛胰岛素。。

他讲课特别好玩,

他的课件和欢迎界面都设有非常长的密码,而且都一样,是不是缺土说的cjdjstxdy(曹居东就是天下第一)却无从考证

“什么叫化学键呢,化学键就是电子糨糊,孤对电子就是502,假设我手上摸了502,啪一下贴前面人的屁股上了,这就成键了,键的强弱一要看胶水好不好使,也就是孤对的给电子能力,也要看粘的地方好不好粘,也就是吸电子能力……”风趣的就一语带过了化学键的有关问题

还经常给我们讲故事。

例如在讲到Beckmann重排的时候提到:“杜邦公司的Carothers在1935年合成了尼龙6,合成出来以后被做成丝袜,大赚了一笔,可他竟顾的赚钱了,没注意搞学术研究,被德国的一个人(名字忘了)抢了先,从最基础的理论开始,统一了高分子学说获得和诺贝尔奖,Carothers觉得特别生气,我做出来的凭什么你的诺贝尔奖阿!于是就从楼上下来了,没坐电梯…………”

他还说到有关学习的问题,他说

发明这个东西那个东西的他特别讨厌,因为他说:“那么点的孩子大学还没学那造出东西来的?!都是老师或者家长做出来的东西变成学生的了,天才还是有的,,1万个人里面有一个,那叫天才,但是1万个人里200都是天才,那叫蒙事,我还是比较赞成学科竞赛的,学科竞赛是教你怎么学习,学习要学进去,要把书越读越薄,笔记越记越少,要是书越读越厚,那你还搞什么科学阿,根本不叫科学研究了。。有机反应那么多,你要一个一个方程式的去学,去记,早把你累死了。好多反应都是一个原理,要做到我明白了一个反应就明白了好几百个反应,这样才能算是读书读进去了。例如一个wurtz反应是,RX+NA—〉R—R,而ullmann这个人比较聪明,换了点东西就变成ullmann反应 Ph—I +Cu—〉Ph—Ph,而Freund又改了改,ClCH2CH2CH2Cl +Zn ——〉环丙烷+ZnCl2,这就变成了一个合成小环的反应,类似的还有wurtz—fittig反应,Grignard反应,Corey—House反应,Reformatsky反应。。

还说

1999年中国科学院研究生院的几位博士生,把CCl4和金属钠放在一个大铁锅里,盖上盖子,拧上螺丝钉,盖上了盖子就不应该叫锅了,就叫反应釜了,只听砰一声,一打开盖子,你们猜,出来什么了,金刚石!!这就是wurtz反应的应用,人家这才叫学进去了。。你看那个整天背方程式的,他可能成绩好,但缺少创造力,根本不会学习。。

Dieckmann关环反应,Stobb反应,Darzen反应都是一类。。他还说,你们知道起重机是怎么长高的吗??有一次看见马路旁边一个塔吊正在长高,我一看,这不是Darzen反应吗哈哈。。

其实有机化学挺好玩的,吸引了好多人例如开始学建筑的Kekule偶然听到Liebig 的课以后一拍桌子就学有机化学了,Liebig得学生还有Hofmann,wurtz,Butlerov ,Butlerov 的学生又有Markovnidov,Saytzeff 。真是一个大家族。。其实以后学制药也不错。

讲lindeler(貌似拼错了)催化剂的时候 他说吡啶特臭,就把钯熏晕了。。 哈哈哈。。 还有讲船式椅式的时候,还画一个小人。。哈哈

那个合成粪臭素的是费舍尔 而且说邢先生讲课的时候老忘 他看着你你就得告诉他“甲基,氢……”否则他下课就训你,“怎么回事啊,连这个都不知道!!”就是费舍尔的时候一点都不忘,菲舍尔这个人合成了150多种糖,糖的合成特别难。。当年某个化学会会长醉酒后跟他说,我去德国那几年什么东西都没做出来…

这篇文章是关于DIPAX图像处理的一个框架,有关这个图像处理框架的更多信息请参考:http://www.fubo-tech.com/2-34.htm

一直想实现DIPAX的那个很酷的直方图的功能,不过前一阵子一直忙着考试,这件事也就搁置了。昨晚coding了一晚上,终于把DIPAX的直方图功能搞定:) 希望早日摆脱VC++的菜鸟状态~~

具体的代码稍后上传,代码95%基本都是黑魔方书中的内容,大家照抄就行了。下面说下几个需要注意的地方吧。

1、黑魔方书中少了一个函数!

万恶的陈兵旗少给了我们一个重要的函数定义

void CalHistPercent(long hist[256], float hist_radio[256], float &max_percent)

这个函数只在BaseList.h头文件中给出了声明,却没给我们具体的函数代码。所以,如果你不动脑子,就把黑魔方的书的内容抄上去的话,那么无论怎么编译,都是会在Linking这个过程中出错的。

BTW:顺便提一句,Link过程中出错的话,很有可能是因为你的函数未定义造成的。具体来说,就是你写的函数名字和BaseList.h头文件中声明的不吻合造成的。

不过仔细分析下后,我发现这个函数还不是很难。于是我自己写了一个山寨版的CalHistPercent函数。估计不是很严谨,不过能用就好~

2、XXX::OnPaint()

我看黑魔方的书时,弄不清楚OnPaint这个函数到底对应的是什么。其实答案很简单,OnPaint就是一个按钮,那个按钮叫Paint 囧...  所以你可以改为OnButton OnSex OnFUCK 随便你了 哈哈。

原谅我之前的无知,OnPaint 不是个按钮 。

3、印刷错误

黑魔方书中有几处印刷错误。比如short ret 给印成shortret,还有的是把注释印到了语句中间.....害的我第一次build时出了31处错误...真是很考验人的耐心啊..

不过好在顽强的我,终于把所有错误一一排除掉了。后面的代码是没有问题的。

4、画在哪里?

要新建一个静态文本框,ID和CWnd * pWnd = GetDlgItem(IDC_HIST_STATIC); 这里的ID对应就行了

我用的就是上面写的IDC_HIST_STATIC

5、能否一进入对话框就显示直方图呢?

可以,把显示语句放到对话框的初始化函数就行。

最后,我的直方图的类名叫做Czft 

所有相关代码:https://github.com/quake0day/undergraduate-CAU/tree/master/zft

 附:函数定义:

void CalHistPercent(long hist[256], float hist_radio[256], float &max_percent)


#include "StdAfx.h"
#include "BaseList.h"
#include <math.h>


float cc(float a,float b)
{
return a/b;
}

 

void CalHistPercent(long hist[256], float hist_radio[256], float &max_percent)
{
int i,j;
long max_per = hist[0];	//计算最大值,以扫描的第一点为初值
long all = 0;	//hist数组中所有的像素个数
float a=0;
for( i =0 ; i< 256; i++)
{
all = hist[i]+ all;	//循环计算hist数组中所有的像素个数
}
for( j= 0; j<256; j++)
{
if(all > 0)	//如果像素数目大于0
{
hist_radio[j] = cc(hist[j],(float)all) * (float)100;	//计算每个像素点对应所占的百分比,用另外数组保存
}
if (max_per < hist[j])
{
max_per = hist[j];	//计算最大值
}
}

if( all != 0)
{
a = cc(max_per,all);  //计算最大的百分比
}
else a = 0;
max_percent = a * (float)100;
}

嗯,其实我今天是第一次参加招聘会,在这里讨论这个未免有点班门弄斧的感觉,不过我觉得有些东西还是可以和大家分享下的。我先把我的一些感想写出来,有不同意见的欢迎指正。

首先,因为我只是大三,也没有找工作的意思,所以今天是空手去招聘会的,不过还是成功的引起了几家公司的注意,并且留下了联系方式。当然,下次如果我再去的话一定会准备份简历。

如何引起招聘会人的注意呢? 我认为,首先,你要分清楚前去招聘的人到底是公司专业的HR,还是雇佣的一帮菜鸟。如果你看那个展台只收简历,并没有和你详谈的意思,那么你也就别投简历了。 道理很简单,那家公司根本就没有重视这次招聘。你投过去又能有多大的用呢?如果你真的想去那家公司,你肯定能找到更好的方法,而不只是扔过去一份简历。

好了,假设现在你面对的是专业的HR了,那么又该怎么做呢? 其实找工作和做黑客是有相似之处的,首先,你要先摸清楚这家公司的底细,也就是他们希望要什么样子的人。这个一般可以通过浏览他们公司的介绍(一般就在展台旁边等处),以及询问公司HR来得知。如果你发现你的能力以及专长并不是他们所希望要的那类人,那么也就不要浪费时间再问了。比如,有的公司就是想招个老师,那么学历就很重要,而像我等undergraduate,就不要奢望能捡到这份工作了——这年头估计硕士都没戏,毕竟博士都大把大把的。

那么如何判断一个工作是不是能够抢到手呢? 首先,如果你觉得你有能力,那么不要去管招聘条件。比如今天我遇到的:计算机相关专业,硕士学历——这个职位一下就把测控专业,本科的我给刷下去了,但其实我还是成功的给他们留下了我的联系方式,而没有拒绝我,为什么?

诀窍就在于我成功的推断出来那家公司想要的人:

当时在我前面有个同学这样问:

“你们是不是只要计算机相关专业的人?我不是计算机相关专业的,但是我也学过JAVA,并且开发过相关系统。你们会不会要我?”(大意)。

HR回答到:

“你对JAVA了解有多少?我们上面的这些你都会么?”

同学答:

“我也不能说是太熟悉(注意这里!),就跟导师一起做过项目(注意这里,这人可能是传说中的牛逼研究生),做过相关的开发。我觉得你们公司不一定要招聘像你们写的那样是计算机相关专业的人,你们写的那些有些非相关专业的人也都会,你们也可以考虑的啊(在最后注意下这句话——这句话直接导致他这次套磁失败)”

HR毫不留情的(我的形容词)说到:

“对不起,其实我们公司用的语言并不是JAVA(千万记住这句话),我们的工程师已经开发好了一个游戏引擎,用的是另外的语言,我们之所以要招计算机的学生,是因为他们的学起新的语言来相对比较轻松,有基础,所以我们不招非本专业的人。”

OVER..

好了,作为黑客,那么当你获取到这些信息后会得出什么结论?这家公司不要非计算机专业的人?? 大错特错。

我的结论是:这家公司希望招聘到能够进去稍微培训下就能干活的人。 千百万的毕业生,都很牛逼,怎么招? 自然是要限定专业,而且他们公司需要做的是引擎的二次开发(从上段话中推断),那么他们自然害怕本科生没有那种技术,认为硕士生可能会比较牛逼些。

OK,分析完毕,那么下面就是我的表演时间了。

入侵的第一步——吸引对方注意。

要想一下子吸引对方注意,就要知道对方对什么会比较敏感,弱点在哪里。很可惜,大多数情况下你猜不出来。不过还好,你没必要一下子猜出来,你只需要知道一个范围就行了。

我先说:

“你好,我也并不是计算机专业的学生,我的专业是测控技术与仪器。但是我对你们公司的技术很了解,比如JAVA。(先亮出前提)。我还对脚本语言Python以及Lua比较感兴趣。(上面这句是关键)我参加过国家大学生创新计划,主要做XXX用过XXX,URP.....(这里主要是吹就行了)”

好了,为什么要说脚本语言?为什么要提Python Lua? 首先,我问的公司肯定是家游戏公司,而且他们还有套自己开发的引擎。而且还不是用Java开发的。 那么如果你但凡知道一丁点的关于游戏引擎的知识,你就应该了解到脚本语言是在其中起到至关重要的作用的。但具体是Python还是Lua,还是两者都有? 这个你是不可能知道的,不过你可以像我这样去套HR。

HR(眼睛一亮)说:

“哦,我听你说你对Python很感兴趣? 我们公司的引擎就是使用C++和Python开发的。 你听说过XXXXX嘛?”

我:

没听说过。

入侵第二步——控制谈话主题,有意引领敌方进入我方阵地

这里很重要,也很关键。首先,你不要害怕这种情况,就是:你提出一个“Python”后,对方会大肆利用相应名词来进攻你。为什么呢,因为经过我们的分析,这家公司并不是要聘一个会Python的,否则他们干脆就写找Python的大牛不就行了。他们写了Java,那么就是说他们并不会因为你不会Python而拒绝你。当然,在他提到XXXX的时候,如果你不想陷于苦战,那么就不要说会,除非你真的会 哈哈。

HR(继续):

“你带简历来了嘛? 你是什么专业的?”

我如实回答。并且再次提到我做的项目——使用名词轰炸(这里要保证你说的你都会,否则就不如不说)。提我做过的项目的目的是要转移话题,把话题从我不懂的Python转到我熟悉的领域上来,而给对方一种我什么都会的错觉。

入侵第三步——展示你的专业性,给对方沉痛打击

HR:我们公司找的就是.....希望你能够对我们的引擎进行.

我抢话到:“二次开发”

HR:"对,二次开发"

XXX

XXX

以下省略技术用语对话n句,写上来没什么用。

这里的抢话很有用,能够体现你的专业性,平时注意多多使用行业黑话及隐语(argot)。

HR:"我把我们公司的邮箱联系方式给你留下吧,你把你的手机和邮箱给我留下。我们会再通知你面试的时间。"

Got it!

好了,我目送那位可怜的研究生GG在听完我和HR的对话后灰溜溜的离去。我则忙着留联系方式。其实我们俩的水平也许真的差不多,也没准他很强,不过看他那么想投份简历(从其渴望的眼神中推测),却被拒掉,真的是很可惜。

因为他不懂得展示自己,不懂得语言的艺术,也没有做过对对方的分析。

盲目瞎碰,最后定是一无所获。

我们再回顾下他的话 

“我也不能说是太熟悉,就跟导师一起做过项目,做过相关的开发。我觉得你们公司不一定要招聘像你们写的那样是计算机相关专业的人,你们写的那些有些非相关专业的人也都会,你们也可以考虑的啊”

什么叫做也不能说是太熟悉??怎么算是熟悉? 对方根本没有定下来熟悉的标准,那么你干嘛自己给自己定标准。这个时候不是谦虚的时候。如果他比较强,那么他完全可以说他会什么——Struts,Hibernate,Spring,Swing,Eclipse,DW(当然后面这两个还是不说为好呵呵)。你说出来不就行了。 如果你不是很懂,那么你也可以介绍你用Java实现过什么功能。 “相关的开发”,这简直是太模糊了,HR根本不能判断你到底懂不懂。

还有最后那句话,那是能和HR说的吗?! 这句话说的太愣了,给原本友好的谈话添加了不必要的火药味。 所以这个同学结果可想而知。

总结:

说了这么多技巧,however,自己还是一定要有些真本事才能被最终录取,技巧很重要,但他只能让你引起HR的重视和注意,能不能最终录取,还是拼实力。

在校期间,多对自己想要从事的职位加以了解。 有很多较新的相关知识学校是不教的,比如Python,但是其实一点都不难。你是否知道这些新的东西往往决定了你能否脱颖而出。

在校期间注意积累自己所做的东西。哪怕是作业。一定要知道,HR不一定很牛,HR不会所有的东西都了解,所以你所做的东西在你看来很简单,而他们没准却会觉得你很强。

提升自己的硬性指标。那些较新的相关知识和乱七八糟的一对术语也许能让你获得一份工作,但是要想进入公司后依然牛逼,那么得有想应的实力——比如专业知识,数学技能,编程技能,英语水平,文学修养——这些不是一朝一夕能完成的,是真需要下苦功夫练的。

 

希望这篇拙文能对大家有所帮助。

我什么时候能够写成这样哎....

  1. "Education will be truly effective only when it is specifically designed to meet the individual needs and interests of each student." 教育只有被专门设计来满足每一个学生个人需求和兴趣的时候才是真正有效率的。 少数和多数 Three hundred years ago, an English poet, Alexander Pope, wrote the lines: Nature, and Nature’s laws Lay hid in sight; God said, let Newton be! And All was light. This momentous epitaph came as an encouraging torch to mankind who had wandered in the valley of ignorance. It came as an exciting aurora leading to the “Age of Reason”. Three hundred years later, however, some essential reasons are now still blowing in the wind, rather than taking root in all men’s hearts. Among them is the crucial idea-the individual needs and interests of students in the process of education. Genuine education, demonstrated by Descartes, Newton and Maxwell in the way of their own times, should be live to this Montaignesque motto:” We are born to seek and quest after truth.” That is to say, the individual desire and interest is the part-and-parcel in the process of inculcation. There is no normative way to instill knowledge, because each student starts from different background, possesses different aptitude, and bounds to different destination. However, we have to face the tragic fact that mankind, to some extent, are losing their vigor, little by little, before the formulated education. One need no further to look at the so called” obedient education”, which pervades in the Asian countries such as China and Japan, imparting the absolute authority of teacher while relegating students to passive recipients. It is indisputable that this asymmetrical teacher-student relationship will loom to profane the quintessence of education by rendering it to information cramming. Without interest, students were forced to swallow innumerable facts, confess their validity and forget them after exams. Without interest, learners were bereft of the freedom to imagine, the ability to ask questions and the chances to modify the old theories. Without interest, how could our civilization, the Age of Reason, make progress? Nonetheless, it is impossible to meet all the needs and interests of each student but relatively actualize a significant proportion. Education, like other mundane objects, is subject to the limited resources in the form of funding, locality, the competence of both the faculty and the learner, the development of culture and event religious belief and ideology. Moreover, supposing if a student has no interest in the field of moral study, should he school abolish all the morality courses? Or if the student is obsessed just with technical learning, should the school revolves around only the job-oriented courses while ignores the liberal arts which teachers the basic life skills such as critical thinking, comprehensive analysis and selective absorption. Therefore, over-emphasizing on individual interests will forfeit the original purpose of education. Francis Bacon once put it:” Histories make men wise, poems witty, the mathematics subtle, natural philosophy deep, moral grave, logic and rhetoric able to contend.” This lends strong credence to justify the rights for school to require students to dabble the kaleidoscopic inquires by virtue of espousing to designed curriculum rather than arbitrarily decide what they would like to exclusively delve into merely on the basis of their visceral impulses. Otherwise, education is by no means to make a full man but a crippled mind. Given the paramount role education plays on individual as well as society, good teaching accompanied with synergies of parents and community, will undoubtedly bring significant implications of students’ adult life and function them decently in society. To name a few, the process of identifying gifted children, the animated class abounded in free discussion, offering a excess of optional curriculum and extra-curriculum including fraternity, sorority, sports, volunteers in social activities, all these conduce to satisfy the coveted appetites and individualism of students. In sum, striking a balance between constraint conditions and personal interests, education will stretch out the antennae of human creation to explore a sage world. At that time, mankind will be conveying new meanings of Shakespeare’s lines:” beauty of the world, paragon of animals!”