时间一天一天过,转眼间,距上次的提交微软最有价值专家的申请已经有三个月了,最新的一次名单也要出炉了。对于这次的评选,段伏枥是有相当大的信心:书都出了,总该能评上了吧?
只可惜所谓的希望越大,失望越大,便是如此。这一次段伏枥被打击得体无完肤,因为新公布的名单中再次没有自己的名字!
为什么呢?为什么自己就是不能当选MVP呢?难道自己没有实力吗?可自己出书了啊!难道自己没有热心帮助别人吗?可哪次网友发过来问问题的邮件有不回的?段伏枥不停地问自己,究竟自己为何得不到这称号。
虽然段伏枥很伤心,但这毕竟也是一阵子的事。得不到就得不到吧,想那么多又有什么用呢?很多人都有吃不到葡萄就说葡萄是酸的心态,段伏枥也是如此,自己就很想写一篇博文,说说自己对这奖项如何的不屑。可刚敲打两字,段伏枥就放弃了:特意写博文说自己如何不屑于微软最有价值专家的项目,其实不也从另一个方面说明自己很在乎吗?这种自欺欺人的事情,还是不做为妙,以免贻笑大方。
或许自己真的无缘于这个奖项吧!只是无论如何,生活该咋样还是咋样,还是按自己的方式来生活吧!微软最有价值专家这奖项,自己就当从来没有申请过吧!
正当段伏枥已经将自己心态放平和,努力让自己不去想这个奖项的后的第四天,段伏枥接到了CSDN编辑打过来的电话。
CSDN编辑确认了段伏枥身份之后,直接问道:“这个季度的微软MVP你不打算参加申请吗?”
这话真是勾起自己的痛苦回忆,段伏枥无奈地笑了笑,回答道:“我上个季度也申请过啊,可是没有选上……”
“嗯,上次的申请表我有看到。不过,既然有机会,为何你不再尝试一次呢?你可以将这三个月做了什么东西完善完善,再提交一次啊。”
“可这三个月好像我没干什么好事……”段伏枥说的是实话,因为这段时间一直在忙着移植,所以基本上在博客中很少更新技术文章。如果要提交申请,那么就和上次申请提交的资料差不多。既然上次都失败了,那这次怎么可能会成功呢?
CSDN的编辑依然不肯放弃,继续劝说道:“我觉得,有机会,你一定要试试!”
既然话都说到这份上了,段伏枥也不好拂别人的好意。于是将上次的申请资料改了改,删掉了一些过期的资料,就直接发给了CSDN。由于段伏枥已经对此心灰意冷,所以并没有像以前那样抄送给微软项目组。
申请发完之后,段伏枥就再也没管了,因为自己隐隐约约感觉到,这次估计又会和以前一样落选。与其在这事情上纠结不休,还不如多花点时间想想这移植的事吧!
.NET Micro Framework移植的事情,已经过去了很久,总的来说,大部分基础已经完备,现在只差一个部分:USB。
其它部分还好说,移植难度并不是很大,即使真的无计可施,大不了就忽略掉这部分,也不会对系统的运行有多大的影响。可USB就不同了,即使真的毫无对策,也必须要想出方法。因为对于.NET Micro Framework来说,最终的目的是可以跑C#程序,而跑C#程序的前提条件是可以通过USB来下载。如果没有USB,那么运行C#程序就无从谈起,移植也就没有任何意义了。
可这么重要的组件,段伏枥对此却是一穷二白。除了知道USB长得是那个样子以外,段伏枥啥都不知道了。那怎么办?没办法,从零开始学起咯。
段伏枥首要做的,便是入门的资料。那些经典的USB教材大多是又厚又重,里面的内容如果学通了自然是好,可段伏枥现在没有那么多时间,也没那么多的精力去纠结这个细节。所以段伏枥将眼光投向了一本薄薄的小册子:《圈圈教你玩USB》。这本书主要是以实例的形式从无到有教初学者如何完成一个USB模块,这些内容在很多老鸟眼中完全是不屑一顾的小儿科,可在段伏枥眼中却如登天一般。什么端点啊,传输模式啊,这些名称段伏枥连听都没听过,更不用说还要在上面做文章了。
可对于程序员而言,有一句格言:凡是代码的问题都不是问题。这句话从另一个侧面说明了一件事,只要代码能做出来的东西,你就一定要能够做到。USB不懂?学呗!协议搞不清?动手做呗!
不过在此过程中,段伏枥深切感受到公司实力的大小对个人工作的影响。USB在刚开始的阶段,需要主从设备互相沟通,以确立设备的属性;如果这部分没有成功,那后续的传输无从谈起。可段伏枥卡就被卡在这里,不知道为什么无法识别设备。更郁闷的是,由于USB设备的识别有时间的限制,所以不能通过串口输出打印信息来判别,因为这会导致时间的延长;也不能通过USB HOUND软件来抓取数据,因为那是建立于设备识别之上的。左也不是,右也不成,段伏枥感到无从下手。和网友叶帆沟通过,他也曾经卡在这个阶段,不过他却不像段伏枥那样手足无措,因为他有USB分析仪。这是个好东西,要不也买个自己试试?可一听到价格,段伏枥放弃了:叶帆说他公司现在所用的USB分析仪价值一辆宝马!
自己现在连辆QQ都买不起,还宝马呢!让武总去买?做梦吧!即使是工作中真的需要这东西,听到这价格武总肯定拒绝。何况现在还是自己偷偷做的移植,武总要是肯支持,不要说什么太阳从西边出来了,即使太阳从四面八方出来也不可能。那怎么办?瞎猜瞎蒙呗!
功夫不负有心人,自己在这点被折腾了多久,段伏枥也忘记了。唯一给自己还记得的是,某次改动让电脑突然显示“STM32 RedCow”文字时的那种兴奋。当看到在设备管理器能够识别开发板的时候,段伏枥深深地呼了口气:这个门槛终于迈过去了!
USB的移植难就难在识别。只要识别能够成功,剩下的数据沟通因为微软已经做好了相关流程,所以没有什么太大的难点。剩下的部分,段伏枥折腾了一周,终于也将其完成。
USB的成功移植,意味着C#程序已经可以运行。看着VS2005在STM32开发板上成功地开始了断点调试C#程序,段伏枥终于可以自豪地对自己说:我已经成功移植了.NET Micro Framework!
忍辱负重呆在安勒斯,忍受着武总那虚伪的言语,等的就是这一刻。之所以一直呆在安勒斯,不就是想趁着有自己可掌握的时间的时候完成这移植吗?现在这移植终于完成了,那么自己再也没有理由呆在安勒斯了。似乎,是到了该离开的时候了……
- 前言
- 《那些年啊,那些事——一个程序员的奋斗史》——01
- 《那些年啊,那些事——一个程序员的奋斗史》——02
- 《那些年啊,那些事——一个程序员的奋斗史》——03
- 《那些年啊,那些事——一个程序员的奋斗史》——04
- 《那些年啊,那些事——一个程序员的奋斗史》——05
- 《那些年啊,那些事——一个程序员的奋斗史》——06
- 《那些年啊,那些事——一个程序员的奋斗史》——07
- 《那些年啊,那些事——一个程序员的奋斗史》——08
- 《那些年啊,那些事——一个程序员的奋斗史》——09
- 《那些年啊,那些事——一个程序员的奋斗史》——10
- 《那些年啊,那些事——一个程序员的奋斗史》——11
- 《那些年啊,那些事——一个程序员的奋斗史》——12
- 《那些年啊,那些事——一个程序员的奋斗史》——13
- 《那些年啊,那些事——一个程序员的奋斗史》——14
- 《那些年啊,那些事——一个程序员的奋斗史》——15
- 《那些年啊,那些事——一个程序员的奋斗史》——16
- 《那些年啊,那些事——一个程序员的奋斗史》——17
- 《那些年啊,那些事——一个程序员的奋斗史》——18
- 《那些年啊,那些事——一个程序员的奋斗史》——19
- 《那些年啊,那些事——一个程序员的奋斗史》——20
- 《那些年啊,那些事——一个程序员的奋斗史》——21
- 《那些年啊,那些事——一个程序员的奋斗史》——22
- 《那些年啊,那些事——一个程序员的奋斗史》——23
- 《那些年啊,那些事——一个程序员的奋斗史》——24
- 《那些年啊,那些事——一个程序员的奋斗史》——25
- 《那些年啊,那些事——一个程序员的奋斗史》——26
- 《那些年啊,那些事——一个程序员的奋斗史》——27
- 《那些年啊,那些事——一个程序员的奋斗史》——28
- 《那些年啊,那些事——一个程序员的奋斗史》——29
- 《那些年啊,那些事——一个程序员的奋斗史》——30
- 《那些年啊,那些事——一个程序员的奋斗史》——31
- 《那些年啊,那些事——一个程序员的奋斗史》——32
- 《那些年啊,那些事——一个程序员的奋斗史》——33
- 《那些年啊,那些事——一个程序员的奋斗史》——34
- 《那些年啊,那些事——一个程序员的奋斗史》——35
- 《那些年啊,那些事——一个程序员的奋斗史》——36
- 《那些年啊,那些事——一个程序员的奋斗史》——37
- 《那些年啊,那些事——一个程序员的奋斗史》——38
- 《那些年啊,那些事——一个程序员的奋斗史》——39
- 《那些年啊,那些事——一个程序员的奋斗史》——40
- 《那些年啊,那些事——一个程序员的奋斗史》——41
- 《那些年啊,那些事——一个程序员的奋斗史》——42
- 《那些年啊,那些事——一个程序员的奋斗史》——43
- 《那些年啊,那些事——一个程序员的奋斗史》——44
- 《那些年啊,那些事——一个程序员的奋斗史》——45
- 《那些年啊,那些事——一个程序员的奋斗史》——46
- 《那些年啊,那些事——一个程序员的奋斗史》——47
- 《那些年啊,那些事——一个程序员的奋斗史》——48
- 《那些年啊,那些事——一个程序员的奋斗史》——49
- 《那些年啊,那些事——一个程序员的奋斗史》——50
- 《那些年啊,那些事——一个程序员的奋斗史》——51
- 《那些年啊,那些事——一个程序员的奋斗史》——52
- 《那些年啊,那些事——一个程序员的奋斗史》——53
- 《那些年啊,那些事——一个程序员的奋斗史》——54
- 《那些年啊,那些事——一个程序员的奋斗史》——55
- 《那些年啊,那些事——一个程序员的奋斗史》——56
- 《那些年啊,那些事——一个程序员的奋斗史》——57
- 《那些年啊,那些事——一个程序员的奋斗史》——58
- 《那些年啊,那些事——一个程序员的奋斗史》——59
- 《那些年啊,那些事——一个程序员的奋斗史》——60
- 《那些年啊,那些事——一个程序员的奋斗史》——61
- 《那些年啊,那些事——一个程序员的奋斗史》——62
- 《那些年啊,那些事——一个程序员的奋斗史》——63
- 《那些年啊,那些事——一个程序员的奋斗史》——64
- 《那些年啊,那些事——一个程序员的奋斗史》——65
- 《那些年啊,那些事——一个程序员的奋斗史》——66
- 《那些年啊,那些事——一个程序员的奋斗史》——67
- 《那些年啊,那些事——一个程序员的奋斗史》——68
- 《那些年啊,那些事——一个程序员的奋斗史》——69
- 《那些年啊,那些事——一个程序员的奋斗史》——70
- 《那些年啊,那些事——一个程序员的奋斗史》——71
- 《那些年啊,那些事——一个程序员的奋斗史》——72
- 《那些年啊,那些事——一个程序员的奋斗史》——73
- 《那些年啊,那些事——一个程序员的奋斗史》——74
- 《那些年啊,那些事——一个程序员的奋斗史》——75
- 《那些年啊,那些事——一个程序员的奋斗史》——76
- 《那些年啊,那些事——一个程序员的奋斗史》——77
- 《那些年啊,那些事——一个程序员的奋斗史》——78
- 《那些年啊,那些事——一个程序员的奋斗史》——79
- 《那些年啊,那些事——一个程序员的奋斗史》——80
- 《那些年啊,那些事——一个程序员的奋斗史》——81
- 《那些年啊,那些事——一个程序员的奋斗史》——82
- 《那些年啊,那些事——一个程序员的奋斗史》——83
- 《那些年啊,那些事——一个程序员的奋斗史》——84
- 《那些年啊,那些事——一个程序员的奋斗史》——85
- 《那些年啊,那些事——一个程序员的奋斗史》——86
- 《那些年啊,那些事——一个程序员的奋斗史》——87
- 《那些年啊,那些事——一个程序员的奋斗史》——88
- 《那些年啊,那些事——一个程序员的奋斗史》——89
- 《那些年啊,那些事——一个程序员的奋斗史》——90
- 《那些年啊,那些事——一个程序员的奋斗史》——91
- 《那些年啊,那些事——一个程序员的奋斗史》——92
- 《那些年啊,那些事——一个程序员的奋斗史》——93
- 《那些年啊,那些事——一个程序员的奋斗史》——94
- 《那些年啊,那些事——一个程序员的奋斗史》——95
- 《那些年啊,那些事——一个程序员的奋斗史》——96
- 《那些年啊,那些事——一个程序员的奋斗史》——97
- 《那些年啊,那些事——一个程序员的奋斗史》——98
- 《那些年啊,那些事——一个程序员的奋斗史》——99
- 《那些年啊,那些事——一个程序员的奋斗史》——100
- 《那些年啊,那些事——一个程序员的奋斗史》——101
- 《那些年啊,那些事——一个程序员的奋斗史》——102
- 《那些年啊,那些事——一个程序员的奋斗史》——103
- 《那些年啊,那些事——一个程序员的奋斗史》——104
- 《那些年啊,那些事——一个程序员的奋斗史》——105
- 《那些年啊,那些事——一个程序员的奋斗史》——106
- 《那些年啊,那些事——一个程序员的奋斗史》——107
- 《那些年啊,那些事——一个程序员的奋斗史》——108
- 《那些年啊,那些事——一个程序员的奋斗史》——109
- 《那些年啊,那些事——一个程序员的奋斗史》——110
- 《那些年啊,那些事——一个程序员的奋斗史》——111
- 《那些年啊,那些事——一个程序员的奋斗史》——112
- 《那些年啊,那些事——一个程序员的奋斗史》——113
- 《那些年啊,那些事——一个程序员的奋斗史》——114
- 《那些年啊,那些事——一个程序员的奋斗史》——115
- 《那些年啊,那些事——一个程序员的奋斗史》——116
- 《那些年啊,那些事——一个程序员的奋斗史》——117
- 《那些年啊,那些事——一个程序员的奋斗史》——118
- 《那些年啊,那些事——一个程序员的奋斗史》——119
- 《那些年啊,那些事——一个程序员的奋斗史》——120
- 《那些年啊,那些事——一个程序员的奋斗史》——121
- 《那些年啊,那些事——一个程序员的奋斗史》——122
- 《那些年啊,那些事——一个程序员的奋斗史》——123
- 《那些年啊,那些事——一个程序员的奋斗史》——124
- 《那些年啊,那些事——一个程序员的奋斗史》——125
- 《那些年啊,那些事——一个程序员的奋斗史》——126
- 《那些年啊,那些事——一个程序员的奋斗史》——127
- 《那些年啊,那些事——一个程序员的奋斗史》——128 (终章)