0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

美国程序员讲述自己写代码获得陆军嘉奖奖章的故事

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-16 16:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

2005年,作为“伊拉克自由行动”的一部分,我所在的国民警卫队被派往伊拉克。我的MOS(军事专业)是 92A,这基本上是一个后勤供应工作。我负责订购和收拾机械的零部件,并退还旧器件,管理危险品紧急处理小组,分派/回收任务车辆,并办理许可证。其实还做一些其他的事情,只是现在不记得了。总之,当时这个系统的核心是一个叫ULLS-G(部队级物流系统 – 地面)的工具。我说“当时”,是因为我们回来不久后 SAMS-E(标准陆军维护系统 – 增强型)替换了ULLS-G,它使用了Oracle作为后端数据库。比起 SAMS-E,ULLS-G简直就是恐龙。被派遣前,我在军队足足使用四年之久,从头到尾都是噩梦。 ULLS-G是一个DOS应用程序(是的,MS-DOS),我在军工厂使用的大多数计算机只能运行DOS系统(这时是21世纪初,所以DOS系统很常见)。到我被派遣时,多数计算机都运行WinXP/2K或类似的系统,所以可以使用”MS-DOS兼容模式”运行ULLS-G。

正如我前面提到的,使用ULLS-G是很痛苦的。作为DOS下的应用,你不能使用鼠标,只能通过键盘进行交互。记得在任务快结束时,我已经记住了按键,甚至不用看键盘,只需输入它们就可完成工作。没有任何形式的批处理功能,是该系统令人感到可怕的地方。比如说你得打印士兵的许可证,就不得不一个一个去检查并打印。你得在一个屏幕前,输入他们的许可证号,加载出许可证,然后打印。我们部队大约有150名士兵,为了打印所有人的许可证,我不得不逐个查找每个士兵。如果你要为士兵添加一个车辆认证,同样得逐一去做。其实这还不是最让人恼火的,因为每次只需处理部分内容。但我们是专门为某一任务成立起来的(我们的士兵分别来自第180炮兵团第1营的四个连,组成了第180炮兵团第1营第1旅部与旅部连),这意味着这个ULLS-G系统里没有士兵的认证。所以一开始,我不得不手动输入每个士兵的认证,然后打印出他们的许可证,基本上要花费大半个小时。在正规部队,情况会更糟糕。离开之前,我们在华盛顿州刘易斯堡有预动员训练。士兵要进行多项车辆训练(M-1114, 5-ton, deuce-and-half,等等)。这些都是交错进行的,所以每次训练任务结束后,我都不得不添加认证并重新打印许可证。

不用说,我很恼火。我甚至得到消息,到伊拉克后,将会有更多的车辆认证,这意味着我将不得不全部重新添加认证并打印许可证。现在作为一名程序员,我不断地想发设法简化工作。我不想坐在那一个一个地添加认证、打印许可证了。一是我懒得弄,二是这件事情效率太低了,所以我决定使这个过程自动化。我做的第一件事就是尝试找出ULLS-G数据文件的格式。不幸的是,我一点都没弄出来,主要因为时间不够 (所有的军事训练都在进行)。不过令人意外地是,我偶然发现了一个页面,上面有ULLS-G的ODBC驱动程序。这意味着我可以运行SQL查询ULLS-G数据文件。有了这些,我开始编写Perl脚本查询数据。我们达到了伊拉克的时候,我有一个可以生成所有士兵文本文件形式许可证的脚本。脚本运行只花了一两秒,最长的部分就是打印出许可证。但我还没有完成,所以令人恼火的是不得不手动添加驾照。所以我又写了一个脚本,以使驾照可以全部一起添加给驾驶员。脚本还有一个配置文件,允许把指定的某种认证添加到某人。

到了部队以后,我又不得不打印每个人的证件,我仍记得二十分钟后当我拿着一堆刚刚从打印机打印出来还温热着的许可证时,电机中士那疑惑的表情。他问道:“这个需要很长时间吗?”,于是我开始和他谈论脚本,可是当我刚说出几句关于Perl、SQL和 ODBC 连接时,他就不再听了,点着头把许可证放到 TOC,或许他没有问我太多问题是好事,因为我做的事是不太被批准的,只有取得执照的技术人员(另一种MOS岗位) 才能安装,至少在部队眼中,我是不合格的。

在伊拉克时,我发现我们必须每天向TOC发送报告(最终发送到军营)。这些报告包括车辆的情况(报废还是完好)和一些其他信息。几乎所有的部队都是手动向Excel表中输入信息,然后打印出来并送到TOC。手动输入总是出错,每天早上我都得花20-30分钟修正报告,确保它是最新的,最后打印出来,送到TOC。我记得有一两次因为信息出错被批评了,从那以后变得倍加小心。我又生气了,这些事情需要有一个更好的方式来做,而且确实是有的。Excel可以使用在Windows中注册的ODBC连接,而且我已经用ULLS-G的Perl脚本注册了一个。

所以,我使用Excel宏简单地复用了同一个连接,这个宏指令可以帮我高效地计算表格中的所有项。棒极了,它能够自动更新报废汽车单,同时也包括了其他部队没有上报的信息,像所有车辆的服务状态及其行驶里程。以前的话,当它被从调度返回时,我们不得不手动查找每个车辆的维修状态,所以说服务状态位在日常工作中是非常有用的。现在,我只需要查找Excel表格就能了解到需要维护的车辆。

编程的角度来看,我做的并不是很出色。我只是找到了从ULLS-G数据库获取信息的方法。但却令我的领导印象深刻,尤其是我的班长和电机中士。大概两三个月后,来了一个新的大队电机员(如果没记错的话是CW2 Lee)。他对我做的事情非常感兴趣。有次我演示给他看后,他看着我说“你难道不知道不能这么做吗?”。一开始我担心我会有大麻烦,但他脸上却浮现出了笑容。他告诉我,他不会追究,因为我似乎知道自己在做什么,而且因为我提供了准确的报告,部队的效率也提高了。

接下来的几个月很快就过去了,还有一两个月后就要离开伊拉克了。除了遇到一些小问题,我的脚本和宏一直运行得不错。快结束时,部队有一个颁奖典礼。指挥官和军士长来到调配场发奖项。接到电话时我有点惊讶,我没期望我会得奖(我的工作地点主要在营地,虽然我觉得我工作得不错,但没认为它值得表彰)。授予我陆军嘉奖奖章(Army Commendation Medal)后,他们和我握了手并祝贺我。在我看到文书前,我认为这仅仅是一个一般性质的“优秀工作”奖。当我阅读文书,看到因为使用Perl脚本和Excel宏完成工作,班长SSG Lopez将我选为获奖者时,我很惊讶也很高兴。虽然我不是为了得到奖励而工作,但是自己的工作被赞赏,仍旧是一件很美妙的事情。

这就是我通过写代码获得部队奖章的故事。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74376
  • 程序员
    +关注

    关注

    4

    文章

    956

    浏览量

    31007
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    被质疑“组装厂”?雷讲述小米“芯片之旅”,小米17系列全面对标iPhone

    电子发烧友网报道(文/黄晶晶)9月25日晚雷发表2025年度演讲,今年的主题是“改变”。讲述了小米这么多年的造芯历程,并发布对标苹果的小米17系列智能手机。     芯片是小米走向成功的必由之路
    的头像 发表于 09-26 07:35 8779次阅读
    被质疑“组装厂”?雷<b class='flag-5'>军</b><b class='flag-5'>讲述</b>小米“芯片之旅”,小米17系列全面对标iPhone

    安森美CMO讲述我们与中国速度的共生故事

    藏在每一次与客户并肩攻克的系统级难题中,藏在对差异化创新的执着里,更藏在我们深耕生态协同的行动中。 基因里的创新“偏执”,安森美的“远方”与“脚下” 新春伊始,我们问了自己一个问题:“安森美是谁?” 在Felicity Carson的叙事里,安森美从来不是一个冰冷
    的头像 发表于 03-09 16:15 654次阅读

    OpenClaw席卷全球!千人排队“养龙虾”,改写AI硬件两大走向

    近日,来自海外Github上的OpenClaw持续火爆。OpenClaw是由奥地利退休程序员彼得·斯坦伯格(Peter Steinberger)发起的开源项目,采用MIT开源协议的框架,一个能让
    的头像 发表于 03-09 11:35 1.2w次阅读
    OpenClaw席卷全球!千人排队“养龙虾”,改写AI硬件两大走向

    芯盾时代SDP助力企业应对核心机密泄露危机

    无论你是程序员、文案、财务,无论你想撸代码、出海报、做报表,各式各样的AI总能满足你的需求,让你的工作更加轻松。
    的头像 发表于 12-26 11:49 850次阅读

    大理的AI野心藏不住了——风花雪月中千名程序员探讨人工智能

    2025 年12月4日至6日第二届CCF程序员大会暨大理人工智能与应用国际开发者大会在大理圆满落幕。
    的头像 发表于 12-24 17:45 892次阅读
    大理的AI野心藏不住了——风花雪月中千名<b class='flag-5'>程序员</b>探讨人工智能

    分析嵌入式软件代码的漏洞-代码注入

    进行编译 在大多数情况下,程序故意像执行代码一样执行数据是不寻常的,但将数据用于构造有意执行的对象却很常见。 1、格式化字符串漏洞 大多数C程序员熟悉printf函数。大体上,这些格式字符串
    发表于 12-22 12:53

    代码里的青春——我与RT-Thread的故事

    从发出RT-Thread20周年故事征集令的第一天起,我们已续收到了数十位开发者的投稿。有人凌晨三点在调试线程栈,有人在社区收获友情,有人靠RTT拿下比赛顺利上岸……今天我们选出几篇极具代表性
    的头像 发表于 12-12 20:11 1240次阅读
    <b class='flag-5'>代码</b>里的青春——我与RT-Thread的<b class='flag-5'>故事</b>

    程序员最常见谎言

    了。 28我已经测试过了,这个功能没问题,可以上线了。 29别担心,这个问题很快就能解决。 30代码快写完了,已经完成 90% 了 。 希望大家对程序员多一些容忍以及谅解! 各位程序员你们都被我说中了哪些?说说你们的观点
    发表于 12-10 08:24

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 962次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 860次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    连载|业余无线电史话(一):一个漫长的故事

    180米波段用莫尔斯电码(CW)发射信号。资料来源:火花博物馆。一个漫长的故事(一)如同任何科学故事一样,若不考虑其诞生的社会经济背景,我们就无法讲述业余无线电的
    的头像 发表于 06-29 07:07 1302次阅读
    连载|业余无线电史话(一):一个漫长的<b class='flag-5'>故事</b>

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    从“代码迷宫”到“视觉蓝图”——LVGL的嵌入式UI设计哲学!

    矢量图,让工程师与UX团队首次实现“无障碍协作”。 LVGL (Light and Versatile Graphics Library)的故事,像极了硅谷传奇——始于一个程序员的“不爽
    的头像 发表于 05-12 16:33 1398次阅读
    从“<b class='flag-5'>代码</b>迷宫”到“视觉蓝图”——LVGL的嵌入式UI设计哲学!

    同样的代码在官方开发板上运行正常,在自己板子上就跑不起来,怎么办?

    同样的代码在Nordic官方开发板上可以运行正常,但在自己板子上就跑不起来,如果你碰到了上述情况,建议按照如下步骤进行自检: 首先确认用户板元器件焊接良好,功能正常。如果你的板子有LED的话,你可以
    的头像 发表于 05-12 15:26 905次阅读
    同样的<b class='flag-5'>代码</b>在官方开发板上运行正常,在<b class='flag-5'>自己</b>板子上就跑不起来,怎么办?

    陆军营连级训练与效果评估系统

    管理系统
    北京华盛恒辉科技
    发布于 :2025年05月06日 10:46:03