学术会议高手速成 之 七种武器

/榕二

学术江湖,虽无刀光剑影,却有血雨腥风。博士路上,漫漫修远,切磋技艺印证武功街头火拼胡同拍砖,大小战役,不可计数。一年数度之大型学术会议,更是群雄争锋之处华山论剑之时。回首五年江湖,西窗残阳似血,不胜唏嘘。暗观镜中博士帽上缨穗,犹感血迹斑斓,森然欲滴。遂决意退隐江湖葬剑青山,立志面朝大海春暖花开,再不过问学术界的是非恩怨。此五年心智武功,尽录于此,拳拳之心,皆为君故,诸位好生研习修炼,笑傲江湖之日,长歌烈酒,勿忘相邀。

第一种武器 长生剑

如果你想要一种最安全的武器闯荡江湖,你需要的是一把剑。连文人公子诗人赶时髦都要佩一柄长剑,如果遇到土匪,可以立刻弃剑大喊“这是装饰品!”然后举手投降。如果你佩的是金丝大环刀或者追命狼牙棒就很难方便地找这么合理的理由了。

如果你初入江湖,不识深浅,经验欠缺,你需要的是一把长生剑。

那些觉得刚刚继承了教授一个甲子功力首次下山的少年,通常眼比过顶心似天高,心骄气傲,不知道天外有天人外有人。常常一言不合立马掏家伙亮剑,不是长生剑是狼牙棒,不管对方多大的来头。如果运气好碰见张三丰金轮法王这样心地善良或者急于收徒的最多只是吃点儿苦头,如果不巧一狼牙棒捅过去发现是梅超风灭绝师太这样的厉害角色,我们就很难在下次学术会议上见到这位本来很有前途的少侠了。

比如说这位心高气盛的华山派早慧少年令狐冲在会议上发现梅超风教授的一个错误,满心欢喜觉得在群雄面前一战成名的机会到了。一个信心满满毫无守势的问题得意洋洋地提出去,老奸巨猾的梅教授通常会这么不紧不慢地回答:“你提的这个问题在《九阴真经》第三章第五节第二个自然段写得清清楚楚,小同学自己下去读不要耽误大人提问的时间。”然后在令狐冲满脸通红尴尬地站在那里不知道说什么好的时候自己叨咕:“《九阴真经》都没读过就来开会,也不知道是谁的学生,怎么教的……”这时候整个屋子的人都会去看令狐冲的胸牌,上面写着:“导师:岳不群,华山派”。有人还会不知为什么地“哦”几声。君子剑岳不群教授如果这时候在场紫霞神功也护不住羞红的老脸,估计当场就双手抱头夺门而出了。华山派百年一遇的学术神童令狐冲从此被关在华山顶上一个测绘所里面壁思过七年不许参加任何学术会议,自此泯然如众人矣。

长生剑,关键词在“长生”二字。对所有的新人,学术界对你们来说还是一个生存游戏,你们扬名立万的机会在后面,你必须足够长生才能等到那一天。剑之轻盈,对生存者尤为重要,试探出招点到为止,切忌招数用老无暇自保。一些基本的起手式包括:“我对这个领域不太了解,但是我很好奇……”,“也许前辈已经提到了但是我没听懂,这个……”,“或许这是个很笨的问题,但是我真的很想知道……”

古龙说无论多锋利的剑,也比不上那动人的一笑。真正的第一种武器不是长生剑,而是微笑。所以有时候,应该收起剑来笑一笑。对于学术界新人,微笑更是必不可少的,无论攻守,都可以至少让对方不会一上来就痛下死手。一些学术界美女对微笑比较有天赋的,一笑可倾人城,扬眉抿嘴一笑全场寂然无声,然后只闻掌声如潮不见有人发问,更是深谙此间道理。

当你仍是江湖上一个无名小卒,在一个国际大型学术会议上做报告,看着台下黑压压的业界大牛虎视眈眈爪利牙尖,你如果一点儿都不怕这不是沉着是迟钝。但如果有少侠身怀绝技临阵怯场面红耳赤心跳肝颤冷汗横流影响发挥,这就不好了。这个时候,你需要一张熟悉的微笑着的脸。刚一上台是最紧张的时候,此刻看一看台下你好朋友的脸,你们彼此微笑一下,可以让你快速镇定稳稳握住自己手中的剑。如果没有好朋友在,就尽量提前到场,和在场的不管是谁聊聊天认识一下。而且这种早到的人里很容易碰见高手,是section chair会议主持主席什么的就更好了。上台后不管多紧张,深吸一口气沉入丹田,温柔地看着他们,然后微微一笑。

好的开始是成功的一半,而报告最开始你张口讲头两句话的时候往往也是最紧张的时候。所以如果你还是新手,报告的前两页你要做到倒背如流。一个镇定的开场,甚至对一个镇定开场的有信心的预期,都会给你一个好的开始。而好的开始,在做报告的时候,意义往往远远大于成功的一半,因为报告后期大多数听众都已经开始走神了。这些走神的听众有的是对您的报告实在不感兴趣,有的是对您的报告前期过于感兴趣仍然在反复久久回味冥思苦想,有的是正在精心准备当众问你一个惊艳全场的问题在斟酌词句,有的也可能就是头天晚上在高级旅馆没睡踏实……无论如何,当你清一清嗓子缓步走向讲台,不去猜你的报告是否会有一个好的结局,但一定要有一个好的开头。

开头之后,接下来,我来帮少侠您调整心态。不要总把当众做报告想成一个让你头痛的事情,当众讲话这项基本功练好了以后用处很多。不妨把这想象成一场演出,而你是一个演员,就像Steve Jobs在MacWorld展会,你要在万众瞩目的情况下一显身手成就一段佳话,如果意外失手就身败名裂遗臭万年……少侠您是本来不紧张的么……不要担心,在当众讲话这种场合紧张,you are not alone,因为根据西域著名报告人Jerry Seinfeld调查显示,人的恐惧排行第一位就是当众讲话,第二位才是死亡。这意味着对大多数人来说,如果你去参加一场葬礼,你会更愿意在棺材里躺着而不是在话筒前发表悼词。

如何在学术会议高高的讲台上面对一屋子黑压压的听众保持你高昂的情绪和自信呢?首先,知己知彼,百战不殆。你需要了解你的听众,如果你真的了解他们,你就会发现你其实不必紧张。以下数据再次参考了西域著名报告人Jerry Seinfeld调查报告,在任何一个学术会议的报告厅内:

1. 20-30%的听众喜欢任何报告,你做成什么样他们都喜欢。所以你不需要为这部分听众紧张,因为你的表现不取决于他们的反应。
2. 20-30%的听众痛恨任何报告。所以你不需要为这部分听众紧张,理由同上。
3. 25-50%的听众本来就不是来听你的报告的,是听你之前或者之后那位报告人的。
4. 5%的听众就是在等着听Q&A答疑部分的,你的报告做成怎样他们不在乎。
5. 5%的听众是被老板逼着来的。
6. 5%的听众在那儿坐着是因为这间屋子的无线网络信号比较好。
7. 2%的听众在那儿坐着是因为他们的笔记本和手机需要充电,他们在这屋的墙壁上终于找到了电源插头。
8. 5%的听众在那儿坐着是因为想听下一场,却懒懒不想到处走。
9. 5%的听众在那儿坐着是因为这一场有一位报告人很帅或者很靓……是的,少侠,我也希望那是您。
10. 

The M way

1. BUILDING THE SOLUTION

• Fact-based

Hiding from the facts is a prescription for failure—eventually, truth will out. You must not fear the facts. Hunt for them, use them, but don’t fear them.

• Rigidly structured

To structure your thinking, …

Android Performance Debugging/Profiling

TraceView, dumpsys (gfxinfo), systrace

http://www.curious-creature.org/docs/android-performance-case-study-1.html

http://udinic.wordpress.com/tag/gfxinfo/

http://blog.csdn.net/hudashi/article/details/7031670

http://blog.csdn.net/oujunli/article/details/8139412 (add trace view in code )

Google IO lecture:

https://developers.google.com/events/io/2012/sessions/gooio2012/109/

systrace(if realtime/call is large, the problem is likely to happen here)

adb shell dumpsys SurfaceFlinger

Hierarchy viewer will not work on retail …

Code Numbers for ADB Input

You can use key codes directly like
adb shell input keyevent 7    # for key ‘0’
adb shell input keyevent 8    # for key ‘1’
adb shell input keyevent 29    # for key ‘A’
adb shell input keyevent 54    # …

Android performTraversals

遍历View树performTraversals()执行过程

view树遍历概述

还是回到ViewRoot.java,我们直接看performTraversals(),该函数就是android系统View树遍历工作的核心。一眼看去,发现这个函数挺长的,但是逻辑是非常清晰的,其执行过程可简单概括为根据之前所有设置好的状态,判断是否需要计算视图大小(measure)、是否需要重新安置视图的位置(layout),以及是否需要重绘(draw)视图,可以用以下图来表示该流程。

 

  private void performTraversals() {
        // cache mView since it is used so much below...
//1 处理mAttachInfo的初始化,并根据resize、visibility改变的情况,给相应的变量赋值。
        final View host = mView;
        final View.AttachInfo attachInfo = mAttachInfo;