奋斗吧,程序员——第三十二章 十年磨一剑,霜刃未曾试

“elber先生,问题很严重啊,你来看看,怎么手机显示传输完成,数码相框这里却显示Fail呢?”

“......”我无语地看了看相框的内存情况,指了指“memory full”的提示告诉他,“松本先生,这个警告标示相框的内存已经满了,所以发过来的图片存不下来。”

“elber先生,问题很严重啊,为什么这次会传输失败啊?”

“晤,松本先生,高速红外不是遥控,需要对得很准才行,而且不能距离太远哦。”

“elber先生,问题很严重啊,为什么传输过程中我把数码相框断电,手机端不显示传输错误的信息呢?这种异常不是应该做在协议里的吗?”

“哦,松本先生,是这样,高速红外呢有一个分支,叫做IrsimpleShot协议,比Irsimple双向协议更快,但是它是单向的,也就是手机单方面向数码相框发送数据,所以,如果出错的话手机是无从知晓的哦。”

三洋公司的负责人松本先生,是个西装笔挺的老派日本人,之所以说老派,是因为我接触到一些新生代的日本年轻人,一改以前那种刻板沉闷的印象,还是很有幽默感的。

松本先生做事情很严谨,对技术呢,半懂不懂,所以一有问题就喜欢刨根问底,比如冷不丁抛出一个问题“elber先生,可以给我解释下IrData的握手过程吗?”

我就得停下手边忙的不可开交的工作,给他详细介绍,为了彻底打消他问下去的语气,我尽量回答得专业一点:“手机不断向外发xid和snrm,顺序为一个xid(slot为0, 无discovery info),一个xid(slot number为ff,有discovery info),一个simple的snrm。当接收方对xid作出xid response后,(哦对了,只能对slot为0的xid作出回复),手机发slot number为ff的xid, 再发一个snrm(非simple的),然后接收方回复ua,这样基本握手就完成了。”

然后松本先生就会似懂非懂的点了点头,然后埋头继续研究那一堆厚厚的协议,试图去理解我刚才的话。

我则继续写代码,偷眼瞧他的时候,发现松本先生果然没有放弃,过了一会儿,又拿起刚才的问题来问我。

“那么elber先生,你说刚才握手失败,是因为我们发的UA有问题,从数据上看,看不出有什么问题啊?”

“哦~~”我拖长了调子,思考着如何快捷地向松本先生解释清楚这个问题,最后无奈地从抽屉中拿出之前陈曦给我解析的协议说明。

看到她娟秀的字体,我微微一笑,这丫头虽然笨了点,但是做事情还是很规范的,在我的指导下也很好的完成了任务,不愧是选牛的人啊。

她的文件里详细地记录了数次连接的数据包格式:

snrm(普通的)

ff                 addr

93                snrm

08 04 c7 96            source addr

ec 3e 00 00            destination addr

......“

“您看啊,正确的UA回复是这样的——,其中波特率必须与SNRM中的波特率相匹配,我之前的代码问题在于,没有做这个匹配,正确的做法,是要把自己支持的波特率和对方支持的波特率做一个‘与‘的操作。”

松本先生在那里仔细地查看文档,我则只能站在旁边等候,没办法,客户最大啊。

三洋公司的实力还是很强劲的,这从他们测试的设备可见一斑。

来到我这儿的第一天,松本先生就拿出一份Excel文档,上面详细记录了一份“保有携帯電話一覧”,包括了日本三大运营商AU、SOFTBANK、DOCOMO的各式手机共129部。

我的心一下悬空,之前我调试的时候,也就是拿着几台同事的手机做做测试,来自日本的手机也就是技术转移中心的那一部。

我现在的感觉是在深山老林里苦练一门武功,觉得对付对付野猪野狗够了,突然要出山到外面让各大门派来验验成色,实在心里没底啊。

再看那松本先生,又是用强光照,又是各种距离各种角度测试的,好像不把我测出点问题来不罢休的样子。

而且每天一刻不离地坐在我身后,程序中有疑问没解决,他也不吃饭,害得我也不好意思提吃饭的事,每天加班到深夜11点是常有的事儿。

所谓为伊消得人憔悴,这段时间,形销骨立,我倒不知道自己这副尊荣,到底是因为失恋,还是因为工作了。

第一轮测试下来,成绩还算好——至少我觉得是。

一百多部手机里面有五部手机没有通过,协议有问题。

松本先生急的胡子都飞了起来,恨不得一天就能给他改好全部Bug。

“elber先生,问题很严重啊”是他的口头禅,结果呢,我的状态基本是——

改代码,按下回车,编译,在电脑编译的时间窗口,迅速地走到松本先生的身边,回答他那些啼笑皆非的问题,告诉他问题没他想象中那么严重。

有些问题是很难回答的,比如某台手机协议走不通,回复的时候加个延时就好了,那么松本会问:“elber先生,这个延时为什么要加?之前为什么不加?加了会不会有什么后果?”

我总不能用毛泽东思想“实践是检验真理的唯一标准”去答复他吧。

人家可是日本人。

于是,本来可以8个小时内解决的问题,常常要搞到深夜。

松本先生很喜欢加班,哪怕上班时间可以解决的问题,都要拖拖拖到加班时间去解决。

大概,这也算是日企落后的企业文化之一。

无论如何,松本算不上是十分优秀的人,他这样的人,在老三的公司,怕是坚持不下去吧。

而我这样的人,如果去了日企,怕也要被繁琐的沟通所累,影响效率。

相较而言,日企更像一部按既定规则运作的庞大机器,有条不紊但缺少活力,垂直式管理,上下沟通过多,过于重视资历,对优秀员工缺乏激励机制,而民营企业的企业文化,带有浓重的企业家印记,富有创业激情的领导所领导的企业,显得更有张力。

虽说日企和华为公司的管理方法完全不同,华为公司引进了IBM公司的系统工程,属于欧美的那一套绩效考核,而日企可能更注重资历,但是以我切身的感受来说,这两种管理模式没有孰优孰劣,不同规模的团队有不同的方法。以春秋时期三个大国,晋国、楚国、秦国为例,楚王是世袭制度,在楚国还是一个小国的时候,遇到一个贤明的君主,比如说楚成王楚庄王的时候,很容易就发展壮大,但是壮大到一定程度后这种依靠领导人个人能力的局面就导致楚国做不大;晋国是内阁制,六卿管理国家,适合管理中等规模的国家,晋文公曾是春秋一霸,缺点是容易分裂,但是分裂后赵魏韩依然是强国;而秦国依靠法治,后来统一全国,做得最大。华为公司的产品是大型设备,体系极为复杂,是集团军作战,所以使用了IBM的系统后,管理上了一个台阶,最大的好处在于员工的工作可以被量化,可以最大效率地调动积极性。但是小辉说现在华为也存在文山会海这样的问题,每天花在开会上的时间要几个小时,这个,就属于管理过度。

时间: 2024-10-11 17:03:10

奋斗吧,程序员——第三十二章 十年磨一剑,霜刃未曾试的相关文章

Gradle 1.12用户指南翻译——第三十二章. JDepend 插件

本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个

2014年软考-信息技术处理员-模拟试题及答案【第十二章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●在主存和CPU之间增加Cache的目的是____(26)____. A.增加内存容量 B.为程序员编程提供方便 C.解决CPU与内存间的速度匹配问题 D.提高内存工作的可靠性 ●ADSL对应的中文术语是____(27)____. A.分

【WPF学习】第三十二章 执行命令

原文:[WPF学习]第三十二章 执行命令 前面章节已经对命令进行了深入分析,分析了基类和接口以及WPF提供的命令库.但尚未例举任何使用这些命令的例子. 如前所述,RoutedUICommand类没有任何硬编码的功能,而是只表达命令,为触发命令,需要有命令源(也可使用代码).为响应命令,需要有命令绑定,命令绑定将执行转发给普遍的事件处理程序. 一.命令源 命令库中的命令始终可用.触发他们的最简单的方法是将它们关联到实现了ICommandSource接口的控件,其中包括继承自ButtonBase类的

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

C Primer Plus 第十二章程序清单……2015.5.10

C Primer Plus           第五版 第十二章  程序清单 #include<stdio.h> int main() { int x=30; printf("x in outer block:%d\n",x); { int x=77; printf("x in inner block:%d\n",x); } printf("x in outer block:%d\n",x); while(x++<33) { i

第三十二章

道恒无名,朴虽小,而天下弗敢臣.侯王若能守之,万物将自宾.天地相合,以俞甘露,民莫之令而自均焉.始制有名,名亦既有,夫亦将知止,知止所以不殆.譬道之在天下也,犹小谷之与江海也. 第三十二章1 如何让大家都来顺服你? 各位朋友大家好,今天我们接着来聊<道德经>.今天我们不唱歌了,昨天放了一首我唱的歌,这唱歌在我这儿就是一个养生运动.因为唱歌的时候你要调呼吸,这时候是锻炼肺.我之前写过两篇文章,专门讲唱歌的,我们家有一位邻居.一位朋友,这肺间质性病变,很严重的肺病,结果人家天天唱歌,现在恢复的特别

第二十二章 TCP/IP层的实现

                      第二十二章    TCP/IP层的实现        我比较喜欢先难后易,如果把GPU显示管理.和网络管理拿下后:我会从头整理.改写一遍APO操作系统.这样,就会形成APO操作系统的锥形.也获得了全局观.内核CPU线路.和用户CPU线路,你可以将它们看成是独立的2个32位CPU核:内核CPU主要任务是实时处理.硬件中断,256个实时线程包含了一些中断程序的后半部.用户CPU主要是动态优先级进程.线程调度,各种应用程序的运行:2个核之间是通过消息交互.句

第十二章 APO编程语言

第十二章      APO编程语言 APO编程语言是基于汇编语言和面向对象编程.基本指令只有7种:赋值指令.COPY指令.BTX(位X测试为1.或0转移)指令.查表跳转指令switch(RN){-.}.移位与循环指令S.三操作数运算指令.调用与返回指令.所有的指令大小.除了32位立即数赋值是2字外:其它都是32位,一个字. 指令执行时间,除了32位立即数赋值是2ns.COPY指令取决于拷贝的长度外:其它指令都是1ns. 应用程序只能使用R0-R4,R8-R15的21个寄存器作为高速的寄存器局部变

[CSAPP笔记][第十二章并发编程]

第十二章 并发编程 如果逻辑控制流在时间上是重叠,那么它们就是并发的(concurrent).这种常见的现象称为并发(concurrency). 硬件异常处理程序,进程和Unix信号处理程序都是大家熟悉的例子. 我们主要将并发看做是一种操作系统内核用来运行多个应用程序的机制. 但是,并发不仅仅局限于内核.它也可以在应用程序中扮演重要的角色. 例如 Unix信号处理程序如何允许应用响应异步事件 例如:用户键入ctrl-c 程序访问虚拟存储器的一个未定义的区域 其他情况 访问慢速I/O设备 当一个应