热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《那些年啊,那些事——一个程序员的奋斗史》——122

时间一天一天过,转眼间,距上次的提交微软最有价值专家的申请已经有三个月了,最新的一次名单也要出炉了。对于这次的评选,段伏枥是有相当大的信心:书都出了,总该能评上了吧?
    时间一天一天过,转眼间,距上次的提交微软最有价值专家的申请已经有三个月了,最新的一次名单也要出炉了。对于这次的评选,段伏枥是有相当大的信心:书都出了,总该能评上了吧?


    只可惜所谓的希望越大,失望越大,便是如此。这一次段伏枥被打击得体无完肤,因为新公布的名单中再次没有自己的名字!


    为什么呢?为什么自己就是不能当选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!


    忍辱负重呆在安勒斯,忍受着武总那虚伪的言语,等的就是这一刻。之所以一直呆在安勒斯,不就是想趁着有自己可掌握的时间的时候完成这移植吗?现在这移植终于完成了,那么自己再也没有理由呆在安勒斯了。似乎,是到了该离开的时候了……

推荐阅读
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • Win10 64位旗舰版的优势及特点详解
    本文详细介绍了Win10 64位旗舰版的优势及特点,包括更安全的源安装盘、永久激活方式、稳定性和硬件驱动的集成,以及人性化的维护工具和分区功能。通过阅读本文,您将了解到Win10 64位旗舰版相比其他版本的优势和特点。 ... [详细]
  • 本文介绍了在win7电脑上进行文件加密的方法,包括利用NTFS的EFS进行加密和使用Win7旗舰版的Bitlocker加密整个分区。同时推荐了超级加密3000、宏杰加密工具和超级盘加密工具等多种加密软件,这些软件具有快速的加密速度和高强度的加密功能,可以防止文件的删除、复制和移动。此外,还强调了保持加密密钥的重要性,以免重装系统后无法打开已加密的文件。最后,提醒读者选择绿色软件,方便使用。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 如何在跨函数中使用内存?
    本文介绍了在跨函数中使用内存的方法,包括使用指针变量、动态分配内存和静态分配内存的区别。通过示例代码说明了如何正确地在不同函数中使用内存,并提醒程序员在使用动态分配内存时要手动释放内存,以防止内存泄漏。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
author-avatar
MICH泪的矿脉AEI
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有