2009年10月12日星期一

给日以继夜不眠不休战斗在电脑前的你

不知道原出处,是别人通过邮件转给我的,我觉得不错,就转发了。

后溪穴–统治一切颈肩腰椎病的神奇大穴


后溪最早见于《黄帝内经·灵枢·本输》篇,为手太阳小肠经的输穴,又为八脉交会之一,通于督脉小肠经。有舒经利窍、宁神之功。适合经常坐在电脑前的上班族、发育中的孩子,可预防驼背、颈椎、腰部、腿部疼痛,也有保护视力、缓解疲劳、补精益气的功效。

有一位外地的学生告诉我,当地有位治疗腰间盘突出的中医名家,每次给病人治疗时,都会在在病人腰部疼痛的部位扎上几针,然后贴上一种特制的膏药,最后在后溪穴上扎上一针。有些经年不愈的重症患者,经过这番治疗,短时间内就恢复健康了。他觉得很老先生的膏药很神奇,准备拜老先生为师,学这个治疗腰间盘突出的绝招。

听了他的描述,我跟他说,"这种绝活儿我也会,而且比他还简单。其实在腰部局部扎针、贴膏药都是老先生使用的辅助疗法,真正管用的是扎在后溪穴上的那一针。扎针有个小窍门,进针之后边捻转边提插,同时让病人活动腰部。"学生听后恍然大悟,"我怎么就没想到呢?!"

道家医学里是非常注重后溪穴的。它可以直接通到督脉上去,属于八脉交汇穴里面很重要的一个穴位。督脉主一身阳气,阳气旺,则全身旺。针灸是比较专业的治病手段,如果大家只作养生保健时则只需用按揉后溪穴的方法就可以,一般按揉几分钟后就可振奋全身的阳气,身体就会像熊熊燃烧的火炉一样,暖彻心扉。点揉此穴,对小肠经有热、腿疼有很好的治疗功效。




后溪穴怎么找呢?把手握成拳,在第5掌指关节后的远侧掌横纹头赤白肉际处即是(即把手握拳,掌指关节后横纹的尽头就是该穴)。如果你坐在电脑面前,可以把双手后溪穴的这个部位放在桌子沿上,用腕关节带动双手,轻松地来回滚动,即可达到刺激效果。在滚动当中,它会有一种轻微的酸痛。这个动作不需要有意识的去做,每天只用抽出三五分钟的时间来,随手动一下,这个简单的治颈肩腰椎病的方法,我把它叫作滚揉后溪穴。坚持下来则对颈椎、腰椎确实有着非常非常好的疗效,对保护视力也很好。以前工作繁忙时,我每天在电脑前的工作时间也有十一、二个小时,但多么多年来我的视力、颈椎都没有问题,靠的也正是这个方法。

其实二十多年前,我初行医的时候,颈椎病是四十岁以后的人的专利,但现在不是了,二三十岁的颈椎病患者到处都是,我甚至见过的颈椎病的小学生!原因很简单:伏案久了,压力大了,自己又不懂得怎么调理,所以颈椎病提前光临了。不仅仅得颈椎病,长期伏案的白领、职员或者搞文字工作的,老早就腰也弯了,背也驼了,眼睛也花了,脾气也糟了,未老先衰,没有足够的阳刚之气。这是当今多数人面临的一个严重的问题。

看到这些问题,很多人都说,这是脑力劳动的结果,脑力劳动也是很消耗人的;人们以为近视仅仅是由于眼睛离书本或电脑屏幕太近所致。其实不尽然,当长期保持同一姿势伏案工作或学习的时候,上体前倾,颈椎紧张了,首先压抑了督脉,督脉总督一身的阳气,压抑了督脉也就是压抑了全身的阳气,于是,久而久之,整个脊柱就弯了,人的精神也没了。人体的精神,不是被脑力劳动所消耗掉的,而是被错误的姿势消耗掉的。眼睛也需要靠阳气来温煦,仅仅是眼睛疲劳,可能不能导致近视;真正导致近视的,是眼睛在缺少阳气温煦的情况下过度疲劳。

这一系列问题,出于同一原因,那么,通过一个穴,也就可以全部解决,这个穴就是我们说的后溪。这是小肠经上的一个穴,奇经八脉的交会穴,通督脉,能泻心火、壮阳气,调颈椎,利眼目,正脊柱。临床上,颈椎出问题了,腰椎出问题了,眼睛出问题了,都要用到这个穴,效果非常明显。它可以调整长期伏案或在电脑前学习和工作对身体带来的一切不利影响,只要坚持,百用百灵。

我们想想,当我们坐在电脑旁阅读文件的时候,手是怎么放的?肯定是一手不离鼠标,一手仍在键盘上吧!保持这个姿势不动,人都变僵了。这时,不妨灵活一点,把手解放出来,让双手的后溪穴抵在桌沿或键盘上,来回滚动,揉一揉,每次刺激三到五分钟,每个小时刺激一次就足够了。这是毫不耽误时间的,因为这时候,眼睛该看什么还可以看什么,不耽误。

大家可以试一下,坚持一天这样做下来,肯定到了下班的时候腰不会酸、脖子不会累,视力疲劳会很大程度上的缓解。每天坚持这么做下去,首先是腰椎颈椎轻松挺直,同时,你会发现眼睛也比以前好使了。如果因为忙,总是忘记做这个动作怎么办呢?我建议,可以定个闹钟,每隔一个小时提醒我们揉动一下后溪穴。不管忙到什么程度,我想这么一点时间还是能抽出来吧。何况,每小时这短短的三分钟,拯救的是我们的健康!

凡是到我这里来看颈椎病、腰椎病的人,我都建议他们这样去用后溪穴,效果都非常好,很多病人反映,这样做比去按摩院按摩颈椎腰椎要管用得多。有位三十岁的白领对我说:"本以为骨骼已经定型慢慢要生驼背的,但最近感觉背明显比以前直了。"我说,当然,年轻人驼背不是因为骨骼定型,脊柱是一节一节的,是活动的,怎么可能随便定型呢?关键是你背上气机不畅,经脉阻滞,才出现驼背的迹象的,一旦这个气机通畅了,你的背自然就直起来了!

我还要特别把这个方法介绍给正在读书的小孩子。这些孩子很可怜,从小学到高中,小小年纪就承受这么沉重的学习压力,我们可不希望他们一辈子戴上近视眼镜,更不能让他们在沉重的压力下失去朝气,成为小驼背。作为一个被人称作养生治病的大夫,我想这是我能做到的。

  其实我也是受益于后溪穴的。很久以前,我就养成了揉后溪的习惯,随时随地,有空就揉一揉。比如,我开车的时候,如果碰见路上堵车,或是红灯亮了,也会把后溪放在方向盘上来回滚揉几次,很舒服,甚至很潇洒。这时候,别人在着急上火,而我在通督脉、泻心火、壮阳气、调颈椎、正脊柱、利眼目,受用无穷。一不起急,二不发火,精神振奋。这么一来,有时候居然觉得堵车也堵得很值!

桃子理论

我不知道整个理论是不是已经存在了,我自己在平时的工作思考中总结并得出的。转载请注明出处,谢谢。

由于经常在考虑一些管理问题,例如:如何选择一个合适的应聘者,人如何提升,如何解决有的人出现职业发展的瓶颈,如何让属下更能够认识自己,如何淘汰人等。

人的能力就像一个桃子,有三层:

最外面这层是果皮,即专业竞争能力。如一个设计人员使用Photoshop,技术架构师使用设计模式建模工具,建筑工人搅拌混凝土,厨师切菜做菜。这些能力相对来说很容易培养,好与不好的差别,就是熟练。这方面能力能够通过自我学习,学校的教育,网上的教程学到,是最容易学习的一种能力,也是最不重要的能力,但是很多公司,主管在招人的时候非常讲究短期效益,人进来就是干活的,能用就行,没这个能力就进不来。

中间这层是果肉,即职业竞争能力。这层能力需要靠时间来积累经验,总结教训,反复训练和思考才能慢慢学会,所以它很厚,不是一朝一夕的事情。如经验的总结,逻辑能力,沟通能力,团队合作能力,勇于承担责任的能力,面对变化的接受程度,抗压的心态,面对挫折的心态,总结问题的深层次原因,方法论等。很多职业经理人,资深人士都具备这样的能力,这也是我们经常说的应届毕业生和资深人士之间的差别,其实不是专业能力的差别,而是职业能力的差别。这层能力比专业竞争能力重要,因为它需要积累,需要自己的学习,提升,不断修炼,才能培养出来。

最核心的一层是果核,即核心竞争能力。这层基本上是与生俱来的,和性格,小时候的教育背景,家庭背景息息相关,偶尔外界的一次重大的刺激也能够改变。说白了,你是不是一个勤奋或者懒惰,投机取巧还是勤勤恳恳,诚信还是欺骗,充满爱心还是毫无同情心,为人善良还是用心阴险,是由这层决定的。核心竞争能力中最宝贵的有,好学心,上进心,独立思考和独立自主的能力,在逆境下的坚韧力,决策力,领导力等。这些能力其实是最可贵的,通常是这些能力很难培养出来,是天生的,或者只能由自己去领悟到。成功的企业家,历史上著名的人物,基本上都具备这样的能力。

在平时的管理工作中,涉及到招聘,提升,解决员工的职业发展问题,让员工作自我管理等都需要从这个理论去分析。我们要招聘核心竞争能力好的人,而不要过分在乎果皮和果肉,有什么样的果核才是最重要的,其他的都可以培养的。提升一个员工需要从他的内心去挖掘她真正想要的,用危机感去刺激他,利用她自己的上进心,好学心去不断提升。如果一个核心竞争很差的员工,那就是件非常痛苦的事情,左激励右激励都不起作用,就只能用一些重大的刺激去改变他,但是说实话很难,往往很多公司从人力管理成本的方面考虑,这样的员工会被淘汰掉,没有办法,本来就是一个优胜劣汰的社会。所以说小时候经历过磨难的人,长大通常会很出色,小时候家境优越的孩子,长大了核心竞争力就很容易出问题。

写了这么多,权当是我的个人感悟,欢迎讨论。

对应届和即将应届毕业生的忠告

今年的校园招聘应该说是历届最大的一次,无论是腾讯,百度,网易还是其他大公司都排出了豪华阵容进行招聘,腾讯派出了600人的团队参与,可谓盛况空前。阿里巴巴集团包括旗下子公司也要在这次校园招聘中引进1800名应届毕业生。今年毕业的大学生应该是610万,应该说这么大规模的校园招聘对目前失业率高,金融危机中的中国是一大喜事。

但是亲爱的应届毕业生们,不要以为自己的身价上涨了,几大互联网公司都来了,可以牛一把了。昨天看了Donews的新闻,看到阿里在招聘的时候使用的一种态度,超赞,如下:

据了解,阿里巴巴集团今年趁着十周年庆展开了全国范围最大规模的一次招聘,其中在南京将投放300名左右的招聘计划,涉及开发工程师、网站运营师、市场分析师、客户服务、销售等诸多岗位,今后将供职阿里集团旗下的B2B、淘宝、支付宝、雅虎、集团技术部工作。此次招聘,吸引了大批南大、东大等名校毕业生的关注。

很多学生很关心阿里巴巴的待遇,但是在昨天的南大宣讲会上,招聘方却闭口不提。负责招聘活动的资深总监陆凯薇向同学们明言:"以往参加宣讲会时,有的学生会半途退场,原因是嫌我们讲得太空,没有谈到工资待遇这些具体问题。我可以肯定地说,今天我还是不会讲。如果学生关心的只有这个,你们可以随时选择退场。"

第二段Echo陆说的话,也正是我想说的。作为阿里的一名面试官,我也有很多忠告给应届毕业生。

1、钱重要还是梦想重要?

别再说钱和梦想都重要这样的话,坦率的说如今的院校培养出来的大部分应届毕业生的能力,我作为几年校园招聘面试官和技术管理者来看,和社会需要的能力还是有差距的,这不是你们的错,是中国教育的错,美国的计算机的学生都要学会自己写操作系统。所以现阶段,钱和梦想有时候不一定能兼得,如果两者一定要让你做个选择,排在第一的是哪个?这个问题各位应届毕业生请在面试任何一家企业之前,务必要考虑清楚,记住是务必。对不起,我收回我的话,我说错了,不是在面试任何一家企业之前,是各位在进入校园的时候,就应该考虑这个问题,这个问题可能会让你整整考虑四年,中间有过彷徨,有过动摇,但请在大三下半学期或者在研一的时候,务必坚定地想清楚。我并不奢望100%的同学会选择梦想,希望有80%是这样想的,至少80%的人迈出了成功的第一步,这是心态问题。这步迈错了,后面可能要用十几年的时间来弥补甚至永远都没有机会了。记住,钱只是你实现梦想的一个副产品!

2、知识重要还是思考重要?

大多数的应届毕业生在刚迈入社会的时候,会感觉自己空虚的一塌糊涂,感觉要学的东西简直太多了,自己好像就是一个在沙漠中行走了一个星期没喝水的人,看到一片绿洲湖泊那种发自内心的饥渴欲望。请各位应届毕业生先冷静,一天吃不成一个胖子,你什么都不会是正常的,谁生下来就什么都会呢?相反你要是什么都会才是不正常的,除非你是天才,我们都是凡人,所以放下心里的包袱,没有人来嘲笑你能力差,就和你去驾校学车一样,教官会嘲笑你不会开车吗?这是很自然的事情。你是需要立刻补充知识,但是重要的是,要在信息泛滥的当下补充什么样的知识和技能。我看到90%以上的应届毕业生在刚开始工作的时候面临显得无所适从,光知道要拼命学习,补充知识提高技能,你没有停下来思考一下,究竟哪些东西是要先学的,哪些优先级低的,哪些是可以问人的,哪些是自己可以看的,哪些是一定要通过项目实践才能学会的,如果你能停下来仔细考虑你学习的优先级,三思而后行,就是一个很好的开始。当然还有一些应届毕业生就是在思考力上很无助,他们不能思考清楚自己到底应该学什么东西,这就是为什么在很多大公司会有一个老人(在阿里称之为"导师")带着应届毕业生工作,但是我还是真诚地希望大家认识到思考力是多么的重要,有了它,你才能更好的运用知识,往往它比知识更重要。举个例子,当你在Word中发现了Ctrl+B是将选定的文字加粗后,是否去思考了一下,是否在Excel中同样也有这样的功能,试过后发现一样的,那么在PowerPoint中呢,也可以,那么说明了什么了呢?思考一下会发现,哦,原来Office中很多功能在不同的软件中是一样的,例如格式刷,缩进等,不久之后,你就会有了这样的判断力,这个功能不可能在PowerPoint中没有,因为Word中曾经使用过,并且这个功能是一个很普遍的功能,唯一的问题是可能在快捷菜单中没有显示出来。这就是思考力。

3、经验重要还是激情重要?

现在的应届毕业生从经验上可以分两种,一种是学术研究型,一种是有过实际工作经验型。其实有没有经验从面试官的角度来说不是最重要的考核维度,至少我是这么认为的,因为毕竟是校园招聘,我们不可能对大家有过高的要求。普遍说来,研究生毕业生要比本科毕业生要有很多的实践机会,可能在研一的时候,就已经开始在某个公司实习或者在教授这里做项目做课题,在知识积累和经验上要比本科生来的多。但是面试官和一个企业的主管或者用人部门真正关注的你是否有激情。什么叫激情?那是一种发自内心的对自己生活,工作,人生的渴望和呐喊,我喜欢,我要努力,我热爱,我要奋斗这样的心态,有了激情,才有了动力去学习,去提升。一个有激情的本科生在面试官眼中比那些做了N多项目却惶然找不到人生方向的研究生来说要可贵的多。在情景辅导中,有两个维度,意愿和能力,有激情的人都是有意愿去提高的,能力的培养只是时间和刻苦程度的问题。一个没有激情的人,就好比一头不肯拉磨的骡子,一定要主人在后面用鞭子抽才会走路,这样对自己对公司都是无比痛苦的。说到激情,又要回到梦想,你希望未来的你成为一个什么样的人,你希望未来自己能实现什么,想清楚了,哪怕再困难,咬着牙也要去实现,这就是激情,最大的失败就是自暴自弃,半途而废,这些土的不能再土的话请大家考虑后再考虑,没有道理,就不会被人们一次次拿出来说了。

4、是单纯还是圆滑世故?

随着现代社会越来越浮躁,越来越急功近利,一切都是向"钱"看。很多大学生在未走出校园前,已经被社会污染得失去了纯真的心灵,男大学生们寝室变成了游戏室,棋牌室,网吧,垃圾场,女大学生们一个个争奇斗艳,右手挎着LV包,左手挽着大款的胳膊,穿着性感的衣服玩夜总会,逛夜店。这在10年前,20年前的中国简直是很难想象的,在如此恶劣的环境和纸醉金迷的诱惑下,很多大学生开始走向了自我毁灭的道路,开始了得过且过,花言巧语,不诚信,玩世不恭,违背道德,甚至出卖自己的灵魂,以为这是一条成功之路。有一颗单纯,成熟的,执着的心灵在任何年代都是吃得开的而且是难能可贵的,让自己的心静下来,好好想想此时此刻的你是真正的自己,还是伪自己,你的理想我是什么,你的自我和社会我匹配吗?不要怀疑在面试的时候,这些深层次的东西面试官发掘不了,即使蒙骗了面试官,在实际工作中总归是要暴露无遗的,拥有一颗单纯且成熟的心灵才是自己应该去做的。

5、是大公司还是小公司?外企还是民企?

这几年的校园招聘下来,我看到了这些情况,每当大公司来校园招聘了,同学们趋之若骛,宣讲会上热闹非凡,人山人海,大家挤破头也要冲进去。小公司来招聘了,门可罗雀,景象十分凄惨。大公司有大公司的好处,例如有发展的平台,学习和培训的机会也多,能接触的东西也多,看起来不错,但是大公司也有弱势,你在很长时间内只可能按部就班做好自己的工作,你很难有机会去了解或者涉及与工作相关的上下游,左右部门的工作内容,也就是你有时候很难看到全部,例如你没有权限登录到生产环境去实际体验一把,只能通过PPT,培训有点感性的认识。小公司虽然规模小,但是你接触全套的东西,同时你也是一个人当几个人用,虽然累点,但是在这段时间内,相信我,你的进步是最大的。我自己对过去感悟了很多,发现我对互联网之所以有全面的了解,从底层硬件基础建设到网络部署,架构等方面,是因为以前在小公司的时候,接触过小型机,网络,等等现在基本不能接触到的东西,这样一来自己的知识体系就很全面了。另外任何大公司都是从小公司做起的,腾讯,百度,阿里都是这样,有很多年轻人喜欢尝试创业的感觉,这是我极力推荐的方式,因为这样会极有成就感,随着公司的成长,你自己的成长也是显而易见的,如果你还有更加崇高的梦想,也可以试着自己去创业。因此不论是大公司还是小公司,都有各自的优势和劣势,要看每个人的意愿和想法。至于外企还是民企,我个人想法还是让大家重点考虑民企,大家说知道的百度,腾讯,华为,阿里,联想等公司,都是民企出身,在民企中工作,你会有一种同舟共济,生死与共的感觉,大家都是一家人,所有东西都是从无到有,我们一起建立,而且最重要的是都是中国人自己的公司,为中国做着贡献。而在外企,你加入后,就只是一颗螺丝钉,当然我不能说全都是螺丝钉,至少大部分是,我面试过很多外企工作的工程师,绝大部分拿着很高的薪水,但是却只会做那么一件事情,在外企,好比就是温水煮青蛙,让你不知不觉觉得你很难跳出这壶温水了,你仅仅知道流程中一部分环节的工作,而且也只会做这部分,外企为了控制知识产权和核心技术,是肯定不可能将重要的知识点,技能放开给中国员工的,你所要做的事情,就是follow
the order, finish the
task,可能外企员工拿的薪水比其他企业多,但是绝大部分是青蛙,很多在金融危机中被裁员的外企员工找不到工作,第一是因为原来较高的物质收入水平让自己的心理接受不了过低的offer,第二因为原来就只会做这样的事情,其他的部分在外企中很难全面了解,不符合其他企业的要求。例如在外企的IT企业中,很多核心技术都是美国团队研发好,到了中国只是做二次开发或者边缘开发,排列组合已经开发好的组件而已,他们至所以雇佣中国工程师的目的很简单,成本低廉(虽然很多人认为即使这样也比民企的收入要高)。渐渐地,外企中绝大部分的中国员工被固化,也不怕你跳槽,知道你跳不到哪里去,因为你的能力是垂直型的,不具备水平扩展的能力,再加上较高的offer也让你永远呆在了外企中,直到下一次裁员,这些人就惨了!当然在外企也不是绝对的,Nokia就是一家不错的外企,另外我也曾经招聘过在外企中觉醒过来的工程师,能力很不错,自己也想通了,再这样下去,自己要被固化住,所以要寻求其他更高的发展。总之大小企业,因人而异,外企民企,推荐民企。

6、是出去呢?还是留下?

说实话,清华的,北大等很多一流院校的毕业生有很多是选择了前者,甚至是在大二,大三的时候,整个班就已经被国外著名的学校盯上。确实这些国内一流学校的学生在国际人才上很抢手,但是从另一个角度来看,这也是西方国家对中国一种赤裸裸的人才掠夺战略,而且这样的战略毫不夸张得讲是建立在国家战略的基础上的。不要和我说,他们都是国际主义战士,为全世界人民服务,可能吗?这些人的境界没有像罗永浩这么高,绝大部分是从私利出发。当然我们欢迎那些在国外学成归来的同学,虽然少得可怜。国家培养一个大学生这么多年,结果翅膀一硬就投靠其他国家去了,有人说这是吃不到葡萄嫌葡萄酸,有本事就像钱学森,李政道,杨振宁一样研究出一点成果,回报祖国,回报全世界。当然我不是鄙视那些出去的同学,而是出去的时候是否带着一颗赤子之心,而且始终不变,很难的,经过了资本主义发达社会的诱惑,确实能回来的很少,我的同学中凡是出去的,基本上都没回来,而且都不愿意回来,从内心讲我还是有点鄙视的。这就是现状,讲了这么多,这个选择题留个大家做,毕竟人各有志。

最后希望各位应届生和明年的应届生都好好考虑以上几点,我真心希望大家看过后,用真诚的态度去面对一切,仔细思考自己的未来,有志者事竟成!

最后给阿里巴巴在招聘中做一个简短的广告,"阿里开创未来,技术成就梦想",希望在10月长假之后,在合肥,成都和广州的校园招聘中见到大家,谢谢!

V4L2开发

正文:要做的任务是,把一块板子上的摄像头采集的图像和声卡采集的声音(貌似很啰嗦哈)通过TCP/IP协议传输到另一块板子上。第一步,先把视频获取并且在本地LCD上显示。看了板子提供的文档,视频传输需要用V4L2的API。
一.什么是video4linux
Video4linux2(简称V4L2),是linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。
二、一般操作流程(视频设备):
1. 打开设备文件。 int fd=open("/dev/video0″,O_RDWR);
2.
取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct
v4l2_capability
3. 选择视频输入,一个视频设备可以有多个视频输入。VIDIOC_S_INPUT,struct
v4l2_input
4. 设置视频的制式和帧格式,制式包括PAL,NTSC,帧的格式个包括宽度和高度等。
VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format
5. 向驱动申请帧缓冲,一般不超过5个。struct v4l2_requestbuffers
6.
将申请到的帧缓冲映射到用户空间,这样就可以直接操作采集到的帧了,而不必去复制。mmap
7. 将申请到的帧缓冲全部入队列,以便存放采集到的数据.VIDIOC_QBUF,struct
v4l2_buffer
8. 开始视频的采集。VIDIOC_STREAMON
9. 出队列以取得已采集数据的帧缓冲,取得原始采集数据。VIDIOC_DQBUF
10. 将缓冲重新入队列尾,这样可以循环采集。VIDIOC_QBUF
11. 停止视频的采集。VIDIOC_STREAMOFF
12. 关闭视频设备。close(fd);
三、常用的结构体(参见/usr/include/linux/videodev2.h):
struct v4l2_requestbuffers
reqbufs;//向驱动申请帧缓冲的请求,里面包含申请的个数
struct v4l2_capability cap;//这个设备的功能,比如是否是视频输入设备
struct v4l2_input input; //视频输入
struct v4l2_standard std;//视频的制式,比如PAL,NTSC
struct v4l2_format fmt;//帧的格式,比如宽度,高度等
struct v4l2_buffer buf;//代表驱动中的一帧
v4l2_std_id stdid;//视频制式,例如:V4L2_STD_PAL_B
struct v4l2_queryctrl query;//查询的控制
struct v4l2_control control;//具体控制的值
下面具体说明开发流程(网上找的啦,也在学习么)
打开视频设备
在V4L2中,视频设备被看做一个文件。使用open函数打开这个设备:
// 用非阻塞模式打开摄像头设备
int cameraFd;
cameraFd = open("/dev/video0″, O_RDWR | O_NONBLOCK, 0);
// 如果用阻塞模式打开摄像头设备,上述代码变为:
//cameraFd = open("/dev/video0″, O_RDWR, 0);
关于阻塞模式和非阻塞模式
应用程序能够使用阻塞模式或非阻塞模式打开视频设备,如果使用非阻塞模式调用视频设备,即使尚未捕获到信息,驱动依旧会把缓存(DQBUFF)里的东西返回给应用程序。
设定属性及采集方式
打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的。在Linux编程中,一般使用ioctl函数来对设备的I/O通道进行管理:
extern int ioctl (int __fd, unsigned long int __request, …) __THROW;
__fd:设备的ID,例如刚才用open函数打开视频通道后返回的cameraFd;
__request:具体的命令标志符。
在进行V4L2开发中,一般会用到以下的命令标志符:
1. VIDIOC_REQBUFS:分配内存
2. VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址
3. VIDIOC_QUERYCAP:查询驱动功能
4. VIDIOC_ENUM_FMT:获取当前驱动支持的视频格式
5. VIDIOC_S_FMT:设置当前驱动的频捕获格式
6. VIDIOC_G_FMT:读取当前驱动的频捕获格式
7. VIDIOC_TRY_FMT:验证当前驱动的显示格式
8. VIDIOC_CROPCAP:查询驱动的修剪能力
9. VIDIOC_S_CROP:设置视频信号的边框
10. VIDIOC_G_CROP:读取视频信号的边框
11. VIDIOC_QBUF:把数据从缓存中读取出来
12. VIDIOC_DQBUF:把数据放回缓存队列
13. VIDIOC_STREAMON:开始视频显示函数
14. VIDIOC_STREAMOFF:结束视频显示函数
15. VIDIOC_QUERYSTD:检查当前视频设备支持的标准,例如PAL或NTSC。
这些IO调用,有些是必须的,有些是可选择的。
检查当前视频设备支持的标准
在亚洲,一般使用PAL(720X576)制式的摄像头,而欧洲一般使用NTSC(720X480),使用VIDIOC_QUERYSTD来检测:
v4l2_std_id std;
do {
ret = ioctl(fd, VIDIOC_QUERYSTD, &std);
} while (ret == -1 && errno == EAGAIN);
switch (std) {
case V4L2_STD_NTSC:
//……
case V4L2_STD_PAL:
//……
}
设置视频捕获格式
当检测完视频设备支持的标准后,还需要设定视频捕获格式:
struct v4l2_format fmt;
memset ( &fmt, 0, sizeof(fmt) );
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 720;
fmt.fmt.pix.height = 576;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
if (ioctl(fd, VIDIOC_S_FMT, &fmt) == -1) {
return -1;
}
v4l2_format结构体定义如下:
struct v4l2_format
{
enum v4l2_buf_type type; //
数据流类型,必须永远是//V4L2_BUF_TYPE_VIDEO_CAPTURE
union
{
struct v4l2_pix_format pix;
struct v4l2_window win;
struct v4l2_vbi_format vbi;
__u8 raw_data[200];
} fmt;
};
struct v4l2_pix_format
{
__u32 width; // 宽,必须是16的倍数
__u32 height; // 高,必须是16的倍数
__u32 pixelformat; //
视频数据存储类型,例如是//YUV4:2:2还是RGB
enum v4l2_field field;
__u32 bytesperline;
__u32 sizeimage;
enum v4l2_colorspace colorspace;
__u32 priv;
};
分配内存
接下来可以为视频捕获分配内存:
struct v4l2_requestbuffers req;
if (ioctl(fd, VIDIOC_REQBUFS, &req) == -1) {
return -1;
}
v4l2_requestbuffers定义如下:
struct v4l2_requestbuffers
{
__u32 count; // 缓存数量,也就是说在缓存队列里保持多少张照片
enum v4l2_buf_type type; //
数据流类型,必须永远是V4L2_BUF_TYPE_VIDEO_CAPTURE
enum v4l2_memory memory; // V4L2_MEMORY_MMAP 或 V4L2_MEMORY_USERPTR
__u32 reserved[2];
};
获取并记录缓存的物理空间
使用VIDIOC_REQBUFS,我们获取了req.count个缓存,下一步通过调用VIDIOC_QUERYBUF命令来获取这些缓存的地址,然后使用mmap函数转换成应用程序中的绝对地址,最后把这段缓存放入缓存队列:
typedef struct VideoBuffer {
void *start;
size_t length;
} VideoBuffer;
VideoBuffer* buffers = calloc( req.count, sizeof(*buffers) );
struct v4l2_buffer buf;
for (numBufs = 0; numBufs < req.count; numBufs++) {
memset( &buf, 0, sizeof(buf) );
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
buf.index = numBufs;
// 读取缓存
if (ioctl(fd, VIDIOC_QUERYBUF, &buf) == -1) {
return -1;
}
buffers[numBufs].length = buf.length;
// 转换成相对地址
buffers[numBufs].start = mmap(NULL, buf.length,
PROT_READ | PROT_WRITE,
MAP_SHARED,
fd, buf.m.offset);
if (buffers[numBufs].start == MAP_FAILED) {
return -1;
}
// 放入缓存队列
if (ioctl(fd, VIDIOC_QBUF, &buf) == -1) {
return -1;
}
}
关于视频采集方式
操作系统一般把系统使用的内存划分成用户空间和内核空间,分别由应用程序管理和操作系统管理。应用程序可以直接访问内存的地址,而内核空间存放的是
供内核访问的代码和数据,用户不能直接访问。v4l2捕获的数据,最初是存放在内核空间的,这意味着用户不能直接访问该段内存,必须通过某些手段来转换地
址。
一共有三种视频采集方式:使用read、write方式;内存映射方式和用户指针模式。
read、write方式:在用户空间和内核空间不断拷贝数据,占用了大量用户内存空间,效率不高。
内存映射方式:把设备里的内存映射到应用程序中的内存控件,直接处理设备内存,这是一种有效的方式。上面的mmap函数就是使用这种方式。
用户指针模式:内存片段由应用程序自己分配。这点需要在v4l2_requestbuffers里将memory字段设置成V4L2_MEMORY_USERPTR。
处理采集数据
V4L2有一个数据缓存,存放req.count数量的缓存数据。数据缓存采用FIFO的方式,当应用程序调用缓存数据时,缓存队列将最先采集到的
视频数据缓存送出,并重新采集一张视频数据。这个过程需要用到两个ioctl命令,VIDIOC_DQBUF和VIDIOC_QBUF:
struct v4l2_buffer buf;
memset(&buf,0,sizeof(buf));
buf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory=V4L2_MEMORY_MMAP;
buf.index=0;
//读取缓存
if (ioctl(cameraFd, VIDIOC_DQBUF, &buf) == -1)
{
return -1;
}
//…………视频处理算法
//重新放入缓存队列
if (ioctl(cameraFd, VIDIOC_QBUF, &buf) == -1) {
return -1;
}
关闭视频设备
使用close函数关闭一个视频设备
close(cameraFd)
还需要使用munmap方法。
附录:标准的V4l2的API
http://v4l.videotechnology.com/dwg/v4l2.pdf

价值投资的灵魂

价值投资的灵魂是企业内在价值的成长。趋势投资者不必过于关心企业的成长性,他们更多是看重短期资金的流向,量价关系,以及K线的组合形态。巴菲特的老师格雷厄姆注重绝对的价值,寻找绝对价值低估的品种,他说过超过15倍市盈率的股票不买。后来的投资者发现,在一个有效的市场中,绝对低估的品种很难找到。于是,他们放宽了标准:从企业长期成长的全过程看,只要现在仍是相对较低的位置,尽管市盈率不低,仍然是可以买进。彼得•林奇说过,一只股票年成长速度达到30%,我原意接受30倍的市盈率。我们现在再度面临一个不再便宜的市场,认真地从成长性角度选择股票,尤为重要。
  企业的成长有各种不同的类型。从市场占有率角度看,我定义为两种:同步成长和挤压式成长。同步成长是指市场占有率并没有提高,但是所处国家,所处行业在成长,企业也跟随大的形势一起成长。对于同步成长,在选择个股的时候,看重他所在的国家,所处的行业。所谓"男怕入错行,女怕嫁错郎",行业处于下降周期,企业再努力,也很难取得好的经营业绩。 比如现在的钢铁业、航运业、造船业等强周期行业;反之,行业好,不那么优秀的企业也可能会取得好的经营业绩,比方铁路建设、煤炭等。挤压式成长是指企业的 竞争能力在行业中领先,它能把其他企业的市场份额攫为己有,逐渐成长为行业內的巨头。行业成长,这类企业可以取得超越平均水平的成长的速度,行业即使不再 成长,或者成长缓慢,它仍可通过挤占其他企业的市场份额获得成长。比如水泥行业的海螺水泥,空调行业的格力电器,他们在行业成长缓慢的阶段,都取得了不俗 的业绩。我们在选择上市公司的时候,要选择既能同步成长,又能实现挤压式成长的好企业。即:行业要好,行业內的竞争能力要强。其中行业內的竞争能力是我们 尤为关注的,行业內竞争力薄弱,最终成长也是昙花一现,免不了在行业低潮期被收购兼并的命运。
  从企业获得成长的手段看,成长分为内涵式 成长和外延式成长。内涵式成长是通过劳动生产率的提升获得的成长,比如技术进步,企业生产的产品从低附加值变为高附加值;品牌价值提高,售价上升;知名 度、用户忠诚度提高,客流量增大等。外延式成长是资本投入增加、收购兼并带来的成长,最典型的 有银行业的高成长,银行贷款增长,在资本充足率的约束下,就要不断的再融资,而且金额巨大,这是二级市场银行股市盈率偏低的一个重要原因。对于银行来讲, 中间业务的增长不消耗大量资本金,是内涵式增长,我们在考察银行股价值的时候,看它中间业务占收入的比重以及成长速度是重要的内容。对于两种成长,应该说 内涵式成长优于外延式成长,但外延式成长在某些阶段是必不可少的一环。比如啤酒行业通过收购兼并之后,现在基本上是以青岛、燕京、华润雪花三家占主导地 位,价格战不再激烈,整体盈利水平稳步提升。现在连锁超市业、农业食品业也正处在跑马圈地的历史阶段,在这个阶段,企业的盈利能力可能并不理想,但是一旦 行业整合结束,企业经营业绩就有可能出现迅速回升,对这类企业的估值,我们要有前瞻性。内涵式成长给股东的回报更大,内涵式成长优于外延式成长,但是不可 偏废,两者都很重要。
  从企业成长周期过程看,成长分为线性成长和非线性成长。线性成长就是企业在成长过程中表现的非常平稳,每年都能保 持较一定的成长速度。如万科、招行、贵州茅台、苏宁电器这样的企业,尽管每一年成长速度还是有起伏,但是不会让我们太意外。但是有一些企业可能一直都在亏 损,在烧钱,可是一旦认知度提高,商业模式得到认可,业绩可能出现爆炸式成长。典型的就是互联网企业,才开始就是烧钱,不看业绩,看点击率,可是到他开始 收费的时候业绩好的惊人,比如腾讯、百度等。在纳斯达克上市的百度,其搜索服务模式得到认同后,每年净利润以100%以上的速度成长,其中2005年及 2006年分别增长了297%和534%。现在的淘宝网对于买卖双方都免费,现在不怎么赚钱,但人流量大的惊人,一旦确立好的盈利模式,业绩也会令人惊 叹。再比如新能源行业,一旦技术取得突破,市场会迅速扩大,将来的业绩也会超出我们的想象。对于这种非线性成长的可能性我们要特别留意。另外,资产重组也 是一种非线性成长,突然之间脱胎换股,业绩好的惊人,给投资者带来巨大回报。应该说非线性成长,更不易被投资者认识,也就潜伏者更大的机会,也更有魅力。
   关注企业成长,还要看企业可能的成长空间,也就是市场的容量。有些行业很小,全世界加在一起可能就百十亿,几百亿,一旦企业占据了足够的份额,就没有成 长的空间了,企业就碰到了天花板。就需要企业重新做战略选择,开始"二次创业"。"二次创业"风险很大,不要以为别人那碗饭好吃,所以巴菲特有时候就劝企 业别再扩张,而是选择分红或者是回购股票,这样也能增加股东的价值。我们市场中中集集团、瑞贝卡(假发行业的龙头)等世界第一的企业就是如此,虽然是世界 第一,但成长性不再,投资价值也不大。此外,一个企业占整个行业的30%,就居于相对垄断的地位,进一步增长市场占有率就要遭遇许许多多的障碍,所以 30%市场占有率也往往被视作一个成长的瓶颈。在做个股选择的时候我们强调要选大行业的小龙头,就是在于成长空间巨大,股价具备上涨十倍的可能。如果是大 行业的大龙头,像中石油、工商银行,市场占有率那么高,已经不具备高成长的可能,或者像瑞贝卡这样小行业的小龙头,也不具备高成长的空间。虽然是龙头股, 都没有太大的投资价值,至少对于我们这样张口闭口涨十倍的投资者是如此。




网易历六年耗亿资打造,3D国韵网游《天下贰》,免费领光盘

2009年10月10日星期六

不是书评 :《我是一只IT小小鸟》

设计你自己的进度条

进度条的设计是一个很多人都知道的故事:同样的耗时,如果不给任何进度提示,只是在完成之后才弹出一个完成消息,中间没有任何动态变化,那么整个过程就会让人等得非常焦急,导致一些人干脆把程序关了了事。如果有进度不断更新,那么对整个过程耗时的心理感受就会远低于实际值,用户也不会郁闷到把程序关了。(你有多少次在银行处理手续的时候,看着工作人员把一堆材料不停地倒腾来去,心里多希望他们可以在柜台小窗口上投影一个进度条?)

这里的原因在于,没有进度提示的话,我们无法判断这个等待什么时候才是个尽头。如果有不断增长的进度条,那么我们对于什么时候会达到100%就会有一个粗略的估计,这个估计是一剂定心丸,让我们知道这事情总会并且会在不久的将来完成。

做事情也是同样的道理,善于规划的人,会将目标分割成一个个的里程碑,再将里程碑分割成TODO列表。前阵子流行的GTD方法学,核心的理念就在于,如果你把任务分割了,你就有了进度条,你就知道,事情在不断的进展,你总会完成任务或到达你的目标,你会有一个时间估计。反之如果没有这个分割,整个的任务或目标对你来说就只有两种状态——"完成"和"未完成",如果不幸是一个比较漫长的目标,那么你会发现你的进度条总是"未完成",一次又一次的等待未果会耗尽你的耐心,让你下意识的产生"这事什么时候才能完呢?"的疑惑,没有分而治之,你就不知道未来还需要付出多少努力才能达到目的,这就会让你心生怯意,不敢进一步投入时间,免得血本无归。在这样的心理下,不少人就会选择保守策略——退出,以免到头来花了时间还一事无成。

而所谓的规划其实就是针对这种心理弱点的做事方法。如果你对整个目标的几个重大步骤有清晰的界定,能够对每个步骤的耗时作出靠谱的上界估计,你就不会被不确定的未来,不确定的时间投入感到恐惧,就不会被这种不确定感压迫到过早退出。

不要过早退出循环

我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出。用程序员喜欢的话来说就是,我们都在for循环,区别在于你是什么情况下break;的。有的人退出阈值高,这是能坚持的一类人,有的人退出阈值低,这类人很可能遇到一些障碍就退出了。

过早退出的原因往往在于对于未来的不确定性,对于投资时间最终无法收到回报的恐惧,感受到的困难越大,这种恐惧越大,因为越大的困难往往暗示着这个任务需要投资的时间越大。所以其实我们都是直觉经济学家,当我们说"畏难"的时候,其实我们畏惧的不是困难本身,而是困难所暗示的时间经济学意义。

然而,我们的情绪大脑毕竟比较原始,仅根据碰壁的次数或硬度来判断事情的难易并不一定靠谱,如果你遇到困难,不妨用一用互联网,用一用群体的智慧,看看别人当时是怎么想怎么办的,绝大多数情况下你并不孤单,你遇到的问题早就有人遇到过,你踩过的坑里面尽是前人的脚印,不要仅仅因为一时摸不着头绪,找不着出路就退出,这不是informed
decision,问一问自己作出退出的决策是否基于足够的信息,我是否进行了足够的调查,至少,是否去简单用了用搜索引擎。

模仿高德纳先生的名言:过早退出是一切失败的根源。


兴趣遍地都是,专注和持之以恒才是真正稀缺的。

很多人看了书中的故事之后得出这样的结论:兴趣最重要。然而,我觉得区别他们和其他人的,并不是他们拥有超过常人的兴趣,而是他们拥有超过常人的毅力。

其实人天生就对新事物怀有好奇心,难以找出谁没有对任何事物或领域产生过兴趣,然而不同的是,有些人的兴趣只能持续几天,当遇到第一个困难,第一道坎的时候,他们就熄灭了,然而另一些人的兴趣火花会变成火苗,火苗会变成火种,一直稳定的燃烧很多年。区别他们的并不是兴趣的有无,而是他们的性格里面有没有维持兴趣的火种一直燃烧下去的燃料。

一个人有专注和持之以恒的性格,即便在一个没有多大兴趣的领域也能成为专家(更何况,兴趣的很大一类来源就是"我擅长做这件事情");反之就算有兴趣也很快会被一些冷水泼灭。

生活中的选择远比我们想象得要多,细微的选择差异造就了不同的人生

唐雅薇同学的故事中,有这么一个细节吸引了我的注意:当时她正在找工作阶段,对女生在IT行业的发展很迷茫,恰逢微软的郭蓓菁女士到他们学校演讲,演讲完了之后她立即就奔上讲台拦住郭女士询问女生与IT的问题。

这是一个细节,但我相信不是所有人都有勇气上去拦住名人问普通问题的,我们会给自己找很多很多的理由和接口,我想最常见的应该是两个原因:1.
如果被批评了自尊心会受到打击。2.认为问了也问不出特别的信息。然而事实却是相反:1.
自尊心受到打击算不上实质性的损失。2.
你想不出能问出什么特别的信息并不代表就真的问不到重要的信息。别把不知道当成没有。

一个小小的思维差异,可能导致很多人在遇到困惑的时候原地打转,冲突不出,而另一些人则取经得到宝贵的经验,站在别人的肩膀上越过了障碍。唐雅薇从郭女士那儿得到了最宝贵的信息:女生在IT行业也能有很好的发展。信心,是这样一种奇怪的东西,就算你没有确切的证明未来会更好,你也会坚持下去,你不会过早退出循环;而来源于过来人的信息则是信心最靠谱的保障。

你是不是意识到,在平常的生活中,你所作出的选择比你想象的要多得多呢?有没有想过有一些看似细小的选择可能会产生巨大的影响?

想想看,试一下,是不是真的没什么损失,还有可能得到巨大的回报呢?

靠专业技能的成功是最具可复制性的

它需要的只是你在一个领域坚持不懈地专注下去,只需要选择一个不算太不靠谱的方向,然后专心致志的专下去,最后必然能成为高手或者绝顶高手。世上有很多成功带有偶然因素和运气成分或出身环境,但至少这一样,被无数人复制了无数遍,否则就不会存在学校和教育了。

反思是让人得以改进自己的最重要的思维品质

很多人在成年之后甚至未及成年,性格就难以再发生大的变化。性格是这样一种自我实现和强化的陷阱:如果你是不容易专注的人,你会发现生活中处处都是分散你注意力的东西,你的思维难以在一个事情上停留半小时,于是你的时间变得琐碎,你很难在一个领域有长久的积累和深入的思考,这样的现实可能会让你感到沮丧,后者让你更加无法专心,这样的现实可能会让你感到焦虑,为了避开焦虑你又会去寻求其他的刺激,结果是恶性循环。

反思是改变自己的第一步,我们常常容易发现别人的问题,别人的错误,却难以发现自己思维中的问题,因为我们很少会把自己的思维当成目标去思考。

作为程序员,相信没有人不知道能修改自身的程序,而能修改自身的程序的前提就是,首先这个程序必须有法子能够指向自身。

饿死在干草堆之间的驴子

有很多在迷茫期的同学,迷茫都是相似的:面前有两条路,到底选哪一条?"转行还是不转行?""学C++还是学Java。?"做管理还是做程序员?"有些问题其实不是问题:比如"学C++还是学Java。"答案是都学而且还不仅学两个。有些问题不是一个泛泛的答案能够适合的,比如转行还是不转行,需要考虑很多自身因素。

但更重要的是,有人会因为无法作出决定就推迟决定,然而实际上推迟决定是最差的决定,在推迟决定期间,时间悄悄流逝,你却没有任何一条路上的积累,白白浪费了时间。

如果你有一些钱不知道花在A还是B上,你先不作决定,没问题,因为钱还是你的,但如果你有一些时间,不知道花在A上还是B上,不行,因为过了这段时间,这段时间就不是你的了。

所以,不管有多纠结,也不要从纠结中逃离,试图推延决定,既然终究是个痛苦的决定,就痛一回,好好思考和调查之后作出一个决定并坚持下去,只要不是太不靠谱的行业(相信也没谁会在纠结了之后却选了一个不靠谱的行业的),经过你的积累总会成为高手。

一生的知识积累,自学的起码占90%

你会在这本书当中看到的一个重复出现的现象就是自学,大规模的自学,逃课自学,上网找书自学,程序员行业是最适合自学的行业,网络是程序员的天堂,需要的资源、工具,比课堂上的多出何止百倍,如果说还有一个学科,并不需要传统的教育就可以成才,估计非程序员莫属了。作为程序员如果没有查过wikipedia,没有看过几本原版电子书,没有在国内外主要邮件列表里面提过问题吵过架,没有用技术博客记录学习的独特体会,没有订阅技术牛人们的博客,怎么好意思说身在这个行业呢?

最后,看完了书还是说"说起来容易做起来难"的,怪自己,不怪书。

Linux文件编码格式转换

在Linux命令行下查看看文件的编码
enca 文件名
linux文件名编码批量转换
convmv -f 源编码 -t 新编码 [选项] 文件名

常用参数:
-r 递归处理子文件夹
–notest
真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
–list 显示所有支持的编码
–unescap 可以做一下转义,比如把%20变成空格
比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:
convmv -f UTF-8 -t GBK --notest utf8编码的文件名
Linux下批量转换文件内容编码

1.使用enca,例如要把当前目录下的所有文件都转成utf-8
$enca -x utf-8 *

2,使用iconv 转换

iconv的命令格式如下:
iconv -f encoding -t encoding inputfile

比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2