• Posted: October 30, 2009 | Version: 0.1 almost

    自从上次看了那篇论文:《Enhancing Security of Linux-based Android Devices》后,就觉得修改Android内核是一件非常具有科研价值的事情,所以深入学习Linux内核也是一件势在必行的事情了。于是,昨天晚上花了一个多小时在豆瓣上好好淘了一下关于Linux的书。

    缘分就在不经意之间让我和这本书相遇了:《独辟蹊径品内核:Linux内核源代码导读》,看了它的序言后,我当即就决定要买这本书了。虽然它的封面上用的是让我bs的“编著”两个字,但是能写出这种让我惺惺相惜的序言的作者编著的书又岂会是没有逻辑性的呢?!

    下面蓝色的文字都是节选自这本书的序言,完整的序言请点击:

    http://www.amazon.cn/mn/detailApp?prodid=bkbk975359

    偶尔会有一些同学问我如何更好地学习计算机,知道名字的有翔哥和卓越,还有一些不知道名字的学弟学妹,我想这本书的序言会给你们很大帮助的!下面我从整个看书的生命周期(Life Cycle)来提炼下这篇序言,哈哈,生命周期都来了,真够玄乎的……


    首先,来思考一下何时要看(技术)书的?

    这里的书仅指技术书的,因为人文类的书太复杂,不属于这里讨论的范畴。看某个领域的技术书,多半是因为你想要学习该领域的计算机知识的,进而解决自己遇到的该领域的某些问题的(包括要开发出一些应用)。

    任何书籍资料都是用来解答读者心中的疑问的,因此在你阅读一本书时,首先要明确自己的疑问是什么?这可以是一个非常梗概的问题,例如:“Linux 内核是什么?”;也可以是一个非常细节的问题,例如:“按下键盘上的A,到屏幕上显示出字符A 的内部原理”。

    那么,能解决问题的途径很多(比如maillists),那为什么要选择看书呢?

    我想,一本好的技术书都是有一个明确的主题的,而作者写书的目的就是系统地讲述与这个主题相关的知识,而在技术论坛上往往只能学到一些片段性的知识,无法使读者得到系统性的认识。

    其次,一本入门级的技术书都是循序渐进的,各章节之间有一定的逻辑连贯性,而且会把一些繁琐的事情就帮读者解决好(不至于读者还未开始学习汇编,就已经被搭建开发环境给打败了)。因此,当要踏入一个新的技术领域时,看书是个不错的选择。

    再次,读一本好书就是在与一位优秀的作者进行思维层面的深入交流,他把他的视野向你摊开(很多时候你会因为读到一本书而一下子知道了某样东西的存在,于是,视野一下子就扩大了),你用自己的思考来回应他的文字。这个过程,就是一个深度的交互过程。

    好了,选择好书了,那么就开始看书吧!计算机范围好广,而每个领域都不是孤立的,很有可能看这个领域的某本书时你需要用到其它领域的知识。那么,是否需要等到“万事俱备”时才开始看这本书的呢?

    笔者从学完C/C++ 语言开始,由于C/C++ 的示例程序都是在命令行下的,于是常常想如何才能编写出视窗程序,学习了MFC,但是同样想不通诸如WM_CHARWM_LBUTTONDOWN 的消息从何而来,带着MFC 中诸多疑问,笔者开始学习Windows SDK 程序开发,在这个学习过程中感觉对MFC 的认识更加深入了,但同时又有新的问题想不通,于是进而学习Windows DDK,之后开始学习操作系统内核。在这个过程中,笔者也遇到过数不尽的疑问,但是都是需要的时候再补充相关知识。因此初学者要明白,学习并不需要等到“万事俱备”了才可以开始。需要的是保持好奇心,养成思考的习惯,树立解决问题的决心。

    既然你不是“万事具备”地来看这本书的,那肯定会遇到很多问题的,又该如何实践地解决这些问题呢?首先,问题应该包括两个方面的:

    1.内心的源问题,也就是你在不看书的时候就能想到的问题,把自己当作这个领域的外行时会问出的问题。比如你要做个Socket通信的软件,那么一般人都会想到要通信的两台机器至少是要“连通”的吧?这往往就会影响到程序中服务端和客户端IP地址的设定。但是,一味陷入书中的人,往往就只知道服务端要accept()receive(),客户端要send()了。所以,有本书的名字:《像外行一样思考,像专家一样实践——科研成功之道》说的就是这个问题。

    2.交互过程中的问题,也就是你在看书过程中对书中某些问题的质疑,或者是因为前期准备知识不够而引发的问题(因为不是在“万事俱备”的情况去读这本书的嘛!)。这时候,就考验读者搜寻相关资料的能力了,可以去借相关方面的书来弥补自己的短板。

    在自己掌握的知识体系上提出问题,以自我为中心,任何书籍资料都是用来解答读者心中的疑问的。当你有了来自内心深处经过独立思考的疑问后,阅读对你来说是一种享受,一种乐趣。来自内心的疑问,经过不断的综合分析,缜密的推理,坚持不懈的查阅和求索,之后拨开迷雾见天日喜悦只有经过才能体会。读书的时候,一定要以自己心中的疑问作为主线,而不要没有任何疑问就死记书本上的知识。

    作者还给了一个很具体的如何实践的例子:

    在笔者学习内核之初,看到大量的传言,读完《Understanding the linux Kernel》,读完《Linux 内核情景分析》... 就可以成为“高手”了。于是笔者常常捧着厚厚的书,寻思着自己什么时候可以读完,然而有时好几天也前进不了几页,免不了感慨自己今生将与“高手”无缘,但是又心有不甘,于是囫囵吞枣的“快速”前进,但是越前进,就越感觉到艰难。“欲速则不达”这个道理人人都懂,但是在切身体会之前,人人都会犯这个错误。在经历了很长一段曲折和郁闷之后,笔者摆脱了“书”的束缚,完全以自己的疑问为中心,例如在读到中断处理时,由于知识不够全面,于是丢开内核的书籍,阅读了大量的计算机体系结构方面的资料,同样计算机体系结构的书籍也很厚,但是我也没有想过要把它们读完,这时只捡中断相关的读,之后再来读内核的书籍,发现自己原理懂了,但是具体到理解代码时,就迷糊了,于是又补充GCC 内嵌汇编,C 代码编译到汇编代码的相关知识,反复试验等等。这个过程很慢,但是积累到最后,笔者发现自己读的非常快,甚至可以不读了,因为很多地方,只要读到前面的,就领悟了作者后面想要说什么了。

    最后,你会感慨原来传说中的任何“秘籍”都是“浪得虚名”,因为读完它,你不一定能成为“高手”,而“高手”却不需要读完它。能否成为“高手”的决定性因素取决于你的学习方法和学习态度,而好的“秘籍”仅仅只是催化剂。

    最近,希望能达到放下书静静地想一想时,我能确认自己真的对这个领域的认识有所长进和深入了!(当然,在整个过程中,你的好多能力都被不知不觉锻炼到了)共勉之~~

  • Posted: October 28, 2009 | Version: 0.1 almost

    android平台上写TCP /UDPSocket测试程序时,因为不知道把端口重定向到emulator上的端口上,而吃了很多困-_-!于是,今天下午了解一下adb这个工具,发现adb的整个架构很有意思,记录一下:

    adb:全称为Android Debug Bridge,它是一个多用途的工具,可以让你管理模拟器实例或者android设备的状态。简而言之,它是一个调试工具!

    adb是一个客户端—服务器程序,它包括三个组件:

    1.client

    which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.(不过自己捣鼓了一会,也没发现如何在Eclipse中使用adb的借口-_-!明天看一下DDMS再说……)

    感性的认识,也就是右边这张图片:

    2. server

    which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.

    这里值得一提的是,这里的clientserver应该都只是线程的,而不是像我之前所理解的是两个进程。因为在Process Explorer中,我只找到了一个adb进程。在打开模拟器之前,该进程共有两个线程;而打开了模拟器之后,一共有四个线程,见下面两张图。再次把Eclipse关闭,发现这个adb进程还在:线程为两个,说明这两个应该就是服务器端。

        

    3.daemon(守护进程):

    which runs as a background process on each emulator or device instance.

    clientserver的连接(当开启adb命令行时):

    客户端检查下服务进程是否存在?如果不存在的话,就启动服务进程。然后服务进程绑定到5037端口开始监听客户端的请求。

    serverdaemon的连接:

    server通过扫描55555585的奇数端口来定位模拟器实例,一旦在这些端口中找到模拟器中的daemon,就和这个端口建立连接。

    server工作的单一性:

    虽然server在两端能连接多个client和模拟器,但是一次只能把commands传送给一个模拟器。也就是说,你要操作另外一个模拟器了,你必须用下面的命令来切换(Directing Commands to a Specific Emulator/Device Instance):

    adb -s <serialNumber> <command>

    结语:

    因为觉得adb整个架构还蛮好玩的(从来没写过这种架构的完整程序,以后可以看下adb的源码,应该是开源的吧!),所以就写下了这篇文章,不知道是不是做了一件无聊的事(o)

  • 接上篇:Android学习历程(6):Android与嵌入式的那些事(上)

    的确如此,比如:中国移动定制的OPhone华为为联通定制的手机……

    Google抱着什么样的目的来建立这个开放手机联盟(OHA?我不清楚也不想去研究,但是《ARM嵌入式系统开发:软件设计与优化》里的一句话倒是给我很大的感触:

    ARM公司的的成功建立在一个简单而又强大的原始设计纸上,……

    所以,Google要做的只是把Android这个原始系统做的够简单够纯粹,把握住主流方向即可,并且提供SDK给应用开发者去做出各种各样的应用来,同时提供一些修改内核的工具给运营商方便他们来定制自己的系统。(不过我还真不知道Google为方便修改内核提供了什么工具的,有哪位高人清楚的?)


    查阅的时候,还想到这样一个问题:AndroidARM有什么关系?

    Android是个手机操作系统,而ARM是个处理器,且在移动电话上应用广泛。两者的最大联系之处是,Android设计之初是按照基于ARM架构思想来做的(论文中:Android provides a complete operating system based on the ARM-Architecture.),所以我猜想很多市面上的手机的芯片应该就是ARM处理器的。

    所以,我得出一个结论:要会Android平台上的应用开发需要会Java,而要会修改Android内核、定制成自己的系统则需要会基于ARM的嵌入式开发(同时也要清楚linux系统的)。

    今天在China Android Dev 论坛上看到的这样一个帖子说的也是这个意思:

    主题:最近听说有一款专门为android研发的开发板,双核外加一个DSP ,才1500。很想整一个。

    网友1这个... 有什么用呢?  现在都拿手机开发啊!以前没手机倒是买了个开发板玩...

    网友2做上层应用作用却是不是很大,如果搞底层研发,作用还是很大的


    这就是我对“Android与嵌入式”的浅薄的认识,肯定会有问题,望指正,谢谢!

  • Posted: October 25, 2009 | Version: 0.1 almost

    昨天晚上看了很久之前就下的一篇论文:《Enhancing Security of Linux-based Android Devices》,可在这里下到:http://www.dai-labor.de/index.php?id=1691&pubID=391 我会在下一篇文章中简单剖析下这篇论文,主要是给自己看的。

    当时就感到这篇论文写得太好了(真是可恨为什么没有早点看呢-_-!),兴奋地在校内上发了个状态,然后到1点大概看完(不能上网查句子的意思,真是痛苦),收工——>睡觉。

    其中提到了两点增强Android安全性能的手段:

    1. Enhancing Security for Android-based Devices with Common Linux Tools
    2. Enhancing Security with a Self-built Intrusion Detection System

    这两种手段势必都要修改Android内核,那么从开始修改内核到再次放入手机中运行需要一个怎么样的过程呢?这其实就是嵌入式开发的入门问题了。

    可惜我是个嵌入式开发的门外汉,基本上只要涉及硬件编程都是不懂得,所以今天折腾了好一会总算是理出点眉目来了。

    首先来看一下百度百科上开发板的介绍:(它讲的很好,这里被我节选了)

    开发板(demoboard)是用来进行嵌入式系统开发的电路板,……,开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。

    在一般的嵌入式系统开发过程中,硬件一般被分成两个平台,一个是开发平台(host),一个是目标平台(target)即开发板。

    从开发板的英文中包含的demo这个单词,就很容易理解它只是被开发者用来测试的,最终一般并不会把集成好各种功能的开发板卖给用户。

    这样,从开始修改内核到再次放入手机中运行的整个过程是:

    在开发平台(host),即自己的PC上搭建修改内核的环境;(即论文中的第四部分:Creating a Build Environment for Android

    根据自己的需求(比如提高安全性能)修改内核,编译链接好,可能会在模拟器中进行测试;

    把内核传到兼容Android(貌似只要是兼容ARM的就可以了)的开发板上,实际测试看看是否有什么显在的bug

    测试过后,觉得没什么问题了,可以拿到专门的厂商去定量生产成手机等。


    既然这样的话,如果每个运营商都去定制基于Android的系统,那么市场上岂不是会出现很多类Android的操作系统啊?

    接下篇:Android学习历程(6):Android与嵌入式的那些事(下)

  • Posted: October 23, 2009 | Version: 0.1 almost

    大三了,顿感到压力很大了,所以尽量不参加一些所谓的会议和讲座了,好让繁杂的事情更少一些。

    所以这学期开学至今,也就参加过计算机学院科协的全会,然后就是今天晚上被强制要求到大活去看的“我的青春故事”报告会。

    今天晚上的报告会有五个主角,除了南师大的那个去四川灾区自愿服务一年的学长,我是发自内心的佩服外,其余四个我没有任何的敬佩之情。除了一些随众的鼓掌以表达礼貌外,我实在感受不到我的心被他们所颤动了。很抱歉,我也很想要敬佩,但是我的心实在不愿意:

    因为,明明讲的是去西部做自愿者,我却从照片上看到的是那是去旅游的……

    所以,我在想一个问题:你所看到的风光总是那么美好和真实吗?

    两年多的科协经历至少给了我一个否定的答案,很多时候,我会听到一些学长说:“对于大一新生,只要多跟他们吹吹,多忽悠忽悠他们,自然也就信了!”所以,很多时候,讲台上的学长讲的那么天花乱坠,让大一的新生崇拜的无以伦比,但是真的有那么牛吗?其实我们自己心里都知道,嘿嘿!

    所以,今年的科协全会(应该也是我参加的最后一次了),我提到的最重要的一点就是大一新生要学会明辨是非、独立思考的能力,不要总是那么容易被忽悠呢!

    caoz说的好啊:

    所以最好的SEO不是天天写文章给人讲SEO的人,最好的营销大师可能您连名字都没听说过,比如说,谁是操盘黄金酒的人?您以为真是史玉柱吗?百度小视频的创意是谁的,您真以为是梁冬?最好的产品大师,最好的技术达人,媒体圈是从来照不到的,人家不需要包装了,不需要炒作了,人家安安静静的躲在角落里享受成就就是了。当然还有一些必须在媒体圈曝光的创业英雄,但是,媒体圈所照到的,不外是鸡毛蒜皮的花边而已,或者是市场所需要的角色而已,而真正的人家的成就和故事,反而无从提起。

    仅以这段话来提醒自己,不要太羡慕外在的风光(偶尔羡慕一下还可以考虑原谅一下下,嘿嘿!),要真正做到以实力说话。

    也与其他人共勉,台上的别人看起来或许是很风光,但是真的有那么美好和真实吗?可千万别被忽悠了啊,自己的敬佩之情也不是这样随便给别人的。不必羡慕他人的才能,无须悲叹自己的平庸,做好自己就够了,时间会证明一切的!

    再次表达对百度前任产品总裁俞军的敬佩,能得到最刁钻的中国网民的普遍赞语,也是不容易的!

  • Posted: October 23, 2009 | Version: 0.1 mostly

    趁着Ubuntu在升级的间隙,心血来潮翻译了这个网页(仅选了三个方向来翻),方便以后再看的时候轻松些。

    原文链接:http://www.cityu.edu.hk/cityu/dpt-acad/cse-cs.htm


    计算机多媒体与图像

    在模式识别、图像分析和计算机图形学的理论和算法研究上,我们部门已经形成了骄人的业绩。这些领域的工程包括:

    对称轴检测复杂图像的模式;语音与文字识别;基于形变模型和马尔可夫随机场正规化的图像分割技术;基于内容的自动图像/视频索引和检测。

    在计算机图形学部分,我们已经开发出的图形建模技术可用于面部和手势动画,还可以用电脑来合成书法。

    几个多媒体项目也正在开展,主要是关于多媒体文档管理、服装和纺织业的工作流系统和交互多媒体学习。

    联系:Prof IP, Horace H S


    移动和实时计算

    移动通信的进展和移动计算设备的扩散已经开创了移动应用的新时代。我们可以预见,无论用户身处何处,都会希望能够产生请求和交易来获取不同的信息,例如:股票信息,天气预报,交通信息和其他新闻。人们可以通过使用便携电脑、可穿戴式计算机和个人信息助理(PDA)来连接无线网络或者无线蜂窝网络。此外,随着无线网络可用带宽的迅速增加,支持多媒体应用不久将是寻常的事情。

    许多移动计算应用有着实时性的本质:实时数据项的值是高度动态的,并且交易总是与时间限制有着不同程度的关联。为了以一种有效且高效的方式支持新型移动实时数据应用,两个不同领域的尖端技术:移动计算和实时数据库系统,不得不被探索和集成。移动实时计算研究部的目标是调查和开发用于未来的移动实时数据库系统的新技术,重点关注技术的理论和实践方面。这个领域存在的研究项目是:

    • 高效的数据传播算法
    • 保持移动计算系统的缓存数据的一致性
    • 并发控制的实时移动系统
    • 移动计算系统的实时数据管理
    • 移动计算环境下的实时事务处理
    • 在移动环境中对多媒体应用的有效支持

    同时,一些应用原型正在开发中,来说明刚刚开发出来的用于移动和实时计算应用的新技术实际存在的问题。它们包括实时交通信息和导航系统(RETINA),智能公车路线信息系统(Ibris),和安全移动证券检测和分析系统。在开发原型的过程中,我们还采取了一个无线应用协议作为借口。

    联系:Dr LAM, Kam Yiu


    信息安全

    随着跨越整个世界的计算资源不断联网,信息和处理这两方面暴露在了潜在攻击之下。信息安全是一种对于电子商务有利的技术。事实上,如果安全要求可以得到满足,许多种远程交易是唯一可行的。在计算机科学系,我们的看法是,不仅仅沟通需要安全,网络和服务器同样需要被保护,使得在允许合法访问的同时,免受恶意侵入。系统的方法同样需要被应用于评估组织的安全风险。

    加密技术已被应用到实现数据的保密性和完整性。另外,它还被应用到许多通过开放的网络,例如互联网,实现的有趣的系统上,这些系统有着性能考虑和需求导向的性质。例子包括支付系统、电子现金、投票系统和拍卖系统。在信息时代,安全和加密的协议有着重要的应用。

    一些当前研究的工作包括:

    • 面向用户的密码系统
    • 可拒绝的认证协议
    • 网页保护方案
    • 面向对象的风险数据仓库
    • 水印方案

    联系:Mr LEE, Chan Hee


    学术名词好多,翻译得好慢-_-!

  • Posted: October 18, 2009 | Version: 0.1 almost

    貌似最近李开复要到南大演讲,有几个同学问我:一起去看吗?

    我说,早已对开复不感冒啦!

    然而,最近发现对蔡康永感冒了(很早知道他,这两天不知道什么缘故又好好看了一下他的视频),话说我很少看娱乐搞笑节目的!

    对这两个视频稍微摘录了一两句话:

    http://v.youku.com/v_show/id_XODkzODA4MTY=.html

    放轻松地看待人生,人生没有沉重到你要把全部的比重都放到有意义的事情上,《康熙》常常做无意义的访谈,那就是一整集下来我们完全不知道我们在聊什么东西,然后就结束了!

    http://you.video.sina.com.cn/b/17576443-1252723954.html

    http://you.video.sina.com.cn/b/17584526-1252723954.html

    鲁豫说:“我觉得你活的是挺真实,挺透明的!”

    人生就是你接触到的人,每个给你一点点的影响,这样堆积起来的。

    高中以前我爸管我很严,发现大学里改变了很多,叛逆了很多,估计就是因为他以前管我太严了,老是要教导我好好学习!(目前主要仅仅是思想,行为上还是没做啥出格的事,所以估计也只有我自己能看出我自己思想的改变了,嘿嘿)

    很显然的一点,对李开复的不感冒就能映射我思想上一个很大的改变~~但是我倒很庆幸自己这个改变。

    我对蔡康永的感受:很的文化人,发现他看出现实的能力很强,很有感触!

    我对自己的感受:理想主义有点小严重(估计是天性),但是觉得蛮好,何必那么现实呢。

  • 接上文:用纸和笔助你一心一意做事(上)

    1)        每个时段开始前,先大概想一下这个时段要做什么事情,然后记录开始时间和大概目的:

    16:36——                 上一下VeryCD,下电影

    2)        做好这件事后,记录下结束时间,补充一下具体做了什么:

    16:36——16:48         上一下VeryCD,下电影
                               //
    下了《永不妥协》、《人工智能》

    这样做的妙处有三:

    先给自己的大脑一个信号,下个时段大概要做什么了,这样就不容易在这个时段又转去做别的事了(除非有特殊情况),可以减少其他诱惑(比如突然想上上网啦)。我是坚信一心很难两用的人,同时,专注在这个时代实在是太重要了。

    其次,也相当于像山田本一一样给自己设立了一个小目标,然后可以充满激情地去完成它,也在不知不觉中有些小小的成就感,不容易感到疲惫。

    最后,每当审查前几个时段做了什么事情的时候,如果前面所做的事让自己觉得太“堕落”了,下一个时段设定大体目标的时候也就会自觉地珍惜时间了,起到一个“总结==》督促”的作用。

    我很受益于这种方法,不知道能不能给你带来帮助。最后附图一张,也好对应题目,确实是用纸和笔的,有图有真相!
    有图有真相

    [1] 因为从没有人教我这么做过和它的好处,所以我就自认为是自创的了。但是因为这种方法实在是过于普通,所以肯定有好多人也这样自创过的,所以我这个自创加个引号:

    [2] 我在实践「每时段记录法」的时候,对于上厕所、吃饭、上课之类的事情暂时觉得没必要记录,只记录个人自由完成的一些事情。

  • Posted: October 10, 2009 | Version: 0.1 almost

    我是一个比较珍惜时间的人,不太愿意把宝贵的时间花到自己觉得无聊的事情上,但是也不会像Richard Stallman那样疯狂(觉得那样就错过了生活中的小情调了):

    Stallman非常珍惜时间,在任何空闲的时间段都会拿出笔记本电脑来工作,在吃饭的时候、在排队的时候、在坐车的时候,只要有时间都会拿出笔记本来开始工作。

    从今年暑假开始,我受《把时间当作朋友》中提到的柳比歇夫故事的启发,开始用“自创”[1]的「每时段记录法」(姑且给这种方法起个名字吧,方便下文叙述)帮助我更好地把握时间,专注工作!尝试了几个月后,觉得这种方法很不错,分享出来和大家共勉:

    柳比歇夫的日志记录法大概样子如下:

    乌里扬诺夫斯克。一九***年四月八日。
    分类昆虫学:鉴定袋蛾,结束——二小时二十分。
    开始写关于袋蛾的报告——一小时五分。
    附加工作:给达维陀娃和布里亚赫尔写信,六页——三小时二十分。
    路途往返——三十分。

    也就是说,这种日志记录的一般格式如下:

    做了什么事——花了多少时间

    而我的「每时段记录法」一般样子是这样的(完全真实取样):

    September 19, 2009
    12:48
    ——13:29         找柴静的photos
    13:56
    ——14:20         看一下TopLanguage
    14:30
    ——15:40         How to study C & ASM
    16:26
    ——16:50         寻找柴静的清晰视频
    19:30
    ——20:05         新博客文章
    21:01
    ——22:01         CISRG
    22:03
    ——23:02         搭建Android环境,发邮件

    看见了吧,非常简单呢,但是越是简单的东西越是威力无穷(如果你能很好地使用的话)。想必,学软件开发的同学应该知道KISS原则吧,其实就是一个道理。

    但是,我这种方法实施起来还是有个小秘方的,否则它的威力就大打折扣了哦,呵呵!

    不知道有没有听说过一个日本马拉松运动员把大的目标分成很多个小目标而获得冠军的故事,他的名字叫做山田本一,是1984年东京国际马拉松邀请赛发生的真实故事:

    每次比赛之前,我都要乘车把比赛的线路仔细地看一遍,并把沿途比较醒目的标志画下来,比如第一个标志是银行;第二个标志是一棵大树;第三个标志是一座红房子……这样一直画到赛程的终点。比赛开始后,我就以百米的速度奋力地向第一个目标冲去,等到达第一个目标后,我又以同样的速度向第二个目标冲去。40多公里的赛程,就被我分解成这么几个小目标轻松地跑完了。起初,我并不懂这样的道理,我把我的目标定在40多公里外终点线上的那面旗帜上,结果我跑到十几公里时就疲惫不堪了,我被前面那段遥远的路程给吓倒了。

    我变向地借鉴了他这种方法,本质在于讲究专注做事:一个时段一心一意只做一件事!具体来说,我是这么实践的(举一个明显的例子):

    接下文:用纸和笔助你一心一意做事(下)

  • 发现一贴代码,BlogBus就提示我文章超长,就放到SlideShare上了!大家凑合着看看吧!可以选择下载下来看的。